@nx/workspace 17.0.3 → 17.0.4

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.
Files changed (47) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -4
  3. package/migrations.json +37 -0
  4. package/package.json +4 -4
  5. package/src/generators/ci-workflow/ci-workflow.d.ts +1 -1
  6. package/src/generators/ci-workflow/ci-workflow.js +30 -18
  7. package/src/generators/ci-workflow/files/azure/azure-pipelines.yml__tmpl__ +31 -33
  8. package/src/generators/ci-workflow/files/bitbucket-pipelines/bitbucket-pipelines.yml__tmpl__ +34 -29
  9. package/src/generators/ci-workflow/files/circleci/.circleci/config.yml__tmpl__ +17 -53
  10. package/src/generators/ci-workflow/files/github/.github/workflows/__workflowFileName__.yml__tmpl__ +26 -19
  11. package/src/generators/ci-workflow/files/gitlab/.gitlab-ci.yml__tmpl__ +12 -35
  12. package/src/generators/ci-workflow/schema.json +1 -1
  13. package/src/generators/convert-to-monorepo/convert-to-monorepo.js +6 -2
  14. package/src/generators/convert-to-monorepo/schema.json +1 -1
  15. package/src/generators/convert-to-nx-project/schema.json +1 -1
  16. package/src/generators/move/lib/create-project-configuration-in-new-destination.js +7 -2
  17. package/src/generators/move/lib/extract-base-configs.d.ts +1 -1
  18. package/src/generators/move/lib/extract-base-configs.js +4 -10
  19. package/src/generators/move/lib/move-project-files.js +4 -4
  20. package/src/generators/move/lib/normalize-schema.d.ts +1 -1
  21. package/src/generators/move/lib/normalize-schema.js +86 -79
  22. package/src/generators/move/lib/update-imports.js +1 -1
  23. package/src/generators/move/lib/update-jest-config.js +5 -3
  24. package/src/generators/move/lib/update-project-root-files.js +2 -2
  25. package/src/generators/move/move.js +4 -1
  26. package/src/generators/move/schema.json +1 -1
  27. package/src/generators/new/files-readme/README.md.template +49 -23
  28. package/src/generators/new/files-root-app/package.json__tmpl__ +3 -0
  29. package/src/generators/new/generate-preset.js +16 -0
  30. package/src/generators/new/generate-workspace-files.js +36 -23
  31. package/src/generators/new/new.d.ts +3 -0
  32. package/src/generators/new/new.js +9 -7
  33. package/src/generators/new/schema.json +15 -1
  34. package/src/generators/npm-package/schema.json +1 -1
  35. package/src/generators/preset/preset.js +84 -0
  36. package/src/generators/preset/schema.d.ts +3 -0
  37. package/src/generators/preset/schema.json +17 -3
  38. package/src/generators/remove/lib/update-jest-config.js +18 -6
  39. package/src/generators/remove/schema.json +1 -1
  40. package/src/generators/run-commands/schema.json +1 -1
  41. package/src/generators/utils/jest-config.d.ts +2 -0
  42. package/src/generators/utils/jest-config.js +13 -0
  43. package/src/generators/utils/presets.d.ts +4 -0
  44. package/src/generators/utils/presets.js +5 -1
  45. package/src/utils/output.js +1 -1
  46. package/src/utils/versions.d.ts +2 -2
  47. package/src/utils/versions.js +2 -2
