create-nx-workspace 22.5.1 → 22.5.3

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2017-2025 Narwhal Technologies Inc.
3
+ Copyright (c) 2017-2026 Narwhal Technologies Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
@@ -1 +1 @@
1
- {"version":3,"file":"create-nx-workspace.d.ts","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/bin/create-nx-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-nx-workspace.d.ts","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/bin/create-nx-workspace.ts"],"names":[],"mappings":"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"}
@@ -165,7 +165,7 @@ exports.commandsObject = yargs
165
165
  const errorCode = error instanceof error_utils_1.CnwError ? error.code : 'UNKNOWN';
166
166
  const errorMessage = error instanceof Error ? error.message : String(error);
167
167
  const errorFile = error instanceof Error ? extractErrorFile(error) : undefined;
168
- useCloud = argv.nxCloud !== 'skip';
168
+ useCloud = argv.nxCloud !== 'skip' && argv.nxCloud !== 'never';
169
169
  await (0, ab_testing_1.recordStat)({
170
170
  nxVersion: nx_version_1.nxVersion,
171
171
  command: 'create-nx-workspace',
@@ -276,7 +276,7 @@ async function main(parsedArgs) {
276
276
  await (0, ab_testing_1.recordStat)({
277
277
  nxVersion: nx_version_1.nxVersion,
278
278
  command: 'create-nx-workspace',
279
- useCloud: parsedArgs.nxCloud !== 'skip',
279
+ useCloud: parsedArgs.nxCloud !== 'skip' && parsedArgs.nxCloud !== 'never',
280
280
  meta: {
281
281
  type: 'complete',
282
282
  flowVariant: (0, ab_testing_1.getFlowVariant)(),
@@ -404,7 +404,7 @@ async function normalizeArgsMiddleware(argv) {
404
404
  await (0, ab_testing_1.recordStat)({
405
405
  nxVersion: nx_version_1.nxVersion,
406
406
  command: 'create-nx-workspace',
407
- useCloud: argv.nxCloud !== 'skip',
407
+ useCloud: argv.nxCloud !== 'skip' && argv.nxCloud !== 'never',
408
408
  meta: {
409
409
  type: 'start',
410
410
  flowVariant: (0, ab_testing_1.getFlowVariant)(),
@@ -424,23 +424,36 @@ async function normalizeArgsMiddleware(argv) {
424
424
  const ghAvailable = (0, git_1.isGhCliAvailable)();
425
425
  let nxCloud;
426
426
  let completionMessageKey;
427
+ let skipCloudConnect = false;
428
+ let neverConnectToCloud = false;
427
429
  if (argv.skipGit === true) {
428
430
  nxCloud = 'skip';
429
431
  completionMessageKey = undefined;
430
432
  }
431
433
  else {
432
- // Always show cloud prompt with "full platform" message (CLOUD-4147)
433
- // Flow variant only affects completion banners, not this prompt
434
- nxCloud = await (0, prompts_1.determineNxCloudV2)(argv);
434
+ const cloudChoice = await (0, prompts_1.determineNxCloudV2)(argv);
435
+ if (cloudChoice === 'yes') {
436
+ nxCloud = 'yes';
437
+ skipCloudConnect = false;
438
+ }
439
+ else if (cloudChoice === 'skip') {
440
+ nxCloud = 'skip';
441
+ }
442
+ else {
443
+ nxCloud = 'never';
444
+ neverConnectToCloud = true;
445
+ }
435
446
  completionMessageKey =
436
- nxCloud === 'skip' ? undefined : (0, ab_testing_1.getCompletionMessageKeyForVariant)();
447
+ cloudChoice === 'never'
448
+ ? undefined
449
+ : (0, ab_testing_1.getCompletionMessageKeyForVariant)();
437
450
  }
438
451
  packageManager = argv.packageManager ?? (0, package_manager_1.detectInvokedPackageManager)();
439
452
  Object.assign(argv, {
440
453
  nxCloud,
441
- useGitHub: nxCloud !== 'skip',
442
- // Deferred connection: skip cloud connect but show banner (CLOUD-4255)
443
- skipCloudConnect: nxCloud !== 'skip',
454
+ useGitHub: nxCloud !== 'skip' && nxCloud !== 'never',
455
+ skipCloudConnect,
456
+ neverConnectToCloud,
444
457
  completionMessageKey,
445
458
  packageManager,
446
459
  defaultBase: 'main',
@@ -450,7 +463,7 @@ async function normalizeArgsMiddleware(argv) {
450
463
  await (0, ab_testing_1.recordStat)({
451
464
  nxVersion: nx_version_1.nxVersion,
452
465
  command: 'create-nx-workspace',
453
- useCloud: nxCloud !== 'skip',
466
+ useCloud: nxCloud !== 'skip' && nxCloud !== 'never',
454
467
  meta: {
455
468
  type: 'precreate',
456
469
  flowVariant: (0, ab_testing_1.getFlowVariant)(),
@@ -488,6 +501,7 @@ async function normalizeArgsMiddleware(argv) {
488
501
  let useGitHub;
489
502
  let completionMessageKey;
490
503
  let skipCloudConnect = false;
504
+ let neverConnectToCloud = false;
491
505
  if (argv.skipGit === true) {
492
506
  nxCloud = 'skip';
493
507
  useGitHub = undefined;
@@ -496,23 +510,39 @@ async function normalizeArgsMiddleware(argv) {
496
510
  // CLI arg provided: use existing flow (CI provider selection if needed)
497
511
  nxCloud = await (0, prompts_1.determineNxCloud)(argv);
498
512
  useGitHub =
499
- nxCloud === 'skip'
513
+ nxCloud === 'skip' || nxCloud === 'never'
500
514
  ? undefined
501
515
  : nxCloud === 'github' || (await (0, prompts_1.determineIfGitHubWillBeUsed)(argv));
516
+ if (nxCloud === 'never') {
517
+ neverConnectToCloud = true;
518
+ }
502
519
  }
503
520
  else {
504
521
  // No CLI arg: use simplified prompt (same as template flow)
505
- nxCloud = await (0, prompts_1.determineNxCloudV2)(argv);
506
- useGitHub = nxCloud !== 'skip';
522
+ const cloudChoice = await (0, prompts_1.determineNxCloudV2)(argv);
523
+ if (cloudChoice === 'yes') {
524
+ nxCloud = 'yes';
525
+ skipCloudConnect = false;
526
+ }
527
+ else if (cloudChoice === 'skip') {
528
+ nxCloud = 'skip';
529
+ }
530
+ else {
531
+ nxCloud = 'never';
532
+ neverConnectToCloud = true;
533
+ }
534
+ useGitHub =
535
+ nxCloud !== 'skip' && nxCloud !== 'never' ? true : undefined;
507
536
  completionMessageKey =
508
- nxCloud === 'skip' ? undefined : (0, ab_testing_1.getCompletionMessageKeyForVariant)();
509
- // Deferred connection: skip cloud connect but show banner (CLOUD-4255)
510
- skipCloudConnect = nxCloud !== 'skip';
537
+ cloudChoice === 'never'
538
+ ? undefined
539
+ : (0, ab_testing_1.getCompletionMessageKeyForVariant)();
511
540
  }
512
541
  Object.assign(argv, {
513
542
  nxCloud,
514
543
  useGitHub,
515
544
  skipCloudConnect,
545
+ neverConnectToCloud,
516
546
  completionMessageKey,
517
547
  packageManager,
518
548
  defaultBase,
@@ -522,7 +552,7 @@ async function normalizeArgsMiddleware(argv) {
522
552
  await (0, ab_testing_1.recordStat)({
523
553
  nxVersion: nx_version_1.nxVersion,
524
554
  command: 'create-nx-workspace',
525
- useCloud: nxCloud !== 'skip',
555
+ useCloud: nxCloud !== 'skip' && nxCloud !== 'never',
526
556
  meta: {
527
557
  type: 'precreate',
528
558
  flowVariant: (0, ab_testing_1.getFlowVariant)(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-nx-workspace",
3
- "version": "22.5.1",
3
+ "version": "22.5.3",
4
4
  "private": false,
5
5
  "description": "Smart Monorepos · Fast Builds",
6
6
  "repository": {
@@ -41,10 +41,15 @@ export interface CreateWorkspaceOptions {
41
41
  cliName?: string;
42
42
  aiAgents?: Agent[];
43
43
  /**
44
- * @description Skip cloud connection (variant 1 experiment - NXC-3628)
44
+ * @description Skip cloud connection (deferred - show banner but don't write nxCloudId)
45
45
  * @default false
46
46
  */
47
47
  skipCloudConnect?: boolean;
48
+ /**
49
+ * @description Set neverConnectToCloud in nx.json (full opt-out)
50
+ * @default false
51
+ */
52
+ neverConnectToCloud?: boolean;
48
53
  /**
49
54
  * @description Whether GitHub CLI (gh) is available on the system (for telemetry)
50
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"create-workspace-options.d.ts","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/src/create-workspace-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,yEAOlB,CAAC;AACX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAOjD,CAAC"}
1
+ {"version":3,"file":"create-workspace-options.d.ts","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/src/create-workspace-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,yEAOlB,CAAC;AACX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAOjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-workspace.d.ts","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/src/create-workspace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,iBAAiB,CAAC;AA2BzB,wBAAgB,4BAA4B,IAAI;IAC9C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAEA;AAED,wBAAsB,eAAe,CAAC,CAAC,SAAS,sBAAsB,EACpE,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,CAAC;;;;;GAoPZ;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D"}
1
+ {"version":3,"file":"create-workspace.d.ts","sourceRoot":"","sources":["../../../../packages/create-nx-workspace/src/create-workspace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,iBAAiB,CAAC;AA4BzB,wBAAgB,4BAA4B,IAAI;IAC9C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAEA;AAED,wBAAsB,eAAe,CAAC,CAAC,SAAS,sBAAsB,EACpE,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,CAAC;;;;;GA6PZ;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D"}
@@ -82,8 +82,9 @@ async function createWorkspace(preset, options, rawArgs) {
82
82
  throw e;
83
83
  }
84
84
  // Connect to Nx Cloud for template flow
85
- // For variant 1 (NXC-3628): Skip connection, use GitHub flow for URL generation
86
- if (nxCloud !== 'skip' && !options.skipCloudConnect) {
85
+ if (nxCloud !== 'skip' &&
86
+ nxCloud !== 'never' &&
87
+ !options.skipCloudConnect) {
87
88
  await (0, nx_cloud_1.connectToNxCloudForTemplate)(directory, 'create-nx-workspace', useGitHub);
88
89
  }
89
90
  }
@@ -99,6 +100,9 @@ async function createWorkspace(preset, options, rawArgs) {
99
100
  ...options,
100
101
  preset,
101
102
  workspaceGlobs,
103
+ // We want new workspaces to have a short URL to finish Cloud onboarding, but not have nxCloudId set up since it will be handled as part of the onboarding flow.
104
+ // This is skipping nxCloudId for the "custom" flow.
105
+ nxCloud: 'skip',
102
106
  });
103
107
  // Mark workspace as ready for SIGINT handler
104
108
  workspaceDirectory = directory;
@@ -113,10 +117,14 @@ async function createWorkspace(preset, options, rawArgs) {
113
117
  const isTemplate = !!options.template;
114
118
  // Generate CI for preset flow (not template)
115
119
  // When nxCloud === 'yes' (from simplified prompt), use GitHub as the CI provider
116
- if (nxCloud !== 'skip' && !isTemplate) {
120
+ if (nxCloud !== 'skip' && nxCloud !== 'never' && !isTemplate) {
117
121
  const ciProvider = nxCloud === 'yes' ? 'github' : nxCloud;
118
122
  await (0, setup_ci_1.setupCI)(directory, ciProvider, packageManager);
119
123
  }
124
+ // Handle "Never" opt-out: set neverConnectToCloud in nx.json
125
+ if (options.neverConnectToCloud) {
126
+ (0, nx_cloud_1.setNeverConnectToCloud)(directory);
127
+ }
120
128
  let pushedToVcs = git_1.VcsPushStatus.SkippedGit;
121
129
  if (!skipGit) {
122
130
  const aiMode = (0, ai_output_1.isAiAgent)();
@@ -157,17 +165,14 @@ async function createWorkspace(preset, options, rawArgs) {
157
165
  // Create onboarding URL AFTER git operations so getVcsRemoteInfo() can detect the repo
158
166
  let connectUrl;
159
167
  let nxCloudInfo;
160
- if (nxCloud !== 'skip') {
168
+ if (nxCloud !== 'skip' && nxCloud !== 'never') {
169
+ // "Yes" or "Maybe later" — generate URL, update README, show banner
161
170
  const aiModeForCloud = (0, ai_output_1.isAiAgent)();
162
171
  if (aiModeForCloud) {
163
172
  (0, ai_output_1.logProgress)('configuring', 'Configuring Nx Cloud...');
164
173
  }
165
- // For variant 1 (skipCloudConnect=true): Skip readNxCloudToken() entirely
166
- // - We didn't call connectToNxCloudForTemplate(), so no token exists
167
- // - The spinner message "Checking Nx Cloud setup" would be misleading
168
- // - createNxCloudOnboardingUrl() uses GitHub flow which sends accessToken: null
169
- //
170
- // For variant 0: Read the token as before (cloud was connected)
174
+ // skipCloudConnect=true (Maybe later): Skip readNxCloudToken() since no token exists
175
+ // skipCloudConnect=false (Yes): Read the token as before (cloud was connected)
171
176
  const token = options.skipCloudConnect
172
177
  ? undefined
173
178
  : (0, nx_cloud_1.readNxCloudToken)(directory);
@@ -185,16 +190,17 @@ async function createWorkspace(preset, options, rawArgs) {
185
190
  }
186
191
  nxCloudInfo = await (0, nx_cloud_1.getNxCloudInfo)(connectUrl, pushedToVcs, options.completionMessageKey, name);
187
192
  }
188
- else if (isTemplate && nxCloud === 'skip') {
189
- // Strip marker comments from README even when cloud is skipped
190
- // so users don't see raw <!-- BEGIN/END: nx-cloud --> markers
193
+ else if (isTemplate && (nxCloud === 'skip' || nxCloud === 'never')) {
194
+ // Strip marker comments from README
191
195
  const readmeUpdated = (0, update_readme_1.addConnectUrlToReadme)(directory, undefined);
192
196
  if (readmeUpdated && !skipGit && commit) {
193
197
  const alreadyPushed = pushedToVcs === git_1.VcsPushStatus.PushedToVcs;
194
198
  await (0, update_readme_1.amendOrCommitReadme)(directory, alreadyPushed);
195
199
  }
196
- // Show nx connect message when user skips cloud in template flow
197
- nxCloudInfo = (0, nx_cloud_1.getSkippedNxCloudInfo)();
200
+ // Only show "nx connect" message for 'skip', not 'never'
201
+ if (nxCloud === 'skip') {
202
+ nxCloudInfo = (0, nx_cloud_1.getSkippedNxCloudInfo)();
203
+ }
198
204
  }
199
205
  return {
200
206
  nxCloudInfo,
@@ -8,7 +8,7 @@ export declare function determineNxCloud(parsedArgs: yargs.Arguments<{
8
8
  export declare function determineNxCloudV2(parsedArgs: yargs.Arguments<{
9
9
  nxCloud?: string;
10
10
  interactive?: boolean;
11
- }>): Promise<'github' | 'skip'>;
11
+ }>): Promise<'yes' | 'skip' | 'never'>;
12
12
  export declare function determineIfGitHubWillBeUsed(parsedArgs: yargs.Arguments<{
13
13
  nxCloud: NxCloud;
14
14
  useGitHub?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../../packages/create-nx-workspace/src/internal-utils/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAEL,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EACL,KAAK,EAGN,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACvE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,CAc5B;AAED,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACrE,OAAO,CAAC,OAAO,CAAC,CAelB;AA4BD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC,GACD,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CA4C5B;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACzE,OAAO,CAAC,KAAK,EAAE,CAAC,CAElB;AAqBD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,cAAc,CAAC,CAiCzB"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../../packages/create-nx-workspace/src/internal-utils/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAEL,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EACL,KAAK,EAGN,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACvE,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAiBnC;AAED,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACrE,OAAO,CAAC,OAAO,CAAC,CAelB;AA4BD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC,GACD,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CA4C5B;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GACzE,OAAO,CAAC,KAAK,EAAE,CAAC,CAElB;AAqBD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,cAAc,CAAC,CAiCzB"}
@@ -31,15 +31,22 @@ async function determineNxCloud(parsedArgs) {
31
31
  async function determineNxCloudV2(parsedArgs) {
32
32
  // Provided via flag
33
33
  if (parsedArgs.nxCloud) {
34
- return parsedArgs.nxCloud === 'skip' ? 'skip' : 'github';
34
+ if (parsedArgs.nxCloud === 'skip')
35
+ return 'skip';
36
+ if (parsedArgs.nxCloud === 'never')
37
+ return 'never';
38
+ return 'yes';
35
39
  }
36
40
  // Non-interactive mode
37
41
  if (!parsedArgs.interactive || (0, is_ci_1.isCI)()) {
38
42
  return 'skip';
39
43
  }
40
- // Auto-select GitHub flow for deferred connection (variant 2 locked in - CLOUD-4255)
41
- // Note: skipCloudConnect=true prevents actual connection, but we still get the banner
42
- return 'github';
44
+ const result = await nxCloudPrompt('setupNxCloudV2');
45
+ if (result === 'never')
46
+ return 'never';
47
+ if (result === 'skip')
48
+ return 'skip';
49
+ return 'yes';
43
50
  }
44
51
  async function determineIfGitHubWillBeUsed(parsedArgs) {
45
52
  if (parsedArgs.nxCloud === 'yes' || parsedArgs.nxCloud === 'circleci') {
@@ -1 +1 @@
1
- {"version":3,"file":"ab-testing.d.ts","sourceRoot":"","sources":["../../../../../../packages/create-nx-workspace/src/utils/nx/ab-testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ab-testing.d.ts","sourceRoot":"","sources":["../../../../../../packages/create-nx-workspace/src/utils/nx/ab-testing.ts"],"names":[],"mappings":"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"}
@@ -151,6 +151,7 @@ exports.NxCloudChoices = [
151
151
  'bitbucket-pipelines',
152
152
  'circleci',
153
153
  'skip',
154
+ 'never',
154
155
  'yes', // Deprecated but still handled
155
156
  ];
156
157
  const messageOptions = {
@@ -197,52 +198,14 @@ const messageOptions = {
197
198
  * Simplified Cloud prompt for template flow
198
199
  */
199
200
  setupNxCloudV2: [
200
- //{
201
- // code: 'cloud-v2-remote-cache-visit',
202
- // message: 'Enable remote caching with Nx Cloud?',
203
- // initial: 0,
204
- // choices: [
205
- // { value: 'yes', name: 'Yes' },
206
- // { value: 'skip', name: 'Skip' },
207
- // ],
208
- // footer:
209
- // '\nRemote caching makes your builds faster for development and in CI: https://nx.dev/ci/features/remote-cache',
210
- // fallback: undefined,
211
- // completionMessage: 'cache-setup',
212
- //},
213
- //{
214
- // code: 'cloud-v2-fast-ci-visit',
215
- // message: 'Speed up CI and reduce compute costs with Nx Cloud?',
216
- // initial: 0,
217
- // choices: [
218
- // { value: 'yes', name: 'Yes' },
219
- // { value: 'skip', name: 'Skip' },
220
- // ],
221
- // footer:
222
- // '\n70% faster CI, 60% less compute, Automatically fix broken PRs: https://nx.dev/nx-cloud',
223
- // fallback: undefined,
224
- // completionMessage: 'ci-setup',
225
- //},
226
- //{
227
- // code: 'cloud-v2-green-prs-visit',
228
- // message: 'Get to green PRs faster with Nx Cloud?',
229
- // initial: 0,
230
- // choices: [
231
- // { value: 'yes', name: 'Yes' },
232
- // { value: 'skip', name: 'Skip' },
233
- // ],
234
- // footer:
235
- // '\nAutomatically fix broken PRs, 70% faster CI: https://nx.dev/nx-cloud',
236
- // fallback: undefined,
237
- // completionMessage: 'ci-setup',
238
- //},
239
201
  {
240
- code: 'cloud-v2-full-platform-visit',
241
- message: 'Try the full Nx platform?',
202
+ code: 'connect-to-cloud',
203
+ message: 'Connect to Nx Cloud?',
242
204
  initial: 0,
243
205
  choices: [
244
206
  { value: 'yes', name: 'Yes' },
245
- { value: 'skip', name: 'Skip' },
207
+ { value: 'skip', name: 'Skip for now' },
208
+ { value: 'never', name: "No, don't ask again" },
246
209
  ],
247
210
  footer: '\nAutomatically fix broken PRs, 70% faster CI: https://nx.dev/nx-cloud',
248
211
  fallback: undefined,
@@ -7,7 +7,7 @@ const git_1 = require("../git/git");
7
7
  * Generates a simple box banner with the setup URL.
8
8
  */
9
9
  function generateSimpleBanner(url) {
10
- const content = `Finish your set up here: ${url}`;
10
+ const content = `Finish setup: ${url}`;
11
11
  // Add padding around content (3 spaces on each side)
12
12
  const innerWidth = content.length + 6;
13
13
  const horizontalBorder = '+' + '-'.repeat(innerWidth) + '+';
@@ -1,9 +1,10 @@
1
1
  import { VcsPushStatus } from '../git/git';
2
2
  import { CompletionMessageKey } from './messages';
3
- export type NxCloud = 'yes' | 'github' | 'gitlab' | 'azure' | 'bitbucket-pipelines' | 'circleci' | 'skip';
3
+ export type NxCloud = 'yes' | 'github' | 'gitlab' | 'azure' | 'bitbucket-pipelines' | 'circleci' | 'skip' | 'never';
4
4
  export declare function connectToNxCloudForTemplate(directory: string, installationSource: string, useGitHub?: boolean): Promise<string | null>;
5
5
  export declare function readNxCloudToken(directory: string): string;
6
6
  export declare function createNxCloudOnboardingUrl(nxCloud: NxCloud, token: string | undefined, directory: string, useGitHub?: boolean): Promise<string>;
7
7
  export declare function getNxCloudInfo(connectCloudUrl: string, pushedToVcs: VcsPushStatus, completionMessageKey?: CompletionMessageKey, workspaceName?: string): Promise<string>;
8
8
  export declare function getSkippedNxCloudInfo(): string;
9
+ export declare function setNeverConnectToCloud(directory: string): void;
9
10
  //# sourceMappingURL=nx-cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nx-cloud.d.ts","sourceRoot":"","sources":["../../../../../../packages/create-nx-workspace/src/utils/nx/nx-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAGL,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAKpB,MAAM,MAAM,OAAO,GACf,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,qBAAqB,GACrB,UAAU,GACV,MAAM,CAAC;AAEX,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BxB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,UAgBjD;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,aAAa,EAC1B,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,aAAa,CAAC,EAAE,MAAM,mBAuBvB;AAED,wBAAgB,qBAAqB,WAIpC"}
1
+ {"version":3,"file":"nx-cloud.d.ts","sourceRoot":"","sources":["../../../../../../packages/create-nx-workspace/src/utils/nx/nx-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAGL,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAKpB,MAAM,MAAM,OAAO,GACf,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,qBAAqB,GACrB,UAAU,GACV,MAAM,GACN,OAAO,CAAC;AAEZ,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BxB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,UAgBjD;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,aAAa,EAC1B,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,aAAa,CAAC,EAAE,MAAM,mBAuBvB;AAED,wBAAgB,qBAAqB,WAIpC;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAO9D"}
@@ -5,6 +5,7 @@ exports.readNxCloudToken = readNxCloudToken;
5
5
  exports.createNxCloudOnboardingUrl = createNxCloudOnboardingUrl;
6
6
  exports.getNxCloudInfo = getNxCloudInfo;
7
7
  exports.getSkippedNxCloudInfo = getSkippedNxCloudInfo;
8
+ exports.setNeverConnectToCloud = setNeverConnectToCloud;
8
9
  const output_1 = require("../output");
9
10
  const messages_1 = require("./messages");
10
11
  const ab_testing_1 = require("./ab-testing");
@@ -84,3 +85,11 @@ function getSkippedNxCloudInfo() {
84
85
  out.success((0, messages_1.getSkippedCloudMessage)());
85
86
  return out.getOutput();
86
87
  }
88
+ function setNeverConnectToCloud(directory) {
89
+ const { readFileSync, writeFileSync } = require('fs');
90
+ const { join } = require('path');
91
+ const nxJsonPath = join(directory, 'nx.json');
92
+ const nxJson = JSON.parse(readFileSync(nxJsonPath, 'utf-8'));
93
+ nxJson.neverConnectToCloud = true;
94
+ writeFileSync(nxJsonPath, JSON.stringify(nxJson, null, 2) + '\n');
95
+ }