@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.
- package/dist/index.d.ts +107 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +441 -0
- package/dist/index.js.map +1 -0
- package/dist/migration/add-default-configuration.d.ts +8 -0
- package/dist/migration/add-default-configuration.d.ts.map +1 -0
- package/dist/migration/add-default-configuration.js +124 -0
- package/dist/migration/add-default-configuration.js.map +1 -0
- package/dist/migration/add-localize-polyfill.d.ts +8 -0
- package/dist/migration/add-localize-polyfill.d.ts.map +1 -0
- package/dist/migration/add-localize-polyfill.js +78 -0
- package/dist/migration/add-localize-polyfill.js.map +1 -0
- package/dist/migration/add-module-with-providers-generic.d.ts +8 -0
- package/dist/migration/add-module-with-providers-generic.d.ts.map +1 -0
- package/dist/migration/add-module-with-providers-generic.js +114 -0
- package/dist/migration/add-module-with-providers-generic.js.map +1 -0
- package/dist/migration/add-static-false-to-view-queries.d.ts +8 -0
- package/dist/migration/add-static-false-to-view-queries.d.ts.map +1 -0
- package/dist/migration/add-static-false-to-view-queries.js +100 -0
- package/dist/migration/add-static-false-to-view-queries.js.map +1 -0
- package/dist/migration/add-testbed-teardown.d.ts +8 -0
- package/dist/migration/add-testbed-teardown.d.ts.map +1 -0
- package/dist/migration/add-testbed-teardown.js +62 -0
- package/dist/migration/add-testbed-teardown.js.map +1 -0
- package/dist/migration/enable-aot-build.d.ts +8 -0
- package/dist/migration/enable-aot-build.d.ts.map +1 -0
- package/dist/migration/enable-aot-build.js +123 -0
- package/dist/migration/enable-aot-build.js.map +1 -0
- package/dist/migration/explicit-standalone-flag.d.ts +8 -0
- package/dist/migration/explicit-standalone-flag.d.ts.map +1 -0
- package/dist/migration/explicit-standalone-flag.js +99 -0
- package/dist/migration/explicit-standalone-flag.js.map +1 -0
- package/dist/migration/migrate-constructor-to-inject.d.ts +8 -0
- package/dist/migration/migrate-constructor-to-inject.d.ts.map +1 -0
- package/dist/migration/migrate-constructor-to-inject.js +162 -0
- package/dist/migration/migrate-constructor-to-inject.js.map +1 -0
- package/dist/migration/migrate-input-to-signal.d.ts +8 -0
- package/dist/migration/migrate-input-to-signal.d.ts.map +1 -0
- package/dist/migration/migrate-input-to-signal.js +293 -0
- package/dist/migration/migrate-input-to-signal.js.map +1 -0
- package/dist/migration/migrate-output-to-signal.d.ts +8 -0
- package/dist/migration/migrate-output-to-signal.d.ts.map +1 -0
- package/dist/migration/migrate-output-to-signal.js +259 -0
- package/dist/migration/migrate-output-to-signal.js.map +1 -0
- package/dist/migration/migrate-query-to-signal.d.ts +8 -0
- package/dist/migration/migrate-query-to-signal.d.ts.map +1 -0
- package/dist/migration/migrate-query-to-signal.js +256 -0
- package/dist/migration/migrate-query-to-signal.js.map +1 -0
- package/dist/migration/migrate-to-solution-style-tsconfig.d.ts +17 -0
- package/dist/migration/migrate-to-solution-style-tsconfig.d.ts.map +1 -0
- package/dist/migration/migrate-to-solution-style-tsconfig.js +153 -0
- package/dist/migration/migrate-to-solution-style-tsconfig.js.map +1 -0
- package/dist/migration/move-document-to-core.d.ts +16 -0
- package/dist/migration/move-document-to-core.d.ts.map +1 -0
- package/dist/migration/move-document-to-core.js +48 -0
- package/dist/migration/move-document-to-core.js.map +1 -0
- package/dist/migration/remove-aot-summaries.d.ts +8 -0
- package/dist/migration/remove-aot-summaries.d.ts.map +1 -0
- package/dist/migration/remove-aot-summaries.js +90 -0
- package/dist/migration/remove-aot-summaries.js.map +1 -0
- package/dist/migration/remove-browser-module-with-server-transition.d.ts +8 -0
- package/dist/migration/remove-browser-module-with-server-transition.d.ts.map +1 -0
- package/dist/migration/remove-browser-module-with-server-transition.js +173 -0
- package/dist/migration/remove-browser-module-with-server-transition.js.map +1 -0
- package/dist/migration/remove-component-factory-resolver.d.ts +8 -0
- package/dist/migration/remove-component-factory-resolver.d.ts.map +1 -0
- package/dist/migration/remove-component-factory-resolver.js +70 -0
- package/dist/migration/remove-component-factory-resolver.js.map +1 -0
- package/dist/migration/remove-default-project.d.ts +8 -0
- package/dist/migration/remove-default-project.d.ts.map +1 -0
- package/dist/migration/remove-default-project.js +59 -0
- package/dist/migration/remove-default-project.js.map +1 -0
- package/dist/migration/remove-empty-ng-on-init.d.ts +8 -0
- package/dist/migration/remove-empty-ng-on-init.d.ts.map +1 -0
- package/dist/migration/remove-empty-ng-on-init.js +98 -0
- package/dist/migration/remove-empty-ng-on-init.js.map +1 -0
- package/dist/migration/remove-enable-ivy.d.ts +8 -0
- package/dist/migration/remove-enable-ivy.d.ts.map +1 -0
- package/dist/migration/remove-enable-ivy.js +78 -0
- package/dist/migration/remove-enable-ivy.js.map +1 -0
- package/dist/migration/remove-entry-components.d.ts +8 -0
- package/dist/migration/remove-entry-components.d.ts.map +1 -0
- package/dist/migration/remove-entry-components.js +101 -0
- package/dist/migration/remove-entry-components.js.map +1 -0
- package/dist/migration/remove-es5-browser-support.d.ts +8 -0
- package/dist/migration/remove-es5-browser-support.d.ts.map +1 -0
- package/dist/migration/remove-es5-browser-support.js +74 -0
- package/dist/migration/remove-es5-browser-support.js.map +1 -0
- package/dist/migration/remove-extract-css.d.ts +8 -0
- package/dist/migration/remove-extract-css.d.ts.map +1 -0
- package/dist/migration/remove-extract-css.js +76 -0
- package/dist/migration/remove-extract-css.js.map +1 -0
- package/dist/migration/remove-ie-polyfills.d.ts +8 -0
- package/dist/migration/remove-ie-polyfills.d.ts.map +1 -0
- package/dist/migration/remove-ie-polyfills.js +151 -0
- package/dist/migration/remove-ie-polyfills.js.map +1 -0
- package/dist/migration/remove-module-id.d.ts +8 -0
- package/dist/migration/remove-module-id.d.ts.map +1 -0
- package/dist/migration/remove-module-id.js +81 -0
- package/dist/migration/remove-module-id.js.map +1 -0
- package/dist/migration/remove-relative-link-resolution.d.ts +8 -0
- package/dist/migration/remove-relative-link-resolution.d.ts.map +1 -0
- package/dist/migration/remove-relative-link-resolution.js +84 -0
- package/dist/migration/remove-relative-link-resolution.js.map +1 -0
- package/dist/migration/remove-standalone-true.d.ts +8 -0
- package/dist/migration/remove-standalone-true.d.ts.map +1 -0
- package/dist/migration/remove-standalone-true.js +73 -0
- package/dist/migration/remove-standalone-true.js.map +1 -0
- package/dist/migration/remove-static-false.d.ts +8 -0
- package/dist/migration/remove-static-false.d.ts.map +1 -0
- package/dist/migration/remove-static-false.js +90 -0
- package/dist/migration/remove-static-false.js.map +1 -0
- package/dist/migration/remove-zone-js-polyfill.d.ts +8 -0
- package/dist/migration/remove-zone-js-polyfill.d.ts.map +1 -0
- package/dist/migration/remove-zone-js-polyfill.js +73 -0
- package/dist/migration/remove-zone-js-polyfill.js.map +1 -0
- package/dist/migration/rename-after-render.d.ts +8 -0
- package/dist/migration/rename-after-render.d.ts.map +1 -0
- package/dist/migration/rename-after-render.js +52 -0
- package/dist/migration/rename-after-render.js.map +1 -0
- package/dist/migration/rename-check-no-changes.d.ts +8 -0
- package/dist/migration/rename-check-no-changes.d.ts.map +1 -0
- package/dist/migration/rename-check-no-changes.js +48 -0
- package/dist/migration/rename-check-no-changes.js.map +1 -0
- package/dist/migration/rename-file.d.ts +14 -0
- package/dist/migration/rename-file.d.ts.map +1 -0
- package/dist/migration/rename-file.js +124 -0
- package/dist/migration/rename-file.js.map +1 -0
- package/dist/migration/rename-pending-tasks.d.ts +8 -0
- package/dist/migration/rename-pending-tasks.d.ts.map +1 -0
- package/dist/migration/rename-pending-tasks.js +49 -0
- package/dist/migration/rename-pending-tasks.js.map +1 -0
- package/dist/migration/rename-zoneless-provider.d.ts +8 -0
- package/dist/migration/rename-zoneless-provider.d.ts.map +1 -0
- package/dist/migration/rename-zoneless-provider.js +48 -0
- package/dist/migration/rename-zoneless-provider.js.map +1 -0
- package/dist/migration/replace-async-with-wait-for-async.d.ts +8 -0
- package/dist/migration/replace-async-with-wait-for-async.d.ts.map +1 -0
- package/dist/migration/replace-async-with-wait-for-async.js +52 -0
- package/dist/migration/replace-async-with-wait-for-async.js.map +1 -0
- package/dist/migration/replace-deep-zone-js-imports.d.ts +8 -0
- package/dist/migration/replace-deep-zone-js-imports.d.ts.map +1 -0
- package/dist/migration/replace-deep-zone-js-imports.js +144 -0
- package/dist/migration/replace-deep-zone-js-imports.js.map +1 -0
- package/dist/migration/replace-http-client-module.d.ts +8 -0
- package/dist/migration/replace-http-client-module.d.ts.map +1 -0
- package/dist/migration/replace-http-client-module.js +248 -0
- package/dist/migration/replace-http-client-module.js.map +1 -0
- package/dist/migration/replace-initial-navigation.d.ts +8 -0
- package/dist/migration/replace-initial-navigation.d.ts.map +1 -0
- package/dist/migration/replace-initial-navigation.js +80 -0
- package/dist/migration/replace-initial-navigation.js.map +1 -0
- package/dist/migration/replace-inject-flags.d.ts +8 -0
- package/dist/migration/replace-inject-flags.d.ts.map +1 -0
- package/dist/migration/replace-inject-flags.js +101 -0
- package/dist/migration/replace-inject-flags.js.map +1 -0
- package/dist/migration/replace-load-children-string.d.ts +8 -0
- package/dist/migration/replace-load-children-string.d.ts.map +1 -0
- package/dist/migration/replace-load-children-string.js +70 -0
- package/dist/migration/replace-load-children-string.js.map +1 -0
- package/dist/migration/replace-node-sass-with-sass.d.ts +8 -0
- package/dist/migration/replace-node-sass-with-sass.d.ts.map +1 -0
- package/dist/migration/replace-node-sass-with-sass.js +38 -0
- package/dist/migration/replace-node-sass-with-sass.js.map +1 -0
- package/dist/migration/replace-router-link-with-href.d.ts +8 -0
- package/dist/migration/replace-router-link-with-href.d.ts.map +1 -0
- package/dist/migration/replace-router-link-with-href.js +55 -0
- package/dist/migration/replace-router-link-with-href.js.map +1 -0
- package/dist/migration/replace-testbed-get-with-inject.d.ts +8 -0
- package/dist/migration/replace-testbed-get-with-inject.d.ts.map +1 -0
- package/dist/migration/replace-testbed-get-with-inject.js +53 -0
- package/dist/migration/replace-testbed-get-with-inject.js.map +1 -0
- package/dist/migration/replace-untyped-forms.d.ts +8 -0
- package/dist/migration/replace-untyped-forms.d.ts.map +1 -0
- package/dist/migration/replace-untyped-forms.js +78 -0
- package/dist/migration/replace-untyped-forms.js.map +1 -0
- package/dist/migration/replace-validator-with-validators.d.ts +8 -0
- package/dist/migration/replace-validator-with-validators.d.ts.map +1 -0
- package/dist/migration/replace-validator-with-validators.js +62 -0
- package/dist/migration/replace-validator-with-validators.js.map +1 -0
- package/dist/migration/replace-view-encapsulation-native.d.ts +8 -0
- package/dist/migration/replace-view-encapsulation-native.d.ts.map +1 -0
- package/dist/migration/replace-view-encapsulation-native.js +67 -0
- package/dist/migration/replace-view-encapsulation-native.js.map +1 -0
- package/dist/migration/update-component-template-url.d.ts +28 -0
- package/dist/migration/update-component-template-url.d.ts.map +1 -0
- package/dist/migration/update-component-template-url.js +178 -0
- package/dist/migration/update-component-template-url.js.map +1 -0
- package/dist/migration/update-tsconfig-module.d.ts +8 -0
- package/dist/migration/update-tsconfig-module.d.ts.map +1 -0
- package/dist/migration/update-tsconfig-module.js +83 -0
- package/dist/migration/update-tsconfig-module.js.map +1 -0
- package/dist/migration/update-tsconfig-target.d.ts +8 -0
- package/dist/migration/update-tsconfig-target.d.ts.map +1 -0
- package/dist/migration/update-tsconfig-target.js +78 -0
- package/dist/migration/update-tsconfig-target.js.map +1 -0
- package/dist/migration/upgrade-to-angular-10.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-10.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-10.js +68 -0
- package/dist/migration/upgrade-to-angular-10.js.map +1 -0
- package/dist/migration/upgrade-to-angular-11.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-11.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-11.js +68 -0
- package/dist/migration/upgrade-to-angular-11.js.map +1 -0
- package/dist/migration/upgrade-to-angular-12.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-12.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-12.js +59 -0
- package/dist/migration/upgrade-to-angular-12.js.map +1 -0
- package/dist/migration/upgrade-to-angular-13.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-13.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-13.js +61 -0
- package/dist/migration/upgrade-to-angular-13.js.map +1 -0
- package/dist/migration/upgrade-to-angular-14.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-14.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-14.js +60 -0
- package/dist/migration/upgrade-to-angular-14.js.map +1 -0
- package/dist/migration/upgrade-to-angular-15.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-15.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-15.js +59 -0
- package/dist/migration/upgrade-to-angular-15.js.map +1 -0
- package/dist/migration/upgrade-to-angular-16.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-16.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-16.js +73 -0
- package/dist/migration/upgrade-to-angular-16.js.map +1 -0
- package/dist/migration/upgrade-to-angular-17.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-17.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-17.js +59 -0
- package/dist/migration/upgrade-to-angular-17.js.map +1 -0
- package/dist/migration/upgrade-to-angular-18.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-18.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-18.js +85 -0
- package/dist/migration/upgrade-to-angular-18.js.map +1 -0
- package/dist/migration/upgrade-to-angular-19.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-19.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-19.js +68 -0
- package/dist/migration/upgrade-to-angular-19.js.map +1 -0
- package/dist/migration/upgrade-to-angular-20.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-20.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-20.js +63 -0
- package/dist/migration/upgrade-to-angular-20.js.map +1 -0
- package/dist/migration/upgrade-to-angular-21.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-21.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-21.js +69 -0
- package/dist/migration/upgrade-to-angular-21.js.map +1 -0
- package/dist/migration/upgrade-to-angular-8.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-8.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-8.js +70 -0
- package/dist/migration/upgrade-to-angular-8.js.map +1 -0
- package/dist/migration/upgrade-to-angular-9.d.ts +8 -0
- package/dist/migration/upgrade-to-angular-9.d.ts.map +1 -0
- package/dist/migration/upgrade-to-angular-9.js +85 -0
- package/dist/migration/upgrade-to-angular-9.js.map +1 -0
- package/dist/search/find-analyze-for-entry-components-usage.d.ts +8 -0
- package/dist/search/find-analyze-for-entry-components-usage.d.ts.map +1 -0
- package/dist/search/find-analyze-for-entry-components-usage.js +66 -0
- package/dist/search/find-analyze-for-entry-components-usage.js.map +1 -0
- package/dist/search/find-angular-decorator.d.ts +8 -0
- package/dist/search/find-angular-decorator.d.ts.map +1 -0
- package/dist/search/find-angular-decorator.js +78 -0
- package/dist/search/find-angular-decorator.js.map +1 -0
- package/dist/search/find-angular-http-usage.d.ts +8 -0
- package/dist/search/find-angular-http-usage.d.ts.map +1 -0
- package/dist/search/find-angular-http-usage.js +55 -0
- package/dist/search/find-angular-http-usage.js.map +1 -0
- package/dist/search/find-animation-driver-matches-element.d.ts +8 -0
- package/dist/search/find-animation-driver-matches-element.d.ts.map +1 -0
- package/dist/search/find-animation-driver-matches-element.js +59 -0
- package/dist/search/find-animation-driver-matches-element.js.map +1 -0
- package/dist/search/find-async-test-helper-usage.d.ts +8 -0
- package/dist/search/find-async-test-helper-usage.d.ts.map +1 -0
- package/dist/search/find-async-test-helper-usage.js +65 -0
- package/dist/search/find-async-test-helper-usage.js.map +1 -0
- package/dist/search/find-bare-module-with-providers.d.ts +8 -0
- package/dist/search/find-bare-module-with-providers.d.ts.map +1 -0
- package/dist/search/find-bare-module-with-providers.js +67 -0
- package/dist/search/find-bare-module-with-providers.js.map +1 -0
- package/dist/search/find-browser-transfer-state-module-usage.d.ts +8 -0
- package/dist/search/find-browser-transfer-state-module-usage.d.ts.map +1 -0
- package/dist/search/find-browser-transfer-state-module-usage.js +65 -0
- package/dist/search/find-browser-transfer-state-module-usage.js.map +1 -0
- package/dist/search/find-common-module-usage.d.ts +8 -0
- package/dist/search/find-common-module-usage.d.ts.map +1 -0
- package/dist/search/find-common-module-usage.js +67 -0
- package/dist/search/find-common-module-usage.js.map +1 -0
- package/dist/search/find-compiler-factory-usage.d.ts +8 -0
- package/dist/search/find-compiler-factory-usage.d.ts.map +1 -0
- package/dist/search/find-compiler-factory-usage.js +70 -0
- package/dist/search/find-compiler-factory-usage.js.map +1 -0
- package/dist/search/find-date-pipe-default-timezone-usage.d.ts +8 -0
- package/dist/search/find-date-pipe-default-timezone-usage.d.ts.map +1 -0
- package/dist/search/find-date-pipe-default-timezone-usage.js +66 -0
- package/dist/search/find-date-pipe-default-timezone-usage.js.map +1 -0
- package/dist/search/find-effect-timing-usage.d.ts +8 -0
- package/dist/search/find-effect-timing-usage.d.ts.map +1 -0
- package/dist/search/find-effect-timing-usage.js +48 -0
- package/dist/search/find-effect-timing-usage.js.map +1 -0
- package/dist/search/find-empty-projectable-nodes.d.ts +8 -0
- package/dist/search/find-empty-projectable-nodes.d.ts.map +1 -0
- package/dist/search/find-empty-projectable-nodes.js +88 -0
- package/dist/search/find-empty-projectable-nodes.js.map +1 -0
- package/dist/search/find-fake-async-usage.d.ts +8 -0
- package/dist/search/find-fake-async-usage.d.ts.map +1 -0
- package/dist/search/find-fake-async-usage.js +56 -0
- package/dist/search/find-fake-async-usage.js.map +1 -0
- package/dist/search/find-hammer-js-usage.d.ts +8 -0
- package/dist/search/find-hammer-js-usage.d.ts.map +1 -0
- package/dist/search/find-hammer-js-usage.js +69 -0
- package/dist/search/find-hammer-js-usage.js.map +1 -0
- package/dist/search/find-i18n-usage.d.ts +8 -0
- package/dist/search/find-i18n-usage.d.ts.map +1 -0
- package/dist/search/find-i18n-usage.js +128 -0
- package/dist/search/find-i18n-usage.js.map +1 -0
- package/dist/search/find-karma-usage.d.ts +8 -0
- package/dist/search/find-karma-usage.d.ts.map +1 -0
- package/dist/search/find-karma-usage.js +69 -0
- package/dist/search/find-karma-usage.js.map +1 -0
- package/dist/search/find-load-children-string-usage.d.ts +8 -0
- package/dist/search/find-load-children-string-usage.d.ts.map +1 -0
- package/dist/search/find-load-children-string-usage.js +62 -0
- package/dist/search/find-load-children-string-usage.js.map +1 -0
- package/dist/search/find-missing-injectable.d.ts +8 -0
- package/dist/search/find-missing-injectable.d.ts.map +1 -0
- package/dist/search/find-missing-injectable.js +98 -0
- package/dist/search/find-missing-injectable.js.map +1 -0
- package/dist/search/find-ng-class-usage.d.ts +8 -0
- package/dist/search/find-ng-class-usage.d.ts.map +1 -0
- package/dist/search/find-ng-class-usage.js +65 -0
- package/dist/search/find-ng-class-usage.js.map +1 -0
- package/dist/search/find-ng-style-usage.d.ts +8 -0
- package/dist/search/find-ng-style-usage.d.ts.map +1 -0
- package/dist/search/find-ng-style-usage.js +65 -0
- package/dist/search/find-ng-style-usage.js.map +1 -0
- package/dist/search/find-path-match-type-usage.d.ts +8 -0
- package/dist/search/find-path-match-type-usage.d.ts.map +1 -0
- package/dist/search/find-path-match-type-usage.js +62 -0
- package/dist/search/find-path-match-type-usage.js.map +1 -0
- package/dist/search/find-platform-dynamic-server-usage.d.ts +8 -0
- package/dist/search/find-platform-dynamic-server-usage.d.ts.map +1 -0
- package/dist/search/find-platform-dynamic-server-usage.js +59 -0
- package/dist/search/find-platform-dynamic-server-usage.js.map +1 -0
- package/dist/search/find-platform-webworker-usage.d.ts +8 -0
- package/dist/search/find-platform-webworker-usage.d.ts.map +1 -0
- package/dist/search/find-platform-webworker-usage.js +54 -0
- package/dist/search/find-platform-webworker-usage.js.map +1 -0
- package/dist/search/find-platform-worker-usage.d.ts +8 -0
- package/dist/search/find-platform-worker-usage.d.ts.map +1 -0
- package/dist/search/find-platform-worker-usage.js +60 -0
- package/dist/search/find-platform-worker-usage.js.map +1 -0
- package/dist/search/find-preserve-fragment-usage.d.ts +8 -0
- package/dist/search/find-preserve-fragment-usage.d.ts.map +1 -0
- package/dist/search/find-preserve-fragment-usage.js +52 -0
- package/dist/search/find-preserve-fragment-usage.js.map +1 -0
- package/dist/search/find-preserve-query-params-usage.d.ts +8 -0
- package/dist/search/find-preserve-query-params-usage.d.ts.map +1 -0
- package/dist/search/find-preserve-query-params-usage.js +52 -0
- package/dist/search/find-preserve-query-params-usage.js.map +1 -0
- package/dist/search/find-provided-in-deprecated-usage.d.ts +8 -0
- package/dist/search/find-provided-in-deprecated-usage.d.ts.map +1 -0
- package/dist/search/find-provided-in-deprecated-usage.js +87 -0
- package/dist/search/find-provided-in-deprecated-usage.js.map +1 -0
- package/dist/search/find-reflective-injector-usage.d.ts +8 -0
- package/dist/search/find-reflective-injector-usage.d.ts.map +1 -0
- package/dist/search/find-reflective-injector-usage.js +65 -0
- package/dist/search/find-reflective-injector-usage.js.map +1 -0
- package/dist/search/find-render-application-usage.d.ts +8 -0
- package/dist/search/find-render-application-usage.d.ts.map +1 -0
- package/dist/search/find-render-application-usage.js +67 -0
- package/dist/search/find-render-application-usage.js.map +1 -0
- package/dist/search/find-render-component-type-usage.d.ts +8 -0
- package/dist/search/find-render-component-type-usage.d.ts.map +1 -0
- package/dist/search/find-render-component-type-usage.js +66 -0
- package/dist/search/find-render-component-type-usage.js.map +1 -0
- package/dist/search/find-render-module-factory-usage.d.ts +8 -0
- package/dist/search/find-render-module-factory-usage.d.ts.map +1 -0
- package/dist/search/find-render-module-factory-usage.js +65 -0
- package/dist/search/find-render-module-factory-usage.js.map +1 -0
- package/dist/search/find-renderer-usage.d.ts +8 -0
- package/dist/search/find-renderer-usage.d.ts.map +1 -0
- package/dist/search/find-renderer-usage.js +66 -0
- package/dist/search/find-renderer-usage.js.map +1 -0
- package/dist/search/find-resource-cache-provider-usage.d.ts +8 -0
- package/dist/search/find-resource-cache-provider-usage.d.ts.map +1 -0
- package/dist/search/find-resource-cache-provider-usage.js +59 -0
- package/dist/search/find-resource-cache-provider-usage.js.map +1 -0
- package/dist/search/find-root-renderer-usage.d.ts +8 -0
- package/dist/search/find-root-renderer-usage.d.ts.map +1 -0
- package/dist/search/find-root-renderer-usage.js +67 -0
- package/dist/search/find-root-renderer-usage.js.map +1 -0
- package/dist/search/find-rxjs-compat-usage.d.ts +8 -0
- package/dist/search/find-rxjs-compat-usage.d.ts.map +1 -0
- package/dist/search/find-rxjs-compat-usage.js +60 -0
- package/dist/search/find-rxjs-compat-usage.js.map +1 -0
- package/dist/search/find-server-transfer-state-module-usage.d.ts +8 -0
- package/dist/search/find-server-transfer-state-module-usage.d.ts.map +1 -0
- package/dist/search/find-server-transfer-state-module-usage.js +59 -0
- package/dist/search/find-server-transfer-state-module-usage.js.map +1 -0
- package/dist/search/find-setup-testing-router-usage.d.ts +8 -0
- package/dist/search/find-setup-testing-router-usage.d.ts.map +1 -0
- package/dist/search/find-setup-testing-router-usage.js +65 -0
- package/dist/search/find-setup-testing-router-usage.js.map +1 -0
- package/dist/search/find-testability-pending-request-usage.d.ts +8 -0
- package/dist/search/find-testability-pending-request-usage.d.ts.map +1 -0
- package/dist/search/find-testability-pending-request-usage.js +59 -0
- package/dist/search/find-testability-pending-request-usage.js.map +1 -0
- package/dist/search/find-undecorated-angular-class.d.ts +8 -0
- package/dist/search/find-undecorated-angular-class.d.ts.map +1 -0
- package/dist/search/find-undecorated-angular-class.js +87 -0
- package/dist/search/find-undecorated-angular-class.js.map +1 -0
- package/dist/search/find-with-no-dom-reuse-usage.d.ts +8 -0
- package/dist/search/find-with-no-dom-reuse-usage.d.ts.map +1 -0
- package/dist/search/find-with-no-dom-reuse-usage.js +66 -0
- package/dist/search/find-with-no-dom-reuse-usage.js.map +1 -0
- package/dist/search/find-wrapped-value-usage.d.ts +8 -0
- package/dist/search/find-wrapped-value-usage.d.ts.map +1 -0
- package/dist/search/find-wrapped-value-usage.js +66 -0
- package/dist/search/find-wrapped-value-usage.js.map +1 -0
- package/dist/search/find-zone-js-usage.d.ts +8 -0
- package/dist/search/find-zone-js-usage.d.ts.map +1 -0
- package/dist/search/find-zone-js-usage.js +65 -0
- package/dist/search/find-zone-js-usage.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class ReplaceRouterLinkWithHref extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.migration.replace-router-link-with-href";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=replace-router-link-with-href.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-router-link-with-href.d.ts","sourceRoot":"","sources":["../../src/migration/replace-router-link-with-href.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,yBAA0B,SAAQ,MAAM;IACjD,QAAQ,CAAC,IAAI,qEAAqE;IAClF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAoD;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC2C;IAEjE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAmB9D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026 the original author or authors.
|
|
4
|
+
*
|
|
5
|
+
* Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ReplaceRouterLinkWithHref = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const mutative_1 = require("mutative");
|
|
21
|
+
class ReplaceRouterLinkWithHref extends rewrite_1.Recipe {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.name = "org.openrewrite.angular.migration.replace-router-link-with-href";
|
|
25
|
+
this.displayName = "Replace `RouterLinkWithHref` with `RouterLink`";
|
|
26
|
+
this.description = "Replaces `RouterLinkWithHref` with `RouterLink` in imports and usages. " +
|
|
27
|
+
"`RouterLinkWithHref` was merged into `RouterLink` in Angular 16.";
|
|
28
|
+
}
|
|
29
|
+
editor() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
32
|
+
visitIdentifier(identifier, p) {
|
|
33
|
+
const _super = Object.create(null, {
|
|
34
|
+
visitIdentifier: { get: () => super.visitIdentifier }
|
|
35
|
+
});
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
let id = yield _super.visitIdentifier.call(this, identifier, p);
|
|
38
|
+
if (!id)
|
|
39
|
+
return id;
|
|
40
|
+
if (id.simpleName === 'RouterLinkWithHref') {
|
|
41
|
+
(0, javascript_1.maybeAddImport)(this, { module: '@angular/router', member: 'RouterLink' });
|
|
42
|
+
(0, javascript_1.maybeRemoveImport)(this, '@angular/router', 'RouterLinkWithHref');
|
|
43
|
+
return (0, mutative_1.create)(id, draft => {
|
|
44
|
+
draft.simpleName = 'RouterLink';
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return id;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.ReplaceRouterLinkWithHref = ReplaceRouterLinkWithHref;
|
|
55
|
+
//# sourceMappingURL=replace-router-link-with-href.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-router-link-with-href.js","sourceRoot":"","sources":["../../src/migration/replace-router-link-with-href.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAqG;AAErG,uCAAgC;AAEhC,MAAa,yBAA0B,SAAQ,gBAAM;IAArD;;QACa,SAAI,GAAG,iEAAiE,CAAC;QACzE,gBAAW,GAAW,gDAAgD,CAAC;QACvE,gBAAW,GAAW,yEAAyE;YACpG,kEAAkE,CAAC;IAqB3E,CAAC;IAnBS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,eAAe,CAAC,UAAwB,EAAE,CAAmB;;;;;wBACxE,IAAI,EAAE,GAAG,MAAM,OAAM,eAAe,YAAC,UAAU,EAAE,CAAC,CAAiB,CAAC;wBACpE,IAAI,CAAC,EAAE;4BAAE,OAAO,EAAE,CAAC;wBAEnB,IAAI,EAAE,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;4BACzC,IAAA,2BAAc,EAAC,IAAI,EAAE,EAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAC,CAAC,CAAC;4BACxE,IAAA,8BAAiB,EAAC,IAAI,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;4BAEjE,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;gCACtB,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;4BACpC,CAAC,CAAiB,CAAC;wBACvB,CAAC;wBAED,OAAO,EAAE,CAAC;oBACd,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AAzBD,8DAyBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class ReplaceTestBedGetWithInject extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.migration.replace-testbed-get-with-inject";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=replace-testbed-get-with-inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-testbed-get-with-inject.d.ts","sourceRoot":"","sources":["../../src/migration/replace-testbed-get-with-inject.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,2BAA4B,SAAQ,MAAM;IACnD,QAAQ,CAAC,IAAI,uEAAuE;IACpF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAqD;IACjF,QAAQ,CAAC,WAAW,EAAE,MAAM,CACiD;IAEvE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAe9D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.ReplaceTestBedGetWithInject = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const mutative_1 = require("mutative");
|
|
21
|
+
class ReplaceTestBedGetWithInject extends rewrite_1.Recipe {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.name = "org.openrewrite.angular.migration.replace-testbed-get-with-inject";
|
|
25
|
+
this.displayName = "Replace `TestBed.get()` with `TestBed.inject()`";
|
|
26
|
+
this.description = "Replaces deprecated `TestBed.get()` calls with `TestBed.inject()`. " +
|
|
27
|
+
"`TestBed.get()` was deprecated in Angular 9 and removed in Angular 13.";
|
|
28
|
+
}
|
|
29
|
+
editor() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
32
|
+
visitMethodInvocation(method, p) {
|
|
33
|
+
const _super = Object.create(null, {
|
|
34
|
+
visitMethodInvocation: { get: () => super.visitMethodInvocation }
|
|
35
|
+
});
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
let m = yield _super.visitMethodInvocation.call(this, method, p);
|
|
38
|
+
if (!m)
|
|
39
|
+
return m;
|
|
40
|
+
const args = (0, javascript_1.capture)({ variadic: true });
|
|
41
|
+
if (!(yield (0, javascript_1.pattern) `TestBed.get(${args})`.match(m, this.cursor)))
|
|
42
|
+
return m;
|
|
43
|
+
return (0, mutative_1.create)(m, draft => {
|
|
44
|
+
draft.name.simpleName = 'inject';
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ReplaceTestBedGetWithInject = ReplaceTestBedGetWithInject;
|
|
53
|
+
//# sourceMappingURL=replace-testbed-get-with-inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-testbed-get-with-inject.js","sourceRoot":"","sources":["../../src/migration/replace-testbed-get-with-inject.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAoF;AAEpF,uCAAgC;AAEhC,MAAa,2BAA4B,SAAQ,gBAAM;IAAvD;;QACa,SAAI,GAAG,mEAAmE,CAAC;QAC3E,gBAAW,GAAW,iDAAiD,CAAC;QACxE,gBAAW,GAAW,qEAAqE;YAChG,wEAAwE,CAAC;IAiBjF,CAAC;IAfS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,qBAAqB,CAAC,MAA0B,EAAE,CAAmB;;;;;wBAChF,IAAI,CAAC,GAAG,MAAM,OAAM,qBAAqB,YAAC,MAAM,EAAE,CAAC,CAAuB,CAAC;wBAC3E,IAAI,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAEjB,MAAM,IAAI,GAAG,IAAA,oBAAO,EAAI,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;wBAC1C,IAAI,CAAC,CAAA,MAAM,IAAA,oBAAO,EAAA,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;4BAAE,OAAO,CAAC,CAAC;wBAEzE,OAAO,IAAA,iBAAM,EAAC,CAAC,EAAE,KAAK,CAAC,EAAE;4BACpB,KAAK,CAAC,IAAY,CAAC,UAAU,GAAG,QAAQ,CAAC;wBAC9C,CAAC,CAAuB,CAAC;oBAC7B,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AArBD,kEAqBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Recipe } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class ReplaceUntypedForms extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.migration.replace-untyped-forms";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
recipeList(): Promise<Recipe[]>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=replace-untyped-forms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-untyped-forms.d.ts","sourceRoot":"","sources":["../../src/migration/replace-untyped-forms.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAqC3E,qBAAa,mBAAoB,SAAQ,MAAM;IAC3C,QAAQ,CAAC,IAAI,6DAA6D;IAC1E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAgD;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEkD;IAExE,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAQxC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026 the original author or authors.
|
|
4
|
+
*
|
|
5
|
+
* Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ReplaceUntypedForms = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const mutative_1 = require("mutative");
|
|
21
|
+
const MODULE = '@angular/forms';
|
|
22
|
+
const FORM_RENAMES = [
|
|
23
|
+
['FormControl', 'UntypedFormControl'],
|
|
24
|
+
['FormGroup', 'UntypedFormGroup'],
|
|
25
|
+
['FormArray', 'UntypedFormArray'],
|
|
26
|
+
['FormBuilder', 'UntypedFormBuilder'],
|
|
27
|
+
];
|
|
28
|
+
class RenameFormIdentifiers extends rewrite_1.Recipe {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.name = "org.openrewrite.angular.migration.replace-untyped-forms.rename-identifiers";
|
|
32
|
+
this.displayName = "Rename form identifiers to untyped variants";
|
|
33
|
+
this.description = "Renames form class identifiers in code usages.";
|
|
34
|
+
}
|
|
35
|
+
editor() {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const renameMap = new Map(FORM_RENAMES);
|
|
38
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
39
|
+
visitIdentifier(identifier, p) {
|
|
40
|
+
const _super = Object.create(null, {
|
|
41
|
+
visitIdentifier: { get: () => super.visitIdentifier }
|
|
42
|
+
});
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
let id = yield _super.visitIdentifier.call(this, identifier, p);
|
|
45
|
+
if (!id)
|
|
46
|
+
return id;
|
|
47
|
+
const newName = renameMap.get(id.simpleName);
|
|
48
|
+
if (!newName)
|
|
49
|
+
return id;
|
|
50
|
+
return (0, mutative_1.create)(id, draft => {
|
|
51
|
+
draft.simpleName = newName;
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
class ReplaceUntypedForms extends rewrite_1.Recipe {
|
|
60
|
+
constructor() {
|
|
61
|
+
super(...arguments);
|
|
62
|
+
this.name = "org.openrewrite.angular.migration.replace-untyped-forms";
|
|
63
|
+
this.displayName = "Replace form classes with untyped variants";
|
|
64
|
+
this.description = "Renames `FormControl`, `FormGroup`, `FormArray`, and `FormBuilder` to their " +
|
|
65
|
+
"`Untyped*` equivalents in imports and usages. Angular 14 introduced strictly typed forms, " +
|
|
66
|
+
"requiring existing untyped usages to migrate to the `Untyped*` aliases.";
|
|
67
|
+
}
|
|
68
|
+
recipeList() {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
return [
|
|
71
|
+
...FORM_RENAMES.map(([oldMember, newMember]) => new javascript_1.ChangeImport({ oldModule: MODULE, oldMember, newModule: MODULE, newMember })),
|
|
72
|
+
new RenameFormIdentifiers(),
|
|
73
|
+
];
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.ReplaceUntypedForms = ReplaceUntypedForms;
|
|
78
|
+
//# sourceMappingURL=replace-untyped-forms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-untyped-forms.js","sourceRoot":"","sources":["../../src/migration/replace-untyped-forms.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAgF;AAEhF,uCAAgC;AAEhC,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,MAAM,YAAY,GAAuB;IACrC,CAAC,aAAa,EAAE,oBAAoB,CAAC;IACrC,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACjC,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACjC,CAAC,aAAa,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,MAAM,qBAAsB,SAAQ,gBAAM;IAA1C;;QACa,SAAI,GAAG,4EAA4E,CAAC;QACpF,gBAAW,GAAW,6CAA6C,CAAC;QACpE,gBAAW,GAAW,gDAAgD,CAAC;IAkBpF,CAAC;IAhBS,MAAM;;YACR,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;YACxC,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,eAAe,CAAC,UAAwB,EAAE,CAAmB;;;;;wBACxE,IAAI,EAAE,GAAG,MAAM,OAAM,eAAe,YAAC,UAAU,EAAE,CAAC,CAAiB,CAAC;wBACpE,IAAI,CAAC,EAAE;4BAAE,OAAO,EAAE,CAAC;wBAEnB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;wBAC7C,IAAI,CAAC,OAAO;4BAAE,OAAO,EAAE,CAAC;wBAExB,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;4BACtB,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;wBAC/B,CAAC,CAAiB,CAAC;oBACvB,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AAED,MAAa,mBAAoB,SAAQ,gBAAM;IAA/C;;QACa,SAAI,GAAG,yDAAyD,CAAC;QACjE,gBAAW,GAAW,4CAA4C,CAAC;QACnE,gBAAW,GAAW,8EAA8E;YACzG,4FAA4F;YAC5F,yEAAyE,CAAC;IAUlF,CAAC;IARS,UAAU;;YACZ,OAAO;gBACH,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAC3C,IAAI,yBAAY,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CACjF;gBACD,IAAI,qBAAqB,EAAE;aAC9B,CAAC;QACN,CAAC;KAAA;CACJ;AAfD,kDAeC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class ReplaceValidatorWithValidators extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.migration.replace-validator-with-validators";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=replace-validator-with-validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-validator-with-validators.d.ts","sourceRoot":"","sources":["../../src/migration/replace-validator-with-validators.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,8BAA+B,SAAQ,MAAM;IACtD,QAAQ,CAAC,IAAI,yEAAyE;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA4D;IACxF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEyD;IAE/E,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAsB9D"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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.ReplaceValidatorWithValidators = 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 ReplaceValidatorWithValidators extends rewrite_1.Recipe {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.name = "org.openrewrite.angular.migration.replace-validator-with-validators";
|
|
26
|
+
this.displayName = "Replace `validator`/`asyncValidator` with plural forms";
|
|
27
|
+
this.description = "Renames the deprecated singular `validator` and `asyncValidator` " +
|
|
28
|
+
"property names to `validators` and `asyncValidators` (plural). " +
|
|
29
|
+
"Angular 10 deprecated the singular forms in favor of `AbstractControlOptions`.";
|
|
30
|
+
}
|
|
31
|
+
editor() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const replacements = new Map([
|
|
34
|
+
['validator', 'validators'],
|
|
35
|
+
['asyncValidator', 'asyncValidators'],
|
|
36
|
+
]);
|
|
37
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
38
|
+
visitPropertyAssignment(prop, p) {
|
|
39
|
+
const _super = Object.create(null, {
|
|
40
|
+
visitPropertyAssignment: { get: () => super.visitPropertyAssignment }
|
|
41
|
+
});
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
let pa = yield _super.visitPropertyAssignment.call(this, prop, p);
|
|
44
|
+
if (!pa)
|
|
45
|
+
return pa;
|
|
46
|
+
const nameExpr = pa.name.element;
|
|
47
|
+
if (!(0, java_1.isIdentifier)(nameExpr))
|
|
48
|
+
return pa;
|
|
49
|
+
const replacement = replacements.get(nameExpr.simpleName);
|
|
50
|
+
if (!replacement)
|
|
51
|
+
return pa;
|
|
52
|
+
return (0, mutative_1.create)(pa, draft => {
|
|
53
|
+
draft.name.element.simpleName = replacement;
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.ReplaceValidatorWithValidators = ReplaceValidatorWithValidators;
|
|
62
|
+
//# sourceMappingURL=replace-validator-with-validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-validator-with-validators.js","sourceRoot":"","sources":["../../src/migration/replace-validator-with-validators.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAsE;AACtE,oDAA0D;AAC1D,uCAAgC;AAEhC,MAAa,8BAA+B,SAAQ,gBAAM;IAA1D;;QACa,SAAI,GAAG,qEAAqE,CAAC;QAC7E,gBAAW,GAAW,wDAAwD,CAAC;QAC/E,gBAAW,GAAW,mEAAmE;YAC9F,iEAAiE;YACjE,gFAAgF,CAAC;IAwBzF,CAAC;IAtBS,MAAM;;YACR,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;gBACzB,CAAC,WAAW,EAAE,YAAY,CAAC;gBAC3B,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;aACxC,CAAC,CAAC;YACH,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;4BAAE,OAAO,EAAE,CAAC;wBAEvC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC1D,IAAI,CAAC,WAAW;4BAAE,OAAO,EAAE,CAAC;wBAE5B,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;4BACrB,KAAK,CAAC,IAAI,CAAC,OAAe,CAAC,UAAU,GAAG,WAAW,CAAC;wBACzD,CAAC,CAA0B,CAAC;oBAChC,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AA7BD,wEA6BC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class ReplaceViewEncapsulationNative extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.migration.replace-view-encapsulation-native";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=replace-view-encapsulation-native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-view-encapsulation-native.d.ts","sourceRoot":"","sources":["../../src/migration/replace-view-encapsulation-native.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAK3E,qBAAa,8BAA+B,SAAQ,MAAM;IACtD,QAAQ,CAAC,IAAI,yEAAyE;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA2E;IACvG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC4D;IAElF,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAiC9D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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.ReplaceViewEncapsulationNative = 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 ReplaceViewEncapsulationNative extends rewrite_1.Recipe {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.name = "org.openrewrite.angular.migration.replace-view-encapsulation-native";
|
|
26
|
+
this.displayName = "Replace `ViewEncapsulation.Native` with `ViewEncapsulation.ShadowDom`";
|
|
27
|
+
this.description = "Replaces `ViewEncapsulation.Native` with `ViewEncapsulation.ShadowDom`. " +
|
|
28
|
+
"`ViewEncapsulation.Native` was deprecated in Angular 6 and removed in Angular 11.";
|
|
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 !== 'encapsulation')
|
|
43
|
+
return pa;
|
|
44
|
+
if (!pa.initializer)
|
|
45
|
+
return pa;
|
|
46
|
+
if (pa.initializer.kind === java_1.J.Kind.FieldAccess) {
|
|
47
|
+
const fieldAccess = pa.initializer;
|
|
48
|
+
if (fieldAccess.target.kind !== java_1.J.Kind.Identifier)
|
|
49
|
+
return pa;
|
|
50
|
+
if (fieldAccess.target.simpleName !== 'ViewEncapsulation')
|
|
51
|
+
return pa;
|
|
52
|
+
if (fieldAccess.name.element.simpleName !== 'Native')
|
|
53
|
+
return pa;
|
|
54
|
+
return (0, mutative_1.create)(pa, draft => {
|
|
55
|
+
const fa = draft.initializer;
|
|
56
|
+
fa.name = Object.assign(Object.assign({}, fieldAccess.name), { element: Object.assign(Object.assign({}, fieldAccess.name.element), { simpleName: 'ShadowDom' }) });
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return pa;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ReplaceViewEncapsulationNative = ReplaceViewEncapsulationNative;
|
|
67
|
+
//# sourceMappingURL=replace-view-encapsulation-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-view-encapsulation-native.js","sourceRoot":"","sources":["../../src/migration/replace-view-encapsulation-native.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,gEAAsE;AACtE,oDAA0D;AAC1D,uCAAgC;AAEhC,MAAa,8BAA+B,SAAQ,gBAAM;IAA1D;;QACa,SAAI,GAAG,qEAAqE,CAAC;QAC7E,gBAAW,GAAW,uEAAuE,CAAC;QAC9F,gBAAW,GAAW,0EAA0E;YACrG,mFAAmF,CAAC;IAmC5F,CAAC;IAjCS,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,eAAe;4BAAE,OAAO,EAAE,CAAC;wBAElF,IAAI,CAAC,EAAE,CAAC,WAAW;4BAAE,OAAO,EAAE,CAAC;wBAE/B,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;4BAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,WAA4B,CAAC;4BACpD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU;gCAAE,OAAO,EAAE,CAAC;4BAC7D,IAAK,WAAW,CAAC,MAAuB,CAAC,UAAU,KAAK,mBAAmB;gCAAE,OAAO,EAAE,CAAC;4BACvF,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ;gCAAE,OAAO,EAAE,CAAC;4BAEhE,OAAO,IAAA,iBAAM,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE;gCACtB,MAAM,EAAE,GAAI,KAAa,CAAC,WAAW,CAAC;gCACtC,EAAE,CAAC,IAAI,mCACA,WAAW,CAAC,IAAI,KACnB,OAAO,kCACA,WAAW,CAAC,IAAI,CAAC,OAAO,KAC3B,UAAU,EAAE,WAAW,MAE9B,CAAC;4BACN,CAAC,CAA0B,CAAC;wBAChC,CAAC;wBAED,OAAO,EAAE,CAAC;oBACd,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AAvCD,wEAuCC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
/**
|
|
3
|
+
* Updates the templateUrl property in Angular @Component decorators.
|
|
4
|
+
*
|
|
5
|
+
* This recipe is useful for:
|
|
6
|
+
* - Refactoring template file paths after directory restructuring
|
|
7
|
+
* - Standardizing template path conventions
|
|
8
|
+
* - Mass updating template references across components
|
|
9
|
+
*
|
|
10
|
+
* Example transformations:
|
|
11
|
+
* - `templateUrl: './old-path.html'` → `templateUrl: './new-path.html'`
|
|
12
|
+
* - `templateUrl: './component.html'` → `templateUrl: './templates/component.html'`
|
|
13
|
+
*/
|
|
14
|
+
export declare class UpdateComponentTemplateUrl extends Recipe {
|
|
15
|
+
readonly name = "org.openrewrite.angular.migration.update-component-template-url";
|
|
16
|
+
readonly displayName: string;
|
|
17
|
+
readonly description: string;
|
|
18
|
+
oldTemplateUrl: string;
|
|
19
|
+
newTemplateUrl: string;
|
|
20
|
+
useRegex?: boolean;
|
|
21
|
+
constructor(options?: {
|
|
22
|
+
oldTemplateUrl?: string;
|
|
23
|
+
newTemplateUrl?: string;
|
|
24
|
+
useRegex?: boolean;
|
|
25
|
+
});
|
|
26
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=update-component-template-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-component-template-url.d.ts","sourceRoot":"","sources":["../../src/migration/update-component-template-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAU,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAKnF;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,SAAQ,MAAM;IAClD,QAAQ,CAAC,IAAI,qEAAqE;IAClF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAoC;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAgK;IAO5L,cAAc,EAAG,MAAM,CAAC;IAOxB,cAAc,EAAG,MAAM,CAAC;IAQxB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAEP,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAOxF,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAsI9D"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.UpdateComponentTemplateUrl = void 0;
|
|
19
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
20
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
21
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
22
|
+
const mutative_1 = require("mutative");
|
|
23
|
+
/**
|
|
24
|
+
* Updates the templateUrl property in Angular @Component decorators.
|
|
25
|
+
*
|
|
26
|
+
* This recipe is useful for:
|
|
27
|
+
* - Refactoring template file paths after directory restructuring
|
|
28
|
+
* - Standardizing template path conventions
|
|
29
|
+
* - Mass updating template references across components
|
|
30
|
+
*
|
|
31
|
+
* Example transformations:
|
|
32
|
+
* - `templateUrl: './old-path.html'` → `templateUrl: './new-path.html'`
|
|
33
|
+
* - `templateUrl: './component.html'` → `templateUrl: './templates/component.html'`
|
|
34
|
+
*/
|
|
35
|
+
class UpdateComponentTemplateUrl extends rewrite_1.Recipe {
|
|
36
|
+
constructor(options) {
|
|
37
|
+
var _a, _b, _c;
|
|
38
|
+
super(options);
|
|
39
|
+
this.name = "org.openrewrite.angular.migration.update-component-template-url";
|
|
40
|
+
this.displayName = "Update component `templateUrl`";
|
|
41
|
+
this.description = "Updates the `templateUrl` property value in Angular `@Component` decorators. Useful for refactoring template file paths or standardizing path conventions.";
|
|
42
|
+
(_a = this.oldTemplateUrl) !== null && _a !== void 0 ? _a : (this.oldTemplateUrl = '');
|
|
43
|
+
(_b = this.newTemplateUrl) !== null && _b !== void 0 ? _b : (this.newTemplateUrl = '');
|
|
44
|
+
(_c = this.useRegex) !== null && _c !== void 0 ? _c : (this.useRegex = false);
|
|
45
|
+
}
|
|
46
|
+
editor() {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const oldTemplateUrl = this.oldTemplateUrl;
|
|
49
|
+
const newTemplateUrl = this.newTemplateUrl;
|
|
50
|
+
const useRegex = this.useRegex;
|
|
51
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
52
|
+
visitAnnotation(annotation, p) {
|
|
53
|
+
const _super = Object.create(null, {
|
|
54
|
+
visitAnnotation: { get: () => super.visitAnnotation }
|
|
55
|
+
});
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
let a = yield _super.visitAnnotation.call(this, annotation, p);
|
|
58
|
+
if (!a) {
|
|
59
|
+
return a;
|
|
60
|
+
}
|
|
61
|
+
// Check if this is a @Component decorator
|
|
62
|
+
const annotType = a.annotationType;
|
|
63
|
+
let isComponentDecorator = false;
|
|
64
|
+
if ((0, java_1.isIdentifier)(annotType)) {
|
|
65
|
+
isComponentDecorator = annotType.simpleName === 'Component';
|
|
66
|
+
}
|
|
67
|
+
if (!isComponentDecorator) {
|
|
68
|
+
return a;
|
|
69
|
+
}
|
|
70
|
+
// Find the templateUrl property in the decorator arguments
|
|
71
|
+
if (!a.arguments || !a.arguments.elements || a.arguments.elements.length === 0) {
|
|
72
|
+
return a;
|
|
73
|
+
}
|
|
74
|
+
const firstArg = a.arguments.elements[0].element;
|
|
75
|
+
if (firstArg.kind !== java_1.J.Kind.NewClass) {
|
|
76
|
+
return a;
|
|
77
|
+
}
|
|
78
|
+
const newClass = firstArg;
|
|
79
|
+
if (!newClass.body) {
|
|
80
|
+
return a;
|
|
81
|
+
}
|
|
82
|
+
// Look for templateUrl property and check if it needs updating
|
|
83
|
+
let needsChange = false;
|
|
84
|
+
let updatedTemplateUrl = null;
|
|
85
|
+
for (const stmtPadded of newClass.body.statements) {
|
|
86
|
+
const stmt = stmtPadded.element;
|
|
87
|
+
if (stmt.kind === javascript_1.JS.Kind.PropertyAssignment) {
|
|
88
|
+
const propAssignment = stmt;
|
|
89
|
+
const nameExpr = propAssignment.name.element;
|
|
90
|
+
if ((0, java_1.isIdentifier)(nameExpr) && nameExpr.simpleName === 'templateUrl') {
|
|
91
|
+
const initializer = propAssignment.initializer;
|
|
92
|
+
if (initializer && (0, java_1.isLiteral)(initializer) && typeof initializer.value === 'string') {
|
|
93
|
+
const currentUrl = initializer.value;
|
|
94
|
+
if (useRegex) {
|
|
95
|
+
// Use regex pattern matching
|
|
96
|
+
const pattern = new RegExp(oldTemplateUrl);
|
|
97
|
+
if (pattern.test(currentUrl)) {
|
|
98
|
+
updatedTemplateUrl = currentUrl.replace(pattern, newTemplateUrl);
|
|
99
|
+
if (updatedTemplateUrl !== currentUrl) {
|
|
100
|
+
needsChange = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Use exact string matching
|
|
106
|
+
if (currentUrl === oldTemplateUrl) {
|
|
107
|
+
updatedTemplateUrl = newTemplateUrl;
|
|
108
|
+
needsChange = true;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!needsChange || !updatedTemplateUrl) {
|
|
116
|
+
return a;
|
|
117
|
+
}
|
|
118
|
+
// Apply the transformation
|
|
119
|
+
const finalUpdatedUrl = updatedTemplateUrl;
|
|
120
|
+
const modifiedAnnotation = (0, mutative_1.create)(a, draft => {
|
|
121
|
+
if (!draft.arguments || !draft.arguments.elements[0]) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const firstArgDraft = draft.arguments.elements[0].element;
|
|
125
|
+
if (!firstArgDraft.body) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
// Find and update the templateUrl property
|
|
129
|
+
for (let i = 0; i < firstArgDraft.body.statements.length; i++) {
|
|
130
|
+
const stmt = firstArgDraft.body.statements[i].element;
|
|
131
|
+
if (stmt.kind === javascript_1.JS.Kind.PropertyAssignment) {
|
|
132
|
+
const propAssignment = stmt;
|
|
133
|
+
const nameExpr = propAssignment.name.element;
|
|
134
|
+
if ((0, java_1.isIdentifier)(nameExpr) && nameExpr.simpleName === 'templateUrl') {
|
|
135
|
+
const initializer = propAssignment.initializer;
|
|
136
|
+
if (initializer && (0, java_1.isLiteral)(initializer)) {
|
|
137
|
+
// Create a new literal with the updated URL
|
|
138
|
+
const newLiteral = Object.assign(Object.assign({}, initializer), { value: finalUpdatedUrl, valueSource: `'${finalUpdatedUrl.replace(/'/g, "\\'")}'` });
|
|
139
|
+
// Create new property assignment with updated literal
|
|
140
|
+
const newPropAssignment = Object.assign(Object.assign({}, propAssignment), { initializer: newLiteral });
|
|
141
|
+
// Update the statement
|
|
142
|
+
firstArgDraft.body.statements[i] = Object.assign(Object.assign({}, firstArgDraft.body.statements[i]), { element: newPropAssignment });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
return modifiedAnnotation;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}();
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.UpdateComponentTemplateUrl = UpdateComponentTemplateUrl;
|
|
156
|
+
__decorate([
|
|
157
|
+
(0, rewrite_1.Option)({
|
|
158
|
+
displayName: "Old template URL",
|
|
159
|
+
description: "The template URL to replace. Can be an exact path (e.g., `./old.html`) or a pattern.",
|
|
160
|
+
example: "./old-template.html"
|
|
161
|
+
})
|
|
162
|
+
], UpdateComponentTemplateUrl.prototype, "oldTemplateUrl", void 0);
|
|
163
|
+
__decorate([
|
|
164
|
+
(0, rewrite_1.Option)({
|
|
165
|
+
displayName: "New template URL",
|
|
166
|
+
description: "The new template URL to use.",
|
|
167
|
+
example: "./new-template.html"
|
|
168
|
+
})
|
|
169
|
+
], UpdateComponentTemplateUrl.prototype, "newTemplateUrl", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
(0, rewrite_1.Option)({
|
|
172
|
+
displayName: "Use regex pattern",
|
|
173
|
+
description: "If `true`, treats `oldTemplateUrl` as a regex pattern and supports capture groups in `newTemplateUrl`. Default: `false`",
|
|
174
|
+
example: "true",
|
|
175
|
+
required: false
|
|
176
|
+
})
|
|
177
|
+
], UpdateComponentTemplateUrl.prototype, "useRegex", void 0);
|
|
178
|
+
//# sourceMappingURL=update-component-template-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-component-template-url.js","sourceRoot":"","sources":["../../src/migration/update-component-template-url.ts"],"names":[],"mappings":"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"}
|