@hubspot/cli 7.7.16-experimental.0 → 7.7.16-experimental.10

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 (106) hide show
  1. package/bin/cli.js +4 -0
  2. package/bin/hs +1 -1
  3. package/commands/account/auth.js +3 -3
  4. package/commands/app/install.d.ts +8 -0
  5. package/commands/app/install.js +127 -0
  6. package/commands/app.js +6 -1
  7. package/commands/auth.js +23 -25
  8. package/commands/getStarted.d.ts +9 -0
  9. package/commands/getStarted.js +274 -0
  10. package/commands/init.js +35 -32
  11. package/commands/mcp/setup.d.ts +2 -2
  12. package/commands/mcp/setup.js +2 -0
  13. package/commands/mcp/start.d.ts +2 -2
  14. package/commands/mcp/start.js +3 -1
  15. package/commands/project/cloneApp.js +4 -4
  16. package/commands/project/create.js +9 -9
  17. package/commands/project/deploy.d.ts +1 -0
  18. package/commands/project/deploy.js +29 -3
  19. package/commands/project/dev/deprecatedFlow.js +4 -4
  20. package/commands/project/dev/index.js +5 -5
  21. package/commands/project/dev/unifiedFlow.js +8 -0
  22. package/commands/project/upload.d.ts +2 -2
  23. package/commands/project/upload.js +18 -23
  24. package/commands/project/validate.d.ts +6 -0
  25. package/commands/project/validate.js +82 -0
  26. package/commands/project.js +2 -0
  27. package/commands/sandbox/delete.js +5 -5
  28. package/commands/testAccount/create.d.ts +6 -0
  29. package/commands/testAccount/create.js +160 -0
  30. package/commands/testAccount/createConfig.d.ts +10 -0
  31. package/commands/testAccount/createConfig.js +98 -0
  32. package/commands/testAccount/delete.d.ts +6 -0
  33. package/commands/testAccount/delete.js +48 -0
  34. package/commands/testAccount.d.ts +3 -0
  35. package/commands/testAccount.js +28 -0
  36. package/lang/en.d.ts +201 -35
  37. package/lang/en.js +201 -38
  38. package/lang/en.lyaml +9 -14
  39. package/lib/accountTypes.d.ts +1 -0
  40. package/lib/accountTypes.js +20 -9
  41. package/lib/app/migrate.js +15 -3
  42. package/lib/app/migrate_legacy.js +2 -3
  43. package/lib/app/urls.d.ts +1 -1
  44. package/lib/commonOpts.d.ts +2 -0
  45. package/lib/commonOpts.js +21 -9
  46. package/lib/constants.d.ts +5 -0
  47. package/lib/constants.js +6 -1
  48. package/lib/doctor/Doctor.js +1 -1
  49. package/lib/errorHandlers/index.js +7 -0
  50. package/lib/mcp/setup.d.ts +9 -0
  51. package/lib/mcp/setup.js +23 -21
  52. package/lib/middleware/__test__/configMiddleware.test.js +2 -2
  53. package/lib/middleware/configMiddleware.js +10 -2
  54. package/lib/parsing.d.ts +1 -0
  55. package/lib/parsing.js +11 -0
  56. package/lib/polling.d.ts +1 -1
  57. package/lib/polling.js +11 -1
  58. package/lib/projectProfiles.d.ts +1 -0
  59. package/lib/projectProfiles.js +18 -0
  60. package/lib/projects/add/v3AddComponent.js +4 -0
  61. package/lib/projects/buildAndDeploy.js +1 -1
  62. package/lib/projects/create/index.d.ts +3 -2
  63. package/lib/projects/create/index.js +11 -5
  64. package/lib/projects/create/v3.d.ts +3 -3
  65. package/lib/projects/create/v3.js +2 -2
  66. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -0
  67. package/lib/projects/localDev/AppDevModeInterface.js +46 -17
  68. package/lib/projects/localDev/LocalDevManager.js +1 -1
  69. package/lib/projects/localDev/LocalDevProcess.d.ts +3 -2
  70. package/lib/projects/localDev/LocalDevProcess.js +16 -12
  71. package/lib/projects/localDev/LocalDevState.d.ts +10 -5
  72. package/lib/projects/localDev/LocalDevState.js +18 -20
  73. package/lib/projects/localDev/LocalDevWatcher.js +1 -1
  74. package/lib/projects/structure.d.ts +2 -2
  75. package/lib/projects/upload.d.ts +4 -0
  76. package/lib/projects/upload.js +57 -22
  77. package/lib/projects/urls.d.ts +2 -0
  78. package/lib/projects/urls.js +10 -0
  79. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +17 -0
  80. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +96 -0
  81. package/lib/prompts/installAppPrompt.d.ts +2 -1
  82. package/lib/prompts/installAppPrompt.js +12 -2
  83. package/lib/prompts/personalAccessKeyPrompt.js +2 -2
  84. package/lib/prompts/projectNameAndDestPrompt.d.ts +3 -0
  85. package/lib/prompts/projectNameAndDestPrompt.js +60 -0
  86. package/lib/prompts/promptUtils.d.ts +1 -0
  87. package/lib/prompts/promptUtils.js +2 -0
  88. package/lib/prompts/selectProjectTemplatePrompt.d.ts +26 -0
  89. package/lib/prompts/{createProjectPrompt.js → selectProjectTemplatePrompt.js} +6 -55
  90. package/lib/ui/logger.d.ts +1 -0
  91. package/lib/ui/logger.js +1 -0
  92. package/lib/validation.d.ts +1 -1
  93. package/lib/validation.js +4 -4
  94. package/lib/yargsUtils.d.ts +1 -0
  95. package/lib/yargsUtils.js +3 -0
  96. package/mcp-server/tools/index.js +2 -0
  97. package/mcp-server/tools/project/CreateProjectTool.d.ts +3 -3
  98. package/mcp-server/tools/project/CreateProjectTool.js +5 -1
  99. package/mcp-server/tools/project/DeployProject.js +1 -1
  100. package/mcp-server/tools/project/UploadProjectTools.js +1 -1
  101. package/mcp-server/tools/project/ValidateProjectTool.d.ts +17 -0
  102. package/mcp-server/tools/project/ValidateProjectTool.js +35 -0
  103. package/package.json +10 -9
  104. package/types/LocalDev.d.ts +2 -0
  105. package/types/Yargs.d.ts +5 -1
  106. package/lib/prompts/createProjectPrompt.d.ts +0 -28
