hunk.code_window:   NodeModulesBuilderInfo,
     WorkspaceNodeModulesArchitectHost,
   } from '@angular-devkit/architect/node';
   import { json } from '@angular-devkit/core';
   import { spawnSync } from 'child_process';
   import { existsSync } from 'fs';
   import { resolve } from 'path';
   import { isPackageNameSafeForAnalytics } from '../analytics/analytics';
   import { EventCustomDimension, EventCustomMetric } from '../analytics/analytics-parameters';
   import { assertIsError } from '../utilities/error';
   import { askConfirmation, askQuestion } from '../utilities/prompt';
  
hunk.labels: keep keep keep keep replace replace replace keep keep keep keep
hunk.after_edit: import { existsSync } from 'node:fs';
   import { resolve } from 'node:path';
  
hunk.file_path: packages/angular/cli/src/command-builder/architect-base-command-module.ts
hunk.type: replace
file: /**
   * @license
   * Copyright Google LLC All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  
  import { ArchitectCommandModule } from '../../command-builder/architect-command-module';
  import { CommandModuleImplementation } from '../../command-builder/command-module';
  import { RootCommands } from '../command-config';
  
  export default class ServeCommandModule
    extends ArchitectCommandModule
    implements CommandModuleImplementation
  {
    multiTarget = false;
    command = 'serve [project]';
    aliases = RootCommands['serve'].aliases;
    describe = 'Builds and serves your application, rebuilding on file changes.';
    longDescriptionPath?: string | undefined;
  }
  