@schematics/angular 19.1.3 → 19.1.5

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.
@@ -106,17 +106,6 @@ function validateProject(mainPath) {
106
106
  }
107
107
  };
108
108
  }
109
- function addRouterModule(mainPath) {
110
- return (host) => {
111
- const modulePath = (0, ng_ast_utils_1.getAppModulePath)(host, mainPath);
112
- const moduleSource = getSourceFile(host, modulePath);
113
- const changes = (0, ast_utils_1.addImportToModule)(moduleSource, modulePath, 'RouterModule', '@angular/router');
114
- const recorder = host.beginUpdate(modulePath);
115
- (0, change_1.applyToUpdateRecorder)(recorder, changes);
116
- host.commitUpdate(recorder);
117
- return host;
118
- };
119
- }
120
109
  function getMetadataProperty(metadata, propertyName) {
121
110
  const properties = metadata.properties;
122
111
  const property = properties.filter(typescript_1.default.isPropertyAssignment).filter((prop) => {
@@ -202,7 +191,7 @@ function addStandaloneServerRoute(options) {
202
191
  if (!host.exists(configFilePath)) {
203
192
  throw new schematics_1.SchematicsException(`Cannot find "${configFilePath}".`);
204
193
  }
205
- let recorder = host.beginUpdate(configFilePath);
194
+ const recorder = host.beginUpdate(configFilePath);
206
195
  let configSourceFile = getSourceFile(host, configFilePath);
207
196
  if (!(0, ast_utils_1.isImported)(configSourceFile, 'ROUTES', '@angular/router')) {
208
197
  const routesChange = (0, ast_utils_1.insertImport)(configSourceFile, configFilePath, 'ROUTES', '@angular/router');
@@ -220,62 +209,48 @@ function addStandaloneServerRoute(options) {
220
209
  const updatedProvidersString = [
221
210
  ...providersLiteral.elements.map((element) => ' ' + element.getText()),
222
211
  ` {
223
- provide: ROUTES,
224
- multi: true,
225
- useValue: [{
226
- path: '${APP_SHELL_ROUTE}',
227
- component: AppShellComponent
228
- }]
229
- }\n `,
212
+ provide: ROUTES,
213
+ multi: true,
214
+ useValue: [{
215
+ path: '${APP_SHELL_ROUTE}',
216
+ component: AppShellComponent
217
+ }]
218
+ }\n `,
230
219
  ];
231
220
  recorder.insertRight(providersLiteral.getStart(), `[\n${updatedProvidersString.join(',\n')}]`);
232
- if (options.serverRouting) {
233
- host.commitUpdate(recorder);
234
- configSourceFile = getSourceFile(host, configFilePath);
235
- const functionCall = (0, ast_utils_1.findNodes)(configSourceFile, typescript_1.default.isCallExpression).find((n) => typescript_1.default.isIdentifier(n.expression) && n.expression.getText() === 'provideServerRoutesConfig');
236
- if (!functionCall) {
237
- throw new schematics_1.SchematicsException(`Cannot find the "provideServerRoutesConfig" function call in "${configFilePath}".`);
238
- }
239
- recorder = host.beginUpdate(configFilePath);
240
- recorder.insertLeft(functionCall.end - 1, `, { appShellRoute: '${APP_SHELL_ROUTE}' }`);
241
- }
242
- // Add AppShellComponent import
243
- const appShellImportChange = (0, ast_utils_1.insertImport)(configSourceFile, configFilePath, 'AppShellComponent', './app-shell/app-shell.component');
244
- (0, change_1.applyToUpdateRecorder)(recorder, [appShellImportChange]);
221
+ (0, change_1.applyToUpdateRecorder)(recorder, [
222
+ (0, ast_utils_1.insertImport)(configSourceFile, configFilePath, 'AppShellComponent', './app-shell/app-shell.component'),
223
+ ]);
245
224
  host.commitUpdate(recorder);
246
225
  };
247
226
  }
248
- function addServerRoutingConfig(options) {
227
+ function addServerRoutingConfig(options, isStandalone) {
249
228
  return async (host) => {
250
229
  const workspace = await (0, workspace_1.getWorkspace)(host);
251
230
  const project = workspace.projects.get(options.project);
252
231
  if (!project) {
253
232
  throw new schematics_1.SchematicsException(`Project name "${options.project}" doesn't not exist.`);
254
233
  }
255
- const configFilePath = (0, posix_1.join)(project.sourceRoot ?? 'src', 'app/app.routes.server.ts');
256
- if (!host.exists(configFilePath)) {
234
+ const configFilePath = isStandalone
235
+ ? (0, posix_1.join)(project.sourceRoot ?? 'src', 'app/app.config.server.ts')
236
+ : getServerModulePath(host, project.sourceRoot || 'src', 'main.server.ts');
237
+ if (!configFilePath || !host.exists(configFilePath)) {
257
238
  throw new schematics_1.SchematicsException(`Cannot find "${configFilePath}".`);
258
239
  }
259
- const sourceFile = getSourceFile(host, configFilePath);
260
- const nodes = (0, ast_utils_1.getSourceNodes)(sourceFile);
261
- // Find the serverRoutes variable declaration
262
- const serverRoutesNode = nodes.find((node) => typescript_1.default.isVariableDeclaration(node) &&
263
- node.initializer &&
264
- typescript_1.default.isArrayLiteralExpression(node.initializer) &&
265
- node.type &&
266
- typescript_1.default.isArrayTypeNode(node.type) &&
267
- node.type.getText().includes('ServerRoute'));
268
- if (!serverRoutesNode) {
269
- throw new schematics_1.SchematicsException(`Cannot find the "ServerRoute" configuration in "${configFilePath}".`);
240
+ let recorder = host.beginUpdate(configFilePath);
241
+ const configSourceFile = getSourceFile(host, configFilePath);
242
+ const functionCall = (0, ast_utils_1.findNodes)(configSourceFile, typescript_1.default.isCallExpression,
243
+ /** max */ undefined,
244
+ /** recursive */ true).find((n) => typescript_1.default.isIdentifier(n.expression) && n.expression.getText() === 'provideServerRouting');
245
+ if (!functionCall) {
246
+ throw new schematics_1.SchematicsException(`Cannot find the "provideServerRouting" function call in "${configFilePath}".`);
270
247
  }
271
- const recorder = host.beginUpdate(configFilePath);
272
- const arrayLiteral = serverRoutesNode.initializer;
273
- const firstElementPosition = arrayLiteral.elements[0]?.getStart() ?? arrayLiteral.getStart() + 1;
274
- const newRouteString = `{
275
- path: '${APP_SHELL_ROUTE}',
276
- renderMode: RenderMode.AppShell
277
- },\n`;
278
- recorder.insertLeft(firstElementPosition, newRouteString);
248
+ recorder = host.beginUpdate(configFilePath);
249
+ recorder.insertLeft(functionCall.end - 1, `, withAppShell(AppShellComponent)`);
250
+ (0, change_1.applyToUpdateRecorder)(recorder, [
251
+ (0, ast_utils_1.insertImport)(configSourceFile, configFilePath, 'withAppShell', '@angular/ssr'),
252
+ (0, ast_utils_1.insertImport)(configSourceFile, configFilePath, 'AppShellComponent', './app-shell/app-shell.component'),
253
+ ]);
279
254
  host.commitUpdate(recorder);
280
255
  };
281
256
  }
@@ -286,10 +261,14 @@ function default_1(options) {
286
261
  return (0, schematics_1.chain)([
287
262
  validateProject(browserEntryPoint),
288
263
  (0, schematics_1.schematic)('server', options),
289
- ...(isStandalone
290
- ? [addStandaloneServerRoute(options)]
291
- : [addRouterModule(browserEntryPoint), addServerRoutes(options)]),
292
- options.serverRouting ? (0, schematics_1.noop)() : addAppShellConfigToWorkspace(options),
264
+ ...(options.serverRouting
265
+ ? [(0, schematics_1.noop)()]
266
+ : isStandalone
267
+ ? [addStandaloneServerRoute(options)]
268
+ : [addServerRoutes(options)]),
269
+ options.serverRouting
270
+ ? addServerRoutingConfig(options, isStandalone)
271
+ : addAppShellConfigToWorkspace(options),
293
272
  (0, schematics_1.schematic)('component', {
294
273
  name: 'app-shell',
295
274
  module: 'app.module.server.ts',
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Configures your project to generate an app-shell during build time.
3
3
  */
4
- export interface Schema {
4
+ export type Schema = {
5
5
  /**
6
6
  * The name of the project where the app-shell should be generated.
7
7
  */
@@ -11,4 +11,4 @@ export interface Schema {
11
11
  * Preview).
12
12
  */
13
13
  serverRouting?: boolean;
14
- }
14
+ };
@@ -4,7 +4,7 @@
4
4
  * configuration files. You can customize various aspects of the application, such as
5
5
  * routing, styling, and testing.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Generate an application that does not use `zone.js`.
10
10
  */
@@ -90,7 +90,7 @@ export interface Schema {
90
90
  * component styles are scoped and applied.
91
91
  */
92
92
  viewEncapsulation?: ViewEncapsulation;
93
- }
93
+ };
94
94
  /**
95
95
  * The type of stylesheet files to be created for components in the application.
96
96
  */
package/class/schema.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * with properties and methods. This schematic helps you generate a new class with the basic
5
5
  * structure and optional test files.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * The name for the new class. This will be used to create the class file (e.g.,
10
10
  * `my-class.ts`) and, if enabled, the corresponding test file `my-class.spec.ts`.
@@ -29,4 +29,4 @@ export interface Schema {
29
29
  * For example, if you set the type to `helper`, the filename will be `my-class.helper.ts`.
30
30
  */
31
31
  type?: string;
32
- }
32
+ };
@@ -3,7 +3,7 @@
3
3
  * applications. Each component consists of a TypeScript class, an HTML template, and an
4
4
  * optional CSS stylesheet. Use this schematic to generate a new component in your project.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * Configures the change detection strategy for the component.
9
9
  */
@@ -103,7 +103,7 @@ export interface Schema {
103
103
  * styles are scoped and applied.
104
104
  */
105
105
  viewEncapsulation?: ViewEncapsulation;
106
- }
106
+ };
107
107
  /**
108
108
  * Configures the change detection strategy for the component.
109
109
  */
@@ -3,7 +3,7 @@
3
3
  * your project's build process, testing, and browser compatibility. This schematic helps
4
4
  * you create or update essential configuration files with ease.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * The name of the project where the configuration file should be created or updated.
9
9
  */
@@ -12,7 +12,7 @@ export interface Schema {
12
12
  * Specifies the type of configuration file to generate.
13
13
  */
14
14
  type: Type;
15
- }
15
+ };
16
16
  /**
17
17
  * Specifies the type of configuration file to generate.
18
18
  */
@@ -4,7 +4,7 @@
4
4
  * custom attributes, and respond to events. This schematic generates the necessary files
5
5
  * and boilerplate code for a new directive.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Automatically export the directive from the specified NgModule, making it accessible to
10
10
  * other modules in the application.
@@ -59,4 +59,4 @@ export interface Schema {
59
59
  * other standalone components or directives.
60
60
  */
61
61
  standalone?: boolean;
62
- }
62
+ };
package/e2e/schema.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Generates a new, generic end-to-end test definition in the given project.
3
3
  */
4
- export interface Schema {
4
+ export type Schema = {
5
5
  /**
6
6
  * The name of the application being tested.
7
7
  */
@@ -10,4 +10,4 @@ export interface Schema {
10
10
  * The HTML selector for the root component of the test app.
11
11
  */
12
12
  rootSelector?: string;
13
- }
13
+ };
package/enum/schema.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * named constants, making your code more readable and maintainable. This schematic
4
4
  * generates a new enum with the specified name and type.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * The name for the new enum. This will be used to create the enum file (e.g.,
9
9
  * `my-enum.enum.ts`).
@@ -24,4 +24,4 @@ export interface Schema {
24
24
  * For example, if you set the type to `status`, the filename will be `my-enum.status.ts`.
25
25
  */
26
26
  type?: string;
27
- }
27
+ };
@@ -4,9 +4,9 @@
4
4
  * development, testing, and production. This schematic helps you create and manage these
5
5
  * files, making it easier to customize your application's behavior for each environment.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * The name of the project where the environment files should be created or updated.
10
10
  */
11
11
  project: string;
12
- }
12
+ };
package/guard/schema.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * parts of your application by checking certain conditions before a route is activated.
4
4
  * This schematic generates a new guard with the specified name, type, and options.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * Creates the new guard files at the top level of the current project. If set to false, a
9
9
  * new folder with the guard's name will be created to contain the files.
@@ -40,7 +40,7 @@ export interface Schema {
40
40
  * Skip the generation of a unit test file `spec.ts` for the new guard.
41
41
  */
42
42
  skipTests?: boolean;
43
- }
43
+ };
44
44
  export declare enum Implement {
45
45
  CanActivate = "CanActivate",
46
46
  CanActivateChild = "CanActivateChild",
@@ -4,7 +4,7 @@
4
4
  * perform tasks like adding authentication headers, handling errors, or logging requests.
5
5
  * This schematic generates the necessary files and boilerplate code for a new interceptor.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Creates the new interceptor files at the top level of the current project. If set to
10
10
  * false, a new folder with the interceptor's name will be created to contain the files.
@@ -35,4 +35,4 @@ export interface Schema {
35
35
  * Skip the generation of a unit test file `spec.ts` for the new interceptor.
36
36
  */
37
37
  skipTests?: boolean;
38
- }
38
+ };
@@ -3,7 +3,7 @@
3
3
  * TypeScript, ensuring type safety and code clarity. This schematic generates a new
4
4
  * interface with the specified name and type.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * The name for the new interface. This will be used to create the interface file (e.g.,
9
9
  * `my-interface.interface.ts`).
@@ -30,4 +30,4 @@ export interface Schema {
30
30
  * `my-interface.data.ts`.
31
31
  */
32
32
  type?: string;
33
- }
33
+ };
package/library/index.js CHANGED
@@ -38,8 +38,8 @@ function addDependenciesToPackageJson() {
38
38
  },
39
39
  {
40
40
  type: dependencies_1.NodeDependencyType.Dev,
41
- name: '@angular/build',
42
- version: latest_versions_1.latestVersions.AngularBuild,
41
+ name: '@angular-devkit/build-angular',
42
+ version: latest_versions_1.latestVersions.DevkitBuildAngular,
43
43
  },
44
44
  {
45
45
  type: dependencies_1.NodeDependencyType.Dev,
@@ -70,7 +70,7 @@ function addLibToWorkspaceFile(options, projectRoot, projectName) {
70
70
  prefix: options.prefix,
71
71
  targets: {
72
72
  build: {
73
- builder: workspace_models_1.Builders.BuildNgPackagr,
73
+ builder: workspace_models_1.Builders.NgPackagr,
74
74
  defaultConfiguration: 'production',
75
75
  options: {
76
76
  project: `${projectRoot}/ng-package.json`,
@@ -4,7 +4,7 @@
4
4
  * across multiple applications. This schematic simplifies the process of generating a new
5
5
  * library with the necessary files and configurations.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * The path to the library's public API file, relative to the workspace root. This file
10
10
  * defines what parts of the library are accessible to applications that import it.
@@ -47,4 +47,4 @@ export interface Schema {
47
47
  * This can simplify the structure of your library and its usage in applications.
48
48
  */
49
49
  standalone?: boolean;
50
- }
50
+ };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Creates a new, generic NgModule definition in the given project.
3
3
  */
4
- export interface Schema {
4
+ export type Schema = {
5
5
  /**
6
6
  * The new NgModule imports "CommonModule".
7
7
  */
@@ -40,7 +40,7 @@ export interface Schema {
40
40
  * The scope for the new routing module.
41
41
  */
42
42
  routingScope?: RoutingScope;
43
- }
43
+ };
44
44
  /**
45
45
  * The scope for the new routing module.
46
46
  */
@@ -4,7 +4,7 @@
4
4
  * an optional starter application. You can customize various aspects of the workspace and
5
5
  * the initial project, such as routing, styling, and testing.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Configure the initial Git commit for the new repository.
10
10
  */
@@ -115,17 +115,17 @@ export interface Schema {
115
115
  * encapsulated using Shadow DOM).
116
116
  */
117
117
  viewEncapsulation?: ViewEncapsulation;
118
- }
118
+ };
119
119
  /**
120
120
  * Configure the initial Git commit for the new repository.
121
121
  */
122
122
  export type CommitUnion = boolean | CommitObject;
123
- export interface CommitObject {
123
+ export type CommitObject = {
124
124
  email: string;
125
125
  message?: string;
126
126
  name: string;
127
127
  [property: string]: any;
128
- }
128
+ };
129
129
  /**
130
130
  * The package manager used to install dependencies.
131
131
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schematics/angular",
3
- "version": "19.1.3",
3
+ "version": "19.1.5",
4
4
  "description": "Schematics specific to Angular",
5
5
  "homepage": "https://github.com/angular/angular-cli",
6
6
  "keywords": [
@@ -22,8 +22,8 @@
22
22
  },
23
23
  "schematics": "./collection.json",
24
24
  "dependencies": {
25
- "@angular-devkit/core": "19.1.3",
26
- "@angular-devkit/schematics": "19.1.3",
25
+ "@angular-devkit/core": "19.1.5",
26
+ "@angular-devkit/schematics": "19.1.5",
27
27
  "jsonc-parser": "3.3.1"
28
28
  },
29
29
  "repository": {
package/pipe/schema.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * dates, currency, or filtering arrays. This schematic generates the necessary files and
5
5
  * boilerplate code for a new pipe.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Automatically export the pipe from the specified NgModule, making it accessible to other
10
10
  * modules in the application.
@@ -49,4 +49,4 @@ export interface Schema {
49
49
  * standalone components, directives, or pipes.
50
50
  */
51
51
  standalone?: boolean;
52
- }
52
+ };
@@ -4,7 +4,7 @@
4
4
  * displayed. This can improve the user experience by preventing delays and loading states.
5
5
  * This schematic generates a new resolver with the specified name and options.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Creates the new resolver files at the top level of the current project. If set to false,
10
10
  * a new folder with the resolver's name will be created to contain the files.
@@ -34,4 +34,4 @@ export interface Schema {
34
34
  * Skip the generation of a unit test file `spec.ts` for the new resolver.
35
35
  */
36
36
  skipTests?: boolean;
37
- }
37
+ };
@@ -1,13 +1,13 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { ServerModule } from '@angular/platform-server';<% if(serverRouting) { %>
3
- import { provideServerRoutesConfig } from '@angular/ssr';<% } %>
3
+ import { provideServerRouting } from '@angular/ssr';<% } %>
4
4
  import { AppComponent } from './app.component';
