@openrewrite/recipes-angular 0.0.0 → 0.4.0-20260320-120427

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 (421) hide show
  1. package/dist/index.d.ts +107 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +441 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/migration/add-default-configuration.d.ts +8 -0
  6. package/dist/migration/add-default-configuration.d.ts.map +1 -0
  7. package/dist/migration/add-default-configuration.js +124 -0
  8. package/dist/migration/add-default-configuration.js.map +1 -0
  9. package/dist/migration/add-localize-polyfill.d.ts +8 -0
  10. package/dist/migration/add-localize-polyfill.d.ts.map +1 -0
  11. package/dist/migration/add-localize-polyfill.js +78 -0
  12. package/dist/migration/add-localize-polyfill.js.map +1 -0
  13. package/dist/migration/add-module-with-providers-generic.d.ts +8 -0
  14. package/dist/migration/add-module-with-providers-generic.d.ts.map +1 -0
  15. package/dist/migration/add-module-with-providers-generic.js +114 -0
  16. package/dist/migration/add-module-with-providers-generic.js.map +1 -0
  17. package/dist/migration/add-static-false-to-view-queries.d.ts +8 -0
  18. package/dist/migration/add-static-false-to-view-queries.d.ts.map +1 -0
  19. package/dist/migration/add-static-false-to-view-queries.js +100 -0
  20. package/dist/migration/add-static-false-to-view-queries.js.map +1 -0
  21. package/dist/migration/add-testbed-teardown.d.ts +8 -0
  22. package/dist/migration/add-testbed-teardown.d.ts.map +1 -0
  23. package/dist/migration/add-testbed-teardown.js +62 -0
  24. package/dist/migration/add-testbed-teardown.js.map +1 -0
  25. package/dist/migration/enable-aot-build.d.ts +8 -0
  26. package/dist/migration/enable-aot-build.d.ts.map +1 -0
  27. package/dist/migration/enable-aot-build.js +123 -0
  28. package/dist/migration/enable-aot-build.js.map +1 -0
  29. package/dist/migration/explicit-standalone-flag.d.ts +8 -0
  30. package/dist/migration/explicit-standalone-flag.d.ts.map +1 -0
  31. package/dist/migration/explicit-standalone-flag.js +99 -0
  32. package/dist/migration/explicit-standalone-flag.js.map +1 -0
  33. package/dist/migration/migrate-constructor-to-inject.d.ts +8 -0
  34. package/dist/migration/migrate-constructor-to-inject.d.ts.map +1 -0
  35. package/dist/migration/migrate-constructor-to-inject.js +162 -0
  36. package/dist/migration/migrate-constructor-to-inject.js.map +1 -0
  37. package/dist/migration/migrate-input-to-signal.d.ts +8 -0
  38. package/dist/migration/migrate-input-to-signal.d.ts.map +1 -0
  39. package/dist/migration/migrate-input-to-signal.js +293 -0
  40. package/dist/migration/migrate-input-to-signal.js.map +1 -0
  41. package/dist/migration/migrate-output-to-signal.d.ts +8 -0
  42. package/dist/migration/migrate-output-to-signal.d.ts.map +1 -0
  43. package/dist/migration/migrate-output-to-signal.js +259 -0
  44. package/dist/migration/migrate-output-to-signal.js.map +1 -0
  45. package/dist/migration/migrate-query-to-signal.d.ts +8 -0
  46. package/dist/migration/migrate-query-to-signal.d.ts.map +1 -0
  47. package/dist/migration/migrate-query-to-signal.js +256 -0
  48. package/dist/migration/migrate-query-to-signal.js.map +1 -0
  49. package/dist/migration/migrate-to-solution-style-tsconfig.d.ts +17 -0
  50. package/dist/migration/migrate-to-solution-style-tsconfig.d.ts.map +1 -0
  51. package/dist/migration/migrate-to-solution-style-tsconfig.js +153 -0
  52. package/dist/migration/migrate-to-solution-style-tsconfig.js.map +1 -0
  53. package/dist/migration/move-document-to-core.d.ts +16 -0
  54. package/dist/migration/move-document-to-core.d.ts.map +1 -0
  55. package/dist/migration/move-document-to-core.js +48 -0
  56. package/dist/migration/move-document-to-core.js.map +1 -0
  57. package/dist/migration/remove-aot-summaries.d.ts +8 -0
  58. package/dist/migration/remove-aot-summaries.d.ts.map +1 -0
  59. package/dist/migration/remove-aot-summaries.js +90 -0
  60. package/dist/migration/remove-aot-summaries.js.map +1 -0
  61. package/dist/migration/remove-browser-module-with-server-transition.d.ts +8 -0
  62. package/dist/migration/remove-browser-module-with-server-transition.d.ts.map +1 -0
  63. package/dist/migration/remove-browser-module-with-server-transition.js +173 -0
  64. package/dist/migration/remove-browser-module-with-server-transition.js.map +1 -0
  65. package/dist/migration/remove-component-factory-resolver.d.ts +8 -0
  66. package/dist/migration/remove-component-factory-resolver.d.ts.map +1 -0
  67. package/dist/migration/remove-component-factory-resolver.js +70 -0
  68. package/dist/migration/remove-component-factory-resolver.js.map +1 -0
  69. package/dist/migration/remove-default-project.d.ts +8 -0
  70. package/dist/migration/remove-default-project.d.ts.map +1 -0
  71. package/dist/migration/remove-default-project.js +59 -0
  72. package/dist/migration/remove-default-project.js.map +1 -0
  73. package/dist/migration/remove-empty-ng-on-init.d.ts +8 -0
  74. package/dist/migration/remove-empty-ng-on-init.d.ts.map +1 -0
  75. package/dist/migration/remove-empty-ng-on-init.js +98 -0
  76. package/dist/migration/remove-empty-ng-on-init.js.map +1 -0
  77. package/dist/migration/remove-enable-ivy.d.ts +8 -0
  78. package/dist/migration/remove-enable-ivy.d.ts.map +1 -0
  79. package/dist/migration/remove-enable-ivy.js +78 -0
  80. package/dist/migration/remove-enable-ivy.js.map +1 -0
  81. package/dist/migration/remove-entry-components.d.ts +8 -0
  82. package/dist/migration/remove-entry-components.d.ts.map +1 -0
  83. package/dist/migration/remove-entry-components.js +101 -0
  84. package/dist/migration/remove-entry-components.js.map +1 -0
  85. package/dist/migration/remove-es5-browser-support.d.ts +8 -0
  86. package/dist/migration/remove-es5-browser-support.d.ts.map +1 -0
  87. package/dist/migration/remove-es5-browser-support.js +74 -0
  88. package/dist/migration/remove-es5-browser-support.js.map +1 -0
  89. package/dist/migration/remove-extract-css.d.ts +8 -0
  90. package/dist/migration/remove-extract-css.d.ts.map +1 -0
  91. package/dist/migration/remove-extract-css.js +76 -0
  92. package/dist/migration/remove-extract-css.js.map +1 -0
  93. package/dist/migration/remove-ie-polyfills.d.ts +8 -0
  94. package/dist/migration/remove-ie-polyfills.d.ts.map +1 -0
  95. package/dist/migration/remove-ie-polyfills.js +151 -0
  96. package/dist/migration/remove-ie-polyfills.js.map +1 -0
  97. package/dist/migration/remove-module-id.d.ts +8 -0
  98. package/dist/migration/remove-module-id.d.ts.map +1 -0
  99. package/dist/migration/remove-module-id.js +81 -0
  100. package/dist/migration/remove-module-id.js.map +1 -0
  101. package/dist/migration/remove-relative-link-resolution.d.ts +8 -0
  102. package/dist/migration/remove-relative-link-resolution.d.ts.map +1 -0
  103. package/dist/migration/remove-relative-link-resolution.js +84 -0
  104. package/dist/migration/remove-relative-link-resolution.js.map +1 -0
  105. package/dist/migration/remove-standalone-true.d.ts +8 -0
  106. package/dist/migration/remove-standalone-true.d.ts.map +1 -0
  107. package/dist/migration/remove-standalone-true.js +73 -0
  108. package/dist/migration/remove-standalone-true.js.map +1 -0
  109. package/dist/migration/remove-static-false.d.ts +8 -0
  110. package/dist/migration/remove-static-false.d.ts.map +1 -0
  111. package/dist/migration/remove-static-false.js +90 -0
  112. package/dist/migration/remove-static-false.js.map +1 -0
  113. package/dist/migration/remove-zone-js-polyfill.d.ts +8 -0
  114. package/dist/migration/remove-zone-js-polyfill.d.ts.map +1 -0
  115. package/dist/migration/remove-zone-js-polyfill.js +73 -0
  116. package/dist/migration/remove-zone-js-polyfill.js.map +1 -0
  117. package/dist/migration/rename-after-render.d.ts +8 -0
  118. package/dist/migration/rename-after-render.d.ts.map +1 -0
  119. package/dist/migration/rename-after-render.js +52 -0
  120. package/dist/migration/rename-after-render.js.map +1 -0
  121. package/dist/migration/rename-check-no-changes.d.ts +8 -0
  122. package/dist/migration/rename-check-no-changes.d.ts.map +1 -0
  123. package/dist/migration/rename-check-no-changes.js +48 -0
  124. package/dist/migration/rename-check-no-changes.js.map +1 -0
  125. package/dist/migration/rename-file.d.ts +14 -0
  126. package/dist/migration/rename-file.d.ts.map +1 -0
  127. package/dist/migration/rename-file.js +124 -0
  128. package/dist/migration/rename-file.js.map +1 -0
  129. package/dist/migration/rename-pending-tasks.d.ts +8 -0
  130. package/dist/migration/rename-pending-tasks.d.ts.map +1 -0
  131. package/dist/migration/rename-pending-tasks.js +49 -0
  132. package/dist/migration/rename-pending-tasks.js.map +1 -0
  133. package/dist/migration/rename-zoneless-provider.d.ts +8 -0
  134. package/dist/migration/rename-zoneless-provider.d.ts.map +1 -0
  135. package/dist/migration/rename-zoneless-provider.js +48 -0
  136. package/dist/migration/rename-zoneless-provider.js.map +1 -0
  137. package/dist/migration/replace-async-with-wait-for-async.d.ts +8 -0
  138. package/dist/migration/replace-async-with-wait-for-async.d.ts.map +1 -0
  139. package/dist/migration/replace-async-with-wait-for-async.js +52 -0
  140. package/dist/migration/replace-async-with-wait-for-async.js.map +1 -0
  141. package/dist/migration/replace-deep-zone-js-imports.d.ts +8 -0
  142. package/dist/migration/replace-deep-zone-js-imports.d.ts.map +1 -0
  143. package/dist/migration/replace-deep-zone-js-imports.js +144 -0
  144. package/dist/migration/replace-deep-zone-js-imports.js.map +1 -0
  145. package/dist/migration/replace-http-client-module.d.ts +8 -0
  146. package/dist/migration/replace-http-client-module.d.ts.map +1 -0
  147. package/dist/migration/replace-http-client-module.js +248 -0
  148. package/dist/migration/replace-http-client-module.js.map +1 -0
  149. package/dist/migration/replace-initial-navigation.d.ts +8 -0
  150. package/dist/migration/replace-initial-navigation.d.ts.map +1 -0
  151. package/dist/migration/replace-initial-navigation.js +80 -0
  152. package/dist/migration/replace-initial-navigation.js.map +1 -0
  153. package/dist/migration/replace-inject-flags.d.ts +8 -0
  154. package/dist/migration/replace-inject-flags.d.ts.map +1 -0
  155. package/dist/migration/replace-inject-flags.js +101 -0
  156. package/dist/migration/replace-inject-flags.js.map +1 -0
  157. package/dist/migration/replace-load-children-string.d.ts +8 -0
  158. package/dist/migration/replace-load-children-string.d.ts.map +1 -0
  159. package/dist/migration/replace-load-children-string.js +70 -0
  160. package/dist/migration/replace-load-children-string.js.map +1 -0
  161. package/dist/migration/replace-node-sass-with-sass.d.ts +8 -0
  162. package/dist/migration/replace-node-sass-with-sass.d.ts.map +1 -0
  163. package/dist/migration/replace-node-sass-with-sass.js +38 -0
  164. package/dist/migration/replace-node-sass-with-sass.js.map +1 -0
  165. package/dist/migration/replace-router-link-with-href.d.ts +8 -0
  166. package/dist/migration/replace-router-link-with-href.d.ts.map +1 -0
  167. package/dist/migration/replace-router-link-with-href.js +55 -0
  168. package/dist/migration/replace-router-link-with-href.js.map +1 -0
  169. package/dist/migration/replace-testbed-get-with-inject.d.ts +8 -0
  170. package/dist/migration/replace-testbed-get-with-inject.d.ts.map +1 -0
  171. package/dist/migration/replace-testbed-get-with-inject.js +53 -0
  172. package/dist/migration/replace-testbed-get-with-inject.js.map +1 -0
  173. package/dist/migration/replace-untyped-forms.d.ts +8 -0
  174. package/dist/migration/replace-untyped-forms.d.ts.map +1 -0
  175. package/dist/migration/replace-untyped-forms.js +78 -0
  176. package/dist/migration/replace-untyped-forms.js.map +1 -0
  177. package/dist/migration/replace-validator-with-validators.d.ts +8 -0
  178. package/dist/migration/replace-validator-with-validators.d.ts.map +1 -0
  179. package/dist/migration/replace-validator-with-validators.js +62 -0
  180. package/dist/migration/replace-validator-with-validators.js.map +1 -0
  181. package/dist/migration/replace-view-encapsulation-native.d.ts +8 -0
  182. package/dist/migration/replace-view-encapsulation-native.d.ts.map +1 -0
  183. package/dist/migration/replace-view-encapsulation-native.js +67 -0
  184. package/dist/migration/replace-view-encapsulation-native.js.map +1 -0
  185. package/dist/migration/update-component-template-url.d.ts +28 -0
  186. package/dist/migration/update-component-template-url.d.ts.map +1 -0
  187. package/dist/migration/update-component-template-url.js +178 -0
  188. package/dist/migration/update-component-template-url.js.map +1 -0
  189. package/dist/migration/update-tsconfig-module.d.ts +8 -0
  190. package/dist/migration/update-tsconfig-module.d.ts.map +1 -0
  191. package/dist/migration/update-tsconfig-module.js +83 -0
  192. package/dist/migration/update-tsconfig-module.js.map +1 -0
  193. package/dist/migration/update-tsconfig-target.d.ts +8 -0
  194. package/dist/migration/update-tsconfig-target.d.ts.map +1 -0
  195. package/dist/migration/update-tsconfig-target.js +78 -0
  196. package/dist/migration/update-tsconfig-target.js.map +1 -0
  197. package/dist/migration/upgrade-to-angular-10.d.ts +8 -0
  198. package/dist/migration/upgrade-to-angular-10.d.ts.map +1 -0
  199. package/dist/migration/upgrade-to-angular-10.js +68 -0
  200. package/dist/migration/upgrade-to-angular-10.js.map +1 -0
  201. package/dist/migration/upgrade-to-angular-11.d.ts +8 -0
  202. package/dist/migration/upgrade-to-angular-11.d.ts.map +1 -0
  203. package/dist/migration/upgrade-to-angular-11.js +68 -0
  204. package/dist/migration/upgrade-to-angular-11.js.map +1 -0
  205. package/dist/migration/upgrade-to-angular-12.d.ts +8 -0
  206. package/dist/migration/upgrade-to-angular-12.d.ts.map +1 -0
  207. package/dist/migration/upgrade-to-angular-12.js +59 -0
  208. package/dist/migration/upgrade-to-angular-12.js.map +1 -0
  209. package/dist/migration/upgrade-to-angular-13.d.ts +8 -0
  210. package/dist/migration/upgrade-to-angular-13.d.ts.map +1 -0
  211. package/dist/migration/upgrade-to-angular-13.js +61 -0
  212. package/dist/migration/upgrade-to-angular-13.js.map +1 -0
  213. package/dist/migration/upgrade-to-angular-14.d.ts +8 -0
  214. package/dist/migration/upgrade-to-angular-14.d.ts.map +1 -0
  215. package/dist/migration/upgrade-to-angular-14.js +60 -0
  216. package/dist/migration/upgrade-to-angular-14.js.map +1 -0
  217. package/dist/migration/upgrade-to-angular-15.d.ts +8 -0
  218. package/dist/migration/upgrade-to-angular-15.d.ts.map +1 -0
  219. package/dist/migration/upgrade-to-angular-15.js +59 -0
  220. package/dist/migration/upgrade-to-angular-15.js.map +1 -0
  221. package/dist/migration/upgrade-to-angular-16.d.ts +8 -0
  222. package/dist/migration/upgrade-to-angular-16.d.ts.map +1 -0
  223. package/dist/migration/upgrade-to-angular-16.js +73 -0
  224. package/dist/migration/upgrade-to-angular-16.js.map +1 -0
  225. package/dist/migration/upgrade-to-angular-17.d.ts +8 -0
  226. package/dist/migration/upgrade-to-angular-17.d.ts.map +1 -0
  227. package/dist/migration/upgrade-to-angular-17.js +59 -0
  228. package/dist/migration/upgrade-to-angular-17.js.map +1 -0
  229. package/dist/migration/upgrade-to-angular-18.d.ts +8 -0
  230. package/dist/migration/upgrade-to-angular-18.d.ts.map +1 -0
  231. package/dist/migration/upgrade-to-angular-18.js +85 -0
  232. package/dist/migration/upgrade-to-angular-18.js.map +1 -0
  233. package/dist/migration/upgrade-to-angular-19.d.ts +8 -0
  234. package/dist/migration/upgrade-to-angular-19.d.ts.map +1 -0
  235. package/dist/migration/upgrade-to-angular-19.js +68 -0
  236. package/dist/migration/upgrade-to-angular-19.js.map +1 -0
  237. package/dist/migration/upgrade-to-angular-20.d.ts +8 -0
  238. package/dist/migration/upgrade-to-angular-20.d.ts.map +1 -0
  239. package/dist/migration/upgrade-to-angular-20.js +63 -0
  240. package/dist/migration/upgrade-to-angular-20.js.map +1 -0
  241. package/dist/migration/upgrade-to-angular-21.d.ts +8 -0
  242. package/dist/migration/upgrade-to-angular-21.d.ts.map +1 -0
  243. package/dist/migration/upgrade-to-angular-21.js +69 -0
  244. package/dist/migration/upgrade-to-angular-21.js.map +1 -0
  245. package/dist/migration/upgrade-to-angular-8.d.ts +8 -0
  246. package/dist/migration/upgrade-to-angular-8.d.ts.map +1 -0
  247. package/dist/migration/upgrade-to-angular-8.js +70 -0
  248. package/dist/migration/upgrade-to-angular-8.js.map +1 -0
  249. package/dist/migration/upgrade-to-angular-9.d.ts +8 -0
  250. package/dist/migration/upgrade-to-angular-9.d.ts.map +1 -0
  251. package/dist/migration/upgrade-to-angular-9.js +85 -0
  252. package/dist/migration/upgrade-to-angular-9.js.map +1 -0
  253. package/dist/search/find-analyze-for-entry-components-usage.d.ts +8 -0
  254. package/dist/search/find-analyze-for-entry-components-usage.d.ts.map +1 -0
  255. package/dist/search/find-analyze-for-entry-components-usage.js +66 -0
  256. package/dist/search/find-analyze-for-entry-components-usage.js.map +1 -0
  257. package/dist/search/find-angular-decorator.d.ts +8 -0
  258. package/dist/search/find-angular-decorator.d.ts.map +1 -0
  259. package/dist/search/find-angular-decorator.js +78 -0
  260. package/dist/search/find-angular-decorator.js.map +1 -0
  261. package/dist/search/find-angular-http-usage.d.ts +8 -0
  262. package/dist/search/find-angular-http-usage.d.ts.map +1 -0
  263. package/dist/search/find-angular-http-usage.js +55 -0
  264. package/dist/search/find-angular-http-usage.js.map +1 -0
  265. package/dist/search/find-animation-driver-matches-element.d.ts +8 -0
  266. package/dist/search/find-animation-driver-matches-element.d.ts.map +1 -0
  267. package/dist/search/find-animation-driver-matches-element.js +59 -0
  268. package/dist/search/find-animation-driver-matches-element.js.map +1 -0
  269. package/dist/search/find-async-test-helper-usage.d.ts +8 -0
  270. package/dist/search/find-async-test-helper-usage.d.ts.map +1 -0
  271. package/dist/search/find-async-test-helper-usage.js +65 -0
  272. package/dist/search/find-async-test-helper-usage.js.map +1 -0
  273. package/dist/search/find-bare-module-with-providers.d.ts +8 -0
  274. package/dist/search/find-bare-module-with-providers.d.ts.map +1 -0
  275. package/dist/search/find-bare-module-with-providers.js +67 -0
  276. package/dist/search/find-bare-module-with-providers.js.map +1 -0
  277. package/dist/search/find-browser-transfer-state-module-usage.d.ts +8 -0
  278. package/dist/search/find-browser-transfer-state-module-usage.d.ts.map +1 -0
  279. package/dist/search/find-browser-transfer-state-module-usage.js +65 -0
  280. package/dist/search/find-browser-transfer-state-module-usage.js.map +1 -0
  281. package/dist/search/find-common-module-usage.d.ts +8 -0
  282. package/dist/search/find-common-module-usage.d.ts.map +1 -0
  283. package/dist/search/find-common-module-usage.js +67 -0
  284. package/dist/search/find-common-module-usage.js.map +1 -0
  285. package/dist/search/find-compiler-factory-usage.d.ts +8 -0
  286. package/dist/search/find-compiler-factory-usage.d.ts.map +1 -0
  287. package/dist/search/find-compiler-factory-usage.js +70 -0
  288. package/dist/search/find-compiler-factory-usage.js.map +1 -0
  289. package/dist/search/find-date-pipe-default-timezone-usage.d.ts +8 -0
  290. package/dist/search/find-date-pipe-default-timezone-usage.d.ts.map +1 -0
  291. package/dist/search/find-date-pipe-default-timezone-usage.js +66 -0
  292. package/dist/search/find-date-pipe-default-timezone-usage.js.map +1 -0
  293. package/dist/search/find-effect-timing-usage.d.ts +8 -0
  294. package/dist/search/find-effect-timing-usage.d.ts.map +1 -0
  295. package/dist/search/find-effect-timing-usage.js +48 -0
  296. package/dist/search/find-effect-timing-usage.js.map +1 -0
  297. package/dist/search/find-empty-projectable-nodes.d.ts +8 -0
  298. package/dist/search/find-empty-projectable-nodes.d.ts.map +1 -0
  299. package/dist/search/find-empty-projectable-nodes.js +88 -0
  300. package/dist/search/find-empty-projectable-nodes.js.map +1 -0
  301. package/dist/search/find-fake-async-usage.d.ts +8 -0
  302. package/dist/search/find-fake-async-usage.d.ts.map +1 -0
  303. package/dist/search/find-fake-async-usage.js +56 -0
  304. package/dist/search/find-fake-async-usage.js.map +1 -0
  305. package/dist/search/find-hammer-js-usage.d.ts +8 -0
  306. package/dist/search/find-hammer-js-usage.d.ts.map +1 -0
  307. package/dist/search/find-hammer-js-usage.js +69 -0
  308. package/dist/search/find-hammer-js-usage.js.map +1 -0
  309. package/dist/search/find-i18n-usage.d.ts +8 -0
  310. package/dist/search/find-i18n-usage.d.ts.map +1 -0
  311. package/dist/search/find-i18n-usage.js +128 -0
  312. package/dist/search/find-i18n-usage.js.map +1 -0
  313. package/dist/search/find-karma-usage.d.ts +8 -0
  314. package/dist/search/find-karma-usage.d.ts.map +1 -0
  315. package/dist/search/find-karma-usage.js +69 -0
  316. package/dist/search/find-karma-usage.js.map +1 -0
  317. package/dist/search/find-load-children-string-usage.d.ts +8 -0
  318. package/dist/search/find-load-children-string-usage.d.ts.map +1 -0
  319. package/dist/search/find-load-children-string-usage.js +62 -0
  320. package/dist/search/find-load-children-string-usage.js.map +1 -0
  321. package/dist/search/find-missing-injectable.d.ts +8 -0
  322. package/dist/search/find-missing-injectable.d.ts.map +1 -0
  323. package/dist/search/find-missing-injectable.js +98 -0
  324. package/dist/search/find-missing-injectable.js.map +1 -0
  325. package/dist/search/find-ng-class-usage.d.ts +8 -0
  326. package/dist/search/find-ng-class-usage.d.ts.map +1 -0
  327. package/dist/search/find-ng-class-usage.js +65 -0
  328. package/dist/search/find-ng-class-usage.js.map +1 -0
  329. package/dist/search/find-ng-style-usage.d.ts +8 -0
  330. package/dist/search/find-ng-style-usage.d.ts.map +1 -0
  331. package/dist/search/find-ng-style-usage.js +65 -0
  332. package/dist/search/find-ng-style-usage.js.map +1 -0
  333. package/dist/search/find-path-match-type-usage.d.ts +8 -0
  334. package/dist/search/find-path-match-type-usage.d.ts.map +1 -0
  335. package/dist/search/find-path-match-type-usage.js +62 -0
  336. package/dist/search/find-path-match-type-usage.js.map +1 -0
  337. package/dist/search/find-platform-dynamic-server-usage.d.ts +8 -0
  338. package/dist/search/find-platform-dynamic-server-usage.d.ts.map +1 -0
  339. package/dist/search/find-platform-dynamic-server-usage.js +59 -0
  340. package/dist/search/find-platform-dynamic-server-usage.js.map +1 -0
  341. package/dist/search/find-platform-webworker-usage.d.ts +8 -0
  342. package/dist/search/find-platform-webworker-usage.d.ts.map +1 -0
  343. package/dist/search/find-platform-webworker-usage.js +54 -0
  344. package/dist/search/find-platform-webworker-usage.js.map +1 -0
  345. package/dist/search/find-platform-worker-usage.d.ts +8 -0
  346. package/dist/search/find-platform-worker-usage.d.ts.map +1 -0
  347. package/dist/search/find-platform-worker-usage.js +60 -0
  348. package/dist/search/find-platform-worker-usage.js.map +1 -0
  349. package/dist/search/find-preserve-fragment-usage.d.ts +8 -0
  350. package/dist/search/find-preserve-fragment-usage.d.ts.map +1 -0
  351. package/dist/search/find-preserve-fragment-usage.js +52 -0
  352. package/dist/search/find-preserve-fragment-usage.js.map +1 -0
  353. package/dist/search/find-preserve-query-params-usage.d.ts +8 -0
  354. package/dist/search/find-preserve-query-params-usage.d.ts.map +1 -0
  355. package/dist/search/find-preserve-query-params-usage.js +52 -0
  356. package/dist/search/find-preserve-query-params-usage.js.map +1 -0
  357. package/dist/search/find-provided-in-deprecated-usage.d.ts +8 -0
  358. package/dist/search/find-provided-in-deprecated-usage.d.ts.map +1 -0
  359. package/dist/search/find-provided-in-deprecated-usage.js +87 -0
  360. package/dist/search/find-provided-in-deprecated-usage.js.map +1 -0
  361. package/dist/search/find-reflective-injector-usage.d.ts +8 -0
  362. package/dist/search/find-reflective-injector-usage.d.ts.map +1 -0
  363. package/dist/search/find-reflective-injector-usage.js +65 -0
  364. package/dist/search/find-reflective-injector-usage.js.map +1 -0
  365. package/dist/search/find-render-application-usage.d.ts +8 -0
  366. package/dist/search/find-render-application-usage.d.ts.map +1 -0
  367. package/dist/search/find-render-application-usage.js +67 -0
  368. package/dist/search/find-render-application-usage.js.map +1 -0
  369. package/dist/search/find-render-component-type-usage.d.ts +8 -0
  370. package/dist/search/find-render-component-type-usage.d.ts.map +1 -0
  371. package/dist/search/find-render-component-type-usage.js +66 -0
  372. package/dist/search/find-render-component-type-usage.js.map +1 -0
  373. package/dist/search/find-render-module-factory-usage.d.ts +8 -0
  374. package/dist/search/find-render-module-factory-usage.d.ts.map +1 -0
  375. package/dist/search/find-render-module-factory-usage.js +65 -0
  376. package/dist/search/find-render-module-factory-usage.js.map +1 -0
  377. package/dist/search/find-renderer-usage.d.ts +8 -0
  378. package/dist/search/find-renderer-usage.d.ts.map +1 -0
  379. package/dist/search/find-renderer-usage.js +66 -0
  380. package/dist/search/find-renderer-usage.js.map +1 -0
  381. package/dist/search/find-resource-cache-provider-usage.d.ts +8 -0
  382. package/dist/search/find-resource-cache-provider-usage.d.ts.map +1 -0
  383. package/dist/search/find-resource-cache-provider-usage.js +59 -0
  384. package/dist/search/find-resource-cache-provider-usage.js.map +1 -0
  385. package/dist/search/find-root-renderer-usage.d.ts +8 -0
  386. package/dist/search/find-root-renderer-usage.d.ts.map +1 -0
  387. package/dist/search/find-root-renderer-usage.js +67 -0
  388. package/dist/search/find-root-renderer-usage.js.map +1 -0
  389. package/dist/search/find-rxjs-compat-usage.d.ts +8 -0
  390. package/dist/search/find-rxjs-compat-usage.d.ts.map +1 -0
  391. package/dist/search/find-rxjs-compat-usage.js +60 -0
  392. package/dist/search/find-rxjs-compat-usage.js.map +1 -0
  393. package/dist/search/find-server-transfer-state-module-usage.d.ts +8 -0
  394. package/dist/search/find-server-transfer-state-module-usage.d.ts.map +1 -0
  395. package/dist/search/find-server-transfer-state-module-usage.js +59 -0
  396. package/dist/search/find-server-transfer-state-module-usage.js.map +1 -0
  397. package/dist/search/find-setup-testing-router-usage.d.ts +8 -0
  398. package/dist/search/find-setup-testing-router-usage.d.ts.map +1 -0
  399. package/dist/search/find-setup-testing-router-usage.js +65 -0
  400. package/dist/search/find-setup-testing-router-usage.js.map +1 -0
  401. package/dist/search/find-testability-pending-request-usage.d.ts +8 -0
  402. package/dist/search/find-testability-pending-request-usage.d.ts.map +1 -0
  403. package/dist/search/find-testability-pending-request-usage.js +59 -0
  404. package/dist/search/find-testability-pending-request-usage.js.map +1 -0
  405. package/dist/search/find-undecorated-angular-class.d.ts +8 -0
  406. package/dist/search/find-undecorated-angular-class.d.ts.map +1 -0
  407. package/dist/search/find-undecorated-angular-class.js +87 -0
  408. package/dist/search/find-undecorated-angular-class.js.map +1 -0
  409. package/dist/search/find-with-no-dom-reuse-usage.d.ts +8 -0
  410. package/dist/search/find-with-no-dom-reuse-usage.d.ts.map +1 -0
  411. package/dist/search/find-with-no-dom-reuse-usage.js +66 -0
  412. package/dist/search/find-with-no-dom-reuse-usage.js.map +1 -0
  413. package/dist/search/find-wrapped-value-usage.d.ts +8 -0
  414. package/dist/search/find-wrapped-value-usage.d.ts.map +1 -0
  415. package/dist/search/find-wrapped-value-usage.js +66 -0
  416. package/dist/search/find-wrapped-value-usage.js.map +1 -0
  417. package/dist/search/find-zone-js-usage.d.ts +8 -0
  418. package/dist/search/find-zone-js-usage.d.ts.map +1 -0
  419. package/dist/search/find-zone-js-usage.js +65 -0
  420. package/dist/search/find-zone-js-usage.js.map +1 -0
  421. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import { Recipe } from "@openrewrite/rewrite";
