@schematics/angular 21.1.1 → 21.2.0-next.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.
@@ -48,7 +48,6 @@ You are an expert in TypeScript, Angular, and scalable web application developme
48
48
  - Use native control flow (`@if`, `@for`, `@switch`) instead of `*ngIf`, `*ngFor`, `*ngSwitch`
49
49
  - Use the async pipe to handle observables
50
50
  - Do not assume globals like (`new Date()`) are available.
51
- - Do not write arrow functions in templates (they are not supported).
52
51
 
53
52
  ## Services
54
53
 
package/collection.json CHANGED
@@ -149,6 +149,13 @@
149
149
  "schema": "./refactor/jasmine-vitest/schema.json",
150
150
  "description": "[EXPERIMENTAL] Refactors Jasmine tests to use Vitest APIs.",
151
151
  "hidden": true
152
+ },
153
+ "vitest-browser": {
154
+ "factory": "./vitest-browser",
155
+ "schema": "./vitest-browser/schema.json",
156
+ "hidden": true,
157
+ "private": true,
158
+ "description": "[INTERNAL] Adds a Vitest browser provider to a project. Intended for use for ng add."
152
159
  }
153
160
  }
154
161
  }
@@ -31,6 +31,7 @@ This command will compile your project, and the build artifacts will be placed i
31
31
  Once the project is built, you can publish your library by following these steps:
32
32
 
33
33
  1. Navigate to the `dist` directory:
34
+
34
35
  ```bash
35
36
  cd dist/<%= dasherize(name) %>
36
37
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schematics/angular",
3
- "version": "21.1.1",
3
+ "version": "21.2.0-next.0",
4
4
  "description": "Schematics specific to Angular",
5
5
  "homepage": "https://github.com/angular/angular-cli",
6
6
  "keywords": [
@@ -22,15 +22,15 @@
22
22
  },
23
23
  "schematics": "./collection.json",
24
24
  "dependencies": {
25
- "@angular-devkit/core": "21.1.1",
26
- "@angular-devkit/schematics": "21.1.1",
25
+ "@angular-devkit/core": "21.2.0-next.0",
26
+ "@angular-devkit/schematics": "21.2.0-next.0",
27
27
  "jsonc-parser": "3.3.1"
28
28
  },
29
29
  "repository": {
30
30
  "type": "git",
31
31
  "url": "https://github.com/angular/angular-cli.git"
32
32
  },
33
- "packageManager": "pnpm@10.28.1",
33
+ "packageManager": "pnpm@10.28.2",
34
34
  "engines": {
35
35
  "node": "^20.19.0 || ^22.12.0 || >=24.0.0",
36
36
  "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
package/tailwind/index.js CHANGED
@@ -34,7 +34,7 @@ function addTailwindStyles(options, project) {
34
34
  }
35
35
  if (!stylesheetPath) {
36
36
  const newStylesheetPath = (0, posix_1.join)(project.sourceRoot ?? 'src', 'tailwind.css');
37
- tree.create(newStylesheetPath, '@import "tailwindcss";\n');
37
+ tree.create(newStylesheetPath, `@import 'tailwindcss';\n`);
38
38
  return (0, utility_1.updateWorkspace)((workspace) => {
39
39
  const project = workspace.projects.get(options.project);
40
40
  if (project) {
@@ -59,8 +59,8 @@ function addTailwindStyles(options, project) {
59
59
  }
60
60
  else {
61
61
  let stylesheetContent = tree.readText(stylesheetPath);
62
- if (!stylesheetContent.includes('@import "tailwindcss";')) {
63
- stylesheetContent += '\n@import "tailwindcss";\n';
62
+ if (!/@import ["']tailwindcss["'];/.test(stylesheetContent)) {
63
+ stylesheetContent += `\n@import 'tailwindcss';\n`;
64
64
  tree.overwrite(stylesheetPath, stylesheetContent);
65
65
  }
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  export type Schema = {
2
+ /**
3
+ * The package to be added.
4
+ */
5
+ package?: string;
2
6
  /**
3
7
  * The name of the project.
4
8
  */
@@ -10,6 +10,10 @@
10
10
  "$source": "projectName"
11
11
  }
12
12
  },
13
+ "package": {
14
+ "type": "string",
15
+ "description": "The package to be added."
16
+ },
13
17
  "skipInstall": {
14
18
  "description": "Skip the automatic installation of packages. You will need to manually install the dependencies later.",
15
19
  "type": "boolean",
@@ -18,6 +18,7 @@
18
18
  "jsdom": "^27.1.0",
19
19
  "less": "^4.2.0",
20
20
  "postcss": "^8.5.3",
21
+ "prettier": "^3.8.1",
21
22
  "protractor": "~7.0.0",
22
23
  "rxjs": "~7.8.0",
23
24
  "tailwindcss": "^4.1.12",
@@ -26,6 +27,11 @@
26
27
  "ts-node": "~10.9.0",
27
28
  "typescript": "~5.9.2",
28
29
  "vitest": "^4.0.8",
30
+ "@vitest/browser-playwright": "^4.0.8",
31
+ "@vitest/browser-webdriverio": "^4.0.8",
32
+ "@vitest/browser-preview": "^4.0.8",
33
+ "playwright": "^1.48.0",
34
+ "webdriverio": "^9.0.0",
29
35
  "zone.js": "~0.16.0"
30
36
  }
31
37
  }
@@ -14,10 +14,10 @@ const dependencies = require('./latest-versions/package.json')['dependencies'];
14
14
  exports.latestVersions = {
15
15
  ...dependencies,
16
16
  // As Angular CLI works with same minor versions of Angular Framework, a tilde match for the current
17
- Angular: '^21.1.0',
18
- NgPackagr: '^21.1.0',
19
- DevkitBuildAngular: '^21.1.1',
20
- AngularBuild: '^21.1.1',
21
- AngularSSR: '^21.1.1',
17
+ Angular: '^21.2.0-next.0',
18
+ NgPackagr: '^21.2.0-next.0',
19
+ DevkitBuildAngular: '^21.2.0-next.0',
20
+ AngularBuild: '^21.2.0-next.0',
21
+ AngularSSR: '^21.2.0-next.0',
22
22
  };
23
23
  //# sourceMappingURL=latest-versions.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import { Rule } from '@angular-devkit/schematics';
9
+ import { Schema as VitestBrowserOptions } from './schema';
10
+ export default function (options: VitestBrowserOptions): Rule;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.default = default_1;
11
+ const schematics_1 = require("@angular-devkit/schematics");
12
+ const posix_1 = require("node:path/posix");
13
+ const dependency_1 = require("../utility/dependency");
14
+ const json_file_1 = require("../utility/json-file");
15
+ const latest_versions_1 = require("../utility/latest-versions");
16
+ const workspace_1 = require("../utility/workspace");
17
+ const workspace_models_1 = require("../utility/workspace-models");
18
+ function default_1(options) {
19
+ return async (host, _context) => {
20
+ const workspace = await (0, workspace_1.getWorkspace)(host);
21
+ const project = workspace.projects.get(options.project);
22
+ if (!project) {
23
+ throw new schematics_1.SchematicsException(`Project "${options.project}" does not exist.`);
24
+ }
25
+ const testTarget = project.targets.get('test');
26
+ if (testTarget?.builder !== workspace_models_1.Builders.BuildUnitTest) {
27
+ throw new schematics_1.SchematicsException(`Project "${options.project}" does not have a "test" target with a supported builder.`);
28
+ }
29
+ if (testTarget.options?.['runner'] === 'karma') {
30
+ throw new schematics_1.SchematicsException(`Project "${options.project}" is configured to use Karma. ` +
31
+ 'Please migrate to Vitest before adding browser testing support.');
32
+ }
33
+ const packageName = options.package;
34
+ if (!packageName) {
35
+ return;
36
+ }
37
+ const dependencies = [packageName];
38
+ if (packageName === '@vitest/browser-playwright') {
39
+ dependencies.push('playwright');
40
+ }
41
+ else if (packageName === '@vitest/browser-webdriverio') {
42
+ dependencies.push('webdriverio');
43
+ }
44
+ // Update tsconfig.spec.json
45
+ const tsConfigPath = testTarget.options?.['tsConfig'] ??
46
+ (0, posix_1.join)(project.root, 'tsconfig.spec.json');
47
+ const updateTsConfigRule = (host) => {
48
+ if (host.exists(tsConfigPath)) {
49
+ const json = new json_file_1.JSONFile(host, tsConfigPath);
50
+ const typesPath = ['compilerOptions', 'types'];
51
+ const existingTypes = json.get(typesPath) ?? [];
52
+ const newTypes = existingTypes.filter((t) => t !== 'jasmine');
53
+ if (!newTypes.includes('vitest/globals')) {
54
+ newTypes.push('vitest/globals');
55
+ }
56
+ if (packageName && !newTypes.includes(packageName)) {
57
+ newTypes.push(packageName);
58
+ }
59
+ if (newTypes.length !== existingTypes.length ||
60
+ newTypes.some((t, i) => t !== existingTypes[i])) {
61
+ json.modify(typesPath, newTypes);
62
+ }
63
+ }
64
+ };
65
+ return (0, schematics_1.chain)([
66
+ updateTsConfigRule,
67
+ ...dependencies.map((name) => (0, dependency_1.addDependency)(name, latest_versions_1.latestVersions[name], {
68
+ type: dependency_1.DependencyType.Dev,
69
+ existing: dependency_1.ExistingBehavior.Skip,
70
+ install: options.skipInstall ? dependency_1.InstallBehavior.None : dependency_1.InstallBehavior.Auto,
71
+ })),
72
+ ]);
73
+ };
74
+ }
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type Schema = {
2
+ /**
3
+ * The package to be added.
4
+ */
5
+ package: string;
6
+ /**
7
+ * The name of the project.
8
+ */
9
+ project: string;
10
+ /**
11
+ * Skip the automatic installation of packages. You will need to manually install the
12
+ * dependencies later.
13
+ */
14
+ skipInstall?: boolean;
15
+ [property: string]: any;
16
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
+ // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF"}
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "title": "Vitest Browser Provider Schematic",
4
+ "type": "object",
5
+ "properties": {
6
+ "project": {
7
+ "type": "string",
8
+ "description": "The name of the project.",
9
+ "$default": {
10
+ "$source": "projectName"
11
+ }
12
+ },
13
+ "package": {
14
+ "type": "string",
15
+ "description": "The package to be added."
16
+ },
17
+ "skipInstall": {
18
+ "description": "Skip the automatic installation of packages. You will need to manually install the dependencies later.",
19
+ "type": "boolean",
20
+ "default": false
21
+ }
22
+ },
23
+ "required": ["project", "package"]
24
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "printWidth": 100,
3
+ "singleQuote": true,
4
+ "overrides": [
5
+ {
6
+ "files": "*.html",
7
+ "options": {
8
+ "parser": "angular"
9
+ }
10
+ }
11
+ ]
12
+ }
@@ -8,18 +8,6 @@
8
8
  "watch": "ng build --watch --configuration development"<% if (!minimal) { %>,
9
9
  "test": "ng test"<% } %>
10
10
  },
11
- "prettier": {
12
- "printWidth": 100,
13
- "singleQuote": true,
14
- "overrides": [
15
- {
16
- "files": "*.html",
17
- "options": {
18
- "parser": "angular"
19
- }
20
- }
21
- ]
22
- },
23
11
  "private": true,
24
12
  <% if (packageManagerWithVersion) { %>"packageManager": "<%= packageManagerWithVersion %>",<% } %>
25
13
  "dependencies": {
@@ -35,6 +23,7 @@
35
23
  "devDependencies": {
36
24
  "@angular/cli": "<%= '^' + version %>",
37
25
  "@angular/compiler-cli": "<%= latestVersions.Angular %>",
26
+ "prettier": "<%= latestVersions['prettier'] %>",
38
27
  "typescript": "<%= latestVersions['typescript'] %>"
39
28
  }
40
29
  }