@@ -13,14 +13,16 @@ async function newGenerator(tree, opts) {
13
13
  await (0, generate_workspace_files_1.generateWorkspaceFiles)(tree, { ...options, nxCloud: undefined });
14
14
  (0, generate_preset_1.addPresetDependencies)(tree, options);
15
15
  return async () => {
16
- const pmc = (0, devkit_1.getPackageManagerCommand)(options.packageManager);
17
- if (pmc.preInstall) {
18
- (0, child_process_1.execSync)(pmc.preInstall, {
19
- cwd: (0, devkit_1.joinPathFragments)(tree.root, options.directory),
20
- stdio: process.env.NX_GENERATE_QUIET === 'true' ? 'ignore' : 'inherit',
21
- });
16
+ if (!options.skipInstall) {
17
+ const pmc = (0, devkit_1.getPackageManagerCommand)(options.packageManager);
18
+ if (pmc.preInstall) {
19
+ (0, child_process_1.execSync)(pmc.preInstall, {
20
+ cwd: (0, devkit_1.joinPathFragments)(tree.root, options.directory),
21
+ stdio: process.env.NX_GENERATE_QUIET === 'true' ? 'ignore' : 'inherit',
22
+ });
23
+ }
24
+ (0, devkit_1.installPackagesTask)(tree, false, options.directory, options.packageManager);
22
25
  }
23
- (0, devkit_1.installPackagesTask)(tree, false, options.directory, options.packageManager);
24
26
  // TODO: move all of these into create-nx-workspace
25
27
  if (options.preset !== presets_1.Preset.NPM && !options.isCustomPreset) {
26
28
  await (0, generate_preset_1.generatePreset)(tree, options);
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxWorkspaceNew",
4
4
  "title": "Create an empty workspace",
5
5
  "description": "Create an empty workspace.",
@@ -68,10 +68,24 @@
68
68
  "type": "boolean",
69
69
  "default": true
70
70
  },
71
+ "nextSrcDir": {
72
+ "description": "Generate a `src` directory for this project.",
73
+ "type": "boolean",
74
+ "default": true
75
+ },
71
76
  "e2eTestRunner": {
72
77
  "description": "The tool to use for running e2e tests.",
73
78
  "type": "string",
74
79
  "enum": ["cypress", "playwright", "jest", "detox", "none"]
80
+ },
81
+ "ssr": {
82
+ "description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.",
83
+ "type": "boolean",
84
+ "default": false
85
+ },
86
+ "prefix": {
87
+ "description": "The prefix to use for Angular component and directive selectors.",
88
+ "type": "string"
75
89
  }
76
90
  },
77
91
  "additionalProperties": true
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxWorkspaceNpmPackage",
4
4
  "title": "Add a minimal npm package",
5
5
  "description": "Add a minimal npm package.",
@@ -16,6 +16,10 @@ async function presetGenerator(tree, options) {
16
16
  exports.presetGenerator = presetGenerator;
17
17
  exports.default = presetGenerator;
18
18
  async function createPreset(tree, options) {
19
+ console.log('Crate preset');
20
+ const nxJson = (0, devkit_1.readNxJson)(tree);
21
+ const addPlugin = process.env.NX_ADD_PLUGINS !== 'false' &&
22
+ nxJson.useInferencePlugins !== false;
19
23
  if (options.preset === presets_1.Preset.Apps) {
20
24
  return;
21
25
  }
@@ -30,6 +34,9 @@ async function createPreset(tree, options) {
30
34
  standalone: options.standaloneApi,
31
35
  routing: options.routing,
32
36
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
37
+ bundler: options.bundler,
38
+ ssr: options.ssr,
39
+ prefix: options.prefix,
33
40
  });
34
41
  }
35
42
  else if (options.preset === presets_1.Preset.AngularStandalone) {
@@ -44,6 +51,9 @@ async function createPreset(tree, options) {
44
51
  rootProject: true,
45
52
  standalone: options.standaloneApi,
46
53
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
54
+ bundler: options.bundler,
55
+ ssr: options.ssr,
56
+ prefix: options.prefix,
47
57
  });
48
58
  }
49
59
  else if (options.preset === presets_1.Preset.ReactMonorepo) {
@@ -57,6 +67,7 @@ async function createPreset(tree, options) {
57
67
  linter: options.linter,
58
68
  bundler: options.bundler ?? 'webpack',
59
69
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
70
+ addPlugin,
60
71
  });
61
72
  }