5
5
  import { AppModule } from './app.module';<% if(serverRouting) { %>
6
6
  import { serverRoutes } from './app.routes.server';<% } %>
7
7
 
8
8
  @NgModule({
9
9
  imports: [AppModule, ServerModule],<% if(serverRouting) { %>
10
- providers: [provideServerRoutesConfig(serverRoutes)],<% } %>
10
+ providers: [provideServerRouting(serverRoutes)],<% } %>
11
11
  bootstrap: [AppComponent],
12
12
  })
13
13
  export class AppServerModule {}
@@ -1,13 +1,13 @@
1
1
  import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
2
2
  import { provideServerRendering } from '@angular/platform-server';<% if(serverRouting) { %>
3
- import { provideServerRoutesConfig } from '@angular/ssr';<% } %>
3
+ import { provideServerRouting } from '@angular/ssr';<% } %>
4
4
  import { appConfig } from './app.config';<% if(serverRouting) { %>
5
5
  import { serverRoutes } from './app.routes.server';<% } %>
6
6
 
7
7
  const serverConfig: ApplicationConfig = {
8
8
  providers: [
9
9
  provideServerRendering(),<% if(serverRouting) { %>
10
- provideServerRoutesConfig(serverRoutes)<% } %>
10
+ provideServerRouting(serverRoutes)<% } %>
11
11
  ]