package/lang/en.d.ts CHANGED
@@ -8,6 +8,58 @@ export declare const commands: {
8
8
  readonly configFileExists: (configPath: string) => string;
9
9
  };
10
10
  };
11
+ readonly getStarted: {
12
+ readonly options: {
13
+ readonly dest: {
14
+ readonly describe: "Directory where the project should be created";
15
+ };
16
+ readonly name: {
17
+ readonly describe: "Project name (cannot be changed)";
18
+ };
19
+ readonly templateSource: {
20
+ readonly describe: "Path to custom GitHub repository from which to create project template";
21
+ };
22
+ };
23
+ readonly startTitle: "Welcome to HubSpot Development!";
24
+ readonly verboseDescribe: "A step-by-step command to get you started with a HubSpot project.";
25
+ readonly startDescription: "You can use the HubSpot CLI to build apps, CMS themes, and more.";
26
+ readonly designManager: "To onboard with CMS, please visit the HubSpot Design Manager in your account and follow the checklist items.";
27
+ readonly openDesignManager: "Click here to go to the HubSpot Design Manager";
28
+ readonly openDesignManagerPrompt: "Open Design Manager in your browser?";
29
+ readonly openedDesignManager: "Redirected to Design Manager!";
30
+ readonly developerOverviewBrowserOpenPrep: "We'll take you to your HubSpot account and walk you through installing and previewing your new app.";
31
+ readonly openInstallUrl: "Open HubSpot to install your app in your account?";
32
+ readonly openedDeveloperOverview: "HubSpot opened!";
33
+ readonly prompts: {
34
+ readonly selectOption: "Are you looking to build apps or CMS?";
35
+ readonly options: {
36
+ readonly app: "App";
37
+ readonly cms: "CMS";
38
+ };
39
+ readonly installDependencies: "Would you like to install dependencies now?";
40
+ readonly uploadProject: "Would you like to upload your project to HubSpot now?";
41
+ readonly projectCreated: {
42
+ readonly title: string;
43
+ readonly description: `Let's prepare and upload your project to HubSpot.
44
+ You can use ${string} to ${string} and ${string} to ${string} your project.`;
45
+ };
46
+ };
47
+ readonly logs: {
48
+ readonly appSelected: `We'll create a new project with a sample app for you.
49
+ Projects are what you can use to create apps, themes, and more at HubSpot.
50
+ Usually you'll use the ${string} command, but we'll go ahead and make one now.`;
51
+ readonly dependenciesInstalled: "Dependencies installed successfully.";
52
+ readonly dependenciesNotInstalled: `Dependencies not installed. Remember to do this later with the command ${string} from the project directory.`;
53
+ readonly uploadingProject: "Uploading your project to HubSpot...";
54
+ readonly uploadSuccess: "Project uploaded successfully!";
55
+ readonly developerOverviewLink: "Open this link to navigate to your HubSpot developer portal";
56
+ };
57
+ readonly errors: {
58
+ readonly uploadFailed: "Failed to upload project to HubSpot.";
59
+ readonly configFileNotFound: "Could not find project configuration for upload.";
60
+ readonly installDepsFailed: "Failed to install dependencies.";
61
+ };
62
+ };
11
63
  readonly completion: {
12
64
  readonly describe: "Enable bash completion shortcuts for commands. Concat the generated script to your .bashrc, .bash_profile, or .zshrc file.";
13
65
  readonly examples: {
@@ -141,8 +193,11 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
141
193
  };
142
194
  };