62
73
  else if (options.preset === presets_1.Preset.ReactStandalone) {
@@ -72,6 +83,34 @@ async function createPreset(tree, options) {
72
83
  bundler: options.bundler ?? 'vite',
73
84
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
74
85
  unitTestRunner: options.bundler === 'vite' ? 'vitest' : 'jest',
86
+ addPlugin,
87
+ });
88
+ }
89
+ else if (options.preset === presets_1.Preset.RemixMonorepo) {
90
+ const { applicationGenerator: remixApplicationGenerator } = require('@nx' +
91
+ '/remix/generators');
92
+ return remixApplicationGenerator(tree, {
93
+ name: options.name,
94
+ directory: (0, path_1.join)('apps', options.name),
95
+ projectNameAndRootFormat: 'as-provided',
96
+ linter: options.linter,
97
+ e2eTestRunner: options.e2eTestRunner ?? 'cypress',
98
+ unitTestRunner: 'vitest',
99
+ addPlugin,
100
+ });
101
+ }
102
+ else if (options.preset === presets_1.Preset.RemixStandalone) {
103
+ const { applicationGenerator: remixApplicationGenerator } = require('@nx' +
104
+ '/remix/generators');
105
+ return remixApplicationGenerator(tree, {
106
+ name: options.name,
107
+ directory: '.',
108
+ projectNameAndRootFormat: 'as-provided',
109
+ linter: options.linter,
110
+ e2eTestRunner: options.e2eTestRunner ?? 'cypress',
111
+ rootProject: true,
112
+ unitTestRunner: 'vitest',
113
+ addPlugin,
75
114
  });
76
115
  }
77
116
  else if (options.preset === presets_1.Preset.VueMonorepo) {
@@ -84,6 +123,7 @@ async function createPreset(tree, options) {
84
123
  style: options.style,
85
124
  linter: options.linter,
86
125
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
126
+ addPlugin,
87
127
  });
88
128
  }
89
129
  else if (options.preset === presets_1.Preset.VueStandalone) {
@@ -98,6 +138,35 @@ async function createPreset(tree, options) {
98
138
  rootProject: true,
99
139
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
100
140
  unitTestRunner: 'vitest',
141
+ addPlugin,
142
+ });
143
+ }
144
+ else if (options.preset === presets_1.Preset.Nuxt) {
145
+ const { applicationGenerator: nuxtApplicationGenerator } = require('@nx' +
146
+ '/nuxt');
147
+ return nuxtApplicationGenerator(tree, {
148
+ name: options.name,
149
+ directory: (0, path_1.join)('apps', options.name),
150
+ projectNameAndRootFormat: 'as-provided',
151
+ style: options.style,
152
+ linter: options.linter,
153
+ e2eTestRunner: options.e2eTestRunner ?? 'cypress',
154
+ addPlugin,
155
+ });
156
+ }
157
+ else if (options.preset === presets_1.Preset.NuxtStandalone) {
158
+ const { applicationGenerator: nuxtApplicationGenerator } = require('@nx' +
159
+ '/nuxt');
160
+ return nuxtApplicationGenerator(tree, {
161
+ name: options.name,
162
+ directory: '.',
163
+ projectNameAndRootFormat: 'as-provided',
164
+ style: options.style,
165
+ linter: options.linter,
166
+ rootProject: true,
167
+ e2eTestRunner: options.e2eTestRunner ?? 'cypress',
168
+ unitTestRunner: 'vitest',
169
+ addPlugin,
101
170
  });
102
171
  }
103
172
  else if (options.preset === presets_1.Preset.NextJs) {
@@ -110,7 +179,9 @@ async function createPreset(tree, options) {
110
179
  style: options.style,
111
180
  linter: options.linter,
112
181
  appDir: options.nextAppDir,
182
+ src: options.nextSrcDir,
113
183
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
184
+ addPlugin,
114
185
  });
115
186
  }
116
187
  else if (options.preset === presets_1.Preset.NextJsStandalone) {
@@ -123,8 +194,10 @@ async function createPreset(tree, options) {
123
194
  style: options.style,
124
195
  linter: options.linter,
125
196
  appDir: options.nextAppDir,
197
+ src: options.nextSrcDir,
126
198
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
127
199
  rootProject: true,
200
+ addPlugin,
128
201
  });
129
202
  }
130
203
  else if (options.preset === presets_1.Preset.WebComponents) {
@@ -138,6 +211,7 @@ async function createPreset(tree, options) {
138
211
  linter: options.linter,
139
212
  bundler: 'vite',
140
213
  e2eTestRunner: options.e2eTestRunner ?? 'cypress',
214
+ addPlugin,
141
215
  });
