@nx/angular 22.2.3 → 22.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/executors.json +5 -0
- package/migrations.json +200 -291
- package/package.json +18 -18
- package/src/builders/dev-server/lib/normalize-options.d.ts.map +1 -1
- package/src/builders/dev-server/lib/normalize-options.js +1 -3
- package/src/builders/dev-server/lib/validate-options.d.ts.map +1 -1
- package/src/builders/dev-server/lib/validate-options.js +6 -5
- package/src/builders/dev-server/schema.d.ts +1 -0
- package/src/builders/dev-server/schema.json +9 -2
- package/src/executors/application/application.impl.js +1 -1
- package/src/executors/application/schema.json +11 -9
- package/src/executors/application/utils/normalize-options.d.ts.map +1 -1
- package/src/executors/application/utils/normalize-options.js +1 -27
- package/src/executors/application/utils/validate-options.d.ts.map +1 -1
- package/src/executors/application/utils/validate-options.js +0 -17
- package/src/executors/browser-esbuild/browser-esbuild.impl.js +1 -1
- package/src/executors/extract-i18n/extract-i18n.impl.js +1 -1
- package/src/executors/unit-test/schema.d.ts +7 -0
- package/src/executors/unit-test/schema.json +320 -0
- package/src/executors/unit-test/unit-test.impl.d.ts +5 -0
- package/src/executors/unit-test/unit-test.impl.d.ts.map +1 -0
- package/src/executors/unit-test/unit-test.impl.js +111 -0
- package/src/executors/utilities/ng-packagr/stylesheet-processor.d.ts.map +1 -0
- package/src/executors/utilities/ng-packagr/stylesheet-processor.di.d.ts.map +1 -1
- package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +2 -6
- package/src/executors/utilities/ng-packagr/{v19+/stylesheet-processor.js → stylesheet-processor.js} +2 -2
- package/src/generators/application/application.d.ts +1 -1
- package/src/generators/application/application.d.ts.map +1 -1
- package/src/generators/application/application.js +6 -1
- package/src/generators/application/files/base/tsconfig.app.json__tpl__ +2 -4
- package/src/generators/application/files/ng-module/src/app/app__componentFileSuffix__.spec.ts__tpl__ +2 -2
- package/src/generators/application/files/ng-module/src/app/app__componentFileSuffix__.ts__tpl__ +2 -2
- package/src/generators/application/files/ng-module/src/main.ts__tpl__ +1 -3
- package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +1 -2
- package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +1 -2
- package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/nx-welcome__componentFileSuffix__.ts__tpl__ +1 -2
- package/src/generators/application/files/rspack-ssr/server.ts__tmpl__ +6 -0
- package/src/generators/application/files/standalone-components/src/app/app.config.ts__tpl__ +3 -3
- package/src/generators/application/files/standalone-components/src/app/app__componentFileSuffix__.spec.ts__tpl__ +2 -2
- package/src/generators/application/files/standalone-components/src/app/app__componentFileSuffix__.ts__tpl__ +1 -2
- package/src/generators/application/lib/add-unit-test-runner.d.ts +1 -1
- package/src/generators/application/lib/add-unit-test-runner.d.ts.map +1 -1
- package/src/generators/application/lib/add-unit-test-runner.js +13 -2
- package/src/generators/application/lib/create-files.d.ts.map +1 -1
- package/src/generators/application/lib/create-files.js +1 -3
- package/src/generators/application/lib/create-project.js +12 -10
- package/src/generators/application/lib/enable-strict-type-checking.js +1 -1
- package/src/generators/application/lib/index.d.ts +2 -1
- package/src/generators/application/lib/index.d.ts.map +1 -1
- package/src/generators/application/lib/index.js +2 -1
- package/src/generators/application/lib/normalize-options.d.ts.map +1 -1
- package/src/generators/application/lib/normalize-options.js +12 -2
- package/src/generators/application/lib/update-tsconfig-files.d.ts.map +1 -1
- package/src/generators/application/lib/update-tsconfig-files.js +6 -17
- package/src/generators/application/lib/validate-options.d.ts +4 -0
- package/src/generators/application/lib/validate-options.d.ts.map +1 -0
- package/src/generators/application/lib/validate-options.js +26 -0
- package/src/generators/application/schema.d.ts +1 -0
- package/src/generators/application/schema.json +7 -4
- package/src/generators/component/component.d.ts.map +1 -1
- package/src/generators/component/component.js +4 -3
- package/src/generators/component/files/__fileName__.spec.ts__tpl__ +1 -1
- package/src/generators/component/files/__fileName__.ts__tpl__ +1 -1
- package/src/generators/component-test/component-test.d.ts +3 -3
- package/src/generators/component-test/component-test.d.ts.map +1 -1
- package/src/generators/component-test/component-test.js +9 -0
- package/src/generators/component-test/schema.d.ts +1 -0
- package/src/generators/component-test/schema.json +6 -0
- package/src/generators/convert-to-rspack/convert-to-rspack.d.ts.map +1 -1
- package/src/generators/convert-to-rspack/convert-to-rspack.js +1 -4
- package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts.map +1 -1
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js +80 -33
- package/src/generators/cypress-component-configuration/schema.d.ts +1 -0
- package/src/generators/cypress-component-configuration/schema.json +6 -0
- package/src/generators/directive/directive.d.ts.map +1 -1
- package/src/generators/directive/directive.js +0 -3
- package/src/generators/directive/files/__fileName__.ts__tpl__ +1 -1
- package/src/generators/federate-module/federate-module.d.ts +1 -1
- package/src/generators/federate-module/federate-module.d.ts.map +1 -1
- package/src/generators/federate-module/federate-module.js +8 -0
- package/src/generators/federate-module/lib/add-remote.js +1 -1
- package/src/generators/federate-module/schema.d.ts +2 -2
- package/src/generators/federate-module/schema.json +3 -4
- package/src/generators/host/files/common/src/main.server.ts__tmpl__ +8 -1
- package/src/generators/host/host.d.ts.map +1 -1
- package/src/generators/host/host.js +5 -1
- package/src/generators/host/lib/index.d.ts +1 -0
- package/src/generators/host/lib/index.d.ts.map +1 -1
- package/src/generators/host/lib/index.js +1 -0
- package/src/generators/host/lib/update-ssr-setup.d.ts.map +1 -1
- package/src/generators/host/lib/update-ssr-setup.js +6 -4
- package/src/generators/host/lib/validate-options.d.ts +4 -0
- package/src/generators/host/lib/validate-options.d.ts.map +1 -0
- package/src/generators/host/lib/validate-options.js +12 -0
- package/src/generators/host/schema.d.ts +2 -2
- package/src/generators/host/schema.json +5 -6
- package/src/generators/library/files/base/tsconfig.lib.json__tpl__ +3 -5
- package/src/generators/library/lib/normalize-options.d.ts.map +1 -1
- package/src/generators/library/lib/normalize-options.js +10 -3
- package/src/generators/library/lib/update-tsconfig-files.d.ts.map +1 -1
- package/src/generators/library/lib/update-tsconfig-files.js +15 -6
- package/src/generators/library/lib/validate-options.d.ts +4 -0
- package/src/generators/library/lib/validate-options.d.ts.map +1 -0
- package/src/generators/library/lib/validate-options.js +27 -0
- package/src/generators/library/library.d.ts.map +1 -1
- package/src/generators/library/library.js +20 -13
- package/src/generators/library/schema.json +3 -4
- package/src/generators/ng-add/migrators/builders/angular-build-unit-test.migrator.d.ts +16 -0
- package/src/generators/ng-add/migrators/builders/angular-build-unit-test.migrator.d.ts.map +1 -0
- package/src/generators/ng-add/migrators/builders/angular-build-unit-test.migrator.js +161 -0
- package/src/generators/ng-add/migrators/builders/index.d.ts +1 -0
- package/src/generators/ng-add/migrators/builders/index.d.ts.map +1 -1
- package/src/generators/ng-add/migrators/builders/index.js +1 -0
- package/src/generators/ng-add/migrators/projects/app.migrator.d.ts.map +1 -1
- package/src/generators/ng-add/migrators/projects/app.migrator.js +1 -0
- package/src/generators/ng-add/migrators/projects/lib.migrator.d.ts.map +1 -1
- package/src/generators/ng-add/migrators/projects/lib.migrator.js +1 -0
- package/src/generators/pipe/files/__fileName__.ts__tpl__ +1 -1
- package/src/generators/pipe/pipe.d.ts.map +1 -1
- package/src/generators/pipe/pipe.js +0 -5
- package/src/generators/remote/files/common/src/main.server.ts__tmpl__ +8 -1
- package/src/generators/remote/lib/index.d.ts +1 -0
- package/src/generators/remote/lib/index.d.ts.map +1 -1
- package/src/generators/remote/lib/index.js +1 -0
- package/src/generators/remote/lib/update-ssr-setup.d.ts +2 -1
- package/src/generators/remote/lib/update-ssr-setup.d.ts.map +1 -1
- package/src/generators/remote/lib/update-ssr-setup.js +7 -7
- package/src/generators/remote/lib/validate-options.d.ts +4 -0
- package/src/generators/remote/lib/validate-options.d.ts.map +1 -0
- package/src/generators/remote/lib/validate-options.js +12 -0
- package/src/generators/remote/remote.d.ts.map +1 -1
- package/src/generators/remote/remote.js +6 -1
- package/src/generators/remote/schema.d.ts +2 -2
- package/src/generators/remote/schema.json +5 -6
- package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.js +1 -1
- package/src/generators/setup-mf/files/entry-module-files/entry__componentFileSuffix__.ts__tmpl__ +2 -2
- package/src/generators/setup-mf/files/host-files/__appFileName__.spec.ts__tmpl__ +5 -6
- package/src/generators/setup-mf/files/standalone-entry-component-files/entry__componentFileSuffix__.ts__tmpl__ +1 -2
- package/src/generators/setup-mf/lib/add-remote-entry.d.ts.map +1 -1
- package/src/generators/setup-mf/lib/add-remote-entry.js +0 -5
- package/src/generators/setup-mf/lib/update-host-app-routes.d.ts.map +1 -1
- package/src/generators/setup-mf/lib/update-host-app-routes.js +9 -6
- package/src/generators/setup-ssr/files/v20+/application-builder/server/__serverFileName__ +2 -2
- package/src/generators/setup-ssr/files/v20+/server-builder/server/__serverFileName__ +6 -0
- package/src/generators/setup-ssr/lib/add-hydration.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/add-hydration.js +2 -8
- package/src/generators/setup-ssr/lib/add-server-file.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/add-server-file.js +7 -7
- package/src/generators/setup-ssr/lib/generate-files.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/generate-files.js +2 -7
- package/src/generators/setup-ssr/lib/generate-server-ts-config.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/generate-server-ts-config.js +26 -12
- package/src/generators/setup-ssr/lib/normalize-options.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/normalize-options.js +1 -5
- package/src/generators/setup-ssr/lib/update-project-config.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/update-project-config.js +6 -17
- package/src/generators/setup-ssr/lib/validate-options.d.ts.map +1 -1
- package/src/generators/setup-ssr/lib/validate-options.js +9 -0
- package/src/generators/utils/add-jest.d.ts +2 -0
- package/src/generators/utils/add-jest.d.ts.map +1 -1
- package/src/generators/utils/add-jest.js +41 -11
- package/src/generators/utils/add-vitest.d.ts +11 -2
- package/src/generators/utils/add-vitest.d.ts.map +1 -1
- package/src/generators/utils/add-vitest.js +173 -6
- package/src/generators/utils/assert-mf-utils.d.ts +1 -1
- package/src/generators/utils/assert-mf-utils.d.ts.map +1 -1
- package/src/generators/utils/assert-mf-utils.js +1 -4
- package/src/generators/utils/ensure-angular-dependencies.d.ts +1 -1
- package/src/generators/utils/ensure-angular-dependencies.d.ts.map +1 -1
- package/src/generators/utils/ensure-angular-dependencies.js +6 -4
- package/src/generators/utils/storybook-ast/component-info.js +2 -10
- package/src/generators/utils/tsconfig-utils.d.ts +13 -0
- package/src/generators/utils/tsconfig-utils.d.ts.map +1 -0
- package/src/generators/utils/tsconfig-utils.js +29 -0
- package/src/generators/utils/version-utils.d.ts +13 -3
- package/src/generators/utils/version-utils.d.ts.map +1 -1
- package/src/generators/utils/version-utils.js +11 -18
- package/src/migrations/update-21-2-0/update-module-resolution.d.ts.map +1 -1
- package/src/migrations/update-21-2-0/update-module-resolution.js +17 -4
- package/src/migrations/update-22-3-0/update-angular-cli.d.ts +4 -0
- package/src/migrations/update-22-3-0/update-angular-cli.d.ts.map +1 -0
- package/src/migrations/{update-16-4-0 → update-22-3-0}/update-angular-cli.js +1 -1
- package/src/migrations/update-22-3-0/update-module-resolution.d.ts +3 -0
- package/src/migrations/update-22-3-0/update-module-resolution.d.ts.map +1 -0
- package/src/migrations/update-22-3-0/update-module-resolution.js +61 -0
- package/src/migrations/update-22-3-0/update-ssr-webpack-config.d.ts +3 -0
- package/src/migrations/update-22-3-0/update-ssr-webpack-config.d.ts.map +1 -0
- package/src/migrations/update-22-3-0/update-ssr-webpack-config.js +111 -0
- package/src/migrations/update-22-3-0/update-typescript-lib.d.ts +3 -0
- package/src/migrations/update-22-3-0/update-typescript-lib.d.ts.map +1 -0
- package/src/migrations/update-22-3-0/update-typescript-lib.js +98 -0
- package/src/migrations/update-22-3-0/update-unit-test-runner-option.d.ts +3 -0
- package/src/migrations/update-22-3-0/update-unit-test-runner-option.d.ts.map +1 -0
- package/src/migrations/update-22-3-0/update-unit-test-runner-option.js +44 -0
- package/src/plugins/plugin.d.ts.map +1 -1
- package/src/plugins/plugin.js +40 -24
- package/src/utils/backward-compatible-versions.d.ts +7 -9
- package/src/utils/backward-compatible-versions.d.ts.map +1 -1
- package/src/utils/backward-compatible-versions.js +20 -14
- package/src/utils/nx-devkit/ast-utils.d.ts.map +1 -1
- package/src/utils/nx-devkit/ast-utils.js +2 -13
- package/src/utils/targets.d.ts +6 -1
- package/src/utils/targets.d.ts.map +1 -1
- package/src/utils/targets.js +20 -3
- package/src/utils/test-runners.d.ts +2 -1
- package/src/utils/test-runners.d.ts.map +1 -1
- package/src/utils/test-runners.js +2 -1
- package/src/utils/version-utils.d.ts +2 -2
- package/src/utils/version-utils.d.ts.map +1 -1
- package/src/utils/version-utils.js +3 -2
- package/src/utils/versions.d.ts +7 -6
- package/src/utils/versions.d.ts.map +1 -1
- package/src/utils/versions.js +8 -7
- package/src/utils/zoneless.d.ts +3 -0
- package/src/utils/zoneless.d.ts.map +1 -0
- package/src/utils/zoneless.js +28 -0
- package/{mf/index.d.ts → types/nx-angular-mf.d.ts} +1 -1
- package/types/nx-angular-mf.d.ts.map +1 -0
- package/types/nx-angular.d.ts +3 -0
- package/types/nx-angular.d.ts.map +1 -0
- package/index.d.ts +0 -3
- package/index.d.ts.map +0 -1
- package/mf/index.d.ts.map +0 -1
- package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.d.ts +0 -28
- package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.d.ts.map +0 -1
- package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.js +0 -159
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.d.ts.map +0 -1
- package/src/generators/setup-ssr/files/pre-v19/ngmodule-src/__main__ +0 -1
- package/src/generators/setup-ssr/files/pre-v19/ngmodule-src/app/__rootModuleFileName__ +0 -14
- package/src/generators/setup-ssr/files/pre-v19/root/tsconfig.server.json__tpl__ +0 -15
- package/src/generators/setup-ssr/files/pre-v19/server/application-builder/__serverFileName__ +0 -57
- package/src/generators/setup-ssr/files/pre-v19/server/server-builder/__serverFileName__ +0 -72
- package/src/generators/setup-ssr/files/pre-v19/standalone-src/__main__ +0 -12
- package/src/generators/setup-ssr/files/pre-v19/standalone-src/app/app.config.server.ts__tpl__ +0 -11
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.d.ts +0 -3
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.d.ts.map +0 -1
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +0 -122
- package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.d.ts +0 -3
- package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.d.ts.map +0 -1
- package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.js +0 -34
- package/src/migrations/update-16-4-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-16-4-0/update-angular-cli.d.ts.map +0 -1
- package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.d.ts +0 -3
- package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.d.ts.map +0 -1
- package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +0 -34
- package/src/migrations/update-16-7-0/update-angular-cli.d.ts +0 -4
- package/src/migrations/update-16-7-0/update-angular-cli.d.ts.map +0 -1
- package/src/migrations/update-16-7-0/update-angular-cli.js +0 -14
- /package/src/executors/utilities/ng-packagr/{v19+/stylesheet-processor.d.ts → stylesheet-processor.d.ts} +0 -0
|
@@ -4,7 +4,6 @@ exports.updateProjectConfigForApplicationBuilder = updateProjectConfigForApplica
|
|
|
4
4
|
exports.updateProjectConfigForBrowserBuilder = updateProjectConfigForBrowserBuilder;
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
6
|
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
|
7
|
-
const version_utils_1 = require("../../utils/version-utils");
|
|
8
7
|
const constants_1 = require("./constants");
|
|
9
8
|
function updateProjectConfigForApplicationBuilder(tree, options) {
|
|
10
9
|
const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
@@ -29,27 +28,18 @@ function updateProjectConfigForApplicationBuilder(tree, options) {
|
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
|
-
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
33
31
|
const sourceRoot = (0, ts_solution_setup_1.getProjectSourceRoot)(project, tree);
|
|
34
32
|
buildTarget.options ??= {};
|
|
35
33
|
buildTarget.options.outputPath = outputPath;
|
|
36
34
|
buildTarget.options.server = (0, devkit_1.joinPathFragments)(sourceRoot, options.main);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
buildTarget.options.outputMode = 'server';
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
buildTarget.options.prerender = true;
|
|
46
|
-
}
|
|
35
|
+
buildTarget.options.ssr = {
|
|
36
|
+
entry: (0, devkit_1.joinPathFragments)(sourceRoot, options.serverFileName),
|
|
37
|
+
};
|
|
38
|
+
if (options.serverRouting) {
|
|
39
|
+
buildTarget.options.outputMode = 'server';
|
|
47
40
|
}
|
|
48
41
|
else {
|
|
49
42
|
buildTarget.options.prerender = true;
|
|
50
|
-
buildTarget.options.ssr = {
|
|
51
|
-
entry: (0, devkit_1.joinPathFragments)(project.root, options.serverFileName),
|
|
52
|
-
};
|
|
53
43
|
}
|
|
54
44
|
(0, devkit_1.updateProjectConfiguration)(tree, options.project, project);
|
|
55
45
|
}
|
|
@@ -65,7 +55,6 @@ function updateProjectConfigForBrowserBuilder(tree, options) {
|
|
|
65
55
|
configurations[key] = getServerOptions(options);
|
|
66
56
|
}
|
|
67
57
|
}
|
|
68
|
-
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
69
58
|
const sourceRoot = (0, ts_solution_setup_1.getProjectSourceRoot)(projectConfig, tree);
|
|
70
59
|
projectConfig.targets.server = {
|
|
71
60
|
dependsOn: ['build'],
|
|
@@ -74,7 +63,7 @@ function updateProjectConfigForBrowserBuilder(tree, options) {
|
|
|
74
63
|
: '@nx/angular:webpack-server',
|
|
75
64
|
options: {
|
|
76
65
|
outputPath: (0, devkit_1.joinPathFragments)(baseOutputPath, 'server'),
|
|
77
|
-
main: (0, devkit_1.joinPathFragments)(
|
|
66
|
+
main: (0, devkit_1.joinPathFragments)(sourceRoot, options.serverFileName),
|
|
78
67
|
tsConfig: (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.server.json'),
|
|
79
68
|
...(buildTarget.options ? getServerOptions(buildTarget.options) : {}),
|
|
80
69
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-ssr/lib/validate-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-ssr/lib/validate-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAyBjE"}
|
|
@@ -11,6 +11,15 @@ function validateOptions(tree, options) {
|
|
|
11
11
|
if (angularMajorVersion !== 19 && options.serverRouting !== undefined) {
|
|
12
12
|
throw new Error(`The "serverRouting" option is only supported in Angular versions 19.x.x. You are using Angular ${angularVersion}.`);
|
|
13
13
|
}
|
|
14
|
+
if (options.serverRouting) {
|
|
15
|
+
const { targets } = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
16
|
+
const isUsingApplicationBuilder = targets.build.executor === '@angular-devkit/build-angular:application' ||
|
|
17
|
+
targets.build.executor === '@angular/build:application' ||
|
|
18
|
+
targets.build.executor === '@nx/angular:application';
|
|
19
|
+
if (!isUsingApplicationBuilder) {
|
|
20
|
+
throw new Error('Server routing APIs can only be added to a project using the "application" builder.');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
14
23
|
}
|
|
15
24
|
function validateProject(tree, project) {
|
|
16
25
|
(0, validations_1.validateProject)(tree, project);
|
|
@@ -4,6 +4,8 @@ export type AddJestOptions = {
|
|
|
4
4
|
projectRoot: string;
|
|
5
5
|
skipPackageJson: boolean;
|
|
6
6
|
strict: boolean;
|
|
7
|
+
runtimeTsconfigFileName: 'tsconfig.app.json' | 'tsconfig.lib.json';
|
|
8
|
+
zoneless: boolean;
|
|
7
9
|
addPlugin?: boolean;
|
|
8
10
|
};
|
|
9
11
|
export declare function addJest(tree: Tree, options: AddJestOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-jest.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/add-jest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"add-jest.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/add-jest.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAIpB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,uBAAuB,EAAE,mBAAmB,GAAG,mBAAmB,CAAC;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
|
|
@@ -7,14 +7,18 @@ const version_utils_1 = require("./version-utils");
|
|
|
7
7
|
async function addJest(tree, options) {
|
|
8
8
|
if (!options.skipPackageJson) {
|
|
9
9
|
const pkgVersions = (0, version_utils_1.versions)(tree);
|
|
10
|
+
const devDependencies = {
|
|
11
|
+
'jest-preset-angular': pkgVersions.jestPresetAngularVersion,
|
|
12
|
+
};
|
|
13
|
+
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
14
|
+
if (angularMajorVersion < 21) {
|
|
15
|
+
// force jest v29.7.0
|
|
16
|
+
devDependencies.jest = '^29.7.0';
|
|
17
|
+
}
|
|
10
18
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {
|
|
11
|
-
// TODO(leo): jest-preset-angular still needs this
|
|
19
|
+
// TODO(leo): jest-preset-angular still needs this, it has it as a peer dependency
|
|
12
20
|
'@angular/platform-browser-dynamic': pkgVersions.angularVersion,
|
|
13
|
-
},
|
|
14
|
-
// force jest v29.7.0, Angular doesn't support Jest v30 yet: https://github.com/angular/angular-cli/pull/30761
|
|
15
|
-
jest: '^29.7.0',
|
|
16
|
-
'jest-preset-angular': pkgVersions.jestPresetAngularVersion,
|
|
17
|
-
}, undefined, true);
|
|
21
|
+
}, devDependencies, undefined, true);
|
|
18
22
|
}
|
|
19
23
|
const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', versions_1.nxVersion);
|
|
20
24
|
await configurationGenerator(tree, {
|
|
@@ -28,11 +32,37 @@ async function addJest(tree, options) {
|
|
|
28
32
|
addExplicitTargets: !options.addPlugin,
|
|
29
33
|
});
|
|
30
34
|
const setupFile = (0, devkit_1.joinPathFragments)(options.projectRoot, 'src', 'test-setup.ts');
|
|
31
|
-
if (options.
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
if (options.zoneless) {
|
|
36
|
+
tree.write(setupFile, getZonelessSetupFile(options.strict));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
tree.write(setupFile, getZoneSetupFile(options.strict));
|
|
40
|
+
}
|
|
41
|
+
const runtimeTsconfigPath = (0, devkit_1.joinPathFragments)(options.projectRoot, options.runtimeTsconfigFileName);
|
|
42
|
+
if (tree.exists(runtimeTsconfigPath)) {
|
|
43
|
+
(0, devkit_1.updateJson)(tree, runtimeTsconfigPath, (json) => {
|
|
44
|
+
const excludeSet = new Set([
|
|
45
|
+
...(json.exclude ?? []),
|
|
46
|
+
'src/test-setup.ts',
|
|
47
|
+
]);
|
|
48
|
+
json.exclude = Array.from(excludeSet);
|
|
49
|
+
return json;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const strictTestEnvOptions = `{
|
|
34
54
|
errorOnUnknownElements: true,
|
|
35
55
|
errorOnUnknownProperties: true
|
|
36
|
-
}
|
|
37
|
-
|
|
56
|
+
}`;
|
|
57
|
+
function getZonelessSetupFile(strict) {
|
|
58
|
+
return `import { setupZonelessTestEnv } from 'jest-preset-angular/setup-env/zoneless';
|
|
59
|
+
|
|
60
|
+
setupZonelessTestEnv(${strict ? strictTestEnvOptions : ''});
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
function getZoneSetupFile(strict) {
|
|
64
|
+
return `import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
|
|
65
|
+
|
|
66
|
+
setupZoneTestEnv(${strict ? strictTestEnvOptions : ''});
|
|
67
|
+
`;
|
|
38
68
|
}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { type Tree } from '@nx/devkit';
|
|
2
|
-
export type
|
|
2
|
+
export type AddVitestAngularOptions = {
|
|
3
3
|
name: string;
|
|
4
4
|
projectRoot: string;
|
|
5
5
|
skipPackageJson: boolean;
|
|
6
|
+
useNxUnitTestRunnerExecutor?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type AddVitestAnalogOptions = {
|
|
9
|
+
name: string;
|
|
10
|
+
projectRoot: string;
|
|
11
|
+
skipFormat: boolean;
|
|
12
|
+
skipPackageJson: boolean;
|
|
6
13
|
strict: boolean;
|
|
14
|
+
zoneless: boolean;
|
|
7
15
|
addPlugin?: boolean;
|
|
8
16
|
};
|
|
9
|
-
export declare function
|
|
17
|
+
export declare function addVitestAngular(tree: Tree, options: AddVitestAngularOptions): Promise<void>;
|
|
18
|
+
export declare function addVitestAnalog(tree: Tree, options: AddVitestAnalogOptions): Promise<void>;
|
|
10
19
|
//# sourceMappingURL=add-vitest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-vitest.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/add-vitest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"add-vitest.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/add-vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,IAAI,EAKV,MAAM,YAAY,CAAC;AAUpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
@@ -33,11 +33,61 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.addVitestAngular = addVitestAngular;
|
|
37
|
+
exports.addVitestAnalog = addVitestAnalog;
|
|
37
38
|
const devkit_1 = require("@nx/devkit");
|
|
39
|
+
const devkit_internals_1 = require("nx/src/devkit-internals");
|
|
40
|
+
const semver_1 = require("semver");
|
|
38
41
|
const versions_1 = require("../../utils/versions");
|
|
39
42
|
const version_utils_1 = require("./version-utils");
|
|
40
|
-
async function
|
|
43
|
+
async function addVitestAngular(tree, options) {
|
|
44
|
+
validateVitestVersion(tree);
|
|
45
|
+
const executor = options.useNxUnitTestRunnerExecutor
|
|
46
|
+
? '@nx/angular:unit-test'
|
|
47
|
+
: '@angular/build:unit-test';
|
|
48
|
+
const project = (0, devkit_1.readProjectConfiguration)(tree, options.name);
|
|
49
|
+
project.targets ??= {};
|
|
50
|
+
project.targets.test = { executor, options: {} };
|
|
51
|
+
(0, devkit_1.updateProjectConfiguration)(tree, options.name, project);
|
|
52
|
+
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
53
|
+
nxJson.targetDefaults ??= {};
|
|
54
|
+
nxJson.targetDefaults[executor] ??= {
|
|
55
|
+
cache: true,
|
|
56
|
+
inputs: nxJson.namedInputs && 'production' in nxJson.namedInputs
|
|
57
|
+
? ['default', '^production']
|
|
58
|
+
: ['default', '^default'],
|
|
59
|
+
};
|
|
60
|
+
(0, devkit_1.updateNxJson)(tree, nxJson);
|
|
61
|
+
configureTypeScriptForVitest(tree, options.projectRoot);
|
|
62
|
+
addVitestScreenshotsToGitIgnore(tree);
|
|
63
|
+
if (!options.skipPackageJson) {
|
|
64
|
+
const pkgVersions = (0, version_utils_1.versions)(tree, { minAngularMajorVersion: 21 });
|
|
65
|
+
const angularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree) ??
|
|
66
|
+
pkgVersions.angularDevkitVersion;
|
|
67
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
|
|
68
|
+
'@angular/build': angularDevkitVersion,
|
|
69
|
+
jsdom: pkgVersions.jsdomVersion,
|
|
70
|
+
vitest: pkgVersions.vitestVersion,
|
|
71
|
+
}, undefined, true);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async function addVitestAnalog(tree, options) {
|
|
75
|
+
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
76
|
+
if (!options.skipPackageJson) {
|
|
77
|
+
const angularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree) ??
|
|
78
|
+
(0, version_utils_1.versions)(tree).angularDevkitVersion;
|
|
79
|
+
const devDependencies = {
|
|
80
|
+
'@angular/build': angularDevkitVersion,
|
|
81
|
+
};
|
|
82
|
+
// Add compatible vitest/jsdom versions BEFORE calling configurationGenerator
|
|
83
|
+
// so that @nx/vitest respects existing versions
|
|
84
|
+
if (angularMajorVersion < 21) {
|
|
85
|
+
const pkgVersions = (0, version_utils_1.versions)(tree);
|
|
86
|
+
devDependencies['vitest'] = pkgVersions.vitestVersion;
|
|
87
|
+
devDependencies['jsdom'] = pkgVersions.jsdomVersion;
|
|
88
|
+
}
|
|
89
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies, undefined, true);
|
|
90
|
+
}
|
|
41
91
|
(0, devkit_1.ensurePackage)('@nx/vitest', versions_1.nxVersion);
|
|
42
92
|
const { configurationGenerator } = await Promise.resolve().then(() => __importStar(require('@nx/vitest/generators')));
|
|
43
93
|
await configurationGenerator(tree, {
|
|
@@ -46,10 +96,127 @@ async function addVitest(tree, options) {
|
|
|
46
96
|
testEnvironment: 'jsdom',
|
|
47
97
|
coverageProvider: 'v8',
|
|
48
98
|
addPlugin: options.addPlugin ?? false,
|
|
99
|
+
skipFormat: options.skipFormat,
|
|
100
|
+
skipPackageJson: options.skipPackageJson,
|
|
49
101
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
102
|
+
createAnalogSetupFile(tree, options, angularMajorVersion);
|
|
103
|
+
}
|
|
104
|
+
function validateVitestVersion(tree) {
|
|
105
|
+
let installedVitestVersion = null;
|
|
106
|
+
// Try to get the actual installed version from node_modules
|
|
107
|
+
try {
|
|
108
|
+
const { packageJson } = (0, devkit_internals_1.readModulePackageJson)('vitest');
|
|
109
|
+
installedVitestVersion = packageJson.version;
|
|
110
|
+
}
|
|
111
|
+
catch { }
|
|
112
|
+
const pkgVersions = (0, version_utils_1.versions)(tree, { minAngularMajorVersion: 21 });
|
|
113
|
+
const requiredRange = pkgVersions.vitestVersion;
|
|
114
|
+
if (installedVitestVersion) {
|
|
115
|
+
if (!(0, semver_1.satisfies)(installedVitestVersion, requiredRange, {
|
|
116
|
+
includePrerelease: true,
|
|
117
|
+
})) {
|
|
118
|
+
throw new Error(`The installed vitest version "${installedVitestVersion}" is not compatible with the version range Angular requires: "${requiredRange}".`);
|
|
119
|
+
}
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// not installed, get it from package.json
|
|
123
|
+
installedVitestVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'vitest');
|
|
124
|
+
if (!installedVitestVersion) {
|
|
125
|
+
// not declared anywhere, it'll be installed with the correct version
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if ((0, semver_1.valid)(installedVitestVersion)) {
|
|
129
|
+
if (!(0, semver_1.satisfies)(installedVitestVersion, requiredRange, {
|
|
130
|
+
includePrerelease: true,
|
|
131
|
+
})) {
|
|
132
|
+
throw new Error(`The installed vitest version "${installedVitestVersion}" is not compatible with the version range Angular requires: "${requiredRange}".`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else if ((0, semver_1.validRange)(installedVitestVersion)) {
|
|
136
|
+
// it's a range from package.json, check if it intersects with the required range
|
|
137
|
+
if (!(0, semver_1.intersects)(installedVitestVersion, requiredRange, {
|
|
138
|
+
includePrerelease: true,
|
|
139
|
+
})) {
|
|
140
|
+
throw new Error(`The declared vitest version range "${installedVitestVersion}" does not overlap with the version range Angular requires: "${requiredRange}". When installed, this may cause compatibility issues.`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
// it can be anything, we don't have a way to validate it
|
|
145
|
+
// log a warning and continue
|
|
146
|
+
devkit_1.logger.warn(`The declared vitest version "${installedVitestVersion}" is not a valid semver range, ` +
|
|
147
|
+
`so we can't validate if it's compatible with the version range Angular requires: "${requiredRange}". ` +
|
|
148
|
+
`The generation will continue, but you may encounter issues if the version is not compatible.`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function configureTypeScriptForVitest(tree, projectRoot) {
|
|
152
|
+
(0, devkit_1.writeJson)(tree, (0, devkit_1.joinPathFragments)(projectRoot, 'tsconfig.spec.json'), {
|
|
153
|
+
extends: './tsconfig.json',
|
|
154
|
+
compilerOptions: {
|
|
155
|
+
outDir: `${(0, devkit_1.offsetFromRoot)(projectRoot)}dist/out-tsc`,
|
|
156
|
+
types: ['vitest/globals'],
|
|
157
|
+
},
|
|
158
|
+
include: ['src/**/*.ts', 'src/**/*.d.ts'],
|
|
159
|
+
});
|
|
160
|
+
const projectTsconfigPath = (0, devkit_1.joinPathFragments)(projectRoot, 'tsconfig.json');
|
|
161
|
+
(0, devkit_1.updateJson)(tree, projectTsconfigPath, (json) => {
|
|
162
|
+
json.references ??= [];
|
|
163
|
+
if (!json.references.some((ref) => ref.path === './tsconfig.spec.json')) {
|
|
164
|
+
json.references.push({ path: './tsconfig.spec.json' });
|
|
165
|
+
}
|
|
166
|
+
return json;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
function addVitestScreenshotsToGitIgnore(tree) {
|
|
170
|
+
if (tree.exists('.gitignore')) {
|
|
171
|
+
let content = tree.read('.gitignore', 'utf-8');
|
|
172
|
+
if (/^__screenshots__\/$/gm.test(content)) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
content = `${content}\n__screenshots__/\n`;
|
|
176
|
+
tree.write('.gitignore', content);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
devkit_1.logger.warn(`Couldn't find .gitignore file to update`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function createAnalogSetupFile(tree, options, angularMajorVersion) {
|
|
183
|
+
let setupFile;
|
|
184
|
+
if (angularMajorVersion >= 21) {
|
|
185
|
+
setupFile = `import '@angular/compiler';
|
|
186
|
+
import '@analogjs/vitest-angular/setup-snapshots';
|
|
187
|
+
import { setupTestBed } from '@analogjs/vitest-angular/setup-testbed';
|
|
188
|
+
|
|
189
|
+
setupTestBed(${options.zoneless ? '' : '{ zoneless: false }'});
|
|
190
|
+
`;
|
|
191
|
+
}
|
|
192
|
+
else if (angularMajorVersion === 20) {
|
|
193
|
+
setupFile = `import '@angular/compiler';
|
|
194
|
+
import '@analogjs/vitest-angular/setup-zone';
|
|
195
|
+
import {
|
|
196
|
+
BrowserTestingModule,
|
|
197
|
+
platformBrowserTesting,
|
|
198
|
+
} from '@angular/platform-browser/testing';
|
|
199
|
+
import { getTestBed } from '@angular/core/testing';
|
|
200
|
+
|
|
201
|
+
getTestBed().initTestEnvironment(
|
|
202
|
+
BrowserTestingModule,
|
|
203
|
+
platformBrowserTesting(),
|
|
204
|
+
);
|
|
205
|
+
`;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
setupFile = `import '@analogjs/vitest-angular/setup-zone';
|
|
209
|
+
import {
|
|
210
|
+
BrowserDynamicTestingModule,
|
|
211
|
+
platformBrowserDynamicTesting,
|
|
212
|
+
} from '@angular/platform-browser-dynamic/testing';
|
|
213
|
+
import { getTestBed } from '@angular/core/testing';
|
|
214
|
+
|
|
215
|
+
getTestBed().initTestEnvironment(
|
|
216
|
+
BrowserDynamicTestingModule,
|
|
217
|
+
platformBrowserDynamicTesting(),
|
|
218
|
+
);
|
|
219
|
+
`;
|
|
54
220
|
}
|
|
221
|
+
tree.write((0, devkit_1.joinPathFragments)(options.projectRoot, 'src/test-setup.ts'), setupFile);
|
|
55
222
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function assertRspackIsCSR(bundler: 'webpack' | 'rspack', ssr: boolean
|
|
1
|
+
export declare function assertRspackIsCSR(bundler: 'webpack' | 'rspack', ssr: boolean): void;
|
|
2
2
|
//# sourceMappingURL=assert-mf-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-mf-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/assert-mf-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"assert-mf-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/assert-mf-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,EAAE,GAAG,EAAE,OAAO,QAM5E"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.assertRspackIsCSR = assertRspackIsCSR;
|
|
4
|
-
function assertRspackIsCSR(bundler, ssr
|
|
5
|
-
if (bundler === 'rspack' && serverRouting) {
|
|
6
|
-
throw new Error('Server Routing is not currently supported for Angular Rspack Module Federation. Please use webpack instead.');
|
|
7
|
-
}
|
|
4
|
+
function assertRspackIsCSR(bundler, ssr) {
|
|
8
5
|
if (bundler === 'rspack' && ssr) {
|
|
9
6
|
throw new Error('SSR is not currently supported for Angular Rspack Module Federation. Please use webpack instead.');
|
|
10
7
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
2
|
-
export declare function ensureAngularDependencies(tree: Tree): GeneratorCallback;
|
|
2
|
+
export declare function ensureAngularDependencies(tree: Tree, zoneless: boolean): GeneratorCallback;
|
|
3
3
|
//# sourceMappingURL=ensure-angular-dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-angular-dependencies.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/ensure-angular-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAQpB,wBAAgB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ensure-angular-dependencies.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/ensure-angular-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAQpB,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO,GAChB,iBAAiB,CA0EnB"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ensureAngularDependencies = ensureAngularDependencies;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const version_utils_1 = require("./version-utils");
|
|
6
|
-
function ensureAngularDependencies(tree) {
|
|
6
|
+
function ensureAngularDependencies(tree, zoneless) {
|
|
7
7
|
const dependencies = {};
|
|
8
8
|
const devDependencies = {};
|
|
9
9
|
const pkgVersions = (0, version_utils_1.versions)(tree);
|
|
@@ -21,8 +21,6 @@ function ensureAngularDependencies(tree) {
|
|
|
21
21
|
pkgVersions.rxjsVersion;
|
|
22
22
|
const tsLibVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'tslib', packageJson) ??
|
|
23
23
|
pkgVersions.tsLibVersion;
|
|
24
|
-
const zoneJsVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'zone.js', packageJson) ??
|
|
25
|
-
pkgVersions.zoneJsVersion;
|
|
26
24
|
dependencies['@angular/common'] = angularVersion;
|
|
27
25
|
dependencies['@angular/compiler'] = angularVersion;
|
|
28
26
|
dependencies['@angular/core'] = angularVersion;
|
|
@@ -31,7 +29,11 @@ function ensureAngularDependencies(tree) {
|
|
|
31
29
|
dependencies['@angular/router'] = angularVersion;
|
|
32
30
|
dependencies.rxjs = rxjsVersion;
|
|
33
31
|
dependencies.tslib = tsLibVersion;
|
|
34
|
-
|
|
32
|
+
if (!zoneless) {
|
|
33
|
+
const zoneJsVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'zone.js', packageJson) ??
|
|
34
|
+
pkgVersions.zoneJsVersion;
|
|
35
|
+
dependencies['zone.js'] = zoneJsVersion;
|
|
36
|
+
}
|
|
35
37
|
}
|
|
36
38
|
const installedAngularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree);
|
|
37
39
|
if (!installedAngularDevkitVersion) {
|
|
@@ -6,7 +6,6 @@ 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");
|
|
10
9
|
const module_info_1 = require("./module-info");
|
|
11
10
|
let tsModule;
|
|
12
11
|
let tsquery;
|
|
@@ -61,15 +60,8 @@ function getStandaloneComponents(tree, filePath) {
|
|
|
61
60
|
}
|
|
62
61
|
const fileContent = tree.read(filePath, 'utf-8');
|
|
63
62
|
const ast = tsquery.ast(fileContent);
|
|
64
|
-
|
|
65
|
-
|
|
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
|
|
63
|
+
// standalone: true is the default, so all components except those with
|
|
64
|
+
// standalone: false are considered standalone
|
|
73
65
|
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
66
|
return standaloneComponentNodes.map((component) => component.getText());
|
|
75
67
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Tree } from '@nx/devkit';
|
|
2
|
+
import type * as ts from 'typescript';
|
|
3
|
+
/**
|
|
4
|
+
* Gets the resolved value of a specific compiler option from the TypeScript configuration hierarchy.
|
|
5
|
+
*
|
|
6
|
+
* @param tree - The file system tree
|
|
7
|
+
* @param tsConfigPath - Path to the tsconfig file to resolve
|
|
8
|
+
* @param optionName - Name of the compiler option to retrieve
|
|
9
|
+
* @returns The resolved value of the compiler option, or undefined if not set
|
|
10
|
+
*/
|
|
11
|
+
export declare function getDefinedCompilerOption(tree: Tree, tsConfigPath: string, optionName: keyof ts.CompilerOptions): any | undefined;
|
|
12
|
+
export declare function readCompilerOptionsFromTsConfig(tree: Tree, tsConfigPath: string): ts.CompilerOptions;
|
|
13
|
+
//# sourceMappingURL=tsconfig-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsconfig-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/tsconfig-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,GACnC,GAAG,GAAG,SAAS,CAIjB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,GACnB,EAAE,CAAC,eAAe,CAgBpB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefinedCompilerOption = getDefinedCompilerOption;
|
|
4
|
+
exports.readCompilerOptionsFromTsConfig = readCompilerOptionsFromTsConfig;
|
|
5
|
+
const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
/**
|
|
8
|
+
* Gets the resolved value of a specific compiler option from the TypeScript configuration hierarchy.
|
|
9
|
+
*
|
|
10
|
+
* @param tree - The file system tree
|
|
11
|
+
* @param tsConfigPath - Path to the tsconfig file to resolve
|
|
12
|
+
* @param optionName - Name of the compiler option to retrieve
|
|
13
|
+
* @returns The resolved value of the compiler option, or undefined if not set
|
|
14
|
+
*/
|
|
15
|
+
function getDefinedCompilerOption(tree, tsConfigPath, optionName) {
|
|
16
|
+
const compilerOptions = readCompilerOptionsFromTsConfig(tree, tsConfigPath);
|
|
17
|
+
return compilerOptions[optionName];
|
|
18
|
+
}
|
|
19
|
+
function readCompilerOptionsFromTsConfig(tree, tsConfigPath) {
|
|
20
|
+
const ts = (0, ensure_typescript_1.ensureTypescript)();
|
|
21
|
+
const tsSysFromTree = {
|
|
22
|
+
...ts.sys,
|
|
23
|
+
readDirectory: () => [],
|
|
24
|
+
readFile: (path) => tree.read(path, 'utf-8'),
|
|
25
|
+
fileExists: (path) => tree.exists(path),
|
|
26
|
+
};
|
|
27
|
+
const parsed = ts.parseJsonConfigFileContent(ts.readConfigFile(tsConfigPath, tsSysFromTree.readFile).config, tsSysFromTree, (0, node_path_1.dirname)(tsConfigPath));
|
|
28
|
+
return parsed.options;
|
|
29
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Tree } from '@nx/devkit';
|
|
2
|
-
import { type PackageCompatVersions, type
|
|
2
|
+
import { type PackageCompatVersions, type SupportedVersion, supportedVersions, type VersionMap } from '../../utils/backward-compatible-versions';
|
|
3
3
|
export declare function getInstalledAngularDevkitVersion(tree: Tree): string | null;
|
|
4
4
|
export declare function getInstalledAngularVersion(tree: Tree): string;
|
|
5
5
|
export declare function getInstalledAngularMajorVersion(tree: Tree): number;
|
|
@@ -11,10 +11,20 @@ export declare function getInstalledPackageVersionInfo(tree: Tree, pkgName: stri
|
|
|
11
11
|
major: number;
|
|
12
12
|
version: string;
|
|
13
13
|
};
|
|
14
|
-
export declare function versions(tree: Tree):
|
|
14
|
+
export declare function versions(tree: Tree): PackageCompatVersions;
|
|
15
|
+
export declare function versions<V extends SupportedVersion>(tree: Tree, options: {
|
|
16
|
+
minAngularMajorVersion: V;
|
|
17
|
+
}): MinVersionReturnType<V>;
|
|
15
18
|
/**
|
|
16
19
|
* Temporary helper to abstract away the version of angular-rspack to be installed
|
|
17
20
|
* until we stop supporting Angular 19.
|
|
18
21
|
*/
|
|
19
|
-
export declare function getAngularRspackVersion(tree: Tree): string
|
|
22
|
+
export declare function getAngularRspackVersion(tree: Tree): string;
|
|
23
|
+
type TakeUntil<Arr extends readonly any[], Target> = Arr extends readonly [
|
|
24
|
+
infer Head,
|
|
25
|
+
...infer Rest
|
|
26
|
+
] ? Head extends Target ? [Head] : [Head, ...TakeUntil<Rest, Target>] : [];
|
|
27
|
+
type VersionsAtLeast<MinV extends SupportedVersion> = Extract<SupportedVersion, TakeUntil<typeof supportedVersions, MinV>[number]>;
|
|
28
|
+
type MinVersionReturnType<MinV extends SupportedVersion> = VersionMap[VersionsAtLeast<MinV>];
|
|
29
|
+
export {};
|
|
20
30
|
//# sourceMappingURL=version-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/version-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,
|
|
1
|
+
{"version":3,"file":"version-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/utils/version-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,UAAU,EAChB,MAAM,0CAA0C,CAAC;AAIlD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAO1E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAiB7D;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAElE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,IAAI;;;EAOxD;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM;;;EAIzE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,qBAAqB,CAAC;AAC5D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EACjD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,sBAAsB,EAAE,CAAC,CAAA;CAAE,GACrC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAoB3B;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQ1D;AAID,KAAK,SAAS,CAAC,GAAG,SAAS,SAAS,GAAG,EAAE,EAAE,MAAM,IAAI,GAAG,SAAS,SAAS;IACxE,MAAM,IAAI;IACV,GAAG,MAAM,IAAI;CACd,GACG,IAAI,SAAS,MAAM,GACjB,CAAC,IAAI,CAAC,GACN,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GACpC,EAAE,CAAC;AACP,KAAK,eAAe,CAAC,IAAI,SAAS,gBAAgB,IAAI,OAAO,CAC3D,gBAAgB,EAChB,SAAS,CAAC,OAAO,iBAAiB,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAClD,CAAC;AACF,KAAK,oBAAoB,CAAC,IAAI,SAAS,gBAAgB,IACrD,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -39,16 +39,14 @@ function getInstalledPackageVersionInfo(tree, pkgName) {
|
|
|
39
39
|
const version = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, pkgName);
|
|
40
40
|
return version ? { major: (0, semver_1.major)((0, semver_1.coerce)(version)), version } : null;
|
|
41
41
|
}
|
|
42
|
-
function versions(tree) {
|
|
42
|
+
function versions(tree, options) {
|
|
43
43
|
const majorAngularVersion = getInstalledAngularMajorVersion(tree);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return backward_compatible_versions_1.backwardCompatibleVersions.angularV19;
|
|
49
|
-
default:
|
|
50
|
-
return latestVersions;
|
|
44
|
+
if (options?.minAngularMajorVersion &&
|
|
45
|
+
majorAngularVersion < options.minAngularMajorVersion) {
|
|
46
|
+
throw new Error(`This operation requires Angular ${options.minAngularMajorVersion}+, but found version ${majorAngularVersion}. ` +
|
|
47
|
+
`This shouldn't happen. Please report it as a bug and include the stack trace.`);
|
|
51
48
|
}
|
|
49
|
+
return backward_compatible_versions_1.backwardCompatibleVersions[majorAngularVersion] ?? latestVersions;
|
|
52
50
|
}
|
|
53
51
|
/**
|
|
54
52
|
* Temporary helper to abstract away the version of angular-rspack to be installed
|
|
@@ -56,14 +54,9 @@ function versions(tree) {
|
|
|
56
54
|
*/
|
|
57
55
|
function getAngularRspackVersion(tree) {
|
|
58
56
|
const majorAngularVersion = getInstalledAngularMajorVersion(tree);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
// aligned with the Nx version
|
|
65
|
-
return latestVersions.nxVersion;
|
|
66
|
-
}
|
|
67
|
-
// Lower versions of Angular are not supported
|
|
68
|
-
return null;
|
|
57
|
+
// Starting with Angular 20, we can use an Angular Rspack version that is
|
|
58
|
+
// aligned with the Nx version
|
|
59
|
+
return majorAngularVersion === 19
|
|
60
|
+
? backward_compatible_versions_1.backwardCompatibleVersions[19].angularRspackVersion
|
|
61
|
+
: latestVersions.nxVersion;
|
|
69
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-module-resolution.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/migrations/update-21-2-0/update-module-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"update-module-resolution.d.ts","sourceRoot":"","sources":["../../../../../../packages/angular/src/migrations/update-21-2-0/update-module-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EAEV,MAAM,YAAY,CAAC;AAkBpB,yBAA+B,IAAI,EAAE,IAAI,iBAqCxC"}
|