@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,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.FindRootRendererUsage = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
21
|
+
class FindRootRendererUsage extends rewrite_1.Recipe {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.name = "org.openrewrite.angular.search.find-root-renderer-usage";
|
|
25
|
+
this.displayName = "Find deprecated `RootRenderer` usage";
|
|
26
|
+
this.description = "Finds imports of the deprecated `RootRenderer` from `@angular/core`. " +
|
|
27
|
+
"`RootRenderer` was part of the View Engine API, deprecated in Angular 4, and removed in Angular 9. " +
|
|
28
|
+
"Use `RendererFactory2` instead.";
|
|
29
|
+
}
|
|
30
|
+
editor() {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
33
|
+
visitImportDeclaration(jsImport, p) {
|
|
34
|
+
const _super = Object.create(null, {
|
|
35
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
36
|
+
});
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
var _a;
|
|
39
|
+
const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
|
|
40
|
+
if (!imp.moduleSpecifier)
|
|
41
|
+
return imp;
|
|
42
|
+
const moduleSpec = imp.moduleSpecifier.element;
|
|
43
|
+
if (moduleSpec.kind !== java_1.J.Kind.Literal)
|
|
44
|
+
return imp;
|
|
45
|
+
const moduleName = moduleSpec.value;
|
|
46
|
+
if (moduleName !== '@angular/core')
|
|
47
|
+
return imp;
|
|
48
|
+
const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
|
|
49
|
+
if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
|
|
50
|
+
const named = namedBindings;
|
|
51
|
+
for (const specifier of named.elements.elements) {
|
|
52
|
+
const spec = specifier.element;
|
|
53
|
+
if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'RootRenderer') {
|
|
54
|
+
return (0, rewrite_1.foundSearchResult)(imp, "`RootRenderer` was deprecated in Angular 4 and removed in Angular 9. " +
|
|
55
|
+
"Use `RendererFactory2` instead.");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return imp;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.FindRootRendererUsage = FindRootRendererUsage;
|
|
67
|
+
//# sourceMappingURL=find-root-renderer-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-root-renderer-usage.js","sourceRoot":"","sources":["../../src/search/find-root-renderer-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,qBAAsB,SAAQ,gBAAM;IAAjD;;QACa,SAAI,GAAG,yDAAyD,CAAC;QACjE,gBAAW,GAAW,sCAAsC,CAAC;QAC7D,gBAAW,GAAW,uEAAuE;YAClG,qGAAqG;YACrG,iCAAiC,CAAC;IA+B1C,CAAC;IA7BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAE/C,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;oCAC/E,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,uEAAuE;wCACvE,iCAAiC,CAAC,CAAC;gCAC3C,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AApCD,sDAoCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindRxjsCompatUsage extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-rxjs-compat-usage";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-rxjs-compat-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-rxjs-compat-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-rxjs-compat-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAM9F,qBAAa,mBAAoB,SAAQ,MAAM;IAC3C,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAuD;IACnF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAE0D;IAEhF,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAoB9D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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.FindRxjsCompatUsage = 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 RXJS_6_ENTRY_POINTS = new Set(['rxjs/operators', 'rxjs/ajax', 'rxjs/webSocket', 'rxjs/testing', 'rxjs/fetch']);
|
|
22
|
+
class FindRxjsCompatUsage extends rewrite_1.Recipe {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.name = "org.openrewrite.angular.search.find-rxjs-compat-usage";
|
|
26
|
+
this.displayName = "Find RxJS 5-style imports requiring `rxjs-compat`";
|
|
27
|
+
this.description = "Finds imports using RxJS 5-style deep import paths " +
|
|
28
|
+
"(e.g. `rxjs/Observable`, `rxjs/add/operator/map`) that require the `rxjs-compat` package. " +
|
|
29
|
+
"These should be migrated to RxJS 6+ import paths before removing `rxjs-compat`.";
|
|
30
|
+
}
|
|
31
|
+
editor() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
34
|
+
visitImportDeclaration(jsImport, p) {
|
|
35
|
+
const _super = Object.create(null, {
|
|
36
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
37
|
+
});
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
|
|
40
|
+
if (!imp.moduleSpecifier)
|
|
41
|
+
return imp;
|
|
42
|
+
const moduleSpec = imp.moduleSpecifier.element;
|
|
43
|
+
if (moduleSpec.kind !== java_1.J.Kind.Literal)
|
|
44
|
+
return imp;
|
|
45
|
+
const moduleName = moduleSpec.value;
|
|
46
|
+
if (!moduleName.startsWith('rxjs/'))
|
|
47
|
+
return imp;
|
|
48
|
+
if (moduleName === 'rxjs' || RXJS_6_ENTRY_POINTS.has(moduleName))
|
|
49
|
+
return imp;
|
|
50
|
+
return (0, rewrite_1.foundSearchResult)(imp, "RxJS 5-style deep import. Migrate to RxJS 6+ imports " +
|
|
51
|
+
"(e.g. `import { Observable } from 'rxjs'`, `import { map } from 'rxjs/operators'`) " +
|
|
52
|
+
"and remove `rxjs-compat`.");
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.FindRxjsCompatUsage = FindRxjsCompatUsage;
|
|
60
|
+
//# sourceMappingURL=find-rxjs-compat-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-rxjs-compat-usage.js","sourceRoot":"","sources":["../../src/search/find-rxjs-compat-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA4C;AAE5C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;AAErH,MAAa,mBAAoB,SAAQ,gBAAM;IAA/C;;QACa,SAAI,GAAG,uDAAuD,CAAC;QAC/D,gBAAW,GAAW,mDAAmD,CAAC;QAC1E,gBAAW,GAAW,qDAAqD;YAChF,4FAA4F;YAC5F,iFAAiF,CAAC;IAsB1F,CAAC;IApBS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;4BAAE,OAAO,GAAG,CAAC;wBAChD,IAAI,UAAU,KAAK,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;4BAAE,OAAO,GAAG,CAAC;wBAE7E,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,uDAAuD;4BACvD,qFAAqF;4BACrF,2BAA2B,CAAC,CAAC;oBACrC,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AA3BD,kDA2BC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindServerTransferStateModuleUsage extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-server-transfer-state-module-usage";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-server-transfer-state-module-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-server-transfer-state-module-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-server-transfer-state-module-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,kCAAmC,SAAQ,MAAM;IAC1D,QAAQ,CAAC,IAAI,4EAA4E;IACzF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA4C;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAkK;IAExL,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4B9D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FindServerTransferStateModuleUsage = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
16
|
+
class FindServerTransferStateModuleUsage extends rewrite_1.Recipe {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.name = "org.openrewrite.angular.search.find-server-transfer-state-module-usage";
|
|
20
|
+
this.displayName = "Find `ServerTransferStateModule` usage";
|
|
21
|
+
this.description = "Finds usages of the removed `ServerTransferStateModule` from `@angular/platform-server`. In Angular 18, `TransferState` works without providing this module.";
|
|
22
|
+
}
|
|
23
|
+
editor() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
26
|
+
visitImportDeclaration(jsImport, p) {
|
|
27
|
+
const _super = Object.create(null, {
|
|
28
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
29
|
+
});
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
var _a;
|
|
32
|
+
const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
|
|
33
|
+
if (!imp.moduleSpecifier)
|
|
34
|
+
return imp;
|
|
35
|
+
const moduleSpec = imp.moduleSpecifier.element;
|
|
36
|
+
if (moduleSpec.kind !== java_1.J.Kind.Literal)
|
|
37
|
+
return imp;
|
|
38
|
+
const moduleName = moduleSpec.value;
|
|
39
|
+
if (moduleName !== '@angular/platform-server')
|
|
40
|
+
return imp;
|
|
41
|
+
const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
|
|
42
|
+
if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
|
|
43
|
+
const named = namedBindings;
|
|
44
|
+
for (const specifier of named.elements.elements) {
|
|
45
|
+
const spec = specifier.element;
|
|
46
|
+
if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'ServerTransferStateModule') {
|
|
47
|
+
return (0, rewrite_1.foundSearchResult)(imp, "ServerTransferStateModule has been removed in Angular 18. TransferState works without this module.");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return imp;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.FindServerTransferStateModuleUsage = FindServerTransferStateModuleUsage;
|
|
59
|
+
//# sourceMappingURL=find-server-transfer-state-module-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-server-transfer-state-module-usage.js","sourceRoot":"","sources":["../../src/search/find-server-transfer-state-module-usage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,kCAAmC,SAAQ,gBAAM;IAA9D;;QACa,SAAI,GAAG,wEAAwE,CAAC;QAChF,gBAAW,GAAW,wCAAwC,CAAC;QAC/D,gBAAW,GAAW,8JAA8J,CAAC;IA8BlM,CAAC;IA5BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,0BAA0B;4BAAE,OAAO,GAAG,CAAC;wBAE1D,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,2BAA2B,EAAE,CAAC;oCAC5F,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,oGAAoG,CAAC,CAAC;gCAC9G,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAjCD,gFAiCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindSetupTestingRouterUsage extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-setup-testing-router-usage";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-setup-testing-router-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-setup-testing-router-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-setup-testing-router-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,2BAA4B,SAAQ,MAAM;IACnD,QAAQ,CAAC,IAAI,oEAAoE;IACjF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAqC;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CACyG;IAE/H,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4B9D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026 the original author or authors.
|
|
4
|
+
*
|
|
5
|
+
* Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.FindSetupTestingRouterUsage = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
21
|
+
class FindSetupTestingRouterUsage extends rewrite_1.Recipe {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.name = "org.openrewrite.angular.search.find-setup-testing-router-usage";
|
|
25
|
+
this.displayName = "Find `setupTestingRouter` usage";
|
|
26
|
+
this.description = "Finds usages of the removed `setupTestingRouter` function from `@angular/router/testing`. " +
|
|
27
|
+
"This function was removed in Angular 17. Use `RouterModule.forRoot` or `provideRouter` to set up the Router for tests instead.";
|
|
28
|
+
}
|
|
29
|
+
editor() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
32
|
+
visitImportDeclaration(jsImport, p) {
|
|
33
|
+
const _super = Object.create(null, {
|
|
34
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
35
|
+
});
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
var _a;
|
|
38
|
+
const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
|
|
39
|
+
if (!imp.moduleSpecifier)
|
|
40
|
+
return imp;
|
|
41
|
+
const moduleSpec = imp.moduleSpecifier.element;
|
|
42
|
+
if (moduleSpec.kind !== java_1.J.Kind.Literal)
|
|
43
|
+
return imp;
|
|
44
|
+
const moduleName = moduleSpec.value;
|
|
45
|
+
if (moduleName !== '@angular/router/testing')
|
|
46
|
+
return imp;
|
|
47
|
+
const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
|
|
48
|
+
if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
|
|
49
|
+
const named = namedBindings;
|
|
50
|
+
for (const specifier of named.elements.elements) {
|
|
51
|
+
const spec = specifier.element;
|
|
52
|
+
if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'setupTestingRouter') {
|
|
53
|
+
return (0, rewrite_1.foundSearchResult)(imp, "setupTestingRouter has been removed in Angular 17. Use RouterModule.forRoot or provideRouter instead.");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return imp;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.FindSetupTestingRouterUsage = FindSetupTestingRouterUsage;
|
|
65
|
+
//# sourceMappingURL=find-setup-testing-router-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-setup-testing-router-usage.js","sourceRoot":"","sources":["../../src/search/find-setup-testing-router-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,2BAA4B,SAAQ,gBAAM;IAAvD;;QACa,SAAI,GAAG,gEAAgE,CAAC;QACxE,gBAAW,GAAW,iCAAiC,CAAC;QACxD,gBAAW,GAAW,4FAA4F;YACvH,gIAAgI,CAAC;IA8BzI,CAAC;IA5BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,yBAAyB;4BAAE,OAAO,GAAG,CAAC;wBAEzD,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;oCACrF,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,uGAAuG,CAAC,CAAC;gCACjH,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAlCD,kEAkCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindTestabilityPendingRequestUsage extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-testability-pending-request-usage";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-testability-pending-request-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-testability-pending-request-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-testability-pending-request-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,kCAAmC,SAAQ,MAAM;IAC1D,QAAQ,CAAC,IAAI,2EAA2E;IACxF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAsD;IAClF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAwN;IAE9O,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4B9D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FindTestabilityPendingRequestUsage = void 0;
|
|
13
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
14
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
15
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
16
|
+
class FindTestabilityPendingRequestUsage extends rewrite_1.Recipe {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.name = "org.openrewrite.angular.search.find-testability-pending-request-usage";
|
|
20
|
+
this.displayName = "Find removed Testability pending request methods";
|
|
21
|
+
this.description = "Finds imports of `Testability` from `@angular/core`, which had `increasePendingRequestCount`, `decreasePendingRequestCount`, and `getPendingRequestCount` removed in Angular 18. These are now tracked with zones.";
|
|
22
|
+
}
|
|
23
|
+
editor() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
26
|
+
visitImportDeclaration(jsImport, p) {
|
|
27
|
+
const _super = Object.create(null, {
|
|
28
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
29
|
+
});
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
var _a;
|
|
32
|
+
const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
|
|
33
|
+
if (!imp.moduleSpecifier)
|
|
34
|
+
return imp;
|
|
35
|
+
const moduleSpec = imp.moduleSpecifier.element;
|
|
36
|
+
if (moduleSpec.kind !== java_1.J.Kind.Literal)
|
|
37
|
+
return imp;
|
|
38
|
+
const moduleName = moduleSpec.value;
|
|
39
|
+
if (moduleName !== '@angular/core')
|
|
40
|
+
return imp;
|
|
41
|
+
const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
|
|
42
|
+
if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
|
|
43
|
+
const named = namedBindings;
|
|
44
|
+
for (const specifier of named.elements.elements) {
|
|
45
|
+
const spec = specifier.element;
|
|
46
|
+
if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'Testability') {
|
|
47
|
+
return (0, rewrite_1.foundSearchResult)(imp, "Testability pending request methods (increasePendingRequestCount, decreasePendingRequestCount, getPendingRequestCount) have been removed in Angular 18.");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return imp;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.FindTestabilityPendingRequestUsage = FindTestabilityPendingRequestUsage;
|
|
59
|
+
//# sourceMappingURL=find-testability-pending-request-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-testability-pending-request-usage.js","sourceRoot":"","sources":["../../src/search/find-testability-pending-request-usage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,kCAAmC,SAAQ,gBAAM;IAA9D;;QACa,SAAI,GAAG,uEAAuE,CAAC;QAC/E,gBAAW,GAAW,kDAAkD,CAAC;QACzE,gBAAW,GAAW,oNAAoN,CAAC;IA8BxP,CAAC;IA5BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAE/C,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;oCAC9E,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,yJAAyJ,CAAC,CAAC;gCACnK,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAjCD,gFAiCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindUndecoratedAngularClass extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-undecorated-angular-class";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-undecorated-angular-class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-undecorated-angular-class.d.ts","sourceRoot":"","sources":["../../src/search/find-undecorated-angular-class.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAe9F,qBAAa,2BAA4B,SAAQ,MAAM;IACnD,QAAQ,CAAC,IAAI,mEAAmE;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAoD;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEwE;IAE9F,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CAiD9D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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.FindUndecoratedAngularClass = 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 CLASS_DECORATORS = new Set(['Component', 'Directive', 'Pipe', 'Injectable', 'NgModule']);
|
|
22
|
+
const MEMBER_DECORATORS = new Set([
|
|
23
|
+
'Input', 'Output', 'ViewChild', 'ViewChildren',
|
|
24
|
+
'ContentChild', 'ContentChildren', 'HostBinding', 'HostListener'
|
|
25
|
+
]);
|
|
26
|
+
const LIFECYCLE_HOOKS = new Set([
|
|
27
|
+
'ngOnInit', 'ngOnDestroy', 'ngOnChanges', 'ngDoCheck',
|
|
28
|
+
'ngAfterViewInit', 'ngAfterViewChecked',
|
|
29
|
+
'ngAfterContentInit', 'ngAfterContentChecked'
|
|
30
|
+
]);
|
|
31
|
+
class FindUndecoratedAngularClass extends rewrite_1.Recipe {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this.name = "org.openrewrite.angular.search.find-undecorated-angular-class";
|
|
35
|
+
this.displayName = "Find undecorated classes with Angular features";
|
|
36
|
+
this.description = "Finds classes that use Angular member decorators (`@Input`, `@Output`, `@ViewChild`, etc.) " +
|
|
37
|
+
"or implement lifecycle hooks (`ngOnInit`, `ngOnDestroy`, etc.) but lack a class-level Angular decorator. " +
|
|
38
|
+
"Angular 9 with Ivy requires all classes using Angular features to have an explicit decorator.";
|
|
39
|
+
}
|
|
40
|
+
editor() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
43
|
+
visitClassDeclaration(classDecl, p) {
|
|
44
|
+
const _super = Object.create(null, {
|
|
45
|
+
visitClassDeclaration: { get: () => super.visitClassDeclaration }
|
|
46
|
+
});
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const cd = yield _super.visitClassDeclaration.call(this, classDecl, p);
|
|
49
|
+
if (!cd)
|
|
50
|
+
return cd;
|
|
51
|
+
const hasClassDecorator = cd.leadingAnnotations.some(a => (0, java_1.isIdentifier)(a.annotationType) && CLASS_DECORATORS.has(a.annotationType.simpleName));
|
|
52
|
+
if (hasClassDecorator)
|
|
53
|
+
return cd;
|
|
54
|
+
let hasAngularFeature = false;
|
|
55
|
+
for (const stmt of cd.body.statements) {
|
|
56
|
+
const el = stmt.element;
|
|
57
|
+
if (el.kind === java_1.J.Kind.VariableDeclarations) {
|
|
58
|
+
const varDecl = el;
|
|
59
|
+
if (varDecl.leadingAnnotations.some(a => (0, java_1.isIdentifier)(a.annotationType) && MEMBER_DECORATORS.has(a.annotationType.simpleName))) {
|
|
60
|
+
hasAngularFeature = true;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (el.kind === java_1.J.Kind.MethodDeclaration) {
|
|
65
|
+
const method = el;
|
|
66
|
+
if (LIFECYCLE_HOOKS.has(method.name.simpleName)) {
|
|
67
|
+
hasAngularFeature = true;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
if (method.leadingAnnotations.some(a => (0, java_1.isIdentifier)(a.annotationType) && MEMBER_DECORATORS.has(a.annotationType.simpleName))) {
|
|
71
|
+
hasAngularFeature = true;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!hasAngularFeature)
|
|
77
|
+
return cd;
|
|
78
|
+
return (0, rewrite_1.foundSearchResult)(cd, "Class uses Angular features but has no class-level decorator. " +
|
|
79
|
+
"Angular 9 with Ivy requires an explicit `@Component`, `@Directive`, `@Pipe`, or `@Injectable` decorator.");
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}();
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.FindUndecoratedAngularClass = FindUndecoratedAngularClass;
|
|
87
|
+
//# sourceMappingURL=find-undecorated-angular-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-undecorated-angular-class.js","sourceRoot":"","sources":["../../src/search/find-undecorated-angular-class.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/F,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAC9B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc;IAC9C,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc;CACnE,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW;IACrD,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;CAChD,CAAC,CAAC;AAEH,MAAa,2BAA4B,SAAQ,gBAAM;IAAvD;;QACa,SAAI,GAAG,+DAA+D,CAAC;QACvE,gBAAW,GAAW,gDAAgD,CAAC;QACvE,gBAAW,GAAW,6FAA6F;YACxH,2GAA2G;YAC3G,+FAA+F,CAAC;IAmDxG,CAAC;IAjDS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACzC,qBAAqB,CAAC,SAA6B,EAAE,CAAmB;;;;;wBACnF,MAAM,EAAE,GAAG,MAAM,OAAM,qBAAqB,YAAC,SAAS,EAAE,CAAC,CAAuB,CAAC;wBACjF,IAAI,CAAC,EAAE;4BAAE,OAAO,EAAE,CAAC;wBAEnB,MAAM,iBAAiB,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrD,IAAA,mBAAY,EAAC,CAAC,CAAC,cAAc,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CACtF,CAAC;wBACF,IAAI,iBAAiB;4BAAE,OAAO,EAAE,CAAC;wBAEjC,IAAI,iBAAiB,GAAG,KAAK,CAAC;wBAE9B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;4BAExB,IAAI,EAAE,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gCAC1C,MAAM,OAAO,GAAG,EAA4B,CAAC;gCAC7C,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACpC,IAAA,mBAAY,EAAC,CAAC,CAAC,cAAc,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CACvF,EAAE,CAAC;oCACA,iBAAiB,GAAG,IAAI,CAAC;oCACzB,MAAM;gCACV,CAAC;4BACL,CAAC;4BAED,IAAI,EAAE,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gCACvC,MAAM,MAAM,GAAG,EAAyB,CAAC;gCACzC,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oCAC9C,iBAAiB,GAAG,IAAI,CAAC;oCACzB,MAAM;gCACV,CAAC;gCACD,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,IAAA,mBAAY,EAAC,CAAC,CAAC,cAAc,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CACvF,EAAE,CAAC;oCACA,iBAAiB,GAAG,IAAI,CAAC;oCACzB,MAAM;gCACV,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,IAAI,CAAC,iBAAiB;4BAAE,OAAO,EAAE,CAAC;wBAElC,OAAO,IAAA,2BAAiB,EAAC,EAAE,EACvB,gEAAgE;4BAChE,0GAA0G,CAAC,CAAC;oBACpH,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AAxDD,kEAwDC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindWithNoDomReuseUsage extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-with-no-dom-reuse-usage";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-with-no-dom-reuse-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-with-no-dom-reuse-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-with-no-dom-reuse-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,uBAAwB,SAAQ,MAAM;IAC/C,QAAQ,CAAC,IAAI,iEAAiE;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAiC;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAE6D;IAEnF,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4B9D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026 the original author or authors.
|
|
4
|
+
*
|
|
5
|
+
* Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.FindWithNoDomReuseUsage = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
21
|
+
class FindWithNoDomReuseUsage extends rewrite_1.Recipe {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.name = "org.openrewrite.angular.search.find-with-no-dom-reuse-usage";
|
|
25
|
+
this.displayName = "Find `withNoDomReuse` usage";
|
|
26
|
+
this.description = "Finds usages of the removed `withNoDomReuse` function from `@angular/platform-browser`. " +
|
|
27
|
+
"This function was removed in Angular 17. To disable hydration, remove the `provideClientHydration()` call " +
|
|
28
|
+
"from your providers or use the `ngSkipHydration` attribute on specific components.";
|
|
29
|
+
}
|
|
30
|
+
editor() {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
33
|
+
visitImportDeclaration(jsImport, p) {
|
|
34
|
+
const _super = Object.create(null, {
|
|
35
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
36
|
+
});
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
var _a;
|
|
39
|
+
const imp = yield _super.visitImportDeclaration.call(this, jsImport, p);
|
|
40
|
+
if (!imp.moduleSpecifier)
|
|
41
|
+
return imp;
|
|
42
|
+
const moduleSpec = imp.moduleSpecifier.element;
|
|
43
|
+
if (moduleSpec.kind !== java_1.J.Kind.Literal)
|
|
44
|
+
return imp;
|
|
45
|
+
const moduleName = moduleSpec.value;
|
|
46
|
+
if (moduleName !== '@angular/platform-browser')
|
|
47
|
+
return imp;
|
|
48
|
+
const namedBindings = (_a = imp.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
|
|
49
|
+
if ((namedBindings === null || namedBindings === void 0 ? void 0 : namedBindings.kind) === javascript_1.JS.Kind.NamedImports) {
|
|
50
|
+
const named = namedBindings;
|
|
51
|
+
for (const specifier of named.elements.elements) {
|
|
52
|
+
const spec = specifier.element;
|
|
53
|
+
if ((0, java_1.isIdentifier)(spec.specifier) && spec.specifier.simpleName === 'withNoDomReuse') {
|
|
54
|
+
return (0, rewrite_1.foundSearchResult)(imp, "withNoDomReuse has been removed in Angular 17. Remove provideClientHydration() or use ngSkipHydration instead.");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return imp;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.FindWithNoDomReuseUsage = FindWithNoDomReuseUsage;
|
|
66
|
+
//# sourceMappingURL=find-with-no-dom-reuse-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-with-no-dom-reuse-usage.js","sourceRoot":"","sources":["../../src/search/find-with-no-dom-reuse-usage.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,gEAAsE;AACtE,oDAA0D;AAE1D,MAAa,uBAAwB,SAAQ,gBAAM;IAAnD;;QACa,SAAI,GAAG,6DAA6D,CAAC;QACrE,gBAAW,GAAW,6BAA6B,CAAC;QACpD,gBAAW,GAAW,0FAA0F;YACrH,4GAA4G;YAC5G,oFAAoF,CAAC;IA8B7F,CAAC;IA5BS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,sBAAsB,CAAC,QAAmB,EAAE,CAAmB;;;;;;wBAC3E,MAAM,GAAG,GAAG,MAAM,OAAM,sBAAsB,YAAC,QAAQ,EAAE,CAAC,CAAc,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,eAAe;4BAAE,OAAO,GAAG,CAAC;wBAErC,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO;4BAAE,OAAO,GAAG,CAAC;wBAEnD,MAAM,UAAU,GAAI,UAAwB,CAAC,KAAe,CAAC;wBAC7D,IAAI,UAAU,KAAK,2BAA2B;4BAAE,OAAO,GAAG,CAAC;wBAE3D,MAAM,aAAa,GAAG,MAAA,GAAG,CAAC,YAAY,0CAAE,aAAa,CAAC;wBACtD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,eAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC/C,MAAM,KAAK,GAAG,aAAgC,CAAC;4BAC/C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gCAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAA6B,CAAC;gCACrD,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;oCACjF,OAAO,IAAA,2BAAiB,EAAC,GAAG,EACxB,gHAAgH,CAAC,CAAC;gCAC1H,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC;iBAAA;aACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAnCD,0DAmCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindWrappedValueUsage extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-wrapped-value-usage";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-wrapped-value-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-wrapped-value-usage.d.ts","sourceRoot":"","sources":["../../src/search/find-wrapped-value-usage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAI9F,qBAAa,qBAAsB,SAAQ,MAAM;IAC7C,QAAQ,CAAC,IAAI,6DAA6D;IAC1E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA0C;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CACiD;IAEvE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA6B9D"}
|