142
216
  }
143
217
  else if (options.preset === presets_1.Preset.Nest) {
@@ -149,6 +223,7 @@ async function createPreset(tree, options) {
149
223
  projectNameAndRootFormat: 'as-provided',
150
224
  linter: options.linter,
151
225
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
226
+ addPlugin,
152
227
  });
153
228
  }
154
229
  else if (options.preset === presets_1.Preset.Express) {
@@ -159,17 +234,22 @@ async function createPreset(tree, options) {
159
234
  projectNameAndRootFormat: 'as-provided',
160
235
  linter: options.linter,
161
236
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
237
+ addPlugin,
162
238
  });
163
239
  }
164
240
  else if (options.preset === presets_1.Preset.ReactNative) {
241
+ console.log('Before require');
165
242
  const { reactNativeApplicationGenerator } = require('@nx' +
166
243
  '/react-native');
244
+ console.log('Hello', reactNativeApplicationGenerator);
245
+ console.log('Active require');
167
246
  return reactNativeApplicationGenerator(tree, {
168
247
  name: options.name,
169
248
  directory: (0, path_1.join)('apps', options.name),
170
249
  projectNameAndRootFormat: 'as-provided',
171
250
  linter: options.linter,
172
251
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
252
+ addPlugin,
173
253
  });
174
254
  }
175
255
  else if (options.preset === presets_1.Preset.Expo) {
@@ -180,6 +260,7 @@ async function createPreset(tree, options) {
180
260
  projectNameAndRootFormat: 'as-provided',
181
261
  linter: options.linter,
182
262
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
263
+ addPlugin,
183
264
  });
184
265
  }
185
266
  else if (options.preset === presets_1.Preset.TS) {
@@ -197,6 +278,7 @@ async function createPreset(tree, options) {
197
278
  testEnvironment: 'node',
198
279
  js: options.js,
199
280
  rootProject: true,
281
+ addPlugin,
200
282
  });
201
283
  }
202
284
  else if (options.preset === presets_1.Preset.NodeStandalone) {
@@ -214,6 +296,7 @@ async function createPreset(tree, options) {
214
296
  docker: options.docker,
215
297
  rootProject: true,
216
298
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
299
+ addPlugin,
217
300
  });
218
301
  }
219
302
  else if (options.preset === presets_1.Preset.NodeMonorepo) {
@@ -230,6 +313,7 @@ async function createPreset(tree, options) {
230
313
  docker: options.docker,
231
314
  rootProject: false,
232
315
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
316
+ addPlugin,
233
317
  });
234
318
  }
235
319
  else {
@@ -12,8 +12,11 @@ export interface Schema {
12
12
  bundler?: 'vite' | 'webpack' | 'rspack' | 'esbuild';
13
13
  docker?: boolean;
14
14
  nextAppDir?: boolean;
15
+ nextSrcDir?: boolean;
15
16
  routing?: boolean;
16
17
  standaloneApi?: boolean;
17
18
  e2eTestRunner?: 'cypress' | 'playwright' | 'jest' | 'detox' | 'none';
18
19
  js?: boolean;
20
+ ssr?: boolean;
21
+ prefix?: string;
19
22
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxWorkspacePreset",
4
4
  "cli": "nx",
5
5
  "title": "Creates applications in a new workspace",
@@ -39,11 +39,11 @@
39
39
  },
40
40
  {
41
41
  "value": "scss",
42
- "label": "SASS(.scss) [ http://sass-lang.com ]"
42
+ "label": "SASS(.scss) [ https://sass-lang.com ]"
43
43
  },
44
44
  {
45
45
  "value": "less",
46
- "label": "LESS [ http://lesscss.org ]"
46
+ "label": "LESS [ https://lesscss.org ]"
47
47
  }
48
48
  ]
49
49
  }
@@ -85,10 +85,24 @@
85
85
  "type": "boolean",
86
86
  "default": true
87
87
  },