12
12
  };
13
13
 
@@ -3,7 +3,7 @@
3
3
  * be rendered on the server, improving initial load performance and SEO. This schematic
4
4
  * configures your project for SSR and generates the necessary files.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * The name of the project to enable server-side rendering for.
9
9
  */
@@ -18,4 +18,4 @@ export interface Schema {
18
18
  * dependencies later.
19
19
  */
20
20
  skipInstall?: boolean;
21
- }
21
+ };
@@ -3,7 +3,7 @@
3
3
  * such as data access, API calls, or utility functions. This schematic simplifies the
4
4
  * process of generating a new service with the necessary files and boilerplate code.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * Creates files at the top level of the project or the given path. If set to false, a new
9
9
  * folder with the service's name will be created to contain the files.
@@ -28,4 +28,4 @@ export interface Schema {
28
28
  * Skip the generation of a unit test file `spec.ts` for the service.
29
29
  */
30
30
  skipTests?: boolean;
31
- }
31
+ };
@@ -3,7 +3,7 @@
3
3
  * offline or on low-quality networks by caching assets and intercepting network requests.
4
4
  * This schematic configures your project to use a service worker.
5
5
  */
6
- export interface Schema {
6
+ export type Schema = {
7
7
  /**
8
8
  * The name of the project to add the service worker to. If not specified, the CLI will
9
9
  * determine the project from the current directory.
@@ -14,4 +14,4 @@ export interface Schema {
14
14
  * that the service worker should be generated during the standard build process.
15
15
  */
16
16
  target?: string;
17
- }
17
+ };
package/ssr/schema.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * generating the necessary files and making the required modifications to your project's
6
6
  * structure.
