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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/dist/index.d.ts +107 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +441 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/migration/add-default-configuration.d.ts +8 -0
  6. package/dist/migration/add-default-configuration.d.ts.map +1 -0
  7. package/dist/migration/add-default-configuration.js +124 -0
  8. package/dist/migration/add-default-configuration.js.map +1 -0
  9. package/dist/migration/add-localize-polyfill.d.ts +8 -0
  10. package/dist/migration/add-localize-polyfill.d.ts.map +1 -0
  11. package/dist/migration/add-localize-polyfill.js +78 -0
  12. package/dist/migration/add-localize-polyfill.js.map +1 -0
  13. package/dist/migration/add-module-with-providers-generic.d.ts +8 -0
  14. package/dist/migration/add-module-with-providers-generic.d.ts.map +1 -0
  15. package/dist/migration/add-module-with-providers-generic.js +114 -0
  16. package/dist/migration/add-module-with-providers-generic.js.map +1 -0
  17. package/dist/migration/add-static-false-to-view-queries.d.ts +8 -0
  18. package/dist/migration/add-static-false-to-view-queries.d.ts.map +1 -0
  19. package/dist/migration/add-static-false-to-view-queries.js +100 -0
  20. package/dist/migration/add-static-false-to-view-queries.js.map +1 -0
  21. package/dist/migration/add-testbed-teardown.d.ts +8 -0
  22. package/dist/migration/add-testbed-teardown.d.ts.map +1 -0
  23. package/dist/migration/add-testbed-teardown.js +62 -0
  24. package/dist/migration/add-testbed-teardown.js.map +1 -0
  25. package/dist/migration/enable-aot-build.d.ts +8 -0
  26. package/dist/migration/enable-aot-build.d.ts.map +1 -0
  27. package/dist/migration/enable-aot-build.js +123 -0
  28. package/dist/migration/enable-aot-build.js.map +1 -0
  29. package/dist/migration/explicit-standalone-flag.d.ts +8 -0
  30. package/dist/migration/explicit-standalone-flag.d.ts.map +1 -0
  31. package/dist/migration/explicit-standalone-flag.js +99 -0
  32. package/dist/migration/explicit-standalone-flag.js.map +1 -0
  33. package/dist/migration/migrate-constructor-to-inject.d.ts +8 -0
  34. package/dist/migration/migrate-constructor-to-inject.d.ts.map +1 -0
  35. package/dist/migration/migrate-constructor-to-inject.js +162 -0
  36. package/dist/migration/migrate-constructor-to-inject.js.map +1 -0
  37. package/dist/migration/migrate-input-to-signal.d.ts +8 -0
  38. package/dist/migration/migrate-input-to-signal.d.ts.map +1 -0
  39. package/dist/migration/migrate-input-to-signal.js +293 -0
  40. package/dist/migration/migrate-input-to-signal.js.map +1 -0
  41. package/dist/migration/migrate-output-to-signal.d.ts +8 -0
  42. package/dist/migration/migrate-output-to-signal.d.ts.map +1 -0
  43. package/dist/migration/migrate-output-to-signal.js +259 -0
  44. package/dist/migration/migrate-output-to-signal.js.map +1 -0
  45. package/dist/migration/migrate-query-to-signal.d.ts +8 -0
  46. package/dist/migration/migrate-query-to-signal.d.ts.map +1 -0
  47. package/dist/migration/migrate-query-to-signal.js +256 -0
  48. package/dist/migration/migrate-query-to-signal.js.map +1 -0
  49. package/dist/migration/migrate-to-solution-style-tsconfig.d.ts +17 -0
  50. package/dist/migration/migrate-to-solution-style-tsconfig.d.ts.map +1 -0
  51. package/dist/migration/migrate-to-solution-style-tsconfig.js +153 -0
  52. package/dist/migration/migrate-to-solution-style-tsconfig.js.map +1 -0
  53. package/dist/migration/move-document-to-core.d.ts +16 -0
  54. package/dist/migration/move-document-to-core.d.ts.map +1 -0
  55. package/dist/migration/move-document-to-core.js +48 -0
  56. package/dist/migration/move-document-to-core.js.map +1 -0
  57. package/dist/migration/remove-aot-summaries.d.ts +8 -0
  58. package/dist/migration/remove-aot-summaries.d.ts.map +1 -0
  59. package/dist/migration/remove-aot-summaries.js +90 -0
  60. package/dist/migration/remove-aot-summaries.js.map +1 -0
  61. package/dist/migration/remove-browser-module-with-server-transition.d.ts +8 -0
  62. package/dist/migration/remove-browser-module-with-server-transition.d.ts.map +1 -0
  63. package/dist/migration/remove-browser-module-with-server-transition.js +173 -0
  64. package/dist/migration/remove-browser-module-with-server-transition.js.map +1 -0
  65. package/dist/migration/remove-component-factory-resolver.d.ts +8 -0
  66. package/dist/migration/remove-component-factory-resolver.d.ts.map +1 -0
  67. package/dist/migration/remove-component-factory-resolver.js +70 -0
  68. package/dist/migration/remove-component-factory-resolver.js.map +1 -0
  69. package/dist/migration/remove-default-project.d.ts +8 -0
  70. package/dist/migration/remove-default-project.d.ts.map +1 -0
  71. package/dist/migration/remove-default-project.js +59 -0
  72. package/dist/migration/remove-default-project.js.map +1 -0
  73. package/dist/migration/remove-empty-ng-on-init.d.ts +8 -0
  74. package/dist/migration/remove-empty-ng-on-init.d.ts.map +1 -0
  75. package/dist/migration/remove-empty-ng-on-init.js +98 -0
  76. package/dist/migration/remove-empty-ng-on-init.js.map +1 -0
  77. package/dist/migration/remove-enable-ivy.d.ts +8 -0
  78. package/dist/migration/remove-enable-ivy.d.ts.map +1 -0
  79. package/dist/migration/remove-enable-ivy.js +78 -0
  80. package/dist/migration/remove-enable-ivy.js.map +1 -0
  81. package/dist/migration/remove-entry-components.d.ts +8 -0
  82. package/dist/migration/remove-entry-components.d.ts.map +1 -0
  83. package/dist/migration/remove-entry-components.js +101 -0
  84. package/dist/migration/remove-entry-components.js.map +1 -0
  85. package/dist/migration/remove-es5-browser-support.d.ts +8 -0
  86. package/dist/migration/remove-es5-browser-support.d.ts.map +1 -0
  87. package/dist/migration/remove-es5-browser-support.js +74 -0
  88. package/dist/migration/remove-es5-browser-support.js.map +1 -0
  89. package/dist/migration/remove-extract-css.d.ts +8 -0
  90. package/dist/migration/remove-extract-css.d.ts.map +1 -0
  91. package/dist/migration/remove-extract-css.js +76 -0
  92. package/dist/migration/remove-extract-css.js.map +1 -0
  93. package/dist/migration/remove-ie-polyfills.d.ts +8 -0
  94. package/dist/migration/remove-ie-polyfills.d.ts.map +1 -0
  95. package/dist/migration/remove-ie-polyfills.js +151 -0
  96. package/dist/migration/remove-ie-polyfills.js.map +1 -0
  97. package/dist/migration/remove-module-id.d.ts +8 -0
  98. package/dist/migration/remove-module-id.d.ts.map +1 -0
  99. package/dist/migration/remove-module-id.js +81 -0
  100. package/dist/migration/remove-module-id.js.map +1 -0
  101. package/dist/migration/remove-relative-link-resolution.d.ts +8 -0
  102. package/dist/migration/remove-relative-link-resolution.d.ts.map +1 -0
  103. package/dist/migration/remove-relative-link-resolution.js +84 -0
  104. package/dist/migration/remove-relative-link-resolution.js.map +1 -0
  105. package/dist/migration/remove-standalone-true.d.ts +8 -0
  106. package/dist/migration/remove-standalone-true.d.ts.map +1 -0
  107. package/dist/migration/remove-standalone-true.js +73 -0
  108. package/dist/migration/remove-standalone-true.js.map +1 -0
  109. package/dist/migration/remove-static-false.d.ts +8 -0
  110. package/dist/migration/remove-static-false.d.ts.map +1 -0
  111. package/dist/migration/remove-static-false.js +90 -0
  112. package/dist/migration/remove-static-false.js.map +1 -0
  113. package/dist/migration/remove-zone-js-polyfill.d.ts +8 -0
  114. package/dist/migration/remove-zone-js-polyfill.d.ts.map +1 -0
  115. package/dist/migration/remove-zone-js-polyfill.js +73 -0
  116. package/dist/migration/remove-zone-js-polyfill.js.map +1 -0
  117. package/dist/migration/rename-after-render.d.ts +8 -0
  118. package/dist/migration/rename-after-render.d.ts.map +1 -0
  119. package/dist/migration/rename-after-render.js +52 -0
  120. package/dist/migration/rename-after-render.js.map +1 -0
  121. package/dist/migration/rename-check-no-changes.d.ts +8 -0
  122. package/dist/migration/rename-check-no-changes.d.ts.map +1 -0
  123. package/dist/migration/rename-check-no-changes.js +48 -0
  124. package/dist/migration/rename-check-no-changes.js.map +1 -0
  125. package/dist/migration/rename-file.d.ts +14 -0
  126. package/dist/migration/rename-file.d.ts.map +1 -0
  127. package/dist/migration/rename-file.js +124 -0
  128. package/dist/migration/rename-file.js.map +1 -0
  129. package/dist/migration/rename-pending-tasks.d.ts +8 -0
  130. package/dist/migration/rename-pending-tasks.d.ts.map +1 -0
  131. package/dist/migration/rename-pending-tasks.js +49 -0
  132. package/dist/migration/rename-pending-tasks.js.map +1 -0
  133. package/dist/migration/rename-zoneless-provider.d.ts +8 -0
  134. package/dist/migration/rename-zoneless-provider.d.ts.map +1 -0
  135. package/dist/migration/rename-zoneless-provider.js +48 -0
  136. package/dist/migration/rename-zoneless-provider.js.map +1 -0
  137. package/dist/migration/replace-async-with-wait-for-async.d.ts +8 -0
  138. package/dist/migration/replace-async-with-wait-for-async.d.ts.map +1 -0
  139. package/dist/migration/replace-async-with-wait-for-async.js +52 -0
  140. package/dist/migration/replace-async-with-wait-for-async.js.map +1 -0
  141. package/dist/migration/replace-deep-zone-js-imports.d.ts +8 -0
  142. package/dist/migration/replace-deep-zone-js-imports.d.ts.map +1 -0
  143. package/dist/migration/replace-deep-zone-js-imports.js +144 -0
  144. package/dist/migration/replace-deep-zone-js-imports.js.map +1 -0
  145. package/dist/migration/replace-http-client-module.d.ts +8 -0
  146. package/dist/migration/replace-http-client-module.d.ts.map +1 -0
  147. package/dist/migration/replace-http-client-module.js +248 -0
  148. package/dist/migration/replace-http-client-module.js.map +1 -0
  149. package/dist/migration/replace-initial-navigation.d.ts +8 -0
  150. package/dist/migration/replace-initial-navigation.d.ts.map +1 -0
  151. package/dist/migration/replace-initial-navigation.js +80 -0
  152. package/dist/migration/replace-initial-navigation.js.map +1 -0
  153. package/dist/migration/replace-inject-flags.d.ts +8 -0
  154. package/dist/migration/replace-inject-flags.d.ts.map +1 -0
  155. package/dist/migration/replace-inject-flags.js +101 -0
  156. package/dist/migration/replace-inject-flags.js.map +1 -0
  157. package/dist/migration/replace-load-children-string.d.ts +8 -0
  158. package/dist/migration/replace-load-children-string.d.ts.map +1 -0
  159. package/dist/migration/replace-load-children-string.js +70 -0
  160. package/dist/migration/replace-load-children-string.js.map +1 -0
  161. package/dist/migration/replace-node-sass-with-sass.d.ts +8 -0
  162. package/dist/migration/replace-node-sass-with-sass.d.ts.map +1 -0
  163. package/dist/migration/replace-node-sass-with-sass.js +38 -0
  164. package/dist/migration/replace-node-sass-with-sass.js.map +1 -0
  165. package/dist/migration/replace-router-link-with-href.d.ts +8 -0
  166. package/dist/migration/replace-router-link-with-href.d.ts.map +1 -0
  167. package/dist/migration/replace-router-link-with-href.js +55 -0
  168. package/dist/migration/replace-router-link-with-href.js.map +1 -0
  169. package/dist/migration/replace-testbed-get-with-inject.d.ts +8 -0
  170. package/dist/migration/replace-testbed-get-with-inject.d.ts.map +1 -0
  171. package/dist/migration/replace-testbed-get-with-inject.js +53 -0
  172. package/dist/migration/replace-testbed-get-with-inject.js.map +1 -0
  173. package/dist/migration/replace-untyped-forms.d.ts +8 -0
  174. package/dist/migration/replace-untyped-forms.d.ts.map +1 -0
  175. package/dist/migration/replace-untyped-forms.js +78 -0
  176. package/dist/migration/replace-untyped-forms.js.map +1 -0
  177. package/dist/migration/replace-validator-with-validators.d.ts +8 -0
  178. package/dist/migration/replace-validator-with-validators.d.ts.map +1 -0
  179. package/dist/migration/replace-validator-with-validators.js +62 -0
  180. package/dist/migration/replace-validator-with-validators.js.map +1 -0
  181. package/dist/migration/replace-view-encapsulation-native.d.ts +8 -0
  182. package/dist/migration/replace-view-encapsulation-native.d.ts.map +1 -0
  183. package/dist/migration/replace-view-encapsulation-native.js +67 -0
  184. package/dist/migration/replace-view-encapsulation-native.js.map +1 -0
  185. package/dist/migration/update-component-template-url.d.ts +28 -0
  186. package/dist/migration/update-component-template-url.d.ts.map +1 -0
  187. package/dist/migration/update-component-template-url.js +178 -0
  188. package/dist/migration/update-component-template-url.js.map +1 -0
  189. package/dist/migration/update-tsconfig-module.d.ts +8 -0
  190. package/dist/migration/update-tsconfig-module.d.ts.map +1 -0
  191. package/dist/migration/update-tsconfig-module.js +83 -0
  192. package/dist/migration/update-tsconfig-module.js.map +1 -0
  193. package/dist/migration/update-tsconfig-target.d.ts +8 -0
  194. package/dist/migration/update-tsconfig-target.d.ts.map +1 -0
  195. package/dist/migration/update-tsconfig-target.js +78 -0
  196. package/dist/migration/update-tsconfig-target.js.map +1 -0
  197. package/dist/migration/upgrade-to-angular-10.d.ts +8 -0
  198. package/dist/migration/upgrade-to-angular-10.d.ts.map +1 -0
  199. package/dist/migration/upgrade-to-angular-10.js +68 -0
  200. package/dist/migration/upgrade-to-angular-10.js.map +1 -0
  201. package/dist/migration/upgrade-to-angular-11.d.ts +8 -0
  202. package/dist/migration/upgrade-to-angular-11.d.ts.map +1 -0
  203. package/dist/migration/upgrade-to-angular-11.js +68 -0
  204. package/dist/migration/upgrade-to-angular-11.js.map +1 -0
  205. package/dist/migration/upgrade-to-angular-12.d.ts +8 -0
  206. package/dist/migration/upgrade-to-angular-12.d.ts.map +1 -0
  207. package/dist/migration/upgrade-to-angular-12.js +59 -0
  208. package/dist/migration/upgrade-to-angular-12.js.map +1 -0
  209. package/dist/migration/upgrade-to-angular-13.d.ts +8 -0
  210. package/dist/migration/upgrade-to-angular-13.d.ts.map +1 -0
  211. package/dist/migration/upgrade-to-angular-13.js +61 -0
  212. package/dist/migration/upgrade-to-angular-13.js.map +1 -0
  213. package/dist/migration/upgrade-to-angular-14.d.ts +8 -0
  214. package/dist/migration/upgrade-to-angular-14.d.ts.map +1 -0
  215. package/dist/migration/upgrade-to-angular-14.js +60 -0
  216. package/dist/migration/upgrade-to-angular-14.js.map +1 -0
  217. package/dist/migration/upgrade-to-angular-15.d.ts +8 -0
  218. package/dist/migration/upgrade-to-angular-15.d.ts.map +1 -0
  219. package/dist/migration/upgrade-to-angular-15.js +59 -0
  220. package/dist/migration/upgrade-to-angular-15.js.map +1 -0
  221. package/dist/migration/upgrade-to-angular-16.d.ts +8 -0
  222. package/dist/migration/upgrade-to-angular-16.d.ts.map +1 -0
  223. package/dist/migration/upgrade-to-angular-16.js +73 -0
  224. package/dist/migration/upgrade-to-angular-16.js.map +1 -0
  225. package/dist/migration/upgrade-to-angular-17.d.ts +8 -0
  226. package/dist/migration/upgrade-to-angular-17.d.ts.map +1 -0
  227. package/dist/migration/upgrade-to-angular-17.js +59 -0
  228. package/dist/migration/upgrade-to-angular-17.js.map +1 -0
  229. package/dist/migration/upgrade-to-angular-18.d.ts +8 -0
  230. package/dist/migration/upgrade-to-angular-18.d.ts.map +1 -0
  231. package/dist/migration/upgrade-to-angular-18.js +85 -0
  232. package/dist/migration/upgrade-to-angular-18.js.map +1 -0
  233. package/dist/migration/upgrade-to-angular-19.d.ts +8 -0
  234. package/dist/migration/upgrade-to-angular-19.d.ts.map +1 -0
  235. package/dist/migration/upgrade-to-angular-19.js +68 -0
  236. package/dist/migration/upgrade-to-angular-19.js.map +1 -0
  237. package/dist/migration/upgrade-to-angular-20.d.ts +8 -0
  238. package/dist/migration/upgrade-to-angular-20.d.ts.map +1 -0
  239. package/dist/migration/upgrade-to-angular-20.js +63 -0
  240. package/dist/migration/upgrade-to-angular-20.js.map +1 -0
  241. package/dist/migration/upgrade-to-angular-21.d.ts +8 -0
  242. package/dist/migration/upgrade-to-angular-21.d.ts.map +1 -0
  243. package/dist/migration/upgrade-to-angular-21.js +69 -0
  244. package/dist/migration/upgrade-to-angular-21.js.map +1 -0
  245. package/dist/migration/upgrade-to-angular-8.d.ts +8 -0
  246. package/dist/migration/upgrade-to-angular-8.d.ts.map +1 -0
  247. package/dist/migration/upgrade-to-angular-8.js +70 -0
  248. package/dist/migration/upgrade-to-angular-8.js.map +1 -0
  249. package/dist/migration/upgrade-to-angular-9.d.ts +8 -0
  250. package/dist/migration/upgrade-to-angular-9.d.ts.map +1 -0
  251. package/dist/migration/upgrade-to-angular-9.js +85 -0
  252. package/dist/migration/upgrade-to-angular-9.js.map +1 -0
  253. package/dist/search/find-analyze-for-entry-components-usage.d.ts +8 -0
  254. package/dist/search/find-analyze-for-entry-components-usage.d.ts.map +1 -0
  255. package/dist/search/find-analyze-for-entry-components-usage.js +66 -0
  256. package/dist/search/find-analyze-for-entry-components-usage.js.map +1 -0
  257. package/dist/search/find-angular-decorator.d.ts +8 -0
  258. package/dist/search/find-angular-decorator.d.ts.map +1 -0
  259. package/dist/search/find-angular-decorator.js +78 -0
  260. package/dist/search/find-angular-decorator.js.map +1 -0
  261. package/dist/search/find-angular-http-usage.d.ts +8 -0
  262. package/dist/search/find-angular-http-usage.d.ts.map +1 -0
  263. package/dist/search/find-angular-http-usage.js +55 -0
  264. package/dist/search/find-angular-http-usage.js.map +1 -0
  265. package/dist/search/find-animation-driver-matches-element.d.ts +8 -0
  266. package/dist/search/find-animation-driver-matches-element.d.ts.map +1 -0
  267. package/dist/search/find-animation-driver-matches-element.js +59 -0
  268. package/dist/search/find-animation-driver-matches-element.js.map +1 -0
  269. package/dist/search/find-async-test-helper-usage.d.ts +8 -0
  270. package/dist/search/find-async-test-helper-usage.d.ts.map +1 -0
  271. package/dist/search/find-async-test-helper-usage.js +65 -0
  272. package/dist/search/find-async-test-helper-usage.js.map +1 -0
  273. package/dist/search/find-bare-module-with-providers.d.ts +8 -0
  274. package/dist/search/find-bare-module-with-providers.d.ts.map +1 -0
  275. package/dist/search/find-bare-module-with-providers.js +67 -0
  276. package/dist/search/find-bare-module-with-providers.js.map +1 -0
  277. package/dist/search/find-browser-transfer-state-module-usage.d.ts +8 -0
  278. package/dist/search/find-browser-transfer-state-module-usage.d.ts.map +1 -0
  279. package/dist/search/find-browser-transfer-state-module-usage.js +65 -0
  280. package/dist/search/find-browser-transfer-state-module-usage.js.map +1 -0
  281. package/dist/search/find-common-module-usage.d.ts +8 -0
  282. package/dist/search/find-common-module-usage.d.ts.map +1 -0
  283. package/dist/search/find-common-module-usage.js +67 -0
  284. package/dist/search/find-common-module-usage.js.map +1 -0
  285. package/dist/search/find-compiler-factory-usage.d.ts +8 -0
  286. package/dist/search/find-compiler-factory-usage.d.ts.map +1 -0
  287. package/dist/search/find-compiler-factory-usage.js +70 -0
  288. package/dist/search/find-compiler-factory-usage.js.map +1 -0
  289. package/dist/search/find-date-pipe-default-timezone-usage.d.ts +8 -0
  290. package/dist/search/find-date-pipe-default-timezone-usage.d.ts.map +1 -0
  291. package/dist/search/find-date-pipe-default-timezone-usage.js +66 -0
  292. package/dist/search/find-date-pipe-default-timezone-usage.js.map +1 -0
  293. package/dist/search/find-effect-timing-usage.d.ts +8 -0
  294. package/dist/search/find-effect-timing-usage.d.ts.map +1 -0
  295. package/dist/search/find-effect-timing-usage.js +48 -0
  296. package/dist/search/find-effect-timing-usage.js.map +1 -0
  297. package/dist/search/find-empty-projectable-nodes.d.ts +8 -0
  298. package/dist/search/find-empty-projectable-nodes.d.ts.map +1 -0
  299. package/dist/search/find-empty-projectable-nodes.js +88 -0
  300. package/dist/search/find-empty-projectable-nodes.js.map +1 -0
  301. package/dist/search/find-fake-async-usage.d.ts +8 -0
  302. package/dist/search/find-fake-async-usage.d.ts.map +1 -0
  303. package/dist/search/find-fake-async-usage.js +56 -0
  304. package/dist/search/find-fake-async-usage.js.map +1 -0
  305. package/dist/search/find-hammer-js-usage.d.ts +8 -0
  306. package/dist/search/find-hammer-js-usage.d.ts.map +1 -0
  307. package/dist/search/find-hammer-js-usage.js +69 -0
  308. package/dist/search/find-hammer-js-usage.js.map +1 -0
  309. package/dist/search/find-i18n-usage.d.ts +8 -0
  310. package/dist/search/find-i18n-usage.d.ts.map +1 -0
  311. package/dist/search/find-i18n-usage.js +128 -0
  312. package/dist/search/find-i18n-usage.js.map +1 -0
  313. package/dist/search/find-karma-usage.d.ts +8 -0
  314. package/dist/search/find-karma-usage.d.ts.map +1 -0
  315. package/dist/search/find-karma-usage.js +69 -0
  316. package/dist/search/find-karma-usage.js.map +1 -0
  317. package/dist/search/find-load-children-string-usage.d.ts +8 -0
  318. package/dist/search/find-load-children-string-usage.d.ts.map +1 -0
  319. package/dist/search/find-load-children-string-usage.js +62 -0
  320. package/dist/search/find-load-children-string-usage.js.map +1 -0
  321. package/dist/search/find-missing-injectable.d.ts +8 -0
  322. package/dist/search/find-missing-injectable.d.ts.map +1 -0
  323. package/dist/search/find-missing-injectable.js +98 -0
  324. package/dist/search/find-missing-injectable.js.map +1 -0
  325. package/dist/search/find-ng-class-usage.d.ts +8 -0
  326. package/dist/search/find-ng-class-usage.d.ts.map +1 -0
  327. package/dist/search/find-ng-class-usage.js +65 -0
  328. package/dist/search/find-ng-class-usage.js.map +1 -0
  329. package/dist/search/find-ng-style-usage.d.ts +8 -0
  330. package/dist/search/find-ng-style-usage.d.ts.map +1 -0
  331. package/dist/search/find-ng-style-usage.js +65 -0
  332. package/dist/search/find-ng-style-usage.js.map +1 -0
  333. package/dist/search/find-path-match-type-usage.d.ts +8 -0
  334. package/dist/search/find-path-match-type-usage.d.ts.map +1 -0
  335. package/dist/search/find-path-match-type-usage.js +62 -0
  336. package/dist/search/find-path-match-type-usage.js.map +1 -0
  337. package/dist/search/find-platform-dynamic-server-usage.d.ts +8 -0
  338. package/dist/search/find-platform-dynamic-server-usage.d.ts.map +1 -0
  339. package/dist/search/find-platform-dynamic-server-usage.js +59 -0
  340. package/dist/search/find-platform-dynamic-server-usage.js.map +1 -0
  341. package/dist/search/find-platform-webworker-usage.d.ts +8 -0
  342. package/dist/search/find-platform-webworker-usage.d.ts.map +1 -0
  343. package/dist/search/find-platform-webworker-usage.js +54 -0
  344. package/dist/search/find-platform-webworker-usage.js.map +1 -0
  345. package/dist/search/find-platform-worker-usage.d.ts +8 -0
  346. package/dist/search/find-platform-worker-usage.d.ts.map +1 -0
  347. package/dist/search/find-platform-worker-usage.js +60 -0
  348. package/dist/search/find-platform-worker-usage.js.map +1 -0
  349. package/dist/search/find-preserve-fragment-usage.d.ts +8 -0
  350. package/dist/search/find-preserve-fragment-usage.d.ts.map +1 -0
  351. package/dist/search/find-preserve-fragment-usage.js +52 -0
  352. package/dist/search/find-preserve-fragment-usage.js.map +1 -0
  353. package/dist/search/find-preserve-query-params-usage.d.ts +8 -0
  354. package/dist/search/find-preserve-query-params-usage.d.ts.map +1 -0
  355. package/dist/search/find-preserve-query-params-usage.js +52 -0
  356. package/dist/search/find-preserve-query-params-usage.js.map +1 -0
  357. package/dist/search/find-provided-in-deprecated-usage.d.ts +8 -0
  358. package/dist/search/find-provided-in-deprecated-usage.d.ts.map +1 -0
  359. package/dist/search/find-provided-in-deprecated-usage.js +87 -0
  360. package/dist/search/find-provided-in-deprecated-usage.js.map +1 -0
  361. package/dist/search/find-reflective-injector-usage.d.ts +8 -0
  362. package/dist/search/find-reflective-injector-usage.d.ts.map +1 -0
  363. package/dist/search/find-reflective-injector-usage.js +65 -0
  364. package/dist/search/find-reflective-injector-usage.js.map +1 -0
  365. package/dist/search/find-render-application-usage.d.ts +8 -0
  366. package/dist/search/find-render-application-usage.d.ts.map +1 -0
  367. package/dist/search/find-render-application-usage.js +67 -0
  368. package/dist/search/find-render-application-usage.js.map +1 -0
  369. package/dist/search/find-render-component-type-usage.d.ts +8 -0
  370. package/dist/search/find-render-component-type-usage.d.ts.map +1 -0
  371. package/dist/search/find-render-component-type-usage.js +66 -0
  372. package/dist/search/find-render-component-type-usage.js.map +1 -0
  373. package/dist/search/find-render-module-factory-usage.d.ts +8 -0
  374. package/dist/search/find-render-module-factory-usage.d.ts.map +1 -0
  375. package/dist/search/find-render-module-factory-usage.js +65 -0
  376. package/dist/search/find-render-module-factory-usage.js.map +1 -0
  377. package/dist/search/find-renderer-usage.d.ts +8 -0
  378. package/dist/search/find-renderer-usage.d.ts.map +1 -0
  379. package/dist/search/find-renderer-usage.js +66 -0
  380. package/dist/search/find-renderer-usage.js.map +1 -0
  381. package/dist/search/find-resource-cache-provider-usage.d.ts +8 -0
  382. package/dist/search/find-resource-cache-provider-usage.d.ts.map +1 -0
  383. package/dist/search/find-resource-cache-provider-usage.js +59 -0
  384. package/dist/search/find-resource-cache-provider-usage.js.map +1 -0
  385. package/dist/search/find-root-renderer-usage.d.ts +8 -0
  386. package/dist/search/find-root-renderer-usage.d.ts.map +1 -0
  387. package/dist/search/find-root-renderer-usage.js +67 -0
  388. package/dist/search/find-root-renderer-usage.js.map +1 -0
  389. package/dist/search/find-rxjs-compat-usage.d.ts +8 -0
  390. package/dist/search/find-rxjs-compat-usage.d.ts.map +1 -0
  391. package/dist/search/find-rxjs-compat-usage.js +60 -0
  392. package/dist/search/find-rxjs-compat-usage.js.map +1 -0
  393. package/dist/search/find-server-transfer-state-module-usage.d.ts +8 -0
  394. package/dist/search/find-server-transfer-state-module-usage.d.ts.map +1 -0
  395. package/dist/search/find-server-transfer-state-module-usage.js +59 -0
  396. package/dist/search/find-server-transfer-state-module-usage.js.map +1 -0
  397. package/dist/search/find-setup-testing-router-usage.d.ts +8 -0
  398. package/dist/search/find-setup-testing-router-usage.d.ts.map +1 -0
  399. package/dist/search/find-setup-testing-router-usage.js +65 -0
  400. package/dist/search/find-setup-testing-router-usage.js.map +1 -0
  401. package/dist/search/find-testability-pending-request-usage.d.ts +8 -0
  402. package/dist/search/find-testability-pending-request-usage.d.ts.map +1 -0
  403. package/dist/search/find-testability-pending-request-usage.js +59 -0
  404. package/dist/search/find-testability-pending-request-usage.js.map +1 -0
  405. package/dist/search/find-undecorated-angular-class.d.ts +8 -0
  406. package/dist/search/find-undecorated-angular-class.d.ts.map +1 -0
  407. package/dist/search/find-undecorated-angular-class.js +87 -0
  408. package/dist/search/find-undecorated-angular-class.js.map +1 -0
  409. package/dist/search/find-with-no-dom-reuse-usage.d.ts +8 -0
  410. package/dist/search/find-with-no-dom-reuse-usage.d.ts.map +1 -0
  411. package/dist/search/find-with-no-dom-reuse-usage.js +66 -0
  412. package/dist/search/find-with-no-dom-reuse-usage.js.map +1 -0
  413. package/dist/search/find-wrapped-value-usage.d.ts +8 -0
  414. package/dist/search/find-wrapped-value-usage.d.ts.map +1 -0
  415. package/dist/search/find-wrapped-value-usage.js +66 -0
  416. package/dist/search/find-wrapped-value-usage.js.map +1 -0
  417. package/dist/search/find-zone-js-usage.d.ts +8 -0
  418. package/dist/search/find-zone-js-usage.d.ts.map +1 -0
  419. package/dist/search/find-zone-js-usage.js +65 -0
  420. package/dist/search/find-zone-js-usage.js.map +1 -0
  421. package/package.json +1 -1