2
+ export declare class UpgradeToAngular8 extends Recipe {
3
+ readonly name = "org.openrewrite.angular.UpgradeToAngular8";
4
+ readonly displayName = "Upgrade to Angular 8";
5
+ readonly description: string;
6
+ recipeList(): Promise<Recipe[]>;
7
+ }
8
+ //# sourceMappingURL=upgrade-to-angular-8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-to-angular-8.d.ts","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-8.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAS5C,qBAAa,iBAAkB,SAAQ,MAAM;IACzC,QAAQ,CAAC,IAAI,+CAA+C;IAC5D,QAAQ,CAAC,WAAW,0BAA0B;IAC9C,QAAQ,CAAC,WAAW,SAMsD;IAEpE,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CA2BxC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.UpgradeToAngular8 = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const add_static_false_to_view_queries_1 = require("./add-static-false-to-view-queries");
21
+ const move_document_to_core_1 = require("./move-document-to-core");
22
+ const find_angular_http_usage_1 = require("../search/find-angular-http-usage");
23
+ const find_platform_webworker_usage_1 = require("../search/find-platform-webworker-usage");
24
+ const find_rxjs_compat_usage_1 = require("../search/find-rxjs-compat-usage");
25
+ const replace_load_children_string_1 = require("./replace-load-children-string");
26
+ class UpgradeToAngular8 extends rewrite_1.Recipe {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.name = "org.openrewrite.angular.UpgradeToAngular8";
30
+ this.displayName = "Upgrade to Angular 8";
31
+ this.description = "Migrates Angular 7.x applications to Angular 8. " +
32
+ "This includes adding the now-required `static: false` to `@ViewChild` and `@ContentChild` decorators, " +
33
+ "moving the `DOCUMENT` import from `@angular/platform-browser` to `@angular/common`, " +
34
+ "removing `rxjs-compat` and flagging any remaining RxJS 5-style imports, " +
35
+ "flagging removed `@angular/http` imports, " +
36
+ "converting deprecated string-based `loadChildren` to dynamic imports, " +
37
+ "and upgrading Angular, TypeScript, and related dependency versions.";
38
+ }
39
+ recipeList() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return [
42
+ // Code transformations
43
+ new add_static_false_to_view_queries_1.AddStaticFalseToViewQueries(),
44
+ new move_document_to_core_1.MoveDocumentImport({ targetModule: '@angular/common' }),
45
+ // Search: removed/deprecated APIs
46
+ new find_rxjs_compat_usage_1.FindRxjsCompatUsage(),
47
+ new replace_load_children_string_1.ReplaceLoadChildrenString(),
48
+ new find_angular_http_usage_1.FindAngularHttpUsage(),
49
+ new find_platform_webworker_usage_1.FindPlatformWebworkerUsage(),
50
+ // Remove rxjs-compat (RxJS 5→6 shim no longer needed)
51
+ new javascript_1.RemoveDependency({ packageName: "rxjs-compat" }),
52
+ // Angular core packages
53
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@angular/*", newVersion: "8.x" }),
54
+ // Angular CDK
55
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@angular/cdk", newVersion: "8.x" }),
56
+ // Angular DevKit
57
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@angular-devkit/*", newVersion: "8.x" }),
58
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@schematics/angular", newVersion: "8.x" }),
59
+ // zone.js
60
+ new javascript_1.UpgradeDependencyVersion({ packageName: "zone.js", newVersion: "0.9.x" }),
61
+ // TypeScript
62
+ new javascript_1.UpgradeDependencyVersion({ packageName: "typescript", newVersion: "3.4.x" }),
63
+ // tslib
64
+ new javascript_1.UpgradeDependencyVersion({ packageName: "tslib", newVersion: "1.x" }),
65
+ ];
66
+ });
67
+ }
68
+ }
69
+ exports.UpgradeToAngular8 = UpgradeToAngular8;
70
+ //# sourceMappingURL=upgrade-to-angular-8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-to-angular-8.js","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-8.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA4C;AAC5C,gEAA2F;AAC3F,yFAA+E;AAC/E,mEAA2D;AAC3D,+EAAuE;AACvE,2FAAmF;AACnF,6EAAqE;AACrE,iFAAyE;AAEzE,MAAa,iBAAkB,SAAQ,gBAAM;IAA7C;;QACa,SAAI,GAAG,2CAA2C,CAAC;QACnD,gBAAW,GAAG,sBAAsB,CAAC;QACrC,gBAAW,GAAG,kDAAkD;YACrE,wGAAwG;YACxG,sFAAsF;YACtF,0EAA0E;YAC1E,4CAA4C;YAC5C,wEAAwE;YACxE,qEAAqE,CAAC;IA6B9E,CAAC;IA3BS,UAAU;;YACZ,OAAO;gBACH,uBAAuB;gBACvB,IAAI,8DAA2B,EAAE;gBACjC,IAAI,0CAAkB,CAAC,EAAC,YAAY,EAAE,iBAAiB,EAAC,CAAC;gBACzD,kCAAkC;gBAClC,IAAI,4CAAmB,EAAE;gBACzB,IAAI,wDAAyB,EAAE;gBAC/B,IAAI,8CAAoB,EAAE;gBAC1B,IAAI,0DAA0B,EAAE;gBAChC,sDAAsD;gBACtD,IAAI,6BAAgB,CAAC,EAAC,WAAW,EAAE,aAAa,EAAC,CAAC;gBAClD,wBAAwB;gBACxB,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBAC5E,cAAc;gBACd,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBAC9E,iBAAiB;gBACjB,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBACnF,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBACrF,UAAU;gBACV,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;gBAC3E,aAAa;gBACb,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;gBAC9E,QAAQ;gBACR,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;aAC1E,CAAC;QACN,CAAC;KAAA;CACJ;AAtCD,8CAsCC"}
@@ -0,0 +1,8 @@
1
+ import { Recipe } from "@openrewrite/rewrite";
2
+ export declare class UpgradeToAngular9 extends Recipe {
3
+ readonly name = "org.openrewrite.angular.UpgradeToAngular9";
4
+ readonly displayName = "Upgrade to Angular 9";
5
+ readonly description: string;
6
+ recipeList(): Promise<Recipe[]>;
7
+ }
8
+ //# sourceMappingURL=upgrade-to-angular-9.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-to-angular-9.d.ts","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-9.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAiB5C,qBAAa,iBAAkB,SAAQ,MAAM;IACzC,QAAQ,CAAC,IAAI,+CAA+C;IAC5D,QAAQ,CAAC,WAAW,0BAA0B;IAC9C,QAAQ,CAAC,WAAW,SAOsD;IAEpE,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAiCxC"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.UpgradeToAngular9 = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const upgrade_to_angular_8_1 = require("./upgrade-to-angular-8");
21
+ const remove_static_false_1 = require("./remove-static-false");
22
+ const enable_aot_build_1 = require("./enable-aot-build");
23
+ const update_tsconfig_module_1 = require("./update-tsconfig-module");
24
+ const find_renderer_usage_1 = require("../search/find-renderer-usage");
25
+ const find_render_component_type_usage_1 = require("../search/find-render-component-type-usage");
26
+ const find_root_renderer_usage_1 = require("../search/find-root-renderer-usage");
27
+ const find_hammer_js_usage_1 = require("../search/find-hammer-js-usage");
28
+ const find_load_children_string_usage_1 = require("../search/find-load-children-string-usage");
29
+ const find_undecorated_angular_class_1 = require("../search/find-undecorated-angular-class");
30
+ const find_missing_injectable_1 = require("../search/find-missing-injectable");
31
+ const find_analyze_for_entry_components_usage_1 = require("../search/find-analyze-for-entry-components-usage");
32
+ const replace_testbed_get_with_inject_1 = require("./replace-testbed-get-with-inject");
33
+ const add_module_with_providers_generic_1 = require("./add-module-with-providers-generic");
34
+ class UpgradeToAngular9 extends rewrite_1.Recipe {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.name = "org.openrewrite.angular.UpgradeToAngular9";
38
+ this.displayName = "Upgrade to Angular 9";
39
+ this.description = "Migrates Angular 8.x applications to Angular 9. " +
40
+ "This includes removing the now-default `static: false` from view query decorators, " +
41
+ "replacing `TestBed.get()` with `TestBed.inject()`, " +
42
+ "adding generic type parameters to `ModuleWithProviders`, " +
43
+ "enabling AOT compilation in `angular.json`, " +
44
+ "updating `tsconfig.json` module settings for Ivy, " +
45
+ "flagging removed View Engine APIs (`Renderer`, `RenderComponentType`, `RootRenderer`), " +
46
+ "and upgrading Angular, TypeScript, and related dependency versions.";
47
+ }
48
+ recipeList() {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ return [
51
+ new upgrade_to_angular_8_1.UpgradeToAngular8(),
52
+ // Code transformations
53
+ new remove_static_false_1.RemoveStaticFalse(),
54
+ new enable_aot_build_1.EnableAotBuild(),
55
+ new update_tsconfig_module_1.UpdateTsconfigModule(),
56
+ new replace_testbed_get_with_inject_1.ReplaceTestBedGetWithInject(),
57
+ new add_module_with_providers_generic_1.AddModuleWithProvidersGeneric(),
58
+ // Search: removed/deprecated APIs
59
+ new find_renderer_usage_1.FindRendererUsage(),
60
+ new find_render_component_type_usage_1.FindRenderComponentTypeUsage(),
61
+ new find_root_renderer_usage_1.FindRootRendererUsage(),
62
+ new find_hammer_js_usage_1.FindHammerJsUsage(),
63
+ new find_load_children_string_usage_1.FindLoadChildrenStringUsage(),
64
+ new find_undecorated_angular_class_1.FindUndecoratedAngularClass(),
65
+ new find_missing_injectable_1.FindMissingInjectable(),
66
+ new find_analyze_for_entry_components_usage_1.FindAnalyzeForEntryComponentsUsage(),
67
+ // Angular core packages
68
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@angular/*", newVersion: "9.x" }),
69
+ // Angular CDK
70
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@angular/cdk", newVersion: "9.x" }),
71
+ // Angular DevKit
72
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@angular-devkit/*", newVersion: "9.x" }),
73
+ new javascript_1.UpgradeDependencyVersion({ packageName: "@schematics/angular", newVersion: "9.x" }),
74
+ // zone.js
75
+ new javascript_1.UpgradeDependencyVersion({ packageName: "zone.js", newVersion: "0.10.x" }),
76
+ // TypeScript
77
+ new javascript_1.UpgradeDependencyVersion({ packageName: "typescript", newVersion: "3.8.x" }),
78
+ // tslib
79
+ new javascript_1.UpgradeDependencyVersion({ packageName: "tslib", newVersion: "1.x" }),
80
+ ];
81
+ });
82
+ }
83
+ }
84
+ exports.UpgradeToAngular9 = UpgradeToAngular9;
85
+ //# sourceMappingURL=upgrade-to-angular-9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-to-angular-9.js","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-9.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA4C;AAC5C,gEAAyE;AACzE,iEAAyD;AACzD,+DAAwD;AACxD,yDAAkD;AAClD,qEAA8D;AAC9D,uEAAgE;AAChE,iGAAwF;AACxF,iFAAyE;AACzE,yEAAiE;AACjE,+FAAsF;AACtF,6FAAqF;AACrF,+EAAwE;AACxE,+GAAqG;AACrG,uFAA8E;AAC9E,2FAAkF;AAElF,MAAa,iBAAkB,SAAQ,gBAAM;IAA7C;;QACa,SAAI,GAAG,2CAA2C,CAAC;QACnD,gBAAW,GAAG,sBAAsB,CAAC;QACrC,gBAAW,GAAG,kDAAkD;YACrE,qFAAqF;YACrF,qDAAqD;YACrD,2DAA2D;YAC3D,8CAA8C;YAC9C,oDAAoD;YACpD,yFAAyF;YACzF,qEAAqE,CAAC;IAmC9E,CAAC;IAjCS,UAAU;;YACZ,OAAO;gBACH,IAAI,wCAAiB,EAAE;gBACvB,uBAAuB;gBACvB,IAAI,uCAAiB,EAAE;gBACvB,IAAI,iCAAc,EAAE;gBACpB,IAAI,6CAAoB,EAAE;gBAC1B,IAAI,6DAA2B,EAAE;gBACjC,IAAI,iEAA6B,EAAE;gBACnC,kCAAkC;gBAClC,IAAI,uCAAiB,EAAE;gBACvB,IAAI,+DAA4B,EAAE;gBAClC,IAAI,gDAAqB,EAAE;gBAC3B,IAAI,wCAAiB,EAAE;gBACvB,IAAI,6DAA2B,EAAE;gBACjC,IAAI,4DAA2B,EAAE;gBACjC,IAAI,+CAAqB,EAAE;gBAC3B,IAAI,4EAAkC,EAAE;gBACxC,wBAAwB;gBACxB,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBAC5E,cAAc;gBACd,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBAC9E,iBAAiB;gBACjB,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBACnF,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;gBACrF,UAAU;gBACV,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC;gBAC5E,aAAa;gBACb,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;gBAC9E,QAAQ;gBACR,IAAI,qCAAwB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;aAC1E,CAAC;QACN,CAAC;KAAA;CACJ;AA7CD,8CA6CC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class FindAnalyzeForEntryComponentsUsage extends Recipe {
3
+ readonly name = "org.openrewrite.angular.search.find-analyze-for-entry-components-usage";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=find-analyze-for-entry-components-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-analyze-for-entry-components-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-analyze-for-entry-components-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,kCAAmC,SAAQ,MAAM;IAC1D,QAAQ,CAAC,IAAI,4EAA4E;IACzF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA0D;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CACgE;IAEtF,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA6B9D"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FindAnalyzeForEntryComponentsUsage = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const java_1 = require("@openrewrite/rewrite/java");
21
+ class FindAnalyzeForEntryComponentsUsage extends rewrite_1.Recipe {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.name = "org.openrewrite.angular.search.find-analyze-for-entry-components-usage";
25
+ this.displayName = "Find deprecated `ANALYZE_FOR_ENTRY_COMPONENTS` usage";
26
+ this.description = "Finds usages of the deprecated `ANALYZE_FOR_ENTRY_COMPONENTS` injection token from `@angular/core`. " +
27
+ "`ANALYZE_FOR_ENTRY_COMPONENTS` was deprecated in Angular 9 and removed in Angular 13.";
28
+ }
29
+ editor() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ return new class extends javascript_1.JavaScriptVisitor {
32
+ visitImportDeclaration(jsImport, p) {
33
+ const _super = Object.create(null, {
34
+ visitImportDeclaration: { get: () => super.visitImportDeclaration }
35
+ });
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ var _a;
38
+ const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
39
+ if (!imp.moduleSpecifier)
40
+ return imp;
41
+ const moduleSpec = imp.moduleSpecifier.element;
42
+ if (moduleSpec.kind !== java_1.J.Kind.Literal)
43
+ return imp;
44
+ const moduleName = moduleSpec.value;
45
+ if (moduleName !== '@angular/core')
46
+ return imp;
47
+ const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
48
+ if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
49
+ const named = namedBindings;
50
+ for (const specifier of named.elements.elements) {
51
+ const spec = specifier.element;
52
+ if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'ANALYZE_FOR_ENTRY_COMPONENTS') {
53
+ return (0, rewrite_1.foundSearchResult)(imp, "`ANALYZE_FOR_ENTRY_COMPONENTS` was deprecated in Angular 9 and removed in Angular 13. " +
54
+ "With Ivy, entry components are no longer needed.");
55
+ }
56
+ }
57
+ }
58
+ return imp;
59
+ });
60
+ }
61
+ };
62
+ });
63
+ }
64
+ }
65
+ exports.FindAnalyzeForEntryComponentsUsage = FindAnalyzeForEntryComponentsUsage;
66
+ //# sourceMappingURL=find-analyze-for-entry-components-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-analyze-for-entry-components-usage.js","sourceRoot":"","sources":["../../src/search/find-analyze-for-entry-components-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,kCAAmC,SAAQ,gBAAM;IAA9D;;QACa,SAAI,GAAG,wEAAwE,CAAC;QAChF,gBAAW,GAAW,sDAAsD,CAAC;QAC7E,gBAAW,GAAW,sGAAsG;YACjI,uFAAuF,CAAC;IA+BhG,CAAC;IA7BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAE/C,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,8BAA8B,EAAE,CAAC;oCAC/F,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,wFAAwF;wCACxF,kDAAkD,CAAC,CAAC;gCAC5D,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAnCD,gFAmCC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class FindAngularDecorator extends Recipe {
3
+ readonly name = "org.openrewrite.angular.search.find-angular-decorator";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=find-angular-decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-angular-decorator.d.ts","sourceRoot":"","sources":["../../src/search/find-angular-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,oBAAqB,SAAQ,MAAM;IAC5C,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA6B;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAiF;IAEvG,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAgD9D"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FindAngularDecorator = void 0;
13
+ const rewrite_1 = require("@openrewrite/rewrite");
14
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
15
+ const java_1 = require("@openrewrite/rewrite/java");
16
+ class FindAngularDecorator extends rewrite_1.Recipe {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.name = "org.openrewrite.angular.search.find-angular-decorator";
20
+ this.displayName = "Find Angular decorators";
21
+ this.description = "Finds all Angular decorators like @Component, @Directive, @Injectable, etc.";
22
+ }
23
+ editor() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const angularDecorators = new Set([
26
+ 'Component',
27
+ 'Directive',
28
+ 'Injectable',
29
+ 'NgModule',
30
+ 'Pipe',
31
+ 'Input',
32
+ 'Output',
33
+ 'ViewChild',
34
+ 'ViewChildren',
35
+ 'ContentChild',
36
+ 'ContentChildren',
37
+ 'HostBinding',
38
+ 'HostListener'
39
+ ]);
40
+ return new class extends javascript_1.JavaScriptVisitor {
41
+ visitAnnotation(annotation, p) {
42
+ const _super = Object.create(null, {
43
+ visitAnnotation: { get: () => super.visitAnnotation }
44
+ });
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ let a = yield _super.visitAnnotation.call(this, annotation, p);
47
+ // Check if this is an Angular decorator
48
+ let decoratorName;
49
+ const annotType = a.annotationType;
50
+ if ((0, java_1.isIdentifier)(annotType)) {
51
+ decoratorName = annotType.simpleName;
52
+ }
53
+ else if (annotType.kind === java_1.J.Kind.FieldAccess) {
54
+ const fieldAccess = annotType;
55
+ const nameIdent = fieldAccess.name.element;
56
+ if ((0, java_1.isIdentifier)(nameIdent)) {
57
+ decoratorName = nameIdent.simpleName;
58
+ }
59
+ }
60
+ else if (annotType.kind === javascript_1.JS.Kind.ExpressionWithTypeArguments) {
61
+ const exprWithTypeArgs = annotType;
62
+ if ((0, java_1.isIdentifier)(exprWithTypeArgs.clazz)) {
63
+ decoratorName = exprWithTypeArgs.clazz.simpleName;
64
+ }
65
+ }
66
+ // Mark Angular decorators with SearchResult
67
+ if (decoratorName && angularDecorators.has(decoratorName)) {
68
+ return (0, rewrite_1.foundSearchResult)(a);
69
+ }
70
+ return a;
71
+ });
72
+ }
73
+ }();
74
+ });
75
+ }
76
+ }
77
+ exports.FindAngularDecorator = FindAngularDecorator;
78
+ //# sourceMappingURL=find-angular-decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-angular-decorator.js","sourceRoot":"","sources":["../../src/search/find-angular-decorator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,oBAAqB,SAAQ,gBAAM;IAAhD;;QACa,SAAI,GAAG,uDAAuD,CAAC;QAC/D,gBAAW,GAAW,yBAAyB,CAAC;QAChD,gBAAW,GAAW,6EAA6E,CAAC;IAkDjH,CAAC;IAhDS,MAAM;;YACR,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;gBAC9B,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,UAAU;gBACV,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,WAAW;gBACX,cAAc;gBACd,cAAc;gBACd,iBAAiB;gBACjB,aAAa;gBACb,cAAc;aACjB,CAAC,CAAC;YAEH,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,eAAe,CAAC,UAAwB,EAAE,CAAmB;;;;;wBACxE,IAAI,CAAC,GAAG,MAAM,OAAM,eAAe,YAAC,UAAU,EAAE,CAAC,CAAiB,CAAC;wBAEnE,wCAAwC;wBACxC,IAAI,aAAiC,CAAC;wBACtC,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC;wBACnC,IAAI,IAAA,mBAAY,EAAC,SAAS,CAAC,EAAE,CAAC;4BAC1B,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC;wBACzC,CAAC;6BAAM,IAAI,SAAS,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;4BAC/C,MAAM,WAAW,GAAG,SAA0B,CAAC;4BAC/C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;4BAC3C,IAAI,IAAA,mBAAY,EAAC,SAAS,CAAC,EAAE,CAAC;gCAC1B,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC;4BACzC,CAAC;wBACL,CAAC;6BAAM,IAAI,SAAS,CAAC,IAAI,KAAK,eAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;4BAChE,MAAM,gBAAgB,GAAG,SAA2C,CAAC;4BACrE,IAAI,IAAA,mBAAY,EAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gCACvC,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC;4BACtD,CAAC;wBACL,CAAC;wBAED,4CAA4C;wBAC5C,IAAI,aAAa,IAAI,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;4BACxD,OAAO,IAAA,2BAAiB,EAAC,CAAiB,CAAC,CAAC;wBAChD,CAAC;wBAED,OAAO,CAAC,CAAC;oBACb,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AArDD,oDAqDC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class FindAngularHttpUsage extends Recipe {
3
+ readonly name = "org.openrewrite.angular.search.find-angular-http-usage";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=find-angular-http-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-angular-http-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-angular-http-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,oBAAqB,SAAQ,MAAM;IAC5C,QAAQ,CAAC,IAAI,4DAA4D;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAwC;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CACiD;IAEvE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAkB9D"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FindAngularHttpUsage = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const java_1 = require("@openrewrite/rewrite/java");
21
+ class FindAngularHttpUsage extends rewrite_1.Recipe {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.name = "org.openrewrite.angular.search.find-angular-http-usage";
25
+ this.displayName = "Find removed `@angular/http` usage";
26
+ this.description = "Finds imports from the `@angular/http` module, which was deprecated in Angular 5 and removed in Angular 8. " +
27
+ "Use `@angular/common/http` (`HttpClient`, `HttpClientModule`) instead.";
28
+ }
29
+ editor() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ return new class extends javascript_1.JavaScriptVisitor {
32
+ visitImportDeclaration(jsImport, p) {
33
+ const _super = Object.create(null, {
34
+ visitImportDeclaration: { get: () => super.visitImportDeclaration }
35
+ });
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
38
+ if (!imp.moduleSpecifier)
39
+ return imp;
40
+ const moduleSpec = imp.moduleSpecifier.element;
41
+ if (moduleSpec.kind !== java_1.J.Kind.Literal)
42
+ return imp;
43
+ const moduleName = moduleSpec.value;
44
+ if (moduleName !== '@angular/http')
45
+ return imp;
46
+ return (0, rewrite_1.foundSearchResult)(imp, "`@angular/http` was deprecated in Angular 5 and removed in Angular 8. " +
47
+ "Use `@angular/common/http` (`HttpClient`, `HttpClientModule`) instead.");
48
+ });
49
+ }
50
+ };
51
+ });
52
+ }
53
+ }
54
+ exports.FindAngularHttpUsage = FindAngularHttpUsage;
55
+ //# sourceMappingURL=find-angular-http-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-angular-http-usage.js","sourceRoot":"","sources":["../../src/search/find-angular-http-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA4C;AAE5C,MAAa,oBAAqB,SAAQ,gBAAM;IAAhD;;QACa,SAAI,GAAG,wDAAwD,CAAC;QAChE,gBAAW,GAAW,oCAAoC,CAAC;QAC3D,gBAAW,GAAW,6GAA6G;YACxI,wEAAwE,CAAC;IAoBjF,CAAC;IAlBS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAE/C,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,wEAAwE;4BACxE,wEAAwE,CAAC,CAAC;oBAClF,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAxBD,oDAwBC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class FindAnimationDriverMatchesElement extends Recipe {
3
+ readonly name = "org.openrewrite.angular.search.find-animation-driver-matches-element";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=find-animation-driver-matches-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-animation-driver-matches-element.d.ts","sourceRoot":"","sources":["../../src/search/find-animation-driver-matches-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,iCAAkC,SAAQ,MAAM;IACzD,QAAQ,CAAC,IAAI,0EAA0E;IACvF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAiD;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAyI;IAE/J,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4B9D"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FindAnimationDriverMatchesElement = void 0;
13
+ const rewrite_1 = require("@openrewrite/rewrite");
14
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
15
+ const java_1 = require("@openrewrite/rewrite/java");
16
+ class FindAnimationDriverMatchesElement extends rewrite_1.Recipe {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.name = "org.openrewrite.angular.search.find-animation-driver-matches-element";
20
+ this.displayName = "Find `AnimationDriver.matchesElement` usage";
21
+ this.description = "Finds imports of `AnimationDriver` from `@angular/animations/browser`, which had its `matchesElement` method removed in Angular 18.";
22
+ }
23
+ editor() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ return new class extends javascript_1.JavaScriptVisitor {
26
+ visitImportDeclaration(jsImport, p) {
27
+ const _super = Object.create(null, {
28
+ visitImportDeclaration: { get: () => super.visitImportDeclaration }
29
+ });
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ var _a;
32
+ const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
33
+ if (!imp.moduleSpecifier)
34
+ return imp;
35
+ const moduleSpec = imp.moduleSpecifier.element;
36
+ if (moduleSpec.kind !== java_1.J.Kind.Literal)
37
+ return imp;
38
+ const moduleName = moduleSpec.value;
39
+ if (moduleName !== '@angular/animations/browser')
40
+ return imp;
41
+ const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
42
+ if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
43
+ const named = namedBindings;
44
+ for (const specifier of named.elements.elements) {
45
+ const spec = specifier.element;
46
+ if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'AnimationDriver') {
47
+ return (0, rewrite_1.foundSearchResult)(imp, "AnimationDriver.matchesElement has been removed in Angular 18.");
48
+ }
49
+ }
50
+ }
51
+ return imp;
52
+ });
53
+ }
54
+ };
55
+ });
56
+ }
57
+ }
58
+ exports.FindAnimationDriverMatchesElement = FindAnimationDriverMatchesElement;
59
+ //# sourceMappingURL=find-animation-driver-matches-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-animation-driver-matches-element.js","sourceRoot":"","sources":["../../src/search/find-animation-driver-matches-element.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,iCAAkC,SAAQ,gBAAM;IAA7D;;QACa,SAAI,GAAG,sEAAsE,CAAC;QAC9E,gBAAW,GAAW,6CAA6C,CAAC;QACpE,gBAAW,GAAW,qIAAqI,CAAC;IA8BzK,CAAC;IA5BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,6BAA6B;4BAAE,OAAO,GAAG,CAAC;wBAE7D,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;oCAClF,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,gEAAgE,CAAC,CAAC;gCAC1E,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAjCD,8EAiCC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class FindAsyncTestHelperUsage extends Recipe {
3
+ readonly name = "org.openrewrite.angular.search.find-async-test-helper-usage";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=find-async-test-helper-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-async-test-helper-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-async-test-helper-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,wBAAyB,SAAQ,MAAM;IAChD,QAAQ,CAAC,IAAI,iEAAiE;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+C;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CACwE;IAE9F,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4B9D"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2026 the original author or authors.
4
+ *
5
+ * Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
6
+ */
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FindAsyncTestHelperUsage = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const java_1 = require("@openrewrite/rewrite/java");
21
+ class FindAsyncTestHelperUsage extends rewrite_1.Recipe {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.name = "org.openrewrite.angular.search.find-async-test-helper-usage";
25
+ this.displayName = "Find deprecated `async` test helper usage";
26
+ this.description = "Finds usages of the deprecated `async` test helper from `@angular/core/testing`. " +
27
+ "The `async` function was deprecated in Angular 11 and should be replaced with `waitForAsync`.";
28
+ }
29
+ editor() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ return new class extends javascript_1.JavaScriptVisitor {
32
+ visitImportDeclaration(jsImport, p) {
33
+ const _super = Object.create(null, {
34
+ visitImportDeclaration: { get: () => super.visitImportDeclaration }
35
+ });
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ var _a;
38
+ const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
39
+ if (!imp.moduleSpecifier)
40
+ return imp;
41
+ const moduleSpec = imp.moduleSpecifier.element;
42
+ if (moduleSpec.kind !== java_1.J.Kind.Literal)
43
+ return imp;
44
+ const moduleName = moduleSpec.value;
45
+ if (moduleName !== '@angular/core/testing')
46
+ return imp;
47
+ const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
48
+ if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
49
+ const named = namedBindings;
50
+ for (const specifier of named.elements.elements) {
51
+ const spec = specifier.element;
52
+ if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'async') {
53
+ return (0, rewrite_1.foundSearchResult)(imp, "The `async` test helper is deprecated since Angular 11. Use `waitForAsync` instead.");
54
+ }
55
+ }
56
+ }
57
+ return imp;
58
+ });
59
+ }
60
+ };
61
+ });
62
+ }
63
+ }
64
+ exports.FindAsyncTestHelperUsage = FindAsyncTestHelperUsage;
65
+ //# sourceMappingURL=find-async-test-helper-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-async-test-helper-usage.js","sourceRoot":"","sources":["../../src/search/find-async-test-helper-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,wBAAyB,SAAQ,gBAAM;IAApD;;QACa,SAAI,GAAG,6DAA6D,CAAC;QACrE,gBAAW,GAAW,2CAA2C,CAAC;QAClE,gBAAW,GAAW,mFAAmF;YAC9G,+FAA+F,CAAC;IA8BxG,CAAC;IA5BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,uBAAuB;4BAAE,OAAO,GAAG,CAAC;wBAEvD,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oCACxE,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,qFAAqF,CAAC,CAAC;gCAC/F,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAlCD,4DAkCC"}