143
195
  readonly auth: {
144
- readonly describe: (configName: string) => string;
196
+ readonly describe: "Configure authentication for your HubSpot account.";
197
+ readonly verboseDescribe: (configName: string, authMethod: string) => string;
145
198
  readonly errors: {
199
+ readonly invalidAccountIdProvided: "--account must be a number.";
200
+ readonly globalConfigFileExists: (accountAuthCommand: string) => string;
146
201
  readonly noConfigFileFound: "No config file was found. To create a new config file, use the \"hs init\" command.";
147
202
  readonly unsupportedAuthType: (type: string, supportedProtocols: string) => string;
148
203
  };
@@ -687,7 +742,8 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
687
742
  };
688
743
  };
689
744
  readonly init: {
690
- readonly describe: (configName: string) => string;
745
+ readonly describe: "Create a CLI config file and configure authentication for your HubSpot account.";
746
+ readonly verboseDescribe: (configName: string, command: string, authMethod: string) => string;
691
747
  readonly options: {
692
748
  readonly authType: {
693
749
  readonly describe: "Authentication mechanism";
@@ -702,14 +758,16 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
702
758
  };
703
759
  readonly success: {
704
760
  readonly configFileCreated: (configPath: string) => string;
705
- readonly configFileUpdated: (account: string, authType: string) => string;
761
+ readonly configFileUpdated: (authType: string, account: string | number) => string;
706
762
  };
707
763
  readonly logs: {
708
764
  readonly updateConfig: "To update an existing config file, use the \"hs auth\" command.";
709
765
  };
710
766
  readonly errors: {
767
+ readonly invalidAccountIdProvided: "--account must be a number.";
711
768
  readonly configFileExists: (configPath: string) => string;
712
769
  readonly bothConfigFilesNotAllowed: (path: string) => string;
770
+ readonly globalConfigFileExists: `You are using our new global configuration for account management, which is not compatible with this command. Please use ${string} instead.`;
713
771
  };
714
772
  };
715
773
  readonly lint: {
@@ -790,13 +848,11 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
790
848
  readonly claudeCodeInstallFailed: "Claude Code CLI not working - skipping configuration";
791
849
  readonly failedToConfigureClaudeDesktop: "Failed to configure Claude Desktop";
792
850
  readonly configuringCursor: "Configuring Cursor...";
793
- readonly noCursorMcpFile: (configFile: string) => string;
794
851
  readonly failedToConfigureCursor: "Failed to configure Cursor";
795
852
  readonly configuredCursor: "Configured Cursor";
796
853
  readonly alreadyInstalled: "HubSpot CLI mcp server already installed, reinstalling";
797
- readonly configuringWindsurf: "Configuring Cursor...";
798
- readonly noWindsurfFile: (configFile: string) => string;
799
- readonly failedToConfigureWindsurf: "Failed to configure Cursor";
854
+ readonly configuringWindsurf: "Configuring Windsurf...";
855
+ readonly failedToConfigureWindsurf: "Failed to configure Windsurf";
800
856
  readonly configuredWindsurf: "Configured Windsurf";
801
857
  };
802
858
  readonly prompts: {
@@ -1321,6 +1377,20 @@ ${string}`;
1321
1377
  readonly noPackageJsonInProject: (projectName: string, link: string) => string;
1322
1378
  readonly packageManagerNotInstalled: (packageManager: string, link: string) => string;
1323
1379
  };
1380
+ readonly validate: {
1381
+ readonly describe: "Validate the project before uploading";
1382
+ readonly mustBeRanWithinAProject: "This command must be run from within a project directory.";
1383
+ readonly badVersion: "This command is only available for projects 2025.2 and later.";
1384
+ readonly examples: {
1385
+ readonly default: "Validate the project before uploading";
1386
+ };
1387
+ readonly success: (projectName: string) => string;
1388
+ readonly options: {
1389
+ readonly profile: {
1390
+ readonly describe: "The profile to target for this validation";
1391
+ };
1392
+ };
1393
+ };
1324
1394
  };
1325
1395
  readonly remove: {
1326
1396
  readonly describe: "Delete a file or folder from the HubSpot CMS.";
@@ -1432,6 +1502,28 @@ ${string}`;
1432
1502
  readonly app: {
1433
1503
  readonly describe: "Commands for managing apps.";
1434
1504
  readonly subcommands: {
1505
+ readonly install: {
1506
+ readonly describe: "Install an OAuth app into a test account.";
1507
+ readonly options: {
1508
+ readonly appUid: "The uid of the app to install";
1509
+ readonly projectName: "The name of the project that contains the app";
1510
+ };
1511
+ readonly positionals: {
1512
+ readonly testAccountId: "The id of the test account to install the app into";
1513
+ };
1514
+ readonly errors: {
1515
+ readonly mustSpecifyProjectName: `You must specify a project name. Use the ${string} flag to specify the project name or run this command from within a project directory.`;
1516
+ readonly noAppUidFound: `No app uid found. Please specify the app uid with the ${string} flag or run this command from within a project that contains an app.`;
1517
+ readonly appMustBeOauth: "This command only supports installing oauth apps. Please specify an app with oauth auth type.";
1518
+ };
1519
+ readonly polling: {
1520
+ readonly start: "Installing app...";
1521
+ readonly success: "App installed successfully";
1522
+ readonly failure: "App installation failed";
1523
+ readonly error: "Error installing app";
1524
+ };
1525
+ readonly example: "Install the app with uid my-app-uid from the project named \"my-project\" into the target account with id 1234567890";
1526
+ };
1435
1527
  readonly secret: {
1436
1528
  readonly describe: "Commands for managing secrets.";
1437
1529
  readonly subcommands: {
@@ -1725,6 +1817,66 @@ ${string}`;
1725
1817
  readonly missingSrc: "Please specify the path to your javascript fields file or directory with the --src flag.";
1726
1818
  };
1727
1819
  };
1820
+ readonly testAccount: {
1821
+ readonly describe: "Commands for working with test accounts.";
1822
+ readonly create: {
1823
+ readonly describe: "Create a test account from a config file";
1824
+ readonly configPathPrompt: "[--config-path] Enter the path to the test account config: ";
1825
+ readonly createTestAccountFromConfigPrompt: "How would you like to create your test account?";
1826
+ readonly createFromConfigOption: "Create test account from config file";
1827
+ readonly createFromScratchOption: "Create test account from scratch";
1828
+ readonly errors: {
1829
+ readonly configFileNotFound: (configPath: string) => string;
1830
+ readonly configFileParseFailed: (configPath: string) => string;
1831
+ };
1832
+ readonly polling: {
1833
+ readonly start: (testAccountName: string) => string;
1834
+ readonly syncing: "Test account created! Syncing account data... (may take a few minutes - you can exit and the sync will continue)";
1835
+ readonly success: (testAccountName: string, testAccountId: number) => string;
1836
+ readonly createFailure: "Failed to create test account.";
1837
+ readonly syncFailure: "Failed to sync data into test account. The account may not be ready to use.";
1838
+ readonly pakFailure: "Failed to generate a personal access key for the test account.";
1839
+ };
1840
+ readonly options: {
1841
+ readonly configPath: "The path to the test account config";
1842
+ };
1843
+ readonly example: (configPath: string) => string;
1844
+ };
1845
+ readonly createConfig: {
1846
+ readonly describe: "Create a test account config file.";
1847
+ readonly pathPrompt: "[--path] What is the path to the test account config?";
1848
+ readonly errors: {
1849
+ readonly pathError: "Path is required";
1850
+ readonly pathFormatError: "Path must end with .json";
1851
+ readonly failedToCreate: "Failed to create test account config";
1852
+ readonly pathExistsError: "A file already exists at this path. Please try again with a different path.";
1853
+ };
1854
+ readonly success: {
1855
+ readonly configFileCreated: (path: string) => string;
1856
+ };
1857
+ readonly options: {
1858
+ readonly name: "The name of the test account";
1859
+ readonly description: "The description of the test account";
1860
+ readonly tiers: "The tiers of the test account";
1861
+ readonly path: "The path to the test account config";
1862
+ };
1863
+ readonly example: (name: string) => string;
1864
+ };
1865
+ readonly delete: {
1866
+ readonly describe: "Delete a test account config file.";
1867
+ readonly pathPrompt: "[--path] What is the path to the test account config?";
1868
+ readonly errors: {
1869
+ readonly failedToDelete: "Failed to delete test account";
1870
+ };
1871
+ readonly success: {
1872
+ readonly testAccountDeleted: (testAccountId: number) => string;
1873
+ };
1874
+ readonly positionals: {
1875
+ readonly testAccountId: "The id of the test account";
1876
+ };
1877
+ readonly example: (testAccountId: number) => string;
1878
+ };
1879
+ };
1728
1880
  readonly secrets: {
1729
1881
  readonly add: {
1730
1882
  readonly loading: {
@@ -2310,6 +2462,12 @@ ${string}`;
2310
2462
  };
2311
2463
  };
2312
2464
  export declare const lib: {
2465
+ readonly parsing: {
2466
+ readonly unableToParseStringToNumber: "Unable to parse string to number";
2467
+ };
2468
+ readonly configMiddleWare: {
2469
+ readonly invalidAccountIdEnvironmentVariable: "Unable to parse `HUBSPOT_ACCOUNT_ID` environment variable into a number";
2470
+ };
2313
2471
  readonly process: {
2314
2472
  readonly exitDebug: (signal: string) => string;
2315
2473
  };
@@ -2319,7 +2477,6 @@ export declare const lib: {
2319
2477
  readonly noCompatibleComponents: (serverKey: string) => string;
2320
2478
  };
2321
2479
  readonly LocalDevManager: {
2322
- readonly staticAuthAccountsMustMatch: "You must test static auth apps in the account the project exists in";
2323
2480
  readonly appNotFound: (accountId: number, appUid: string | undefined) => string;
2324
2481
  readonly failedToInitialize: "Missing required arguments to initialize Local Dev";
2325
2482
  readonly noDeployedBuild: (projectName: string, accountIdentifier: string, uploadCommand: string) => string;
@@ -2364,6 +2521,9 @@ export declare const lib: {
2364
2521
  };
2365
2522
  readonly AppDevModeInterface: {
2366
2523
  readonly defaultMarketplaceAppWarning: (installCount: number) => string;
2524
+ readonly autoInstallDeclined: "You must install your app on your target test account to proceed with local development.";
2525
+ readonly autoInstallSuccess: (appName: string, targetTestAccountId: number) => string;
2526
+ readonly autoInstallError: (appName: string, targetTestAccountId: number) => string;
2367
2527
  };
2368
2528
  readonly LocalDevWebsocketServer: {
2369
2529
  readonly errors: {
@@ -2477,6 +2637,9 @@ Run ${string} to upgrade to version ${string}`;
2477
2637
  readonly invalidAuthDistCombo: (authType: string, distribution: string) => string;
2478
2638
  };
2479
2639
  };
2640
+ readonly add: {
2641
+ readonly nothingAdded: "No features added.";
2642
+ };
2480
2643
  readonly validateProjectConfig: {
2481
2644
  readonly configNotFound: `Unable to locate a project configuration file. Try running again from a project directory, or run ${string} to create a new project.`;
2482
2645
  readonly configMissingFields: "The project configuration file is missing required fields.";
@@ -2515,7 +2678,7 @@ Run ${string} to upgrade to version ${string}`;
2515
2678
  readonly pollProjectBuildAndDeploy: {
2516
2679
  readonly buildSucceededAutomaticallyDeploying: (buildId: number, accountIdentifier: string) => string;
2517
2680
  readonly cleanedUpTempFile: (path: string) => string;
2518
- readonly viewDeploys: "View all deploys for this project in HubSpot";
2681
+ readonly viewDeploys: "view all deploys for this project in HubSpot";
2519
2682
  readonly unableToFindAutodeployStatus: (buildId: number, viewDeploysLink: string) => string;
2520
2683
  };
2521
2684
  };
@@ -2652,31 +2815,18 @@ Run ${string} to upgrade to version ${string}`;
2652
2815
  };
2653
2816
  readonly commonOpts: {
2654
2817
  readonly options: {
2655
- readonly account: {
2656
- readonly describe: "HubSpot account id or name from config";
2657
- };
2658
- readonly config: {
2659
- readonly describe: "Path to a config file";
2660
- };
2661
- readonly overwrite: {
2662
- readonly describe: "Overwrite existing files";
2663
- };
2818
+ readonly account: "HubSpot account id or name from config";
2819
+ readonly config: "Path to a config file";
2820
+ readonly overwrite: "Overwrite existing files";
2664
2821
  readonly modes: {
2665
- readonly describe: {
2666
- readonly default: (modes: string) => string;
2667
- readonly read: (modes: string) => string;
2668
- readonly write: (modes: string) => string;
2669
- };
2670
- };
2671
- readonly qa: {
2672
- readonly describe: "Run command in QA mode";
2673
- };
2674
- readonly useEnv: {
2675
- readonly describe: "Use environment variable config";
2676
- };
2677
- readonly debug: {
2678
- readonly describe: "Set log level to debug";
2822
+ readonly default: (modes: string) => string;
2823
+ readonly read: (modes: string) => string;
2824
+ readonly write: (modes: string) => string;
2679
2825
  };
2826
+ readonly qa: "Run command in QA mode";
2827
+ readonly useEnv: "Use environment variable config";
2828
+ readonly jsonOutput: "Format output as JSON";
2829
+ readonly debug: "Set log level to debug";
2680
2830
  };
2681
2831
  };
2682
2832
  readonly configMigrate: {
@@ -2718,6 +2868,14 @@ Run ${string} to upgrade to version ${string}`;
2718
2868
  readonly setAsDefaultAccount: (accountName: string) => string;
2719
2869
  readonly keepingCurrentDefault: (accountName: string) => string;
2720
2870
  };
2871
+ readonly createDeveloperTestAccountConfigPrompt: {
2872
+ readonly namePrompt: "[--name] What is the name of the test account?";
2873
+ readonly descriptionPrompt: "[--description] What is the description of the test account?";
2874
+ readonly tiersPrompt: "[--tiers] Which product tiers should the test account have?";
2875
+ readonly errors: {
2876
+ readonly tiersError: "Cannot have more than one tier per hub";
2877
+ };
2878
+ };
2721
2879
  readonly accountNamePrompt: {
2722
2880
  readonly enterAccountName: "Enter a unique name to reference this account in the CLI:";
2723
2881
  readonly enterDeveloperTestAccountName: "Name your developer test account:";
@@ -2792,16 +2950,20 @@ Run ${string} to upgrade to version ${string}`;
2792
2950
  readonly languageRequired: "Please select API sample app's language";
2793
2951
  };
2794
2952
  };
2795
- readonly createProjectPrompt: {
2953
+ readonly projectNameAndDestPrompt: {
2796
2954
  readonly enterName: "[--name] Give your project a name: ";
2797
2955
  readonly enterDest: "[--dest] Enter the folder to create the project in:";
2798
- readonly selectTemplate: "[--template] Choose a project template: ";
2799
- readonly features: "[--features] Which features would you like your app to include?";
2800
2956
  readonly errors: {
2801
2957
  readonly nameRequired: "A project name is required";
2802
2958
  readonly destRequired: "A project dest is required";
2803
2959
  readonly invalidDest: "There is an existing project at this destination. Please provide a new path for this project.";
2804
2960
  readonly invalidCharacters: "The selected destination contains invalid characters. Please provide a new path and try again.";
2961
+ };
2962
+ };
2963
+ readonly selectProjectTemplatePrompt: {
2964
+ readonly selectTemplate: "[--template] Choose a project template: ";
2965
+ readonly features: "[--features] Which features would you like your app to include?";
2966
+ readonly errors: {
2805
2967
  readonly invalidTemplate: (template: string) => string;
2806
2968
  readonly projectTemplateRequired: "Project template is required when projectTemplates is provided";
2807
2969
  };
@@ -2890,6 +3052,7 @@ Run ${string} to upgrade to version ${string}`;
2890
3052
  readonly explanation: "Local development requires this app to be installed in the target test account";
2891
3053
  readonly reinstallExplanation: "This app's required scopes have been updated since it was last installed on the target test account. To avoid issues with local development, we recommend reinstalling the app with the updated scopes.";
2892
3054
  readonly prompt: "Open HubSpot to install this app?";
3055
+ readonly autoPrompt: "Install this app in your target test account?";
2893
3056
  readonly reinstallPrompt: "Open HubSpot to reinstall this app?";
2894
3057
  readonly decline: `To continue local development of this app, install it in your target test account and re-run ${string}`;
2895
3058
  };
@@ -2905,6 +3068,9 @@ Run ${string} to upgrade to version ${string}`;
2905
3068
  };
2906
3069
  };
2907
3070
  };
3071
+ readonly polling: {
3072
+ readonly timeoutError: (timeoutMs: number) => string;
3073
+ };
2908
3074
  readonly convertFields: {
2909
3075
  readonly positionals: {
2910
3076
  readonly src: {