@@ -0,0 +1,248 @@
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.ReplaceHttpClientModule = 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
+ const HTTP_MODULES = new Set([
18
+ 'HttpClientModule',
19
+ 'HttpClientJsonpModule',
20
+ 'HttpClientXsrfModule',
21
+ ]);
22
+ const TESTING_MODULES = new Set([
23
+ 'HttpClientTestingModule',
24
+ ]);
25
+ class ReplaceHttpClientModule extends rewrite_1.Recipe {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.name = "org.openrewrite.angular.migration.replace-http-client-module";
29
+ this.displayName = "Replace `HttpClientModule` with `provideHttpClient()`";
30
+ this.description = "Replaces deprecated `HttpClientModule`, `HttpClientJsonpModule`, `HttpClientXsrfModule`, and `HttpClientTestingModule` with their functional equivalents: `provideHttpClient()` with feature functions and `provideHttpClientTesting()`.";
31
+ }
32
+ editor() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return new class extends javascript_1.JavaScriptVisitor {
35
+ visitAnnotation(annotation, p) {
36
+ const _super = Object.create(null, {
37
+ visitAnnotation: { get: () => super.visitAnnotation }
38
+ });
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ var _a, _b, _c, _d;
41
+ let a = yield _super.visitAnnotation.call(this, annotation, p);
42
+ if (!a)
43
+ return a;
44
+ const annotType = a.annotationType;
45
+ if (!(0, java_1.isIdentifier)(annotType))
46
+ return a;
47
+ if (annotType.simpleName !== 'NgModule')
48
+ return a;
49
+ if (!((_b = (_a = a.arguments) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.length))
50
+ return a;
51
+ const firstArg = a.arguments.elements[0].element;
52
+ if (firstArg.kind !== java_1.J.Kind.NewClass)
53
+ return a;
54
+ const newClass = firstArg;
55
+ if (!newClass.body)
56
+ return a;
57
+ let importsIndex = -1;
58
+ let providersIndex = -1;
59
+ for (let i = 0; i < newClass.body.statements.length; i++) {
60
+ const stmt = newClass.body.statements[i].element;
61
+ if (stmt.kind !== javascript_1.JS.Kind.PropertyAssignment)
62
+ continue;
63
+ const prop = stmt;
64
+ const nameExpr = prop.name.element;
65
+ if (!(0, java_1.isIdentifier)(nameExpr))
66
+ continue;
67
+ if (nameExpr.simpleName === 'imports') {
68
+ importsIndex = i;
69
+ }
70
+ else if (nameExpr.simpleName === 'providers') {
71
+ providersIndex = i;
72
+ }
73
+ }
74
+ if (importsIndex === -1)
75
+ return a;
76
+ const importsStmt = newClass.body.statements[importsIndex].element;
77
+ const importsArray = importsStmt.initializer;
78
+ if (!((_c = importsArray === null || importsArray === void 0 ? void 0 : importsArray.initializer) === null || _c === void 0 ? void 0 : _c.elements))
79
+ return a;
80
+ const elements = importsArray.initializer.elements;
81
+ const httpModules = [];
82
+ const testingModules = [];
83
+ for (let i = 0; i < elements.length; i++) {
84
+ const elem = elements[i].element;
85
+ if (elem.kind === java_1.J.Kind.Identifier) {
86
+ const name = elem.simpleName;
87
+ if (HTTP_MODULES.has(name)) {
88
+ httpModules.push({ index: i, name });
89
+ }
90
+ else if (TESTING_MODULES.has(name)) {
91
+ testingModules.push({ index: i, name });
92
+ }
93
+ }
94
+ else if (elem.kind === java_1.J.Kind.MethodInvocation) {
95
+ const xsrfOpts = (0, javascript_1.capture)('xsrfOpts');
96
+ const match = yield (0, javascript_1.pattern) `HttpClientXsrfModule.withOptions(${xsrfOpts})`.match(elem, this.cursor);
97
+ if (match) {
98
+ httpModules.push({
99
+ index: i,
100
+ name: 'HttpClientXsrfModule',
101
+ xsrfOptions: match.get(xsrfOpts),
102
+ });
103
+ }
104
+ }
105
+ }
106
+ if (httpModules.length === 0 && testingModules.length === 0)
107
+ return a;
108
+ const indicesToRemove = new Set([
109
+ ...httpModules.map(m => m.index),
110
+ ...testingModules.map(m => m.index),
111
+ ]);
112
+ for (const mod of httpModules) {
113
+ (0, javascript_1.maybeRemoveImport)(this, '@angular/common/http', mod.name);
114
+ }
115
+ for (const mod of testingModules) {
116
+ (0, javascript_1.maybeRemoveImport)(this, '@angular/common/http/testing', mod.name);
117
+ }
118
+ const features = [];
119
+ let hasXsrfOptions = false;
120
+ let xsrfOptionsNode = null;
121
+ if (httpModules.length > 0) {
122
+ (0, javascript_1.maybeAddImport)(this, { module: '@angular/common/http', member: 'provideHttpClient', onlyIfReferenced: false });
123
+ for (const mod of httpModules) {
124
+ if (mod.name === 'HttpClientJsonpModule') {
125
+ features.push('withJsonpSupport');
126
+ (0, javascript_1.maybeAddImport)(this, { module: '@angular/common/http', member: 'withJsonpSupport', onlyIfReferenced: false });
127
+ }
128
+ else if (mod.name === 'HttpClientXsrfModule') {
129
+ if (mod.xsrfOptions) {
130
+ features.push('withXsrfConfiguration');
131
+ hasXsrfOptions = true;
132
+ xsrfOptionsNode = mod.xsrfOptions;
133
+ }
134
+ (0, javascript_1.maybeAddImport)(this, { module: '@angular/common/http', member: 'withXsrfConfiguration', onlyIfReferenced: false });
135
+ }
136
+ }
137
+ }
138
+ if (testingModules.length > 0) {
139
+ (0, javascript_1.maybeAddImport)(this, { module: '@angular/common/http/testing', member: 'provideHttpClientTesting', onlyIfReferenced: false });
140
+ }
141
+ // Build new provider nodes using templates
142
+ const newProviders = [];
143
+ if (httpModules.length > 0) {
144
+ const builder = javascript_1.Template.builder().code('provideHttpClient(');
145
+ for (let i = 0; i < features.length; i++) {
146
+ if (i > 0)
147
+ builder.code(', ');
148
+ if (features[i] === 'withXsrfConfiguration' && hasXsrfOptions && xsrfOptionsNode) {
149
+ builder.code('withXsrfConfiguration(').param(xsrfOptionsNode).code(')');
150
+ }
151
+ else {
152
+ builder.code(`${features[i]}()`);
153
+ }
154
+ }
155
+ builder.code(')');
156
+ const provideCall = yield builder.build().apply(a, this.cursor);
157
+ newProviders.push({
158
+ kind: java_1.J.Kind.RightPadded,
159
+ element: Object.assign(Object.assign({}, provideCall), { prefix: java_1.singleSpace }),
160
+ after: java_1.emptySpace,
161
+ markers: rewrite_2.emptyMarkers,
162
+ });
163
+ }
164
+ if (testingModules.length > 0) {
165
+ const testingCall = yield (0, javascript_1.template) `provideHttpClientTesting()`.apply(a, this.cursor);
166
+ newProviders.push({
167
+ kind: java_1.J.Kind.RightPadded,
168
+ element: Object.assign(Object.assign({}, testingCall), { prefix: java_1.singleSpace }),
169
+ after: java_1.emptySpace,
170
+ markers: rewrite_2.emptyMarkers,
171
+ });
172
+ }
173
+ const existingStmts = newClass.body.statements;
174
+ const newStatements = [...existingStmts];
175
+ // 1. Remove HTTP modules from imports array
176
+ const origContainer = importsArray.initializer;
177
+ const filteredElements = origContainer.elements.filter((_, i) => !indicesToRemove.has(i));
178
+ const newImportsStmt = Object.assign(Object.assign({}, importsStmt), { initializer: Object.assign(Object.assign({}, importsArray), { initializer: Object.assign(Object.assign({}, origContainer), { elements: filteredElements }) }) });
179
+ newStatements[importsIndex] = Object.assign(Object.assign({}, newStatements[importsIndex]), { element: newImportsStmt });
180
+ // 2. Add providers
181
+ if (providersIndex !== -1) {
182
+ const providersStmt = newStatements[providersIndex].element;
183
+ const provArray = providersStmt.initializer;
184
+ const provContainer = provArray.initializer;
185
+ const hasRealElements = (_d = provContainer.elements) === null || _d === void 0 ? void 0 : _d.some((e) => e.element && (e.element.kind === java_1.J.Kind.Identifier
186
+ || e.element.kind === java_1.J.Kind.MethodInvocation
187
+ || e.element.kind === java_1.J.Kind.NewClass
188
+ || e.element.kind === javascript_1.JS.Kind.PropertyAssignment));
189
+ const existingElements = hasRealElements ? provContainer.elements : [];
190
+ const newProvStmt = Object.assign(Object.assign({}, providersStmt), { initializer: Object.assign(Object.assign({}, provArray), { initializer: Object.assign(Object.assign({}, provContainer), { elements: [...existingElements, ...newProviders] }) }) });
191
+ newStatements[providersIndex] = Object.assign(Object.assign({}, newStatements[providersIndex]), { element: newProvStmt });
192
+ }
193
+ else {
194
+ const refProp = existingStmts[0].element;
195
+ newStatements.push({
196
+ kind: java_1.J.Kind.RightPadded,
197
+ element: buildProvidersProperty(newProviders, refProp.prefix),
198
+ after: java_1.emptySpace,
199
+ markers: rewrite_2.emptyMarkers,
200
+ });
201
+ }
202
+ const newBody = Object.assign(Object.assign({}, newClass.body), { statements: newStatements });
203
+ const newNewClass = Object.assign(Object.assign({}, newClass), { body: newBody });
204
+ return Object.assign(Object.assign({}, a), { arguments: Object.assign(Object.assign({}, a.arguments), { elements: [Object.assign(Object.assign({}, a.arguments.elements[0]), { element: newNewClass })] }) });
205
+ });
206
+ }
207
+ }();
208
+ });
209
+ }
210
+ }
211
+ exports.ReplaceHttpClientModule = ReplaceHttpClientModule;
212
+ function buildProvidersProperty(providerElements, propPrefix) {
213
+ return {
214
+ kind: javascript_1.JS.Kind.PropertyAssignment,
215
+ id: (0, rewrite_2.randomId)(),
216
+ markers: rewrite_2.emptyMarkers,
217
+ prefix: propPrefix,
218
+ name: {
219
+ kind: java_1.J.Kind.RightPadded,
220
+ element: {
221
+ kind: java_1.J.Kind.Identifier,
222
+ id: (0, rewrite_2.randomId)(),
223
+ markers: rewrite_2.emptyMarkers,
224
+ prefix: java_1.emptySpace,
225
+ annotations: [],
226
+ simpleName: 'providers',
227
+ },
228
+ after: java_1.emptySpace,
229
+ markers: rewrite_2.emptyMarkers,
230
+ },
231
+ assigmentToken: "Colon",
232
+ initializer: {
233
+ kind: java_1.J.Kind.NewArray,
234
+ id: (0, rewrite_2.randomId)(),
235
+ markers: rewrite_2.emptyMarkers,
236
+ prefix: java_1.singleSpace,
237
+ typeExpression: null,
238
+ dimensions: [],
239
+ initializer: {
240
+ kind: 'org.openrewrite.java.tree.JContainer',
241
+ before: java_1.emptySpace,
242
+ markers: rewrite_2.emptyMarkers,
243
+ elements: providerElements,
244
+ },
245
+ },
246
+ };
247
+ }
248
+ //# sourceMappingURL=replace-http-client-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-http-client-module.js","sourceRoot":"","sources":["../../src/migration/replace-http-client-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class ReplaceInitialNavigation extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.replace-initial-navigation";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=replace-initial-navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-initial-navigation.d.ts","sourceRoot":"","sources":["../../src/migration/replace-initial-navigation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,wBAAyB,SAAQ,MAAM;IAChD,QAAQ,CAAC,IAAI,kEAAkE;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+C;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAG+D;IAErF,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAqD9D"}
@@ -0,0 +1,80 @@
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.ReplaceInitialNavigation = 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
+ class ReplaceInitialNavigation extends rewrite_1.Recipe {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.name = "org.openrewrite.angular.migration.replace-initial-navigation";
26
+ this.displayName = "Replace `initialNavigation` option values";
27
+ this.description = "Replaces deprecated `initialNavigation` router option values: " +
28
+ "`'legacy_enabled'` and `true` become `'enabledBlocking'`, `'legacy_disabled'` and `false` become `'disabled'`, " +
29
+ "and `'enabled'` becomes `'enabledNonBlocking'`. " +
30
+ "The legacy values were removed in Angular 11; `'enabled'` was renamed in Angular 14.";
31
+ }
32
+ editor() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return new class extends javascript_1.JavaScriptVisitor {
35
+ visitPropertyAssignment(prop, p) {
36
+ const _super = Object.create(null, {
37
+ visitPropertyAssignment: { get: () => super.visitPropertyAssignment }
38
+ });
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ let pa = yield _super.visitPropertyAssignment.call(this, prop, p);
41
+ if (!pa)
42
+ return pa;
43
+ const nameExpr = pa.name.element;
44
+ if (!(0, java_1.isIdentifier)(nameExpr) || nameExpr.simpleName !== 'initialNavigation')
45
+ return pa;
46
+ if (!pa.initializer)
47
+ return pa;
48
+ if ((0, java_1.isLiteral)(pa.initializer)) {
49
+ const lit = pa.initializer;
50
+ const replacements = {
51
+ 'legacy_enabled': 'enabledBlocking',
52
+ 'legacy_disabled': 'disabled',
53
+ 'enabled': 'enabledNonBlocking',
54
+ };
55
+ if (typeof lit.value === 'string' && lit.value in replacements) {
56
+ const newValue = replacements[lit.value];
57
+ return (0, mutative_1.create)(pa, draft => {
58
+ draft.initializer = Object.assign(Object.assign({}, lit), { value: newValue, valueSource: `'${newValue}'` });
59
+ });
60
+ }
61
+ if (lit.value === true) {
62
+ return (0, mutative_1.create)(pa, draft => {
63
+ draft.initializer = Object.assign(Object.assign({}, lit), { value: 'enabledBlocking', valueSource: `'enabledBlocking'` });
64
+ });
65
+ }
66
+ if (lit.value === false) {
67
+ return (0, mutative_1.create)(pa, draft => {
68
+ draft.initializer = Object.assign(Object.assign({}, lit), { value: 'disabled', valueSource: `'disabled'` });
69
+ });
70
+ }
71
+ }
72
+ return pa;
73
+ });
74
+ }
75
+ }();
76
+ });
77
+ }
78
+ }
79
+ exports.ReplaceInitialNavigation = ReplaceInitialNavigation;
80
+ //# sourceMappingURL=replace-initial-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-initial-navigation.js","sourceRoot":"","sources":["../../src/migration/replace-initial-navigation.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAsE;AACtE,oDAAqE;AACrE,uCAAgC;AAEhC,MAAa,wBAAyB,SAAQ,gBAAM;IAApD;;QACa,SAAI,GAAG,8DAA8D,CAAC;QACtE,gBAAW,GAAW,2CAA2C,CAAC;QAClE,gBAAW,GAAW,gEAAgE;YAC3F,iHAAiH;YACjH,kDAAkD;YAClD,sFAAsF,CAAC;IAuD/F,CAAC;IArDS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,uBAAuB,CAAC,IAA2B,EAAE,CAAmB;;;;;wBACnF,IAAI,EAAE,GAAG,MAAM,OAAM,uBAAuB,YAAC,IAAI,EAAE,CAAC,CAA0B,CAAC;wBAC/E,IAAI,CAAC,EAAE;4BAAE,OAAO,EAAE,CAAC;wBAEnB,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;wBACjC,IAAI,CAAC,IAAA,mBAAY,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAmB;4BAAE,OAAO,EAAE,CAAC;wBAEtF,IAAI,CAAC,EAAE,CAAC,WAAW;4BAAE,OAAO,EAAE,CAAC;wBAE/B,IAAI,IAAA,gBAAS,EAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;4BAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,WAAwB,CAAC;4BACxC,MAAM,YAAY,GAA2B;gCACzC,gBAAgB,EAAE,iBAAiB;gCACnC,iBAAiB,EAAE,UAAU;gCAC7B,SAAS,EAAE,oBAAoB;6BAClC,CAAC;4BAEF,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;gCAC7D,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gCACzC,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;oCACrB,KAAa,CAAC,WAAW,mCACnB,GAAG,KACN,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,IAAI,QAAQ,GAAG,GAC/B,CAAC;gCACN,CAAC,CAA0B,CAAC;4BAChC,CAAC;4BACD,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gCACrB,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;oCACrB,KAAa,CAAC,WAAW,mCACnB,GAAG,KACN,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,mBAAmB,GACnC,CAAC;gCACN,CAAC,CAA0B,CAAC;4BAChC,CAAC;4BACD,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gCACtB,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;oCACrB,KAAa,CAAC,WAAW,mCACnB,GAAG,KACN,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,YAAY,GAC5B,CAAC;gCACN,CAAC,CAA0B,CAAC;4BAChC,CAAC;wBACL,CAAC;wBAED,OAAO,EAAE,CAAC;oBACd,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AA7DD,4DA6DC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class ReplaceInjectFlags extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.replace-inject-flags";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=replace-inject-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-inject-flags.d.ts","sourceRoot":"","sources":["../../src/migration/replace-inject-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAmD3E,qBAAa,kBAAmB,SAAQ,MAAM;IAC1C,QAAQ,CAAC,IAAI,4DAA4D;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+C;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAqN;IAE3O,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA0B9D"}
@@ -0,0 +1,101 @@
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.ReplaceInjectFlags = 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 FLAG_TO_OPTION = {
17
+ 'Optional': 'optional',
18
+ 'Host': 'host',
19
+ 'Self': 'self',
20
+ 'SkipSelf': 'skipSelf',
21
+ };
22
+ function collectInjectFlags(expr) {
23
+ if (expr.kind === java_1.J.Kind.FieldAccess) {
24
+ const fieldAccess = expr;
25
+ if (fieldAccess.target.kind !== java_1.J.Kind.Identifier)
26
+ return undefined;
27
+ if (fieldAccess.target.simpleName !== 'InjectFlags')
28
+ return undefined;
29
+ const flagName = fieldAccess.name.element.simpleName;
30
+ if (flagName === 'Default')
31
+ return [];
32
+ const option = FLAG_TO_OPTION[flagName];
33
+ return option ? [option] : undefined;
34
+ }
35
+ if (expr.kind === java_1.J.Kind.Binary) {
36
+ const binary = expr;
37
+ if (binary.operator.element !== "BitOr" /* J.Binary.Type.BitOr */)
38
+ return undefined;
39
+ const left = collectInjectFlags(binary.left);
40
+ if (!left)
41
+ return undefined;
42
+ const right = collectInjectFlags(binary.right);
43
+ if (!right)
44
+ return undefined;
45
+ return [...left, ...right];
46
+ }
47
+ return undefined;
48
+ }
49
+ function buildOptionsTemplate(injectName, firstArg, options) {
50
+ if (options.length === 0) {
51
+ return (0, javascript_1.template) `${injectName}(${firstArg})`;
52
+ }
53
+ const objectLiteral = '{' + options.map(o => `${o}: true`).join(', ') + '}';
54
+ return javascript_1.Template.builder()
55
+ .param(injectName)
56
+ .code('(')
57
+ .param(firstArg)
58
+ .code(`, ${objectLiteral})`)
59
+ .build();
60
+ }
61
+ class ReplaceInjectFlags extends rewrite_1.Recipe {
62
+ constructor() {
63
+ super(...arguments);
64
+ this.name = "org.openrewrite.angular.migration.replace-inject-flags";
65
+ this.displayName = "Replace `InjectFlags` with options object";
66
+ this.description = "Replaces deprecated `InjectFlags` enum usage in `inject()` calls with the corresponding options object. For example, `inject(MyService, InjectFlags.Optional)` becomes `inject(MyService, { optional: true })`.";
67
+ }
68
+ editor() {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ return new class extends javascript_1.JavaScriptVisitor {
71
+ visitMethodInvocation(method, p) {
72
+ const _super = Object.create(null, {
73
+ visitMethodInvocation: { get: () => super.visitMethodInvocation }
74
+ });
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ var _a, _b;
77
+ const m = yield _super.visitMethodInvocation.call(this, method, p);
78
+ if (m.name.simpleName !== 'inject')
79
+ return m;
80
+ const methodType = m.methodType;
81
+ if (((_a = methodType === null || methodType === void 0 ? void 0 : methodType.declaringType) === null || _a === void 0 ? void 0 : _a.kind) !== java_1.Type.Kind.Class
82
+ || methodType.declaringType.fullyQualifiedName !== '@angular/core') {
83
+ return m;
84
+ }
85
+ const args = (_b = m.arguments) === null || _b === void 0 ? void 0 : _b.elements;
86
+ if (!args || args.length !== 2)
87
+ return m;
88
+ const options = collectInjectFlags(args[1].element);
89
+ if (!options)
90
+ return m;
91
+ (0, javascript_1.maybeRemoveImport)(this, '@angular/core', 'InjectFlags');
92
+ const t = buildOptionsTemplate(m.name, args[0].element, options);
93
+ return yield t.apply(m, this.cursor);
94
+ });
95
+ }
96
+ };
97
+ });
98
+ }
99
+ }
100
+ exports.ReplaceInjectFlags = ReplaceInjectFlags;
101
+ //# sourceMappingURL=replace-inject-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-inject-flags.js","sourceRoot":"","sources":["../../src/migration/replace-inject-flags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
2
+ export declare class ReplaceLoadChildrenString extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.replace-load-children-string";
4
+ readonly displayName = "Replace string-based `loadChildren` with dynamic `import()`";
5
+ readonly description: string;
6
+ editor(): Promise<TreeVisitor<any, ExecutionContext>>;
7
+ }
8
+ //# sourceMappingURL=replace-load-children-string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-load-children-string.d.ts","sourceRoot":"","sources":["../../src/migration/replace-load-children-string.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,oEAAoE;IACjF,QAAQ,CAAC,WAAW,iEAAiE;IACrF,QAAQ,CAAC,WAAW,SACgE;IAE9E,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA8B9D"}
@@ -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.ReplaceLoadChildrenString = 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
+ class ReplaceLoadChildrenString extends rewrite_1.Recipe {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.name = "org.openrewrite.angular.migration.replace-load-children-string";
26
+ this.displayName = "Replace string-based `loadChildren` with dynamic `import()`";
27
+ this.description = "Converts the deprecated string-based `loadChildren: 'path#Module'` syntax " +
28
+ "to dynamic imports: `loadChildren: () => import('path').then(m => m.Module)`.";
29
+ }
30
+ editor() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return new class extends javascript_1.JavaScriptVisitor {
33
+ visitPropertyAssignment(prop, p) {
34
+ const _super = Object.create(null, {
35
+ visitPropertyAssignment: { get: () => super.visitPropertyAssignment }
36
+ });
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ let pa = yield _super.visitPropertyAssignment.call(this, prop, p);
39
+ if (!pa)
40
+ return pa;
41
+ const nameExpr = pa.name.element;
42
+ if (!(0, java_1.isIdentifier)(nameExpr) || nameExpr.simpleName !== 'loadChildren')
43
+ return pa;
44
+ if (!pa.initializer)
45
+ return pa;
46
+ if (!(0, java_1.isLiteral)(pa.initializer))
47
+ return pa;
48
+ const lit = pa.initializer;
49
+ if (typeof lit.value !== 'string' || !lit.value.includes('#'))
50
+ return pa;
51
+ const hashIndex = lit.value.indexOf('#');
52
+ const path = lit.value.substring(0, hashIndex);
53
+ const moduleName = lit.value.substring(hashIndex + 1);
54
+ if (!path || !moduleName)
55
+ return pa;
56
+ const arrowFn = yield javascript_1.Template.builder()
57
+ .code(`() => import('${path}').then(m => m.${moduleName})`)
58
+ .build()
59
+ .apply(lit, this.cursor);
60
+ return (0, mutative_1.create)(pa, draft => {
61
+ draft.initializer = arrowFn;
62
+ });
63
+ });
64
+ }
65
+ }();
66
+ });
67
+ }
68
+ }
69
+ exports.ReplaceLoadChildrenString = ReplaceLoadChildrenString;
70
+ //# sourceMappingURL=replace-load-children-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-load-children-string.js","sourceRoot":"","sources":["../../src/migration/replace-load-children-string.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAgF;AAChF,oDAAqE;AACrE,uCAAgC;AAEhC,MAAa,yBAA0B,SAAQ,gBAAM;IAArD;;QACa,SAAI,GAAG,gEAAgE,CAAC;QACxE,gBAAW,GAAG,6DAA6D,CAAC;QAC5E,gBAAW,GAAG,4EAA4E;YAC/F,+EAA+E,CAAC;IAgCxF,CAAC;IA9BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,uBAAuB,CAAC,IAA2B,EAAE,CAAmB;;;;;wBACnF,IAAI,EAAE,GAAG,MAAM,OAAM,uBAAuB,YAAC,IAAI,EAAE,CAAC,CAA0B,CAAC;wBAC/E,IAAI,CAAC,EAAE;4BAAE,OAAO,EAAE,CAAC;wBAEnB,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;wBACjC,IAAI,CAAC,IAAA,mBAAY,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,cAAc;4BAAE,OAAO,EAAE,CAAC;wBACjF,IAAI,CAAC,EAAE,CAAC,WAAW;4BAAE,OAAO,EAAE,CAAC;wBAE/B,IAAI,CAAC,IAAA,gBAAS,EAAC,EAAE,CAAC,WAAW,CAAC;4BAAE,OAAO,EAAE,CAAC;wBAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,WAAwB,CAAC;wBACxC,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAAE,OAAO,EAAE,CAAC;wBAEzE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;wBACtD,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;4BAAE,OAAO,EAAE,CAAC;wBAEpC,MAAM,OAAO,GAAG,MAAM,qBAAQ,CAAC,OAAO,EAAE;6BACnC,IAAI,CAAC,iBAAiB,IAAI,kBAAkB,UAAU,GAAG,CAAC;6BAC1D,KAAK,EAAE;6BACP,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAE7B,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;4BACrB,KAAa,CAAC,WAAW,GAAG,OAAO,CAAC;wBACzC,CAAC,CAA0B,CAAC;oBAChC,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AApCD,8DAoCC"}
@@ -0,0 +1,8 @@
1
+ import { Recipe } from "@openrewrite/rewrite";
2
+ export declare class ReplaceNodeSassWithSass extends Recipe {
3
+ readonly name = "org.openrewrite.angular.migration.replace-node-sass-with-sass";
4
+ readonly displayName: string;
5
+ readonly description: string;
6
+ recipeList(): Promise<Recipe[]>;
7
+ }
8
+ //# sourceMappingURL=replace-node-sass-with-sass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-node-sass-with-sass.d.ts","sourceRoot":"","sources":["../../src/migration/replace-node-sass-with-sass.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAG5C,qBAAa,uBAAwB,SAAQ,MAAM;IAC/C,QAAQ,CAAC,IAAI,mEAAmE;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAqC;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC6C;IAEnE,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAMxC"}
@@ -0,0 +1,38 @@
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.ReplaceNodeSassWithSass = void 0;
18
+ const rewrite_1 = require("@openrewrite/rewrite");
19
+ const javascript_1 = require("@openrewrite/rewrite/javascript");
20
+ class ReplaceNodeSassWithSass extends rewrite_1.Recipe {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.name = "org.openrewrite.angular.migration.replace-node-sass-with-sass";
24
+ this.displayName = "Replace `node-sass` with `sass`";
25
+ this.description = "Replaces the deprecated `node-sass` package with `sass` (Dart Sass). " +
26
+ "Angular 12 requires Dart Sass; `node-sass` is no longer supported.";
27
+ }
28
+ recipeList() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ return [
31
+ new javascript_1.RemoveDependency({ packageName: "node-sass" }),
32
+ new javascript_1.AddDependency({ packageName: "sass", version: "^1.35.0", scope: "devDependencies" }),
33
+ ];
34
+ });
35
+ }
36
+ }
37
+ exports.ReplaceNodeSassWithSass = ReplaceNodeSassWithSass;
38
+ //# sourceMappingURL=replace-node-sass-with-sass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-node-sass-with-sass.js","sourceRoot":"","sources":["../../src/migration/replace-node-sass-with-sass.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA4C;AAC5C,gEAAgF;AAEhF,MAAa,uBAAwB,SAAQ,gBAAM;IAAnD;;QACa,SAAI,GAAG,+DAA+D,CAAC;QACvE,gBAAW,GAAW,iCAAiC,CAAC;QACxD,gBAAW,GAAW,uEAAuE;YAClG,oEAAoE,CAAC;IAQ7E,CAAC;IANS,UAAU;;YACZ,OAAO;gBACH,IAAI,6BAAgB,CAAC,EAAC,WAAW,EAAE,WAAW,EAAC,CAAC;gBAChD,IAAI,0BAAa,CAAC,EAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC;aACzF,CAAC;QACN,CAAC;KAAA;CACJ;AAZD,0DAYC"}