@nx/angular 20.2.0-canary.20241130-ec5a5e6 → 20.2.0-canary.20241204-75b2080
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/executors.json +1 -1
- package/fesm2022/nx-angular-mf.mjs.map +1 -1
- package/fesm2022/nx-angular-testing.mjs.map +1 -1
- package/fesm2022/nx-angular.mjs.map +1 -1
- package/generators.json +1 -1
- package/migrations.json +160 -1
- package/package.json +12 -19
- package/src/builders/dev-server/lib/normalize-options.js +3 -0
- package/src/builders/dev-server/lib/validate-options.js +1 -9
- package/src/builders/dev-server/schema.json +3 -4
- package/src/executors/application/application.impl.d.ts +1 -1
- package/src/executors/application/application.impl.js +4 -1
- package/src/executors/application/schema.json +78 -6
- package/src/executors/application/utils/normalize-options.d.ts +2 -0
- package/src/executors/application/utils/normalize-options.js +33 -0
- package/src/executors/application/utils/validate-options.js +18 -4
- package/src/executors/browser-esbuild/browser-esbuild.impl.d.ts +1 -1
- package/src/executors/browser-esbuild/browser-esbuild.impl.js +0 -9
- package/src/executors/browser-esbuild/schema.json +1 -1
- package/src/executors/delegate-build/delegate-build.impl.d.ts +1 -1
- package/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
- package/src/executors/module-federation-dev-server/lib/index.js +0 -2
- package/src/executors/module-federation-dev-server/lib/normalize-options.js +1 -0
- package/src/executors/module-federation-dev-server/lib/start-dev-remotes.d.ts +1 -1
- package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +1 -1
- package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +2 -26
- package/src/executors/module-federation-dev-server/schema.d.ts +1 -0
- package/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +2 -2
- package/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +1 -0
- package/src/executors/module-federation-ssr-dev-server/lib/start-dev-remotes.d.ts +1 -1
- package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +1 -1
- package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +7 -33
- package/src/executors/module-federation-ssr-dev-server/schema.d.ts +8 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.d.ts +1 -2
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.js +11 -20
- package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.d.ts +1 -1
- package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +1 -1
- package/src/executors/ng-packagr-lite/schema.json +0 -8
- package/src/executors/package/ng-packagr-adjustments/ng-packagr.d.ts +1 -2
- package/src/executors/package/ng-packagr-adjustments/ng-packagr.js +4 -21
- package/src/executors/package/package.impl.d.ts +2 -2
- package/src/executors/package/package.impl.js +1 -1
- package/src/executors/package/schema.d.ts +1 -3
- package/src/executors/package/schema.json +0 -10
- package/src/executors/utilities/ng-packagr/{stylesheet-processor.js → pre-v19/stylesheet-processor.js} +2 -2
- package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +11 -5
- package/src/executors/utilities/ng-packagr/tailwindcss.d.ts +0 -6
- package/src/executors/utilities/ng-packagr/tailwindcss.js +0 -32
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.d.ts +23 -0
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.js +93 -0
- package/src/generators/application/application.js +1 -0
- package/src/generators/application/files/ng-module/src/app/app.component.ts__tpl__ +4 -5
- package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/nx-welcome.component.ts__tpl__ +2 -1
- package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/nx-welcome.component.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/nx-welcome.component.ts__tpl__ +2 -1
- package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/nx-welcome.component.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/nx-welcome.component.ts__tpl__ +2 -1
- package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/nx-welcome.component.ts__tpl__ +2 -2
- package/src/generators/application/files/standalone-components/src/app/app.component.ts__tpl__ +4 -6
- package/src/generators/application/lib/add-serve-static-target.d.ts +1 -1
- package/src/generators/application/lib/add-serve-static-target.js +1 -3
- package/src/generators/application/lib/create-files.js +4 -1
- package/src/generators/application/lib/create-project.js +24 -31
- package/src/generators/application/lib/normalize-options.js +1 -6
- package/src/generators/application/schema.d.ts +1 -0
- package/src/generators/application/schema.json +7 -2
- package/src/generators/component/component.js +4 -0
- package/src/generators/component/files/__fileName__.spec.ts__tpl__ +1 -1
- package/src/generators/component/files/__fileName__.ts__tpl__ +5 -13
- package/src/generators/component/lib/normalize-options.js +2 -0
- package/src/generators/component/schema.d.ts +1 -0
- package/src/generators/component/schema.json +5 -0
- package/src/generators/convert-to-application-executor/convert-to-application-executor.js +1 -4
- package/src/generators/convert-to-application-executor/schema.json +1 -1
- package/src/generators/directive/directive.js +5 -0
- package/src/generators/directive/files/__fileName__.ts__tpl__ +2 -2
- package/src/generators/directive/lib/normalize-options.js +3 -1
- package/src/generators/host/files/common/{v17+/src → src}/main.server.ts__tmpl__ +1 -1
- package/src/generators/host/lib/update-ssr-setup.js +2 -1
- package/src/generators/host/schema.d.ts +1 -0
- package/src/generators/host/schema.json +4 -0
- package/src/generators/pipe/files/__fileName__.ts__tpl__ +2 -2
- package/src/generators/pipe/lib/normalize-options.js +3 -1
- package/src/generators/pipe/pipe.js +5 -0
- package/src/generators/remote/files/common/{v17+/src → src}/main.server.ts__tmpl__ +1 -1
- package/src/generators/remote/lib/update-ssr-setup.js +2 -1
- package/src/generators/remote/schema.d.ts +1 -0
- package/src/generators/remote/schema.json +4 -0
- package/src/generators/scam/lib/normalize-options.js +3 -1
- package/src/generators/scam-directive/lib/normalize-options.js +3 -1
- package/src/generators/scam-pipe/lib/normalize-options.js +3 -1
- package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.d.ts +1 -1
- package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.js +5 -4
- package/src/generators/setup-mf/files/entry-module-files/entry.component.ts__tmpl__ +2 -1
- package/src/generators/setup-mf/files/standalone-entry-component-files/entry.component.ts__tmpl__ +2 -2
- package/src/generators/setup-mf/lib/add-remote-entry.js +5 -0
- package/src/generators/setup-ssr/files/{server → pre-v19/server}/application-builder/__serverFileName__ +1 -1
- package/src/generators/setup-ssr/files/{server/server-builder/v17+ → pre-v19/server/server-builder}/__serverFileName__ +1 -1
- package/src/generators/setup-ssr/files/v19+/application-builder/ngmodule-src/__main__ +1 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/ngmodule-src/app/__rootModuleFileName__ +13 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +8 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/server/__serverFileName__ +66 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/standalone-src/__main__ +7 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/standalone-src/app/app.config.server.ts__tpl__ +14 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +8 -0
- package/src/generators/setup-ssr/files/v19+/application-builder-common-engine/server/__serverFileName__ +65 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/ngmodule-src/__main__ +1 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/ngmodule-src/app/__rootModuleFileName__ +14 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/root/tsconfig.server.json.template +16 -0
- package/src/generators/setup-ssr/files/{server/server-builder/pre-v17 → v19+/server-builder/server}/__serverFileName__ +25 -15
- package/src/generators/setup-ssr/files/v19+/server-builder/standalone-src/__main__ +7 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/standalone-src/app/app.config.server.ts.template +11 -0
- package/src/generators/setup-ssr/lib/add-dependencies.js +6 -17
- package/src/generators/setup-ssr/lib/add-hydration.d.ts +2 -2
- package/src/generators/setup-ssr/lib/add-hydration.js +10 -2
- package/src/generators/setup-ssr/lib/add-server-file.d.ts +2 -2
- package/src/generators/setup-ssr/lib/add-server-file.js +24 -10
- package/src/generators/setup-ssr/lib/generate-files.d.ts +2 -2
- package/src/generators/setup-ssr/lib/generate-files.js +20 -8
- package/src/generators/setup-ssr/lib/generate-server-ts-config.d.ts +3 -3
- package/src/generators/setup-ssr/lib/generate-server-ts-config.js +24 -3
- package/src/generators/setup-ssr/lib/normalize-options.d.ts +3 -14
- package/src/generators/setup-ssr/lib/normalize-options.js +23 -6
- package/src/generators/setup-ssr/lib/set-router-initial-navigation.d.ts +2 -2
- package/src/generators/setup-ssr/lib/update-project-config.d.ts +3 -3
- package/src/generators/setup-ssr/lib/update-project-config.js +36 -24
- package/src/generators/setup-ssr/lib/validate-options.js +5 -0
- package/src/generators/setup-ssr/schema.d.ts +5 -0
- package/src/generators/setup-ssr/schema.json +6 -8
- package/src/generators/setup-ssr/setup-ssr.js +6 -11
- package/src/generators/setup-tailwind/lib/index.d.ts +1 -1
- package/src/generators/setup-tailwind/lib/index.js +1 -1
- package/src/generators/setup-tailwind/lib/update-application-styles.js +1 -1
- package/src/generators/setup-tailwind/lib/validate-build-target.d.ts +3 -0
- package/src/generators/setup-tailwind/lib/{add-tailwind-config-path-to-project.js → validate-build-target.js} +4 -15
- package/src/generators/setup-tailwind/setup-tailwind.js +4 -1
- package/src/generators/utils/add-jest.js +4 -8
- package/src/generators/utils/storybook-ast/component-info.js +12 -2
- package/src/generators/utils/validations.d.ts +1 -0
- package/src/generators/utils/validations.js +10 -0
- package/src/generators/utils/version-utils.js +2 -2
- package/src/migrations/update-20-2-0/add-localize-polyfill-to-targets.d.ts +3 -0
- package/src/migrations/update-20-2-0/add-localize-polyfill-to-targets.js +48 -0
- package/src/migrations/update-20-2-0/disable-angular-eslint-prefer-standalone.d.ts +2 -0
- package/src/migrations/update-20-2-0/disable-angular-eslint-prefer-standalone.js +55 -0
- package/src/migrations/update-20-2-0/update-angular-cli.d.ts +3 -0
- package/src/migrations/update-20-2-0/update-angular-cli.js +23 -0
- package/src/migrations/update-20-2-0/update-angular-ssr-imports-to-use-node-entry-point.d.ts +2 -0
- package/src/migrations/update-20-2-0/update-angular-ssr-imports-to-use-node-entry-point.js +55 -0
- package/src/utils/backward-compatible-versions.d.ts +4 -4
- package/src/utils/backward-compatible-versions.js +20 -19
- package/src/utils/nx-devkit/ast-utils.d.ts +10 -1
- package/src/utils/nx-devkit/ast-utils.js +32 -9
- package/src/utils/versions.d.ts +7 -7
- package/src/utils/versions.js +7 -7
- package/esm2022/index.mjs +0 -2
- package/esm2022/mf/index.mjs +0 -2
- package/esm2022/mf/mf.mjs +0 -116
- package/esm2022/mf/nx-angular-mf.mjs +0 -5
- package/esm2022/nx-angular.mjs +0 -5
- package/esm2022/src/runtime/nx/data-persistence.mjs +0 -349
- package/esm2022/testing/index.mjs +0 -2
- package/esm2022/testing/nx-angular-testing.mjs +0 -5
- package/esm2022/testing/src/testing-utils.mjs +0 -38
- package/src/executors/module-federation-dev-server/lib/build-static-remotes.d.ts +0 -4
- package/src/executors/module-federation-dev-server/lib/build-static-remotes.js +0 -65
- package/src/executors/module-federation-dev-server/lib/start-static-remotes-file-server.d.ts +0 -9
- package/src/executors/module-federation-dev-server/lib/start-static-remotes-file-server.js +0 -51
- package/src/executors/module-federation-ssr-dev-server/lib/build-static-remotes.d.ts +0 -4
- package/src/executors/module-federation-ssr-dev-server/lib/build-static-remotes.js +0 -65
- package/src/executors/module-federation-ssr-dev-server/lib/start-static-remotes.d.ts +0 -4
- package/src/executors/module-federation-ssr-dev-server/lib/start-static-remotes.js +0 -41
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.di.d.ts +0 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.di.js +0 -27
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.transform.d.ts +0 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.transform.js +0 -53
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.di.d.ts +0 -15
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.di.js +0 -28
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.transform.d.ts +0 -30
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.transform.js +0 -52
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.di.d.ts +0 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.di.js +0 -20
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.transform.d.ts +0 -9
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.transform.js +0 -320
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/options.di.d.ts +0 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/options.di.js +0 -35
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/package.di.d.ts +0 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/package.di.js +0 -37
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ngc/compile-source-files.d.ts +0 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ngc/compile-source-files.js +0 -178
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.d.ts +0 -42
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.di.d.ts +0 -10
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.di.js +0 -17
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.js +0 -201
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.di.d.ts +0 -14
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.di.js +0 -26
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.d.ts +0 -12
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +0 -71
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/entry-point.di.d.ts +0 -13
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/entry-point.di.js +0 -32
- package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.d.ts +0 -14
- package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.js +0 -35
- package/src/executors/package/ng-packagr-adjustments/ng-package/package.di.d.ts +0 -14
- package/src/executors/package/ng-packagr-adjustments/ng-package/package.di.js +0 -37
- package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.d.ts +0 -13
- package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +0 -183
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.d.ts +0 -36
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.di.d.ts +0 -10
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.di.js +0 -17
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +0 -194
- package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.d.ts +0 -1
- package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.js +0 -9
- package/src/generators/host/files/common/pre-v17/src/main.server.ts__tmpl__ +0 -66
- package/src/generators/remote/files/common/pre-v17/src/main.server.ts__tmpl__ +0 -72
- package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.d.ts +0 -3
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.di.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.di.js +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.transform.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.transform.js +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.di.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.di.js +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.transform.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.transform.js +0 -0
- /package/src/executors/utilities/ng-packagr/{stylesheet-processor.d.ts → pre-v19/stylesheet-processor.d.ts} +0 -0
- /package/src/generators/setup-ssr/files/{ngmodule/src → pre-v19/ngmodule-src}/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{ngmodule/src → pre-v19/ngmodule-src}/app/__rootModuleFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{root → pre-v19/root}/tsconfig.server.json__tpl__ +0 -0
- /package/src/generators/setup-ssr/files/{standalone/src → pre-v19/standalone-src}/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{standalone/src → pre-v19/standalone-src}/app/app.config.server.ts__tpl__ +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './add-tailwind-config-path-to-project';
|
|
2
1
|
export * from './add-tailwind-config';
|
|
3
2
|
export * from './add-tailwind-required-packages';
|
|
4
3
|
export * from './detect-tailwind-installed-version';
|
|
5
4
|
export * from './normalize-options';
|
|
6
5
|
export * from './update-application-styles';
|
|
6
|
+
export * from './validate-build-target';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./add-tailwind-config-path-to-project"), exports);
|
|
5
4
|
tslib_1.__exportStar(require("./add-tailwind-config"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./add-tailwind-required-packages"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./detect-tailwind-installed-version"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./normalize-options"), exports);
|
|
9
8
|
tslib_1.__exportStar(require("./update-application-styles"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./validate-build-target"), exports);
|
|
@@ -34,7 +34,7 @@ function findStylesEntryPoint(tree, options, project) {
|
|
|
34
34
|
return stylesEntryPoint;
|
|
35
35
|
}
|
|
36
36
|
// then check for the specified styles in the build configuration if it exists
|
|
37
|
-
const styles = project.targets?.[options.buildTarget]
|
|
37
|
+
const styles = project.targets?.[options.buildTarget]?.options?.styles;
|
|
38
38
|
if (!styles) {
|
|
39
39
|
return undefined;
|
|
40
40
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.validateBuildTarget = validateBuildTarget;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
function
|
|
5
|
+
function validateBuildTarget(options, project) {
|
|
6
6
|
const buildTarget = project.targets?.[options.buildTarget];
|
|
7
7
|
if (!buildTarget) {
|
|
8
8
|
throw new Error((0, devkit_1.stripIndents) `The target "${options.buildTarget}" was not found for project "${options.project}".
|
|
@@ -10,25 +10,14 @@ function addTailwindConfigPathToProject(tree, options, project) {
|
|
|
10
10
|
If the project is not a buildable or publishable library, you don't need to setup TailwindCSS for it.`);
|
|
11
11
|
}
|
|
12
12
|
const supportedLibraryExecutors = [
|
|
13
|
+
'@angular-devkit/build-angular:ng-packagr',
|
|
13
14
|
'@nx/angular:ng-packagr-lite',
|
|
14
15
|
'@nx/angular:package',
|
|
15
|
-
'@nrwl/angular:ng-packagr-lite',
|
|
16
|
-
'@nrwl/angular:package',
|
|
17
16
|
];
|
|
18
|
-
if (!supportedLibraryExecutors.includes(buildTarget.executor)) {
|
|
17
|
+
if (!supportedLibraryExecutors.includes(project.targets[options.buildTarget].executor)) {
|
|
19
18
|
throw new Error((0, devkit_1.stripIndents) `The build target for project "${options.project}" is using an unsupported executor "${buildTarget.executor}".
|
|
20
19
|
Supported executors are ${supportedLibraryExecutors
|
|
21
20
|
.map((e) => `"${e}"`)
|
|
22
21
|
.join(', ')}.`);
|
|
23
22
|
}
|
|
24
|
-
if (buildTarget.options?.tailwindConfig &&
|
|
25
|
-
tree.exists(buildTarget.options.tailwindConfig)) {
|
|
26
|
-
throw new Error((0, devkit_1.stripIndents) `The "${buildTarget.options.tailwindConfig}" file is already configured for the project "${options.project}". Are you sure this is the right project to set up Tailwind?
|
|
27
|
-
If you are sure, you can remove the configuration and re-run the generator.`);
|
|
28
|
-
}
|
|
29
|
-
buildTarget.options = {
|
|
30
|
-
...buildTarget.options,
|
|
31
|
-
tailwindConfig: (0, devkit_1.joinPathFragments)(project.root, 'tailwind.config.js'),
|
|
32
|
-
};
|
|
33
|
-
(0, devkit_1.updateProjectConfiguration)(tree, options.project, project);
|
|
34
23
|
}
|
|
@@ -6,6 +6,9 @@ const lib_1 = require("./lib");
|
|
|
6
6
|
async function setupTailwindGenerator(tree, rawOptions) {
|
|
7
7
|
const options = (0, lib_1.normalizeOptions)(rawOptions);
|
|
8
8
|
const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
9
|
+
if (rawOptions.buildTarget && !project.targets?.[rawOptions.buildTarget]) {
|
|
10
|
+
throw new Error(`The provided target "${options.buildTarget}" was not found for project "${options.project}". Please provide a valid build target.`);
|
|
11
|
+
}
|
|
9
12
|
const tailwindInstalledVersion = (0, lib_1.detectTailwindInstalledVersion)(tree);
|
|
10
13
|
let installTask = () => { };
|
|
11
14
|
if (!options.skipPackageJson) {
|
|
@@ -18,7 +21,7 @@ async function setupTailwindGenerator(tree, rawOptions) {
|
|
|
18
21
|
(0, lib_1.updateApplicationStyles)(tree, options, project);
|
|
19
22
|
}
|
|
20
23
|
else if (project.projectType === 'library') {
|
|
21
|
-
(0, lib_1.
|
|
24
|
+
(0, lib_1.validateBuildTarget)(options, project);
|
|
22
25
|
}
|
|
23
26
|
if (!options.skipFormat) {
|
|
24
27
|
await (0, devkit_1.formatFiles)(tree);
|
|
@@ -22,13 +22,9 @@ async function addJest(tree, options) {
|
|
|
22
22
|
const setupFile = (0, devkit_1.joinPathFragments)(options.projectRoot, 'src', 'test-setup.ts');
|
|
23
23
|
if (options.strict && tree.exists(setupFile)) {
|
|
24
24
|
const contents = tree.read(setupFile, 'utf-8');
|
|
25
|
-
tree.write(setupFile,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
errorOnUnknownProperties: true,
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
${contents}`);
|
|
25
|
+
tree.write(setupFile, contents.replace('setupZoneTestEnv();', `setupZoneTestEnv({
|
|
26
|
+
errorOnUnknownElements: true,
|
|
27
|
+
errorOnUnknownProperties: true
|
|
28
|
+
});`));
|
|
33
29
|
}
|
|
34
30
|
}
|
|
@@ -6,6 +6,7 @@ const devkit_1 = require("@nx/devkit");
|
|
|
6
6
|
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
7
7
|
const path_1 = require("path");
|
|
8
8
|
const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
|
|
9
|
+
const version_utils_1 = require("../version-utils");
|
|
9
10
|
const module_info_1 = require("./module-info");
|
|
10
11
|
let tsModule;
|
|
11
12
|
let tsquery;
|
|
@@ -60,8 +61,17 @@ function getStandaloneComponents(tree, filePath) {
|
|
|
60
61
|
}
|
|
61
62
|
const fileContent = tree.read(filePath, 'utf-8');
|
|
62
63
|
const ast = tsquery.ast(fileContent);
|
|
63
|
-
const
|
|
64
|
-
|
|
64
|
+
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
65
|
+
if (angularMajorVersion < 19) {
|
|
66
|
+
// in angular 18 and below, standalone: false is the default, so only
|
|
67
|
+
// components with standalone: true are considered standalone
|
|
68
|
+
const components = tsquery(ast, 'ClassDeclaration:has(Decorator > CallExpression:has(Identifier[name=Component]) ObjectLiteralExpression PropertyAssignment:has(Identifier[name=standalone]) > TrueKeyword) > Identifier', { visitAllChildren: true });
|
|
69
|
+
return components.map((component) => component.getText());
|
|
70
|
+
}
|
|
71
|
+
// in angular 19 and above, standalone: true is the default, so all components
|
|
72
|
+
// except those with standalone: false are considered standalone
|
|
73
|
+
const standaloneComponentNodes = tsquery(ast, 'ClassDeclaration:has(Decorator > CallExpression:has(Identifier[name=Component]) ObjectLiteralExpression:not(:has(PropertyAssignment:has(Identifier[name=standalone]) > FalseKeyword))) > Identifier', { visitAllChildren: true });
|
|
74
|
+
return standaloneComponentNodes.map((component) => component.getText());
|
|
65
75
|
}
|
|
66
76
|
function getComponentImportPath(componentName, imports) {
|
|
67
77
|
if (!tsModule) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateProject = validateProject;
|
|
4
|
+
exports.validateClassName = validateClassName;
|
|
4
5
|
const devkit_1 = require("@nx/devkit");
|
|
5
6
|
function validateProject(tree, projectName) {
|
|
6
7
|
const projects = (0, devkit_1.getProjects)(tree);
|
|
@@ -8,3 +9,12 @@ function validateProject(tree, projectName) {
|
|
|
8
9
|
throw new Error(`Project "${projectName}" does not exist! Please provide an existing project name.`);
|
|
9
10
|
}
|
|
10
11
|
}
|
|
12
|
+
// The below validation matches that of the Angular CLI:
|
|
13
|
+
// https://github.com/angular/angular-cli/blob/1316930a1cbad8e71a4454743862cfa9253bef4e/packages/schematics/angular/utility/validation.ts#L25
|
|
14
|
+
// See: https://github.com/tc39/proposal-regexp-unicode-property-escapes/blob/fe6d07fad74cd0192d154966baa1e95e7cda78a1/README.md#other-examples
|
|
15
|
+
const ecmaIdentifierNameRegExp = /^(?:[$_\p{ID_Start}])(?:[$_\u200C\u200D\p{ID_Continue}])*$/u;
|
|
16
|
+
function validateClassName(className) {
|
|
17
|
+
if (!ecmaIdentifierNameRegExp.test(className)) {
|
|
18
|
+
throw new Error(`Class name "${className}" is invalid.`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -44,10 +44,10 @@ function getInstalledPackageVersionInfo(tree, pkgName) {
|
|
|
44
44
|
function versions(tree) {
|
|
45
45
|
const majorAngularVersion = getInstalledAngularMajorVersion(tree);
|
|
46
46
|
switch (majorAngularVersion) {
|
|
47
|
-
case 16:
|
|
48
|
-
return backward_compatible_versions_1.backwardCompatibleVersions.angularV16;
|
|
49
47
|
case 17:
|
|
50
48
|
return backward_compatible_versions_1.backwardCompatibleVersions.angularV17;
|
|
49
|
+
case 18:
|
|
50
|
+
return backward_compatible_versions_1.backwardCompatibleVersions.angularV18;
|
|
51
51
|
default:
|
|
52
52
|
return latestVersions;
|
|
53
53
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executorsToAddPolyfillTo = void 0;
|
|
4
|
+
exports.default = default_1;
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const targets_1 = require("../../utils/targets");
|
|
7
|
+
exports.executorsToAddPolyfillTo = [
|
|
8
|
+
'@angular/build:application',
|
|
9
|
+
'@angular-devkit/build-angular:application',
|
|
10
|
+
'@nx/angular:application',
|
|
11
|
+
'@angular-devkit/build-angular:browser-esbuild',
|
|
12
|
+
'@nx/angular:browser-esbuild',
|
|
13
|
+
];
|
|
14
|
+
async function default_1(tree) {
|
|
15
|
+
const projects = (0, devkit_1.getProjects)(tree);
|
|
16
|
+
for (const [projectName, project] of projects) {
|
|
17
|
+
if (project.projectType !== 'application') {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
let isUpdated = false;
|
|
21
|
+
for (const target of Object.values(project.targets ?? {})) {
|
|
22
|
+
if (!exports.executorsToAddPolyfillTo.includes(target.executor)) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const polyfills = target.options?.['polyfills'];
|
|
26
|
+
if (Array.isArray(polyfills) &&
|
|
27
|
+
polyfills.some((polyfill) => typeof polyfill === 'string' &&
|
|
28
|
+
polyfill.startsWith('@angular/localize'))) {
|
|
29
|
+
// the polyfill is already present, skip
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
// Only add '@angular/localize/init' polyfill if 'localize' option is enabled
|
|
33
|
+
for (const [, options] of (0, targets_1.allTargetOptions)(target)) {
|
|
34
|
+
if (options['localize']) {
|
|
35
|
+
target.options ??= {};
|
|
36
|
+
target.options['polyfills'] ??= [];
|
|
37
|
+
target.options['polyfills'].push('@angular/localize/init');
|
|
38
|
+
isUpdated = true;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (isUpdated) {
|
|
44
|
+
(0, devkit_1.updateProjectConfiguration)(tree, projectName, project);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
48
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = default_1;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const eslint_file_1 = require("@nx/eslint/src/generators/utils/eslint-file");
|
|
6
|
+
const projects_1 = require("../utils/projects");
|
|
7
|
+
const preferStandaloneRule = '@angular-eslint/prefer-standalone';
|
|
8
|
+
async function default_1(tree) {
|
|
9
|
+
const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
|
|
10
|
+
'npm:@angular/core',
|
|
11
|
+
]);
|
|
12
|
+
for (const { project: { root }, } of projects) {
|
|
13
|
+
if (!(0, eslint_file_1.isEslintConfigSupported)(tree, root)) {
|
|
14
|
+
// ESLint config is not supported, skip
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if ((0, eslint_file_1.lintConfigHasOverride)(tree, root, (o) => !!o.rules?.[preferStandaloneRule], true)) {
|
|
18
|
+
// the @angular-eslint/prefer-standalone rule is set in an override, skip
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const ngEslintOverrideLookup = (o) => o.files?.includes('*.ts') &&
|
|
22
|
+
Object.keys(o.rules ?? {}).some((r) => r.startsWith('@angular-eslint/'));
|
|
23
|
+
const tsFilesOverrideLookup = (o) => o.files?.length === 1 && o.files[0] === '*.ts';
|
|
24
|
+
if ((0, eslint_file_1.lintConfigHasOverride)(tree, root, ngEslintOverrideLookup, false)) {
|
|
25
|
+
// there is an override containing an Angular ESLint rule
|
|
26
|
+
(0, eslint_file_1.updateOverrideInLintConfig)(tree, root, ngEslintOverrideLookup, (o) => {
|
|
27
|
+
o.rules = {
|
|
28
|
+
...o.rules,
|
|
29
|
+
[preferStandaloneRule]: 'off',
|
|
30
|
+
};
|
|
31
|
+
return o;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else if ((0, eslint_file_1.lintConfigHasOverride)(tree, root, tsFilesOverrideLookup, false)) {
|
|
35
|
+
// there is an override for just *.ts files
|
|
36
|
+
(0, eslint_file_1.updateOverrideInLintConfig)(tree, root, tsFilesOverrideLookup, (o) => {
|
|
37
|
+
o.rules = {
|
|
38
|
+
...o.rules,
|
|
39
|
+
[preferStandaloneRule]: 'off',
|
|
40
|
+
};
|
|
41
|
+
return o;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// there are no overrides for any Angular ESLint rule or just *.ts files, add a new override
|
|
46
|
+
(0, eslint_file_1.addOverrideToLintConfig)(tree, root, {
|
|
47
|
+
files: ['*.ts'],
|
|
48
|
+
rules: {
|
|
49
|
+
[preferStandaloneRule]: 'off',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
55
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angularCliVersion = void 0;
|
|
4
|
+
exports.default = default_1;
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
exports.angularCliVersion = '~19.0.0';
|
|
7
|
+
async function default_1(tree) {
|
|
8
|
+
let shouldFormat = false;
|
|
9
|
+
(0, devkit_1.updateJson)(tree, 'package.json', (json) => {
|
|
10
|
+
if (json.devDependencies?.['@angular/cli']) {
|
|
11
|
+
json.devDependencies['@angular/cli'] = exports.angularCliVersion;
|
|
12
|
+
shouldFormat = true;
|
|
13
|
+
}
|
|
14
|
+
else if (json.dependencies?.['@angular/cli']) {
|
|
15
|
+
json.dependencies['@angular/cli'] = exports.angularCliVersion;
|
|
16
|
+
shouldFormat = true;
|
|
17
|
+
}
|
|
18
|
+
return json;
|
|
19
|
+
});
|
|
20
|
+
if (shouldFormat) {
|
|
21
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = default_1;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const ts = tslib_1.__importStar(require("typescript"));
|
|
7
|
+
const file_change_recorder_1 = require("../../utils/file-change-recorder");
|
|
8
|
+
const projects_1 = require("../utils/projects");
|
|
9
|
+
async function default_1(tree) {
|
|
10
|
+
const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
|
|
11
|
+
'npm:@angular/ssr',
|
|
12
|
+
]);
|
|
13
|
+
for (const { project } of projects) {
|
|
14
|
+
(0, devkit_1.visitNotIgnoredFiles)(tree, project.root, (path) => {
|
|
15
|
+
if (!path.endsWith('.ts') || path.endsWith('.d.ts')) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let content = tree.read(path, 'utf-8');
|
|
19
|
+
if (!content.includes('CommonEngine') ||
|
|
20
|
+
content.includes('@angular/ssr/node')) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
let recorder;
|
|
24
|
+
const sourceFile = ts.createSourceFile(path, content, ts.ScriptTarget.Latest, true);
|
|
25
|
+
const allImportDeclarations = sourceFile.statements.filter(ts.isImportDeclaration);
|
|
26
|
+
if (allImportDeclarations.length === 0) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const ssrImports = allImportDeclarations.filter((n) => ts.isStringLiteral(n.moduleSpecifier) &&
|
|
30
|
+
n.moduleSpecifier.text === '@angular/ssr');
|
|
31
|
+
for (const ssrImport of ssrImports) {
|
|
32
|
+
const ssrNamedBinding = getNamedImports(ssrImport);
|
|
33
|
+
if (ssrNamedBinding) {
|
|
34
|
+
const isUsingOldEntryPoint = ssrNamedBinding.elements.some((e) => e.name.text.startsWith('CommonEngine'));
|
|
35
|
+
if (!isUsingOldEntryPoint) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
recorder ??= new file_change_recorder_1.FileChangeRecorder(tree, path);
|
|
39
|
+
recorder.insertRight(ssrImport.moduleSpecifier.getEnd() - 1, '/node');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (recorder) {
|
|
43
|
+
recorder.applyChanges();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
48
|
+
}
|
|
49
|
+
function getNamedImports(importDeclaration) {
|
|
50
|
+
const namedBindings = importDeclaration?.importClause?.namedBindings;
|
|
51
|
+
if (namedBindings && ts.isNamedImports(namedBindings)) {
|
|
52
|
+
return namedBindings;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as latestVersions from './versions';
|
|
2
|
-
type SupportedVersions = '
|
|
2
|
+
type SupportedVersions = 'angularV17' | 'angularV18';
|
|
3
3
|
type LatestPackageVersionNames = Exclude<keyof typeof latestVersions, 'nxVersion'>;
|
|
4
|
-
type CompatPackageVersionNames = LatestPackageVersionNames
|
|
4
|
+
type CompatPackageVersionNames = LatestPackageVersionNames;
|
|
5
5
|
export type PackageVersionNames = LatestPackageVersionNames | CompatPackageVersionNames;
|
|
6
6
|
export type VersionMap = {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
angularV17: Record<Exclude<CompatPackageVersionNames, 'analogVitestAngular' | 'typescriptEslintVersion'>, string>;
|
|
8
|
+
angularV18: Record<CompatPackageVersionNames, string>;
|
|
9
9
|
};
|
|
10
10
|
export type PackageLatestVersions = Record<LatestPackageVersionNames, string>;
|
|
11
11
|
export type PackageCompatVersions = VersionMap[SupportedVersions];
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.backwardCompatibleVersions = void 0;
|
|
4
4
|
exports.backwardCompatibleVersions = {
|
|
5
|
-
|
|
6
|
-
angularVersion: '~
|
|
7
|
-
angularDevkitVersion: '~
|
|
8
|
-
ngPackagrVersion: '~
|
|
9
|
-
ngrxVersion: '~
|
|
5
|
+
angularV17: {
|
|
6
|
+
angularVersion: '~17.3.0',
|
|
7
|
+
angularDevkitVersion: '~17.3.0',
|
|
8
|
+
ngPackagrVersion: '~17.3.0',
|
|
9
|
+
ngrxVersion: '~17.0.0',
|
|
10
10
|
rxjsVersion: '~7.8.0',
|
|
11
|
-
zoneJsVersion: '~0.
|
|
11
|
+
zoneJsVersion: '~0.14.3',
|
|
12
12
|
angularJsVersion: '1.7.9',
|
|
13
13
|
tsLibVersion: '^2.3.0',
|
|
14
|
-
ngUniversalVersion: '~16.2.0',
|
|
15
14
|
corsVersion: '~2.8.5',
|
|
16
15
|
typesCorsVersion: '~2.8.5',
|
|
17
16
|
expressVersion: '~4.18.2',
|
|
@@ -19,22 +18,22 @@ exports.backwardCompatibleVersions = {
|
|
|
19
18
|
browserSyncVersion: '^3.0.0',
|
|
20
19
|
moduleFederationNodeVersion: '~2.3.0',
|
|
21
20
|
moduleFederationEnhancedVersion: '~0.2.3',
|
|
22
|
-
angularEslintVersion: '~
|
|
21
|
+
angularEslintVersion: '~17.3.0',
|
|
23
22
|
tailwindVersion: '^3.0.2',
|
|
24
23
|
postcssVersion: '^8.4.5',
|
|
25
24
|
postcssUrlVersion: '~10.1.3',
|
|
26
25
|
autoprefixerVersion: '^10.4.0',
|
|
27
26
|
tsNodeVersion: '10.9.1',
|
|
28
|
-
jestPresetAngularVersion: '~
|
|
29
|
-
typesNodeVersion: '16.
|
|
27
|
+
jestPresetAngularVersion: '~14.0.3',
|
|
28
|
+
typesNodeVersion: '18.16.9',
|
|
30
29
|
jasmineMarblesVersion: '^0.9.2',
|
|
31
30
|
jsoncEslintParserVersion: '^2.1.0',
|
|
32
31
|
},
|
|
33
|
-
|
|
34
|
-
angularVersion: '~
|
|
35
|
-
angularDevkitVersion: '~
|
|
36
|
-
ngPackagrVersion: '~
|
|
37
|
-
ngrxVersion: '~
|
|
32
|
+
angularV18: {
|
|
33
|
+
angularVersion: '~18.2.0',
|
|
34
|
+
angularDevkitVersion: '~18.2.0',
|
|
35
|
+
ngPackagrVersion: '~18.2.0',
|
|
36
|
+
ngrxVersion: '~18.0.2',
|
|
38
37
|
rxjsVersion: '~7.8.0',
|
|
39
38
|
zoneJsVersion: '~0.14.3',
|
|
40
39
|
angularJsVersion: '1.7.9',
|
|
@@ -44,17 +43,19 @@ exports.backwardCompatibleVersions = {
|
|
|
44
43
|
expressVersion: '~4.18.2',
|
|
45
44
|
typesExpressVersion: '4.17.14',
|
|
46
45
|
browserSyncVersion: '^3.0.0',
|
|
47
|
-
moduleFederationNodeVersion: '~2.
|
|
48
|
-
moduleFederationEnhancedVersion: '
|
|
49
|
-
angularEslintVersion: '
|
|
46
|
+
moduleFederationNodeVersion: '~2.5.0',
|
|
47
|
+
moduleFederationEnhancedVersion: '0.6.9',
|
|
48
|
+
angularEslintVersion: '^18.3.0',
|
|
49
|
+
typescriptEslintVersion: '^7.16.0',
|
|
50
50
|
tailwindVersion: '^3.0.2',
|
|
51
51
|
postcssVersion: '^8.4.5',
|
|
52
52
|
postcssUrlVersion: '~10.1.3',
|
|
53
53
|
autoprefixerVersion: '^10.4.0',
|
|
54
54
|
tsNodeVersion: '10.9.1',
|
|
55
|
-
jestPresetAngularVersion: '~14.0
|
|
55
|
+
jestPresetAngularVersion: '~14.1.0',
|
|
56
56
|
typesNodeVersion: '18.16.9',
|
|
57
57
|
jasmineMarblesVersion: '^0.9.2',
|
|
58
|
+
analogVitestAngular: '~1.9.1',
|
|
58
59
|
jsoncEslintParserVersion: '^2.1.0',
|
|
59
60
|
},
|
|
60
61
|
};
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import type * as ts from 'typescript';
|
|
2
1
|
import { Tree } from '@nx/devkit';
|
|
2
|
+
import type * as ts from 'typescript';
|
|
3
3
|
type DecoratorName = 'Component' | 'Directive' | 'NgModule' | 'Pipe';
|
|
4
4
|
/**
|
|
5
5
|
* Check if the Component, Directive or Pipe is standalone
|
|
6
6
|
* @param sourceFile TS Source File containing the token to check
|
|
7
7
|
* @param decoratorName The type of decorator to check (Component, Directive, Pipe)
|
|
8
|
+
*
|
|
9
|
+
* @deprecated Use the function signature with a Tree. This signature will be removed in v21.
|
|
8
10
|
*/
|
|
9
11
|
export declare function isStandalone(sourceFile: ts.SourceFile, decoratorName: DecoratorName): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Check if the Component, Directive or Pipe is standalone
|
|
14
|
+
* @param tree The file system tree
|
|
15
|
+
* @param sourceFile TS Source File containing the token to check
|
|
16
|
+
* @param decoratorName The type of decorator to check (Component, Directive, Pipe)
|
|
17
|
+
*/
|
|
18
|
+
export declare function isStandalone(tree: Tree, sourceFile: ts.SourceFile, decoratorName: DecoratorName): boolean;
|
|
10
19
|
export declare function getDecoratorMetadata(source: ts.SourceFile, identifier: string, module: string): ts.Node[];
|
|
11
20
|
export declare function removeFromNgModule(host: Tree, source: ts.SourceFile, modulePath: string, property: string): ts.SourceFile;
|
|
12
21
|
/**
|
|
@@ -23,10 +23,12 @@ exports.addEntryComponents = addEntryComponents;
|
|
|
23
23
|
exports.readBootstrapInfo = readBootstrapInfo;
|
|
24
24
|
exports.getDecoratorPropertyValueNode = getDecoratorPropertyValueNode;
|
|
25
25
|
exports.getTsSourceFile = getTsSourceFile;
|
|
26
|
-
const js_1 = require("@nx/js");
|
|
27
|
-
const path_1 = require("path");
|
|
28
26
|
const devkit_1 = require("@nx/devkit");
|
|
27
|
+
const js_1 = require("@nx/js");
|
|
29
28
|
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
29
|
+
const path_1 = require("path");
|
|
30
|
+
const angular_version_utils_1 = require("../../executors/utilities/angular-version-utils");
|
|
31
|
+
const version_utils_1 = require("../../generators/utils/version-utils");
|
|
30
32
|
let tsModule;
|
|
31
33
|
function _angularImportsFromNode(node, _sourceFile) {
|
|
32
34
|
if (!tsModule) {
|
|
@@ -75,14 +77,35 @@ function _angularImportsFromNode(node, _sourceFile) {
|
|
|
75
77
|
return {};
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
function isStandalone(treeOrSourceFile, sourceFileOrDecoratorName, decoratorName) {
|
|
81
|
+
let tree;
|
|
82
|
+
let sourceFile;
|
|
83
|
+
if (decoratorName === undefined) {
|
|
84
|
+
sourceFile = treeOrSourceFile;
|
|
85
|
+
decoratorName = sourceFileOrDecoratorName;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
tree = treeOrSourceFile;
|
|
89
|
+
sourceFile = sourceFileOrDecoratorName;
|
|
90
|
+
decoratorName = decoratorName;
|
|
91
|
+
}
|
|
84
92
|
const decoratorMetadata = getDecoratorMetadata(sourceFile, decoratorName, '@angular/core');
|
|
85
|
-
|
|
93
|
+
const hasStandaloneTrue = decoratorMetadata.some((node) => node.getText().includes('standalone: true'));
|
|
94
|
+
if (hasStandaloneTrue) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
const { major: angularMajorVersion } = tree
|
|
98
|
+
? (0, version_utils_1.getInstalledAngularVersionInfo)(tree)
|
|
99
|
+
: (0, angular_version_utils_1.getInstalledAngularVersionInfo)();
|
|
100
|
+
if (angularMajorVersion !== null && angularMajorVersion < 19) {
|
|
101
|
+
// in angular 18 and below, standalone: false is the default, so, if
|
|
102
|
+
// standalone: true is not set, then it is false
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
// in case angularMajorVersion is null, we assume that the version is 19 or
|
|
106
|
+
// above, in which case, standalone: true is the default, so we need to
|
|
107
|
+
// check that standalone: false is not set
|
|
108
|
+
return !decoratorMetadata.some((node) => node.getText().includes('standalone: false'));
|
|
86
109
|
}
|
|
87
110
|
function getDecoratorMetadata(source, identifier, module) {
|
|
88
111
|
if (!tsModule) {
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const nxVersion: any;
|
|
2
|
-
export declare const angularVersion = "~
|
|
3
|
-
export declare const angularDevkitVersion = "~
|
|
4
|
-
export declare const ngPackagrVersion = "~
|
|
2
|
+
export declare const angularVersion = "~19.0.0";
|
|
3
|
+
export declare const angularDevkitVersion = "~19.0.0";
|
|
4
|
+
export declare const ngPackagrVersion = "~19.0.0";
|
|
5
5
|
export declare const ngrxVersion = "^18.0.2";
|
|
6
6
|
export declare const rxjsVersion = "~7.8.0";
|
|
7
|
-
export declare const zoneJsVersion = "~0.
|
|
7
|
+
export declare const zoneJsVersion = "~0.15.0";
|
|
8
8
|
export declare const angularJsVersion = "1.7.9";
|
|
9
9
|
export declare const tsLibVersion = "^2.3.0";
|
|
10
10
|
export declare const corsVersion = "~2.8.5";
|
|
@@ -14,15 +14,15 @@ export declare const typesExpressVersion = "4.17.14";
|
|
|
14
14
|
export declare const browserSyncVersion = "^3.0.0";
|
|
15
15
|
export declare const moduleFederationNodeVersion = "~2.6.11";
|
|
16
16
|
export declare const moduleFederationEnhancedVersion = "0.7.6";
|
|
17
|
-
export declare const angularEslintVersion = "^
|
|
17
|
+
export declare const angularEslintVersion = "^19.0.0";
|
|
18
18
|
export declare const typescriptEslintVersion = "^7.16.0";
|
|
19
19
|
export declare const tailwindVersion = "^3.0.2";
|
|
20
20
|
export declare const postcssVersion = "^8.4.5";
|
|
21
21
|
export declare const postcssUrlVersion = "~10.1.3";
|
|
22
22
|
export declare const autoprefixerVersion = "^10.4.0";
|
|
23
23
|
export declare const tsNodeVersion = "10.9.1";
|
|
24
|
-
export declare const jestPresetAngularVersion = "~14.
|
|
24
|
+
export declare const jestPresetAngularVersion = "~14.4.0";
|
|
25
25
|
export declare const typesNodeVersion = "18.16.9";
|
|
26
26
|
export declare const jasmineMarblesVersion = "^0.9.2";
|
|
27
|
-
export declare const analogVitestAngular = "~1.
|
|
27
|
+
export declare const analogVitestAngular = "~1.10.0-beta.6";
|
|
28
28
|
export declare const jsoncEslintParserVersion = "^2.1.0";
|
package/src/utils/versions.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.jsoncEslintParserVersion = exports.analogVitestAngular = exports.jasmineMarblesVersion = exports.typesNodeVersion = exports.jestPresetAngularVersion = exports.tsNodeVersion = exports.autoprefixerVersion = exports.postcssUrlVersion = exports.postcssVersion = exports.tailwindVersion = exports.typescriptEslintVersion = exports.angularEslintVersion = exports.moduleFederationEnhancedVersion = exports.moduleFederationNodeVersion = exports.browserSyncVersion = exports.typesExpressVersion = exports.expressVersion = exports.typesCorsVersion = exports.corsVersion = exports.tsLibVersion = exports.angularJsVersion = exports.zoneJsVersion = exports.rxjsVersion = exports.ngrxVersion = exports.ngPackagrVersion = exports.angularDevkitVersion = exports.angularVersion = exports.nxVersion = void 0;
|
|
4
4
|
exports.nxVersion = require('../../package.json').version;
|
|
5
|
-
exports.angularVersion = '~
|
|
6
|
-
exports.angularDevkitVersion = '~
|
|
7
|
-
exports.ngPackagrVersion = '~
|
|
5
|
+
exports.angularVersion = '~19.0.0';
|
|
6
|
+
exports.angularDevkitVersion = '~19.0.0';
|
|
7
|
+
exports.ngPackagrVersion = '~19.0.0';
|
|
8
8
|
exports.ngrxVersion = '^18.0.2';
|
|
9
9
|
exports.rxjsVersion = '~7.8.0';
|
|
10
|
-
exports.zoneJsVersion = '~0.
|
|
10
|
+
exports.zoneJsVersion = '~0.15.0';
|
|
11
11
|
exports.angularJsVersion = '1.7.9';
|
|
12
12
|
exports.tsLibVersion = '^2.3.0';
|
|
13
13
|
exports.corsVersion = '~2.8.5';
|
|
@@ -17,15 +17,15 @@ exports.typesExpressVersion = '4.17.14';
|
|
|
17
17
|
exports.browserSyncVersion = '^3.0.0';
|
|
18
18
|
exports.moduleFederationNodeVersion = '~2.6.11';
|
|
19
19
|
exports.moduleFederationEnhancedVersion = '0.7.6';
|
|
20
|
-
exports.angularEslintVersion = '^
|
|
20
|
+
exports.angularEslintVersion = '^19.0.0';
|
|
21
21
|
exports.typescriptEslintVersion = '^7.16.0';
|
|
22
22
|
exports.tailwindVersion = '^3.0.2';
|
|
23
23
|
exports.postcssVersion = '^8.4.5';
|
|
24
24
|
exports.postcssUrlVersion = '~10.1.3';
|
|
25
25
|
exports.autoprefixerVersion = '^10.4.0';
|
|
26
26
|
exports.tsNodeVersion = '10.9.1';
|
|
27
|
-
exports.jestPresetAngularVersion = '~14.
|
|
27
|
+
exports.jestPresetAngularVersion = '~14.4.0';
|
|
28
28
|
exports.typesNodeVersion = '18.16.9';
|
|
29
29
|
exports.jasmineMarblesVersion = '^0.9.2';
|
|
30
|
-
exports.analogVitestAngular = '~1.
|
|
30
|
+
exports.analogVitestAngular = '~1.10.0-beta.6';
|
|
31
31
|
exports.jsoncEslintParserVersion = '^2.1.0';
|