88
+ "nextSrcDir": {
89
+ "description": "Generate a `src` directory for this project.",
90
+ "type": "boolean",
91
+ "default": true
92
+ },
88
93
  "e2eTestRunner": {
89
94
  "description": "The tool to use for running e2e tests.",
90
95
  "type": "string",
91
96
  "enum": ["cypress", "playwright", "jest", "detox", "none"]
97
+ },
98
+ "ssr": {
99
+ "description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.",
100
+ "type": "boolean",
101
+ "default": false
102
+ },
103
+ "prefix": {
104
+ "description": "The prefix to use for Angular component and directive selectors.",
105
+ "type": "string"
92
106
  }
93
107
  },
94
108
  "required": ["preset", "name"]
@@ -5,9 +5,16 @@ const devkit_1 = require("@nx/devkit");
5
5
  const get_source_nodes_1 = require("../../../utilities/typescript/get-source-nodes");
6
6
  const path_1 = require("path");
7
7
  const typescript_1 = require("../../../utilities/typescript");
8
+ const jest_config_1 = require("../../utils/jest-config");
8
9
  let tsModule;
9
10
  function isUsingUtilityFunction(host) {
10
- return host.read('jest.config.ts').toString().includes('getJestProjects()');
11
+ const rootConfigPath = (0, jest_config_1.findRootJestConfig)(host);
12
+ if (!rootConfigPath) {
13
+ return false;
14
+ }
15
+ const rootConfig = host.read(rootConfigPath, 'utf-8');
16
+ return (rootConfig.includes('getJestProjects()') ||
17
+ rootConfig.includes('getJestProjectsAsync()'));
11
18
  }
12
19
  /**
13
20
  * in a standalone project, the root jest.config.ts is a project config instead
@@ -15,7 +22,11 @@ function isUsingUtilityFunction(host) {
15
22
  * in that case we do not need to edit it to remove it
16
23
  **/
17
24
  function isMonorepoConfig(tree) {
18
- return tree.read('jest.config.ts', 'utf-8').includes('projects:');
25
+ const rootConfigPath = (0, jest_config_1.findRootJestConfig)(tree);
26
+ if (!rootConfigPath) {
27
+ return false;
28
+ }
29
+ return tree.read(rootConfigPath, 'utf-8').includes('projects:');
19
30
  }
20
31
  /**
21
32
  * Updates the root jest config projects array and removes the project.
@@ -26,14 +37,15 @@ function updateJestConfig(tree, schema, projectConfig) {
26
37
  }
27
38
  const { createSourceFile, ScriptTarget, isPropertyAssignment, isArrayLiteralExpression, isStringLiteral, } = tsModule;
28
39
  const projectToRemove = schema.projectName;
29
- if (!tree.exists('jest.config.ts') ||
40
+ const rootConfigPath = (0, jest_config_1.findRootJestConfig)(tree);
41
+ if (!tree.exists(rootConfigPath) ||
30
42
  !tree.exists((0, path_1.join)(projectConfig.root, 'jest.config.ts')) ||
31
43
  isUsingUtilityFunction(tree) ||
32
44
  !isMonorepoConfig(tree)) {
33
45
  return;
34
46
  }
35
- const contents = tree.read('jest.config.ts', 'utf-8');
36
- const sourceFile = createSourceFile('jest.config.ts', contents, ScriptTarget.Latest);
47
+ const contents = tree.read(rootConfigPath, 'utf-8');
48
+ const sourceFile = createSourceFile(rootConfigPath, contents, ScriptTarget.Latest);
37
49
  const sourceNodes = (0, get_source_nodes_1.getSourceNodes)(sourceFile);
38
50
  const projectsAssignment = sourceNodes.find((node) => isPropertyAssignment(node) &&
39
51
  node.name.getText(sourceFile) === 'projects' &&
@@ -52,7 +64,7 @@ function updateJestConfig(tree, schema, projectConfig) {
52
64
  const start = previousProject
53
65
  ? previousProject.getEnd()
54
66
  : project.getStart(sourceFile);
55
- tree.write('jest.config.ts', (0, devkit_1.applyChangesToString)(contents, [
67
+ tree.write(rootConfigPath, (0, devkit_1.applyChangesToString)(contents, [
56
68
  {
57
69
  type: devkit_1.ChangeType.Delete,
58
70
  start,
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxWorkspaceRemove",
4
4
  "cli": "nx",
5
5
  "title": "Nx Remove",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "SchematicsRunCommands",
4
4
  "title": "Create a custom target to run any command",
5
5
  "description": "Create a custom target to run any command.",
@@ -0,0 +1,2 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ export declare function findRootJestConfig(tree: Tree): string | null;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findRootJestConfig = void 0;
4
+ function findRootJestConfig(tree) {
5
+ if (tree.exists('jest.config.js')) {
6
+ return 'jest.config.js';
7
+ }
8
+ if (tree.exists('jest.config.ts')) {
9
+ return 'jest.config.ts';
10
+ }
11
+ return null;
12
+ }
13
+ exports.findRootJestConfig = findRootJestConfig;
@@ -14,9 +14,13 @@ export declare enum Preset {
14
14
  ReactMonorepo = "react-monorepo",
15
15
  ReactStandalone = "react-standalone",
16
16
  NextJsStandalone = "nextjs-standalone",
17
+ RemixMonorepo = "remix-monorepo",
18
+ RemixStandalone = "remix-standalone",
17
19
  ReactNative = "react-native",
18
20
  VueMonorepo = "vue-monorepo",
19
21
  VueStandalone = "vue-standalone",
22
+ Nuxt = "nuxt",
23
+ NuxtStandalone = "nuxt-standalone",
20
24
  Expo = "expo",
21
25
  NextJs = "next",
22
26
  Nest = "nest",
@@ -4,7 +4,7 @@ exports.Preset = void 0;
4
4
  var Preset;
5
5
  (function (Preset) {
6
6
  Preset["Apps"] = "apps";
7
- // TODO(v18): Remove Empty and Core presets
7
+ // TODO(v19): Remove Empty and Core presets
8
8
  /** @deprecated Use Apps instead
9
9
  */