7
7
  */
8
- export interface Schema {
8
+ export type Schema = {
9
9
  /**
10
10
  * The name of the project you want to enable SSR for.
11
11
  */
@@ -20,4 +20,4 @@ export interface Schema {
20
20
  * dependencies later.
21
21
  */
22
22
  skipInstall?: boolean;
23
- }
23
+ };
@@ -15,7 +15,7 @@ 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
17
  Angular: dependencies['@angular/core'],
18
- DevkitBuildAngular: '^19.1.3',
19
- AngularBuild: '^19.1.3',
20
- AngularSSR: '^19.1.3',
18
+ DevkitBuildAngular: '^19.1.5',
19
+ AngularBuild: '^19.1.5',
20
+ AngularSSR: '^19.1.5',
21
21
  };
@@ -4,7 +4,7 @@
4
4
  * offloading computationally intensive tasks. This schematic generates the necessary files
5
5
  * for a new web worker and provides an optional code snippet to demonstrate its usage.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * The name for the new web worker. This will be used to create the worker file (e.g.,
10
10
  * `my-worker.worker.ts`).
@@ -24,4 +24,4 @@ export interface Schema {
24
24
  * Generate a code snippet that demonstrates how to create and use the new web worker.
25
25
  */
26
26
  snippet?: boolean;
27
- }
27
+ };
@@ -4,7 +4,7 @@
4
4
  * build processes for a collection of applications and libraries. This schematic sets up
5
5
  * the basic structure of the workspace and installs the necessary Angular dependencies.
6
6
  */
7
- export interface Schema {
7
+ export type Schema = {
8
8
  /**
9
9
  * Create a workspace without any testing frameworks. This is intended for learning purposes
10
10
  * and simple experimentation, not for production applications.
@@ -34,7 +34,7 @@ export interface Schema {
34
34
  * The version of the Angular CLI to use.
35
35
  */
36
36
  version: string;
37
- }
37
+ };
38
38
  /**
39
39
  * The package manager to use for installing dependencies.
40
40
  */