@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,101 @@
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.RemoveEntryComponents = 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
+ const mutative_1 = require("mutative");
22
+ const DECORATORS_WITH_ENTRY_COMPONENTS = ['NgModule', 'Component'];
23
+ class RemoveEntryComponents extends rewrite_1.Recipe {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.name = "org.openrewrite.angular.migration.remove-entry-components";
27
+ this.displayName = "Remove `entryComponents`";
28
+ this.description = "Removes the `entryComponents` property from `@NgModule` and `@Component` decorators, " +
29
+ "and removes the `ANALYZE_FOR_ENTRY_COMPONENTS` import. " +
30
+ "These were removed in Angular 16 as they served no purpose since Ivy.";
31
+ }
32
+ editor() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return new class extends javascript_1.JavaScriptVisitor {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.removedEntryComponents = false;
38
+ }
39
+ visitAnnotation(annotation, p) {
40
+ const _super = Object.create(null, {
41
+ visitAnnotation: { get: () => super.visitAnnotation }
42
+ });
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ var _a, _b;
45
+ let a = yield _super.visitAnnotation.call(this, annotation, p);
46
+ if (!a)
47
+ return a;
48
+ const annotType = a.annotationType;
49
+ if (!(0, java_1.isIdentifier)(annotType))
50
+ return a;
51
+ if (!DECORATORS_WITH_ENTRY_COMPONENTS.includes(annotType.simpleName))
52
+ return a;
53
+ if (!((_b = (_a = a.arguments) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.length))
54
+ return a;
55
+ const firstArg = a.arguments.elements[0].element;
56
+ if (firstArg.kind !== java_1.J.Kind.NewClass)
57
+ return a;
58
+ const newClass = firstArg;
59
+ if (!newClass.body)
60
+ return a;
61
+ let entryComponentsIndex = -1;
62
+ for (let i = 0; i < newClass.body.statements.length; i++) {
63
+ const stmt = newClass.body.statements[i].element;
64
+ if (stmt.kind === javascript_1.JS.Kind.PropertyAssignment) {
65
+ const prop = stmt;
66
+ const nameExpr = prop.name.element;
67
+ if ((0, java_1.isIdentifier)(nameExpr) && nameExpr.simpleName === 'entryComponents') {
68
+ entryComponentsIndex = i;
69
+ break;
70
+ }
71
+ }
72
+ }
73
+ if (entryComponentsIndex === -1)
74
+ return a;
75
+ this.removedEntryComponents = true;
76
+ return (0, mutative_1.create)(a, draft => {
77
+ const body = draft.arguments.elements[0].element.body;
78
+ body.statements = body.statements.filter((_, i) => i !== entryComponentsIndex);
79
+ });
80
+ });
81
+ }
82
+ visitIdentifier(identifier, p) {
83
+ const _super = Object.create(null, {
84
+ visitIdentifier: { get: () => super.visitIdentifier }
85
+ });
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ let id = yield _super.visitIdentifier.call(this, identifier, p);
88
+ if (!id)
89
+ return id;
90
+ if (id.simpleName === 'ANALYZE_FOR_ENTRY_COMPONENTS') {
91
+ (0, javascript_1.maybeRemoveImport)(this, '@angular/core', 'ANALYZE_FOR_ENTRY_COMPONENTS');
92
+ }
93
+ return id;
94
+ });
95
+ }
96
+ }();
97
+ });
98
+ }
99
+ }
100
+ exports.RemoveEntryComponents = RemoveEntryComponents;
101
+ //# sourceMappingURL=remove-entry-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-entry-components.js","sourceRoot":"","sources":["../../src/migration/remove-entry-components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveEs5BrowserSupport extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-es5-browser-support";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-es5-browser-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-es5-browser-support.d.ts","sourceRoot":"","sources":["../../src/migration/remove-es5-browser-support.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,uBAAwB,SAAQ,MAAM;IAC/C,QAAQ,CAAC,IAAI,kEAAkE;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAoD;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEkG;IAExH,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA0C9D"}
@@ -0,0 +1,74 @@
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.RemoveEs5BrowserSupport = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const json_1 = require("@openrewrite/rewrite/json");
20
+ class RemoveEs5BrowserSupport extends rewrite_1.Recipe {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.name = "org.openrewrite.angular.migration.remove-es5-browser-support";
24
+ this.displayName = "Remove `es5BrowserSupport` from `angular.json`";
25
+ this.description = "Removes the deprecated `es5BrowserSupport` option from `angular.json`. " +
26
+ "`es5BrowserSupport` was deprecated in Angular 7.3 and removed in Angular 10. " +
27
+ "Differential loading is now handled automatically by the Angular CLI based on the project's browserslist configuration.";
28
+ }
29
+ editor() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ return new class extends json_1.JsonVisitor {
32
+ visitDocument(doc, p) {
33
+ const _super = Object.create(null, {
34
+ visitDocument: { get: () => super.visitDocument }
35
+ });
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (!doc.sourcePath.endsWith('angular.json'))
38
+ return doc;
39
+ return _super.visitDocument.call(this, doc, p);
40
+ });
41
+ }
42
+ visitMember(member, p) {
43
+ const _super = Object.create(null, {
44
+ visitMember: { get: () => super.visitMember }
45
+ });
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const m = yield _super.visitMember.call(this, member, p);
48
+ if (!m)
49
+ return m;
50
+ if (!(0, json_1.isObject)(m.value))
51
+ return m;
52
+ const obj = m.value;
53
+ const filtered = obj.members.filter(rp => {
54
+ return (0, json_1.getMemberKeyName)(rp.element) !== 'es5BrowserSupport';
55
+ });
56
+ if (filtered.length === obj.members.length)
57
+ return m;
58
+ const values = [...filtered];
59
+ if (values.length > 0 && obj.members.length > 0) {
60
+ const originalFirstPrefix = obj.members[0].element.prefix;
61
+ const newFirst = values[0];
62
+ if (newFirst.element.prefix !== originalFirstPrefix) {
63
+ values[0] = Object.assign(Object.assign({}, newFirst), { element: Object.assign(Object.assign({}, newFirst.element), { prefix: originalFirstPrefix }) });
64
+ }
65
+ }
66
+ return Object.assign(Object.assign({}, m), { value: Object.assign(Object.assign({}, obj), { members: values }) });
67
+ });
68
+ }
69
+ }();
70
+ });
71
+ }
72
+ }
73
+ exports.RemoveEs5BrowserSupport = RemoveEs5BrowserSupport;
74
+ //# sourceMappingURL=remove-es5-browser-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-es5-browser-support.js","sourceRoot":"","sources":["../../src/migration/remove-es5-browser-support.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,oDAAwF;AAExF,MAAa,uBAAwB,SAAQ,gBAAM;IAAnD;;QACa,SAAI,GAAG,8DAA8D,CAAC;QACtE,gBAAW,GAAW,gDAAgD,CAAC;QACvE,gBAAW,GAAW,yEAAyE;YACpG,+EAA+E;YAC/E,yHAAyH,CAAC;IA4ClI,CAAC;IA1CS,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;wBACzD,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,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,mBAAmB,CAAC;wBAC/E,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;AAjDD,0DAiDC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveExtractCss extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-extract-css";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-extract-css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-extract-css.d.ts","sourceRoot":"","sources":["../../src/migration/remove-extract-css.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,gBAAiB,SAAQ,MAAM;IACxC,QAAQ,CAAC,IAAI,0DAA0D;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA6C;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CACyF;IAE/G,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4C9D"}
@@ -0,0 +1,76 @@
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.RemoveExtractCss = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const json_1 = require("@openrewrite/rewrite/json");
20
+ class RemoveExtractCss extends rewrite_1.Recipe {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.name = "org.openrewrite.angular.migration.remove-extract-css";
24
+ this.displayName = "Remove `extractCss` from `angular.json`";
25
+ this.description = "Removes the deprecated `extractCss` build option from `angular.json`. " +
26
+ "In Angular 11, CSS extraction became the default behavior for production builds and the option was deprecated.";
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('angular.json'))
37
+ return doc;
38
+ return _super.visitDocument.call(this, doc, p);
39
+ });
40
+ }
41
+ visitMember(member, p) {
42
+ const _super = Object.create(null, {
43
+ visitMember: { get: () => super.visitMember }
44
+ });
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const m = yield _super.visitMember.call(this, member, p);
47
+ if (!m)
48
+ return m;
49
+ const keyName = (0, json_1.getMemberKeyName)(m);
50
+ if (keyName !== 'options' && keyName !== 'production' && keyName !== 'development')
51
+ return m;
52
+ if (!(0, json_1.isObject)(m.value))
53
+ return m;
54
+ const obj = m.value;
55
+ const filtered = obj.members.filter(rp => {
56
+ return (0, json_1.getMemberKeyName)(rp.element) !== 'extractCss';
57
+ });
58
+ if (filtered.length === obj.members.length)
59
+ return m;
60
+ const values = [...filtered];
61
+ if (values.length > 0 && obj.members.length > 0) {
62
+ const originalFirstPrefix = obj.members[0].element.prefix;
63
+ const newFirst = values[0];
64
+ if (newFirst.element.prefix !== originalFirstPrefix) {
65
+ values[0] = Object.assign(Object.assign({}, newFirst), { element: Object.assign(Object.assign({}, newFirst.element), { prefix: originalFirstPrefix }) });
66
+ }
67
+ }
68
+ return Object.assign(Object.assign({}, m), { value: Object.assign(Object.assign({}, obj), { members: values }) });
69
+ });
70
+ }
71
+ }();
72
+ });
73
+ }
74
+ }
75
+ exports.RemoveExtractCss = RemoveExtractCss;
76
+ //# sourceMappingURL=remove-extract-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-extract-css.js","sourceRoot":"","sources":["../../src/migration/remove-extract-css.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,oDAAwF;AAExF,MAAa,gBAAiB,SAAQ,gBAAM;IAA5C;;QACa,SAAI,GAAG,sDAAsD,CAAC;QAC9D,gBAAW,GAAW,yCAAyC,CAAC;QAChE,gBAAW,GAAW,wEAAwE;YACnG,gHAAgH,CAAC;IA8CzH,CAAC;IA5CS,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;wBACzD,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,MAAM,OAAO,GAAG,IAAA,uBAAgB,EAAC,CAAC,CAAC,CAAC;wBACpC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,aAAa;4BAAE,OAAO,CAAC,CAAC;wBAC7F,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,YAAY,CAAC;wBACxE,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;AAlDD,4CAkDC"}
@@ -0,0 +1,8 @@
1
+ import { Recipe } from "@openrewrite/rewrite";
2
+ export declare class RemoveIePolyfills extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-ie-polyfills";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ recipeList(): Promise<Recipe[]>;
7
+ }
8
+ //# sourceMappingURL=remove-ie-polyfills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-ie-polyfills.d.ts","sourceRoot":"","sources":["../../src/migration/remove-ie-polyfills.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAmG3E,qBAAa,iBAAkB,SAAQ,MAAM;IACzC,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA2B;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CACuF;IAE7G,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAMxC"}
@@ -0,0 +1,151 @@
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.RemoveIePolyfills = 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
+ const json_1 = require("@openrewrite/rewrite/json");
22
+ const IE_POLYFILL_PREFIXES = ['core-js/', 'core-js'];
23
+ const IE_POLYFILL_EXACT = ['classlist.js', 'web-animations-js'];
24
+ function isIePolyfill(moduleSpecifier) {
25
+ if (IE_POLYFILL_EXACT.includes(moduleSpecifier))
26
+ return true;
27
+ return IE_POLYFILL_PREFIXES.some(prefix => moduleSpecifier.startsWith(prefix));
28
+ }
29
+ class RemoveIePolyfillImports extends rewrite_1.Recipe {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.name = "org.openrewrite.angular.migration.remove-ie-polyfills.typescript";
33
+ this.displayName = "Remove IE polyfill imports from `polyfills.ts`";
34
+ this.description = "Removes IE11-specific polyfill imports from `polyfills.ts`.";
35
+ }
36
+ editor() {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ return new class extends javascript_1.JavaScriptVisitor {
39
+ constructor() {
40
+ super(...arguments);
41
+ this.inPolyfillsFile = false;
42
+ }
43
+ visitJsCompilationUnit(cu, p) {
44
+ const _super = Object.create(null, {
45
+ visitJsCompilationUnit: { get: () => super.visitJsCompilationUnit }
46
+ });
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ this.inPolyfillsFile = cu.sourcePath.endsWith('polyfills.ts') || cu.sourcePath.endsWith('polyfills.js');
49
+ return _super.visitJsCompilationUnit.call(this, cu, p);
50
+ });
51
+ }
52
+ visitImportDeclaration(jsImport, p) {
53
+ const _super = Object.create(null, {
54
+ visitImportDeclaration: { get: () => super.visitImportDeclaration }
55
+ });
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
58
+ if (!this.inPolyfillsFile)
59
+ return imp;
60
+ if (!imp.moduleSpecifier)
61
+ return imp;
62
+ const moduleSpec = imp.moduleSpecifier.element;
63
+ if (moduleSpec.kind !== java_1.J.Kind.Literal)
64
+ return imp;
65
+ const moduleName = moduleSpec.value;
66
+ if (isIePolyfill(moduleName)) {
67
+ return undefined;
68
+ }
69
+ return imp;
70
+ });
71
+ }
72
+ };
73
+ });
74
+ }
75
+ }
76
+ class RemoveIePolyfillsFromAngularJson extends rewrite_1.Recipe {
77
+ constructor() {
78
+ super(...arguments);
79
+ this.name = "org.openrewrite.angular.migration.remove-ie-polyfills.angular-json";
80
+ this.displayName = "Remove IE polyfills from `angular.json`";
81
+ this.description = "Removes IE11-specific polyfill entries from the `polyfills` array in `angular.json`.";
82
+ }
83
+ editor() {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ return new class extends json_1.JsonVisitor {
86
+ visitDocument(doc, p) {
87
+ const _super = Object.create(null, {
88
+ visitDocument: { get: () => super.visitDocument }
89
+ });
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ if (!doc.sourcePath.endsWith('angular.json'))
92
+ return doc;
93
+ return _super.visitDocument.call(this, doc, p);
94
+ });
95
+ }
96
+ visitMember(member, p) {
97
+ const _super = Object.create(null, {
98
+ visitMember: { get: () => super.visitMember }
99
+ });
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ const m = yield _super.visitMember.call(this, member, p);
102
+ if (!m)
103
+ return m;
104
+ if ((0, json_1.getMemberKeyName)(m) !== 'polyfills')
105
+ return m;
106
+ if (!(0, json_1.isArray)(m.value))
107
+ return m;
108
+ const filtered = m.value.values.filter(rp => {
109
+ const elem = rp.element;
110
+ if (!(0, json_1.isLiteral)(elem))
111
+ return true;
112
+ const val = elem.value;
113
+ return typeof val !== 'string' || !isIePolyfill(val);
114
+ });
115
+ if (filtered.length === m.value.values.length)
116
+ return m;
117
+ const values = [...filtered];
118
+ if (values.length > 0 && m.value.values.length > 0) {
119
+ const originalFirstPrefix = m.value.values[0].element.prefix;
120
+ const newFirst = values[0];
121
+ if (newFirst.element.prefix !== originalFirstPrefix) {
122
+ values[0] = Object.assign(Object.assign({}, newFirst), { element: Object.assign(Object.assign({}, newFirst.element), { prefix: originalFirstPrefix }) });
123
+ }
124
+ }
125
+ const arr = m.value;
126
+ return Object.assign(Object.assign({}, m), { value: Object.assign(Object.assign({}, arr), { values }) });
127
+ });
128
+ }
129
+ }();
130
+ });
131
+ }
132
+ }
133
+ class RemoveIePolyfills extends rewrite_1.Recipe {
134
+ constructor() {
135
+ super(...arguments);
136
+ this.name = "org.openrewrite.angular.migration.remove-ie-polyfills";
137
+ this.displayName = "Remove IE11 polyfills";
138
+ this.description = "Removes IE11-specific polyfill imports (`core-js`, `classlist.js`, `web-animations-js`) " +
139
+ "from `polyfills.ts` and `angular.json`. Angular 13 dropped IE11 support, making these polyfills unnecessary.";
140
+ }
141
+ recipeList() {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ return [
144
+ new RemoveIePolyfillImports(),
145
+ new RemoveIePolyfillsFromAngularJson(),
146
+ ];
147
+ });
148
+ }
149
+ }
150
+ exports.RemoveIePolyfills = RemoveIePolyfills;
151
+ //# sourceMappingURL=remove-ie-polyfills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-ie-polyfills.js","sourceRoot":"","sources":["../../src/migration/remove-ie-polyfills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveModuleId extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-module-id";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-module-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-module-id.d.ts","sourceRoot":"","sources":["../../src/migration/remove-module-id.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAO3E,qBAAa,cAAe,SAAQ,MAAM;IACtC,QAAQ,CAAC,IAAI,wDAAwD;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAuB;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC+E;IAErG,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAuC9D"}
@@ -0,0 +1,81 @@
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.RemoveModuleId = 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
+ const mutative_1 = require("mutative");
22
+ const DECORATORS_WITH_MODULE_ID = ['Component', 'Directive'];
23
+ class RemoveModuleId extends rewrite_1.Recipe {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.name = "org.openrewrite.angular.migration.remove-module-id";
27
+ this.displayName = "Remove `moduleId`";
28
+ this.description = "Removes the `moduleId` property from `@Component` and `@Directive` decorators. " +
29
+ "`moduleId` was deprecated in Angular 16 and removed in Angular 17 as it served no purpose since Ivy.";
30
+ }
31
+ editor() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ return new class extends javascript_1.JavaScriptVisitor {
34
+ visitAnnotation(annotation, p) {
35
+ const _super = Object.create(null, {
36
+ visitAnnotation: { get: () => super.visitAnnotation }
37
+ });
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ var _a, _b;
40
+ let a = yield _super.visitAnnotation.call(this, annotation, p);
41
+ if (!a)
42
+ return a;
43
+ const annotType = a.annotationType;
44
+ if (!(0, java_1.isIdentifier)(annotType))
45
+ return a;
46
+ if (!DECORATORS_WITH_MODULE_ID.includes(annotType.simpleName))
47
+ return a;
48
+ if (!((_b = (_a = a.arguments) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.length))
49
+ return a;
50
+ const firstArg = a.arguments.elements[0].element;
51
+ if (firstArg.kind !== java_1.J.Kind.NewClass)
52
+ return a;
53
+ const newClass = firstArg;
54
+ if (!newClass.body)
55
+ return a;
56
+ let moduleIdIndex = -1;
57
+ for (let i = 0; i < newClass.body.statements.length; i++) {
58
+ const stmt = newClass.body.statements[i].element;
59
+ if (stmt.kind === javascript_1.JS.Kind.PropertyAssignment) {
60
+ const prop = stmt;
61
+ const nameExpr = prop.name.element;
62
+ if ((0, java_1.isIdentifier)(nameExpr) && nameExpr.simpleName === 'moduleId') {
63
+ moduleIdIndex = i;
64
+ break;
65
+ }
66
+ }
67
+ }
68
+ if (moduleIdIndex === -1)
69
+ return a;
70
+ return (0, mutative_1.create)(a, draft => {
71
+ const body = draft.arguments.elements[0].element.body;
72
+ body.statements = body.statements.filter((_, i) => i !== moduleIdIndex);
73
+ });
74
+ });
75
+ }
76
+ }();
77
+ });
78
+ }
79
+ }
80
+ exports.RemoveModuleId = RemoveModuleId;
81
+ //# sourceMappingURL=remove-module-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-module-id.js","sourceRoot":"","sources":["../../src/migration/remove-module-id.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAsE;AACtE,oDAA0D;AAC1D,uCAAgC;AAEhC,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE7D,MAAa,cAAe,SAAQ,gBAAM;IAA1C;;QACa,SAAI,GAAG,oDAAoD,CAAC;QAC5D,gBAAW,GAAW,mBAAmB,CAAC;QAC1C,gBAAW,GAAW,iFAAiF;YAC5G,sGAAsG,CAAC;IAyC/G,CAAC;IAvCS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,eAAe,CAAC,UAAwB,EAAE,CAAmB;;;;;;wBACxE,IAAI,CAAC,GAAG,MAAM,OAAM,eAAe,YAAC,UAAU,EAAE,CAAC,CAAiB,CAAC;wBACnE,IAAI,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAEjB,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC;wBACnC,IAAI,CAAC,IAAA,mBAAY,EAAC,SAAS,CAAC;4BAAE,OAAO,CAAC,CAAC;wBACvC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAExE,IAAI,CAAC,CAAA,MAAA,MAAA,CAAC,CAAC,SAAS,0CAAE,QAAQ,0CAAE,MAAM,CAAA;4BAAE,OAAO,CAAC,CAAC;wBAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBACjD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,QAAQ;4BAAE,OAAO,CAAC,CAAC;wBAEhD,MAAM,QAAQ,GAAG,QAAsB,CAAC;wBACxC,IAAI,CAAC,QAAQ,CAAC,IAAI;4BAAE,OAAO,CAAC,CAAC;wBAE7B,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;wBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;4BACjD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gCAC3C,MAAM,IAAI,GAAG,IAA6B,CAAC;gCAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gCACnC,IAAI,IAAA,mBAAY,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oCAC/D,aAAa,GAAG,CAAC,CAAC;oCAClB,MAAM;gCACV,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,IAAI,aAAa,KAAK,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAEnC,OAAO,IAAA,iBAAM,EAAC,CAAC,EAAE,KAAK,CAAC,EAAE;4BACrB,MAAM,IAAI,GAAI,KAAK,CAAC,SAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAe,CAAC,IAAK,CAAC;4BACjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;wBACzF,CAAC,CAAiB,CAAC;oBACvB,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AA7CD,wCA6CC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class RemoveRelativeLinkResolution extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.remove-relative-link-resolution";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=remove-relative-link-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-relative-link-resolution.d.ts","sourceRoot":"","sources":["../../src/migration/remove-relative-link-resolution.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,4BAA6B,SAAQ,MAAM;IACpD,QAAQ,CAAC,IAAI,uEAAuE;IACpF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAqC;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC8C;IAEpE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA8C9D"}