@openrewrite/recipes-angular 0.0.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveBrowserModuleWithServerTransition extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-browser-module-with-server-transition";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-browser-module-with-server-transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-browser-module-with-server-transition.d.ts","sourceRoot":"","sources":["../../src/migration/remove-browser-module-with-server-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAM3E,qBAAa,uCAAwC,SAAQ,MAAM;IAC/D,QAAQ,CAAC,IAAI,oFAAoF;IACjG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAiD;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAkO;IAExP,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA0G9D"}
@@ -0,0 +1,173 @@
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.RemoveBrowserModuleWithServerTransition = void 0;
13
+ const rewrite_1 = require("@openrewrite/rewrite");
14
+ const rewrite_2 = require("@openrewrite/rewrite");
15
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
16
+ const java_1 = require("@openrewrite/rewrite/java");
17
+ class RemoveBrowserModuleWithServerTransition extends rewrite_1.Recipe {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.name = "org.openrewrite.angular.migration.remove-browser-module-with-server-transition";
21
+ this.displayName = "Remove `BrowserModule.withServerTransition`";
22
+ this.description = "Replaces `BrowserModule.withServerTransition({ appId: '...' })` with `BrowserModule` and adds `{ provide: APP_ID, useValue: '...' }` to the NgModule providers. The `withServerTransition` method was removed in Angular 19.";
23
+ }
24
+ editor() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ return new class extends javascript_1.JavaScriptVisitor {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.appIdValue = null;
30
+ }
31
+ visitMethodInvocation(method, p) {
32
+ const _super = Object.create(null, {
33
+ visitMethodInvocation: { get: () => super.visitMethodInvocation }
34
+ });
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ var _a;
37
+ const m = yield _super.visitMethodInvocation.call(this, method, p);
38
+ if (!(yield (0, javascript_1.pattern) `BrowserModule.withServerTransition(${(0, javascript_1.capture)({ variadic: true })})`.match(m, this.cursor)))
39
+ return m;
40
+ const selectElem = ((_a = m.select) === null || _a === void 0 ? void 0 : _a.element) || m.select;
41
+ this.appIdValue = extractAppId(m);
42
+ if (!this.appIdValue)
43
+ return m;
44
+ return Object.assign(Object.assign({}, selectElem), { prefix: m.prefix });
45
+ });
46
+ }
47
+ visitAnnotation(annotation, p) {
48
+ const _super = Object.create(null, {
49
+ visitAnnotation: { get: () => super.visitAnnotation }
50
+ });
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ var _a, _b;
53
+ this.appIdValue = null;
54
+ let a = yield _super.visitAnnotation.call(this, annotation, p);
55
+ if (!a)
56
+ return a;
57
+ if (!this.appIdValue)
58
+ return a;
59
+ const annotType = a.annotationType;
60
+ if (!(0, java_1.isIdentifier)(annotType))
61
+ return a;
62
+ if (annotType.simpleName !== 'NgModule')
63
+ return a;
64
+ if (!((_b = (_a = a.arguments) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.length))
65
+ return a;
66
+ const firstArg = a.arguments.elements[0].element;
67
+ if (firstArg.kind !== java_1.J.Kind.NewClass)
68
+ return a;
69
+ const newClass = firstArg;
70
+ if (!newClass.body)
71
+ return a;
72
+ const appIdValue = this.appIdValue;
73
+ (0, javascript_1.maybeAddImport)(this, { module: '@angular/core', member: 'APP_ID', onlyIfReferenced: false });
74
+ let providersIndex = -1;
75
+ for (let i = 0; i < newClass.body.statements.length; i++) {
76
+ const stmt = newClass.body.statements[i].element;
77
+ if (stmt.kind !== javascript_1.JS.Kind.PropertyAssignment)
78
+ continue;
79
+ const prop = stmt;
80
+ const nameExpr = prop.name.element;
81
+ if ((0, java_1.isIdentifier)(nameExpr) && nameExpr.simpleName === 'providers') {
82
+ providersIndex = i;
83
+ break;
84
+ }
85
+ }
86
+ const providerArray = yield javascript_1.Template.builder()
87
+ .code(`[{ provide: APP_ID, useValue: '${appIdValue}' }]`)
88
+ .build()
89
+ .apply(a, this.cursor);
90
+ const providerRp = providerArray.initializer.elements[0];
91
+ const existingStmts = newClass.body.statements;
92
+ const newStatements = [...existingStmts];
93
+ if (providersIndex !== -1) {
94
+ const providersStmt = newStatements[providersIndex].element;
95
+ const provArray = providersStmt.initializer;
96
+ const provContainer = provArray.initializer;
97
+ const spacedProviderRp = addObjectSpacing(providerRp);
98
+ newStatements[providersIndex] = Object.assign(Object.assign({}, newStatements[providersIndex]), { element: Object.assign(Object.assign({}, providersStmt), { initializer: Object.assign(Object.assign({}, provArray), { initializer: Object.assign(Object.assign({}, provContainer), { elements: [...provContainer.elements, spacedProviderRp] }) }) }) });
99
+ }
100
+ else {
101
+ const refProp = existingStmts[0].element;
102
+ const spacedProvider = addObjectSpacing(providerRp);
103
+ const newArray = Object.assign(Object.assign({}, providerArray), { prefix: java_1.singleSpace, initializer: Object.assign(Object.assign({}, providerArray.initializer), { elements: [spacedProvider] }) });
104
+ newStatements.push({
105
+ kind: java_1.J.Kind.RightPadded,
106
+ element: buildProvidersProperty(newArray, refProp.prefix),
107
+ after: java_1.emptySpace,
108
+ markers: rewrite_2.emptyMarkers,
109
+ });
110
+ }
111
+ const newBody = Object.assign(Object.assign({}, newClass.body), { statements: newStatements });
112
+ const newNewClass = Object.assign(Object.assign({}, newClass), { body: newBody });
113
+ return Object.assign(Object.assign({}, a), { arguments: Object.assign(Object.assign({}, a.arguments), { elements: [Object.assign(Object.assign({}, a.arguments.elements[0]), { element: newNewClass })] }) });
114
+ });
115
+ }
116
+ }();
117
+ });
118
+ }
119
+ }
120
+ exports.RemoveBrowserModuleWithServerTransition = RemoveBrowserModuleWithServerTransition;
121
+ function extractAppId(methodInv) {
122
+ var _a;
123
+ const args = (_a = methodInv.arguments) === null || _a === void 0 ? void 0 : _a.elements;
124
+ if (!(args === null || args === void 0 ? void 0 : args.length))
125
+ return null;
126
+ const firstArg = args[0].element;
127
+ if (firstArg.kind !== java_1.J.Kind.NewClass)
128
+ return null;
129
+ const argObj = firstArg;
130
+ if (!argObj.body)
131
+ return null;
132
+ for (const stmt of argObj.body.statements) {
133
+ if (stmt.element.kind === javascript_1.JS.Kind.PropertyAssignment) {
134
+ const prop = stmt.element;
135
+ const nameExpr = prop.name.element;
136
+ if ((0, java_1.isIdentifier)(nameExpr) && nameExpr.simpleName === 'appId' &&
137
+ prop.initializer && (0, java_1.isLiteral)(prop.initializer)) {
138
+ return prop.initializer.value;
139
+ }
140
+ }
141
+ }
142
+ return null;
143
+ }
144
+ function addObjectSpacing(rp) {
145
+ const obj = rp.element;
146
+ if (!obj.body)
147
+ return rp;
148
+ return Object.assign(Object.assign({}, rp), { element: Object.assign(Object.assign({}, obj), { prefix: java_1.singleSpace, body: Object.assign(Object.assign({}, obj.body), { end: java_1.singleSpace, statements: obj.body.statements.map((s) => (Object.assign(Object.assign({}, s), { element: Object.assign(Object.assign({}, s.element), { prefix: java_1.singleSpace }) }))) }) }) });
149
+ }
150
+ function buildProvidersProperty(providerArray, propPrefix) {
151
+ return {
152
+ kind: javascript_1.JS.Kind.PropertyAssignment,
153
+ id: (0, rewrite_2.randomId)(),
154
+ markers: rewrite_2.emptyMarkers,
155
+ prefix: propPrefix,
156
+ name: {
157
+ kind: java_1.J.Kind.RightPadded,
158
+ element: {
159
+ kind: java_1.J.Kind.Identifier,
160
+ id: (0, rewrite_2.randomId)(),
161
+ markers: rewrite_2.emptyMarkers,
162
+ prefix: java_1.emptySpace,
163
+ annotations: [],
164
+ simpleName: 'providers',
165
+ },
166
+ after: java_1.emptySpace,
167
+ markers: rewrite_2.emptyMarkers,
168
+ },
169
+ assigmentToken: "Colon",
170
+ initializer: providerArray,
171
+ };
172
+ }
173
+ //# sourceMappingURL=remove-browser-module-with-server-transition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-browser-module-with-server-transition.js","sourceRoot":"","sources":["../../src/migration/remove-browser-module-with-server-transition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveComponentFactoryResolver extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-component-factory-resolver";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-component-factory-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-component-factory-resolver.d.ts","sourceRoot":"","sources":["../../src/migration/remove-component-factory-resolver.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,8BAA+B,SAAQ,MAAM;IACtD,QAAQ,CAAC,IAAI,yEAAyE;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAuC;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEmG;IAEzH,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA6B9D"}
@@ -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.RemoveComponentFactoryResolver = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ const mutative_1 = require("mutative");
21
+ class RemoveComponentFactoryResolver extends rewrite_1.Recipe {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.name = "org.openrewrite.angular.migration.remove-component-factory-resolver";
25
+ this.displayName = "Remove `ComponentFactoryResolver`";
26
+ this.description = "Replaces `resolver.resolveComponentFactory(Component)` with just `Component` " +
27
+ "and removes the `ComponentFactoryResolver` import. Since Ivy, `ViewContainerRef.createComponent` " +
28
+ "accepts the component class directly. `ComponentFactoryResolver` was deprecated in Angular 13 and removed in Angular 16.";
29
+ }
30
+ editor() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return new class extends javascript_1.JavaScriptVisitor {
33
+ visitMethodInvocation(method, p) {
34
+ const _super = Object.create(null, {
35
+ visitMethodInvocation: { get: () => super.visitMethodInvocation }
36
+ });
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ var _a, _b;
39
+ const m = yield _super.visitMethodInvocation.call(this, method, p);
40
+ if (m.name.simpleName !== 'resolveComponentFactory')
41
+ return m;
42
+ if (!((_b = (_a = m.arguments) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.length))
43
+ return m;
44
+ const componentArg = m.arguments.elements[0].element;
45
+ (0, javascript_1.maybeRemoveImport)(this, '@angular/core', 'ComponentFactoryResolver');
46
+ return (0, mutative_1.create)(componentArg, draft => {
47
+ draft.prefix = m.prefix;
48
+ });
49
+ });
50
+ }
51
+ visitIdentifier(identifier, p) {
52
+ const _super = Object.create(null, {
53
+ visitIdentifier: { get: () => super.visitIdentifier }
54
+ });
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ let id = yield _super.visitIdentifier.call(this, identifier, p);
57
+ if (!id)
58
+ return id;
59
+ if (id.simpleName === 'ComponentFactoryResolver') {
60
+ (0, javascript_1.maybeRemoveImport)(this, '@angular/core', 'ComponentFactoryResolver');
61
+ }
62
+ return id;
63
+ });
64
+ }
65
+ }();
66
+ });
67
+ }
68
+ }
69
+ exports.RemoveComponentFactoryResolver = RemoveComponentFactoryResolver;
70
+ //# sourceMappingURL=remove-component-factory-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-component-factory-resolver.js","sourceRoot":"","sources":["../../src/migration/remove-component-factory-resolver.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAqF;AAErF,uCAAgC;AAEhC,MAAa,8BAA+B,SAAQ,gBAAM;IAA1D;;QACa,SAAI,GAAG,qEAAqE,CAAC;QAC7E,gBAAW,GAAW,mCAAmC,CAAC;QAC1D,gBAAW,GAAW,+EAA+E;YAC1G,mGAAmG;YACnG,0HAA0H,CAAC;IA+BnI,CAAC;IA7BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,qBAAqB,CAAC,MAA0B,EAAE,CAAmB;;;;;;wBACjF,MAAM,CAAC,GAAG,MAAM,OAAM,qBAAqB,YAAC,MAAM,EAAE,CAAC,CAAuB,CAAC;wBAE7E,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,yBAAyB;4BAAE,OAAO,CAAC,CAAC;wBAC9D,IAAI,CAAC,CAAA,MAAA,MAAA,CAAC,CAAC,SAAS,0CAAE,QAAQ,0CAAE,MAAM,CAAA;4BAAE,OAAO,CAAC,CAAC;wBAE7C,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAErD,IAAA,8BAAiB,EAAC,IAAI,EAAE,eAAe,EAAE,0BAA0B,CAAC,CAAC;wBAErE,OAAO,IAAA,iBAAM,EAAC,YAAY,EAAE,KAAK,CAAC,EAAE;4BAChC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;wBAC5B,CAAC,CAAM,CAAC;oBACZ,CAAC;iBAAA;gBAEc,eAAe,CAAC,UAAwB,EAAE,CAAmB;;;;;wBACxE,IAAI,EAAE,GAAG,MAAM,OAAM,eAAe,YAAC,UAAU,EAAE,CAAC,CAAiB,CAAC;wBACpE,IAAI,CAAC,EAAE;4BAAE,OAAO,EAAE,CAAC;wBAEnB,IAAI,EAAE,CAAC,UAAU,KAAK,0BAA0B,EAAE,CAAC;4BAC/C,IAAA,8BAAiB,EAAC,IAAI,EAAE,eAAe,EAAE,0BAA0B,CAAC,CAAC;wBACzE,CAAC;wBAED,OAAO,EAAE,CAAC;oBACd,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AApCD,wEAoCC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveDefaultProject extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-default-project";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-default-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-default-project.d.ts","sourceRoot":"","sources":["../../src/migration/remove-default-project.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,oBAAqB,SAAQ,MAAM;IAC5C,QAAQ,CAAC,IAAI,8DAA8D;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAiD;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC8F;IAEpH,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAoC9D"}
@@ -0,0 +1,59 @@
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.RemoveDefaultProject = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const json_1 = require("@openrewrite/rewrite/json");
20
+ class RemoveDefaultProject extends rewrite_1.Recipe {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.name = "org.openrewrite.angular.migration.remove-default-project";
24
+ this.displayName = "Remove `defaultProject` from `angular.json`";
25
+ this.description = "Removes the deprecated `defaultProject` property from `angular.json`. " +
26
+ "The `defaultProject` option was deprecated in Angular 13 and the CLI infers the default project from the workspace.";
27
+ }
28
+ editor() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ return new class extends json_1.JsonVisitor {
31
+ visitDocument(doc, p) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ if (!doc.sourcePath.endsWith('angular.json'))
34
+ return doc;
35
+ if (!(0, json_1.isObject)(doc.value))
36
+ return doc;
37
+ const obj = doc.value;
38
+ const filtered = obj.members.filter(rp => {
39
+ return (0, json_1.getMemberKeyName)(rp.element) !== 'defaultProject';
40
+ });
41
+ if (filtered.length === obj.members.length)
42
+ return doc;
43
+ const values = [...filtered];
44
+ if (values.length > 0 && obj.members.length > 0) {
45
+ const originalFirstPrefix = obj.members[0].element.prefix;
46
+ const newFirst = values[0];
47
+ if (newFirst.element.prefix !== originalFirstPrefix) {
48
+ values[0] = Object.assign(Object.assign({}, newFirst), { element: Object.assign(Object.assign({}, newFirst.element), { prefix: originalFirstPrefix }) });
49
+ }
50
+ }
51
+ return Object.assign(Object.assign({}, doc), { value: Object.assign(Object.assign({}, obj), { members: values }) });
52
+ });
53
+ }
54
+ }();
55
+ });
56
+ }
57
+ }
58
+ exports.RemoveDefaultProject = RemoveDefaultProject;
59
+ //# sourceMappingURL=remove-default-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-default-project.js","sourceRoot":"","sources":["../../src/migration/remove-default-project.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,oDAAwF;AAExF,MAAa,oBAAqB,SAAQ,gBAAM;IAAhD;;QACa,SAAI,GAAG,0DAA0D,CAAC;QAClE,gBAAW,GAAW,6CAA6C,CAAC;QACpE,gBAAW,GAAW,wEAAwE;YACnG,qHAAqH,CAAC;IAsC9H,CAAC;IApCS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,kBAA6B;gBAClC,aAAa,CAAC,GAAkB,EAAE,CAAmB;;wBACjE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;4BAAE,OAAO,GAAG,CAAC;wBAEzD,IAAI,CAAC,IAAA,eAAQ,EAAC,GAAG,CAAC,KAAK,CAAC;4BAAE,OAAO,GAAG,CAAC;wBACrC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAoB,CAAC;wBAErC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;4BACrC,OAAO,IAAA,uBAAgB,EAAC,EAAE,CAAC,OAAsB,CAAC,KAAK,gBAAgB,CAAC;wBAC5E,CAAC,CAAC,CAAC;wBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM;4BAAE,OAAO,GAAG,CAAC;wBAEvD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;wBAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC9C,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;4BAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gCAClD,MAAM,CAAC,CAAC,CAAC,mCACF,QAAQ,KACX,OAAO,kCAAM,QAAQ,CAAC,OAAO,KAAE,MAAM,EAAE,mBAAmB,MAC7D,CAAC;4BACN,CAAC;wBACL,CAAC;wBAED,OAAO,gCACA,GAAG,KACN,KAAK,EAAE,gCACA,GAAG,KACN,OAAO,EAAE,MAAM,GACH,GACF,CAAC;oBACvB,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AA1CD,oDA0CC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveEmptyNgOnInit extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-empty-ng-on-init";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-empty-ng-on-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-empty-ng-on-init.d.ts","sourceRoot":"","sources":["../../src/migration/remove-empty-ng-on-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,mBAAoB,SAAQ,MAAM;IAC3C,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA6C;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAmG;IAEzH,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAqE9D"}
@@ -0,0 +1,98 @@
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.RemoveEmptyNgOnInit = 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
+ const mutative_1 = require("mutative");
17
+ class RemoveEmptyNgOnInit extends rewrite_1.Recipe {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.name = "org.openrewrite.angular.migration.remove-empty-ng-on-init";
21
+ this.displayName = "Remove empty `ngOnInit` lifecycle hooks";
22
+ this.description = "Removes empty `ngOnInit` lifecycle hook methods and OnInit interface from Angular components.";
23
+ }
24
+ editor() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ return new class extends javascript_1.JavaScriptVisitor {
27
+ visitClassDeclaration(classDecl, p) {
28
+ const _super = Object.create(null, {
29
+ visitClassDeclaration: { get: () => super.visitClassDeclaration }
30
+ });
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ let c = yield _super.visitClassDeclaration.call(this, classDecl, p);
33
+ if (!c) {
34
+ return c;
35
+ }
36
+ // Check if class has an empty ngOnInit method
37
+ const hasEmptyNgOnInit = c.body.statements.some(stmtPadded => {
38
+ const stmt = stmtPadded.element;
39
+ if (!(0, java_1.isMethodDeclaration)(stmt))
40
+ return false;
41
+ if (!(0, java_1.isIdentifier)(stmt.name) || stmt.name.simpleName !== 'ngOnInit')
42
+ return false;
43
+ return stmt.body && stmt.body.statements.length === 0;
44
+ });
45
+ if (!hasEmptyNgOnInit) {
46
+ return c;
47
+ }
48
+ // Remove the empty ngOnInit method
49
+ c = (0, mutative_1.create)(c, draft => {
50
+ draft.body.statements = draft.body.statements.filter(stmtPadded => {
51
+ const stmt = stmtPadded.element;
52
+ if (!(0, java_1.isMethodDeclaration)(stmt))
53
+ return false;
54
+ if (!(0, java_1.isIdentifier)(stmt.name) || stmt.name.simpleName !== 'ngOnInit')
55
+ return true;
56
+ // Keep non-empty ngOnInit
57
+ return !(stmt.body && stmt.body.statements.length === 0);
58
+ });
59
+ });
60
+ // Check if class implements OnInit
61
+ if (c.implements) {
62
+ const implementsOnInit = c.implements.elements.some(typeTreePadded => {
63
+ const typeTree = typeTreePadded.element;
64
+ if ((0, java_1.isIdentifier)(typeTree)) {
65
+ return typeTree.simpleName === 'OnInit';
66
+ }
67
+ return false;
68
+ });
69
+ if (implementsOnInit) {
70
+ // Remove OnInit from implements clause
71
+ c = (0, mutative_1.create)(c, draft => {
72
+ if (draft.implements) {
73
+ draft.implements.elements = draft.implements.elements.filter(typeTreePadded => {
74
+ const typeTree = typeTreePadded.element;
75
+ if ((0, java_1.isIdentifier)(typeTree)) {
76
+ return typeTree.simpleName !== 'OnInit';
77
+ }
78
+ return true;
79
+ });
80
+ // If no implements left, set to undefined
81
+ if (draft.implements.elements.length === 0) {
82
+ draft.implements = undefined;
83
+ }
84
+ }
85
+ });
86
+ // Remove OnInit import if no longer used
87
+ (0, javascript_1.maybeRemoveImport)(this, "@angular/core", "OnInit");
88
+ }
89
+ }
90
+ return c;
91
+ });
92
+ }
93
+ }();
94
+ });
95
+ }
96
+ }
97
+ exports.RemoveEmptyNgOnInit = RemoveEmptyNgOnInit;
98
+ //# sourceMappingURL=remove-empty-ng-on-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-empty-ng-on-init.js","sourceRoot":"","sources":["../../src/migration/remove-empty-ng-on-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveEnableIvy extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-enable-ivy";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-enable-ivy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-enable-ivy.d.ts","sourceRoot":"","sources":["../../src/migration/remove-enable-ivy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,eAAgB,SAAQ,MAAM;IACvC,QAAQ,CAAC,IAAI,yDAAyD;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAwC;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CACuE;IAE7F,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA+C9D"}
@@ -0,0 +1,78 @@
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.RemoveEnableIvy = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const json_1 = require("@openrewrite/rewrite/json");
20
+ class RemoveEnableIvy extends rewrite_1.Recipe {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.name = "org.openrewrite.angular.migration.remove-enable-ivy";
24
+ this.displayName = "Remove `enableIvy` compiler option";
25
+ this.description = "Removes the `enableIvy` option from `angularCompilerOptions` in `tsconfig.json`. " +
26
+ "Ivy is the only rendering engine since Angular 12, and the option was removed in Angular 15.";
27
+ }
28
+ editor() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ return new class extends json_1.JsonVisitor {
31
+ visitDocument(doc, p) {
32
+ const _super = Object.create(null, {
33
+ visitDocument: { get: () => super.visitDocument }
34
+ });
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ if (!doc.sourcePath.endsWith('tsconfig.json') &&
37
+ !doc.sourcePath.endsWith('tsconfig.app.json') &&
38
+ !doc.sourcePath.endsWith('tsconfig.lib.json')) {
39
+ return doc;
40
+ }
41
+ return _super.visitDocument.call(this, doc, p);
42
+ });
43
+ }
44
+ visitMember(member, p) {
45
+ const _super = Object.create(null, {
46
+ visitMember: { get: () => super.visitMember }
47
+ });
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const m = yield _super.visitMember.call(this, member, p);
50
+ if (!m)
51
+ return m;
52
+ if ((0, json_1.getMemberKeyName)(m) !== 'angularCompilerOptions')
53
+ return m;
54
+ if (!(0, json_1.isObject)(m.value))
55
+ return m;
56
+ const obj = m.value;
57
+ const filtered = obj.members.filter(rp => {
58
+ return (0, json_1.getMemberKeyName)(rp.element) !== 'enableIvy';
59
+ });
60
+ if (filtered.length === obj.members.length)
61
+ return m;
62
+ const values = [...filtered];
63
+ if (values.length > 0 && obj.members.length > 0) {
64
+ const originalFirstPrefix = obj.members[0].element.prefix;
65
+ const newFirst = values[0];
66
+ if (newFirst.element.prefix !== originalFirstPrefix) {
67
+ values[0] = Object.assign(Object.assign({}, newFirst), { element: Object.assign(Object.assign({}, newFirst.element), { prefix: originalFirstPrefix }) });
68
+ }
69
+ }
70
+ return Object.assign(Object.assign({}, m), { value: Object.assign(Object.assign({}, obj), { members: values }) });
71
+ });
72
+ }
73
+ }();
74
+ });
75
+ }
76
+ }
77
+ exports.RemoveEnableIvy = RemoveEnableIvy;
78
+ //# sourceMappingURL=remove-enable-ivy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-enable-ivy.js","sourceRoot":"","sources":["../../src/migration/remove-enable-ivy.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,oDAAwF;AAExF,MAAa,eAAgB,SAAQ,gBAAM;IAA3C;;QACa,SAAI,GAAG,qDAAqD,CAAC;QAC7D,gBAAW,GAAW,oCAAoC,CAAC;QAC3D,gBAAW,GAAW,mFAAmF;YAC9G,8FAA8F,CAAC;IAiDvG,CAAC;IA/CS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,kBAA6B;gBAClC,aAAa,CAAC,GAAkB,EAAE,CAAmB;;;;;wBACjE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;4BACzC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC;4BAC7C,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;4BAChD,OAAO,GAAG,CAAC;wBACf,CAAC;wBACD,OAAO,OAAM,aAAa,YAAC,GAAG,EAAE,CAAC,EAAE;oBACvC,CAAC;iBAAA;gBAEe,WAAW,CAAC,MAAmB,EAAE,CAAmB;;;;;wBAChE,MAAM,CAAC,GAAG,MAAM,OAAM,WAAW,YAAC,MAAM,EAAE,CAAC,CAAgB,CAAC;wBAC5D,IAAI,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAEjB,IAAI,IAAA,uBAAgB,EAAC,CAAC,CAAC,KAAK,wBAAwB;4BAAE,OAAO,CAAC,CAAC;wBAC/D,IAAI,CAAC,IAAA,eAAQ,EAAC,CAAC,CAAC,KAAK,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAEjC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAoB,CAAC;wBACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;4BACrC,OAAO,IAAA,uBAAgB,EAAC,EAAE,CAAC,OAAsB,CAAC,KAAK,WAAW,CAAC;wBACvE,CAAC,CAAC,CAAC;wBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM;4BAAE,OAAO,CAAC,CAAC;wBAErD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;wBAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC9C,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;4BAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gCAClD,MAAM,CAAC,CAAC,CAAC,mCACF,QAAQ,KACX,OAAO,kCAAM,QAAQ,CAAC,OAAO,KAAE,MAAM,EAAE,mBAAmB,MAC7D,CAAC;4BACN,CAAC;wBACL,CAAC;wBAED,OAAO,gCACA,CAAC,KACJ,KAAK,EAAE,gCACA,GAAG,KACN,OAAO,EAAE,MAAM,GACH,GACJ,CAAC;oBACrB,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AArDD,0CAqDC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveEntryComponents extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-entry-components";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-entry-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-entry-components.d.ts","sourceRoot":"","sources":["../../src/migration/remove-entry-components.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAO3E,qBAAa,qBAAsB,SAAQ,MAAM;IAC7C,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA8B;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEgD;IAEtE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAsD9D"}