10
10
  Preset["Empty"] = "empty";
@@ -19,9 +19,13 @@ var Preset;
19
19
  Preset["ReactMonorepo"] = "react-monorepo";
20
20
  Preset["ReactStandalone"] = "react-standalone";
21
21
  Preset["NextJsStandalone"] = "nextjs-standalone";
22
+ Preset["RemixMonorepo"] = "remix-monorepo";
23
+ Preset["RemixStandalone"] = "remix-standalone";
22
24
  Preset["ReactNative"] = "react-native";
23
25
  Preset["VueMonorepo"] = "vue-monorepo";
24
26
  Preset["VueStandalone"] = "vue-standalone";
27
+ Preset["Nuxt"] = "nuxt";
28
+ Preset["NuxtStandalone"] = "nuxt-standalone";
25
29
  Preset["Expo"] = "expo";
26
30
  Preset["NextJs"] = "next";
27
31
  Preset["Nest"] = "nest";
@@ -10,7 +10,7 @@ if (process.env.CI === 'true') {
10
10
  }
11
11
  class CLIOutput {
12
12
  constructor() {
13
- this.NX_PREFIX = `${chalk.cyan('>')} ${chalk.reset.inverse.bold.cyan(' NX ')}`;
13
+ this.NX_PREFIX = chalk.reset.inverse.bold.cyan(' NX ');
14
14
  /**
15
15
  * Longer dash character which forms more of a continuous line when place side to side
16
16
  * with itself, unlike the standard dash character
@@ -1,3 +1,3 @@
1
1
  export declare const nxVersion: any;
2
- export declare const typescriptVersion = "~5.1.3";
3
- export declare const angularCliVersion = "~16.2.0";
2
+ export declare const typescriptVersion = "~5.4.2";
3
+ export declare const angularCliVersion = "~17.3.0";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.angularCliVersion = exports.typescriptVersion = exports.nxVersion = void 0;
4
4
  exports.nxVersion = require('../../package.json').version;
5
- exports.typescriptVersion = '~5.1.3';
5
+ exports.typescriptVersion = '~5.4.2';
6
6
  // TODO: remove when preset generation is reworked and
7
7
  // deps are not installed from workspace
8
- exports.angularCliVersion = '~16.2.0';
8
+ exports.angularCliVersion = '~17.3.0';