@hubspot/cli 7.7.27-experimental.2 → 7.7.29-experimental.0

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 (130) hide show
  1. package/README.md +0 -4
  2. package/api/__tests__/migrate.test.js +5 -5
  3. package/api/migrate.d.ts +10 -4
  4. package/api/migrate.js +2 -2
  5. package/commands/__tests__/create.test.js +20 -0
  6. package/commands/__tests__/testAccount.test.js +2 -0
  7. package/commands/app/__tests__/migrate.test.js +1 -0
  8. package/commands/create/function.js +2 -2
  9. package/commands/create/module.js +2 -2
  10. package/commands/create/template.js +2 -2
  11. package/commands/create.js +47 -0
  12. package/commands/getStarted.js +66 -4
  13. package/commands/mcp/setup.d.ts +0 -1
  14. package/commands/mcp/setup.js +3 -11
  15. package/commands/project/__tests__/create.test.js +57 -0
  16. package/commands/project/__tests__/devUnifiedFlow.test.js +18 -30
  17. package/commands/project/create.js +6 -1
  18. package/commands/project/deploy.js +31 -1
  19. package/commands/project/dev/deprecatedFlow.js +2 -1
  20. package/commands/project/dev/index.js +32 -12
  21. package/commands/project/dev/unifiedFlow.d.ts +1 -1
  22. package/commands/project/dev/unifiedFlow.js +10 -16
  23. package/commands/project/profile/delete.js +26 -14
  24. package/commands/testAccount/__tests__/importData.test.d.ts +1 -0
  25. package/commands/testAccount/__tests__/importData.test.js +93 -0
  26. package/commands/testAccount/create.js +23 -13
  27. package/commands/testAccount/importData.d.ts +9 -0
  28. package/commands/testAccount/importData.js +61 -0
  29. package/commands/testAccount.js +2 -0
  30. package/lang/en.d.ts +162 -46
  31. package/lang/en.js +177 -59
  32. package/lang/en.lyaml +35 -14
  33. package/lib/__tests__/importData.test.d.ts +1 -0
  34. package/lib/__tests__/importData.test.js +89 -0
  35. package/lib/accountTypes.js +2 -3
  36. package/lib/app/__tests__/migrate.test.js +81 -36
  37. package/lib/app/migrate.d.ts +17 -4
  38. package/lib/app/migrate.js +97 -19
  39. package/lib/constants.d.ts +1 -0
  40. package/lib/constants.js +1 -0
  41. package/lib/hasFeature.d.ts +1 -0
  42. package/lib/hasFeature.js +7 -0
  43. package/lib/importData.d.ts +3 -0
  44. package/lib/importData.js +50 -0
  45. package/lib/mcp/setup.d.ts +3 -5
  46. package/lib/mcp/setup.js +39 -139
  47. package/lib/process.js +15 -4
  48. package/lib/projects/__tests__/AppDevModeInterface.test.js +3 -3
  49. package/lib/projects/__tests__/LocalDevProcess.test.js +5 -95
  50. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +6 -6
  51. package/lib/projects/__tests__/components.test.js +164 -7
  52. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +1 -0
  53. package/lib/projects/__tests__/localDevProjectHelpers.test.js +118 -0
  54. package/lib/projects/add/v3AddComponent.js +16 -4
  55. package/lib/projects/components.d.ts +1 -0
  56. package/lib/projects/components.js +27 -1
  57. package/lib/projects/localDev/AppDevModeInterface.js +35 -3
  58. package/lib/projects/localDev/LocalDevLogger.d.ts +0 -4
  59. package/lib/projects/localDev/LocalDevLogger.js +2 -19
  60. package/lib/projects/localDev/LocalDevManager.js +1 -1
  61. package/lib/projects/localDev/LocalDevProcess.d.ts +1 -2
  62. package/lib/projects/localDev/LocalDevProcess.js +3 -26
  63. package/lib/projects/localDev/LocalDevState.d.ts +6 -7
  64. package/lib/projects/localDev/LocalDevState.js +16 -15
  65. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -0
  66. package/lib/projects/localDev/LocalDevWebsocketServer.js +17 -2
  67. package/lib/projects/localDev/{helpers.d.ts → helpers/account.d.ts} +1 -7
  68. package/lib/projects/localDev/{helpers.js → helpers/account.js} +44 -144
  69. package/lib/projects/localDev/helpers/project.d.ts +12 -0
  70. package/lib/projects/localDev/helpers/project.js +173 -0
  71. package/lib/projects/urls.d.ts +1 -0
  72. package/lib/projects/urls.js +4 -0
  73. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +1 -0
  74. package/lib/prompts/__tests__/createFunctionPrompt.test.js +129 -0
  75. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +1 -0
  76. package/lib/prompts/__tests__/createModulePrompt.test.js +187 -0
  77. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +1 -0
  78. package/lib/prompts/__tests__/createTemplatePrompt.test.js +102 -0
  79. package/lib/prompts/confirmImportDataPrompt.d.ts +1 -0
  80. package/lib/prompts/confirmImportDataPrompt.js +12 -0
  81. package/lib/prompts/createFunctionPrompt.d.ts +2 -1
  82. package/lib/prompts/createFunctionPrompt.js +36 -7
  83. package/lib/prompts/createModulePrompt.d.ts +2 -1
  84. package/lib/prompts/createModulePrompt.js +48 -1
  85. package/lib/prompts/createTemplatePrompt.d.ts +3 -24
  86. package/lib/prompts/createTemplatePrompt.js +9 -1
  87. package/lib/prompts/importDataFilePathPrompt.d.ts +1 -0
  88. package/lib/prompts/importDataFilePathPrompt.js +24 -0
  89. package/lib/prompts/importDataTestAccountSelectPrompt.d.ts +3 -0
  90. package/lib/prompts/importDataTestAccountSelectPrompt.js +29 -0
  91. package/lib/prompts/projectDevTargetAccountPrompt.js +1 -0
  92. package/lib/prompts/promptUtils.d.ts +7 -1
  93. package/lib/prompts/promptUtils.js +14 -1
  94. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +1 -0
  95. package/lib/ui/__tests__/removeAnsiCodes.test.js +84 -0
  96. package/lib/ui/index.js +3 -6
  97. package/lib/ui/removeAnsiCodes.d.ts +1 -0
  98. package/lib/ui/removeAnsiCodes.js +4 -0
  99. package/mcp-server/server.js +2 -1
  100. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +38 -0
  101. package/mcp-server/tools/cms/HsCreateModuleTool.js +118 -0
  102. package/mcp-server/tools/cms/HsListTool.d.ts +23 -0
  103. package/mcp-server/tools/cms/HsListTool.js +58 -0
  104. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +1 -0
  105. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +224 -0
  106. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +1 -0
  107. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +120 -0
  108. package/mcp-server/tools/index.d.ts +1 -0
  109. package/mcp-server/tools/index.js +12 -0
  110. package/mcp-server/tools/project/DocFetchTool.d.ts +17 -0
  111. package/mcp-server/tools/project/DocFetchTool.js +49 -0
  112. package/mcp-server/tools/project/DocsSearchTool.d.ts +26 -0
  113. package/mcp-server/tools/project/DocsSearchTool.js +62 -0
  114. package/mcp-server/tools/project/GetConfigValuesTool.js +3 -2
  115. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +1 -0
  116. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +117 -0
  117. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +1 -0
  118. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +190 -0
  119. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +1 -1
  120. package/mcp-server/tools/project/constants.d.ts +2 -0
  121. package/mcp-server/tools/project/constants.js +6 -0
  122. package/mcp-server/utils/toolUsageTracking.d.ts +3 -1
  123. package/mcp-server/utils/toolUsageTracking.js +2 -1
  124. package/package.json +9 -6
  125. package/types/Cms.d.ts +16 -0
  126. package/types/Cms.js +25 -1
  127. package/types/LocalDev.d.ts +0 -3
  128. package/types/Prompts.d.ts +1 -0
  129. package/ui/index.d.ts +1 -0
  130. package/ui/index.js +6 -0
package/lang/en.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import chalk from 'chalk';
2
+ import { mapToUserFriendlyName } from '@hubspot/project-parsing-lib';
2
3
  import { PLATFORM_VERSIONS } from '@hubspot/local-dev-lib/constants/projects';
3
4
  import { PERSONAL_ACCESS_KEY_AUTH_METHOD } from '@hubspot/local-dev-lib/constants/auth';
4
5
  import { ARCHIVED_HUBSPOT_CONFIG_YAML_FILE_NAME, GLOBAL_CONFIG_PATH, DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME, } from '@hubspot/local-dev-lib/constants/config';
5
6
  import { uiAccountDescription, uiBetaTag, uiCommandReference, uiLink, UI_COLORS, } from '../lib/ui/index.js';
6
7
  import { getProjectDetailUrl, getProjectSettingsUrl, getLocalDevUiUrl, } from '../lib/projects/urls.js';
7
8
  import { PROJECT_CONFIG_FILE, PROJECT_WITH_APP } from '../lib/constants.js';
9
+ import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
8
10
  export const commands = {
9
11
  generalErrors: {
10
12
  srcIsProject: (src, command) => `"${src}" is in a project folder. Did you mean "hs project ${command}"?`,
@@ -38,19 +40,19 @@ export const commands = {
38
40
  openInstallUrl: 'Open HubSpot to install your app in your account?',
39
41
  openedDeveloperOverview: 'HubSpot opened!',
40
42
  prompts: {
41
- selectOption: 'Are you looking to build apps or CMS?',
43
+ selectOption: 'Are you looking to build apps or CMS assets?',
42
44
  options: {
43
45
  app: 'App',
44
- cms: 'CMS',
46
+ cms: 'CMS assets',
45
47
  },
46
- uploadProject: 'Would you like to upload your project to HubSpot now?',
48
+ uploadProject: (accountName) => `Would you like to upload this project to account "${accountName}" now?`,
47
49
  projectCreated: {
48
50
  title: chalk.bold('Next steps:'),
49
51
  description: `Let's prepare and upload your project to HubSpot.\nYou can use ${uiCommandReference('hs project install-deps')} to ${chalk.bold('install dependencies')} and ${uiCommandReference('hs project upload')} to ${chalk.bold('upload')} your project.`,
50
52
  },
51
53
  },
52
54
  logs: {
53
- appSelected: `We'll create a new project with a sample app for you.\nProjects are what you can use to create apps, themes, and more at HubSpot.\nUsually you'll use the ${uiCommandReference('hs project create')} command, but we'll go ahead and make one now.`,
55
+ appSelected: `We'll create a new project with a sample app for you.\nProjects are what you can use to create apps with HubSpot.\nUsually you'll use the ${uiCommandReference('hs project create')} command, but we'll go ahead and make one now.`,
54
56
  dependenciesInstalled: 'Dependencies installed successfully.',
55
57
  uploadingProject: 'Uploading your project to HubSpot...',
56
58
  uploadSuccess: 'Project uploaded successfully!',
@@ -336,6 +338,38 @@ export const commands = {
336
338
  describe: 'Type of asset',
337
339
  },
338
340
  },
341
+ flags: {
342
+ templateType: {
343
+ describe: 'Template type for template creation - only used when type is template',
344
+ },
345
+ moduleLabel: {
346
+ describe: 'Label for module creation - only used when type is module',
347
+ },
348
+ reactType: {
349
+ describe: 'Whether to create a React module - only used when type is module',
350
+ },
351
+ contentTypes: {
352
+ describe: (contentTypes) => `Content types where the module can be used (comma-separated list: ${contentTypes.join(', ')}) - only used when type is module`,
353
+ },
354
+ global: {
355
+ describe: 'Whether to create a global module - only used when type is module',
356
+ },
357
+ availableForNewContent: {
358
+ describe: 'Whether the template is available for new content - only used when type is template',
359
+ },
360
+ functionsFolder: {
361
+ describe: 'Folder to create functions in - only used when type is function',
362
+ },
363
+ filename: {
364
+ describe: 'Filename for the function - only used when type is function',
365
+ },
366
+ endpointMethod: {
367
+ describe: 'HTTP method for the function endpoint - only used when type is function',
368
+ },
369
+ endpointPath: {
370
+ describe: 'API endpoint path for the function - only used when type is function',
371
+ },
372
+ },
339
373
  subcommands: {
340
374
  apiSample: {
341
375
  folderOverwritePrompt: (folderName) => `The folder with name "${folderName}" already exists. Overwrite?`,
@@ -855,11 +889,13 @@ export const commands = {
855
889
  configuringCursor: 'Configuring Cursor...',
856
890
  failedToConfigureCursor: 'Failed to configure Cursor',
857
891
  configuredCursor: 'Configured Cursor',
892
+ cursorNotFound: 'Cursor not found - skipping configuration',
858
893
  alreadyInstalled: 'HubSpot CLI mcp server already installed, reinstalling',
859
894
  // Windsurf
860
895
  configuringWindsurf: 'Configuring Windsurf...',
861
896
  failedToConfigureWindsurf: 'Failed to configure Windsurf',
862
897
  configuredWindsurf: 'Configured Windsurf',
898
+ windsurfNotFound: 'Windsurf not found - skipping configuration',
863
899
  // VS Code
864
900
  configuringVsCode: 'Configuring VSCode...',
865
901
  failedToConfigureVsCode: 'Failed to configure VSCode',
@@ -964,6 +1000,7 @@ export const commands = {
964
1000
  noProfileFound: (profileName) => `No profile with filename ${chalk.bold(profileName)} found in your project.`,
965
1001
  noProfilesFound: 'No profiles found in your project.',
966
1002
  failedToDeleteProfile: (profileName) => `Unable to delete profile ${chalk.bold(profileName)}. Please try again.`,
1003
+ failedToDeleteProject: (accountId) => `Failed to delete the project from ${uiAccountDescription(accountId)}`,
967
1004
  },
968
1005
  positionals: {
969
1006
  name: 'The name of the project profile',
@@ -975,9 +1012,15 @@ export const commands = {
975
1012
  logs: {
976
1013
  betaMessage: 'HubSpot projects local development',
977
1014
  placeholderAccountSelection: 'Using default account as target account (for now)',
978
- learnMoreLocalDevServer: 'Learn more about the projects local dev server',
979
1015
  accountTypeInformation: 'Testing in a developer test account is strongly recommended, but you can use a sandbox account if your plan allows you to create one.',
980
- learnMoreMessage: `\nVisit our ${uiLink('docs on Developer Test and Sandbox accounts', 'https://developers.hubspot.com/docs/getting-started/account-types')} to learn more.`,
1016
+ learnMoreMessageV3: `Learn more about ${uiLink('HubSpot projects local dev', 'https://hubspot.mintlify.io/en-us/developer-tooling/local-development/hubspot-cli/project-commands#start-a-local-development-server')} | ${uiLink('HubSpot account types', 'https://developers.hubspot.com/docs/getting-started/account-types')}`,
1017
+ learnMoreMessageLegacy: uiLink('Learn more about the projects local dev server', 'https://developers.hubspot.com/docs/platform/project-cli-commands#start-a-local-development-server'),
1018
+ profileProjectAccountExplanation: (accountId, profileName) => `Using account ${uiAccountDescription(accountId)} from profile ${chalk.bold(profileName)} for project upload`,
1019
+ defaultProjectAccountExplanation: (accountId) => `Using default account ${uiAccountDescription(accountId)} for project upload`,
1020
+ projectAccountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --project-account flag for project upload`,
1021
+ accountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --account flag for project upload`,
1022
+ defaultSandboxOrDevTestTestingAccountExplanation: (accountId) => `Using default account ${uiAccountDescription(accountId)} for testing`,
1023
+ testingAccountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --testing-account flag for testing`,
981
1024
  },
982
1025
  errors: {
983
1026
  noProjectConfig: 'No project detected. Please run this command again from a project directory.',
@@ -986,8 +1029,8 @@ export const commands = {
986
1029
  invalidProjectComponents: 'Projects cannot contain both private and public apps. Move your apps to separate projects before attempting local development.',
987
1030
  noRunnableComponents: `No supported components were found in this project. Run ${uiCommandReference('hs project add')} to see a list of available components and add one to your project.`,
988
1031
  accountNotCombined: `\nLocal development of unified apps is currently only compatible with accounts that are opted into the unified apps beta. Make sure that this account is opted in or switch accounts using ${uiCommandReference('hs account use')}.`,
989
- unsupportedAccountFlagLegacy: 'The --projectAccount and --testingAccount flags are not supported for projects with platform versions earlier than 2025.2.',
990
- unsupportedAccountFlagV3: 'The --account flag is is not supported supported for projects with platform versions 2025.2 and newer. Use --testingAccount and --projectAccount flags to specify accounts to use for local dev',
1032
+ unsupportedAccountFlagLegacy: 'The --project-account and --testing-account flags are not supported for projects with platform versions earlier than 2025.2.',
1033
+ unsupportedAccountFlagV3: 'The --account flag is is not supported supported for projects with platform versions 2025.2 and newer. Use --testing-account and --project-account flags to specify accounts to use for local dev',
991
1034
  },
992
1035
  examples: {
993
1036
  default: 'Start local dev for the current project',
@@ -1007,7 +1050,7 @@ export const commands = {
1007
1050
  cannotNestProjects: (projectDir) => `A project already exists at ${projectDir}. Projects cannot be nested within other projects. Please choose a different destination and try again.`,
1008
1051
  },
1009
1052
  logs: {
1010
- success: (projectName, projectDest) => `\nProject ${chalk.bold(projectName)} was successfully created in ${projectDest}`,
1053
+ success: (projectName, projectDest) => `Project ${chalk.bold(projectName)} was successfully created in ${projectDest}`,
1011
1054
  welcomeMessage: `\n${chalk.bold('Welcome to HubSpot Developer Projects!')}`,
1012
1055
  },
1013
1056
  prompts: {
@@ -1172,6 +1215,10 @@ export const commands = {
1172
1215
  buildIdDoesNotExist: (accountId, buildId, projectName) => `Build ${buildId} does not exist for project ${chalk.bold(projectName)}. ${uiLink('View project builds in HubSpot', getProjectDetailUrl(projectName, accountId))}`,
1173
1216
  buildAlreadyDeployed: (accountId, buildId, projectName) => `Build ${buildId} is already deployed. ${uiLink('View project builds in HubSpot', getProjectDetailUrl(projectName, accountId))}`,
1174
1217
  deployContainsRemovals: (componentName) => `- This deploy would remove the ${chalk.bold(componentName)} component. To proceed, run the deploy command with the ${uiCommandReference('--force')} flag`,
1218
+ deployBlockedHeader: "This build couldn't be deployed because it will be too disruptive for existing users. Fix the following issues and try again:",
1219
+ deployWarningsHeader: `Deploying this build might have unintended consequences for users. Review the following issues and run ${uiCommandReference('hs project deploy --force')} to try again:`,
1220
+ deployIssueComponentGeneric: (uid, componentTypeName) => `- [${mapToUserFriendlyName(componentTypeName)}] ${chalk.bold('(' + uid + ')')} reported issues with the deploy`,
1221
+ deployIssueComponentWarning: (uid, componentTypeName, message) => `- [${mapToUserFriendlyName(componentTypeName)}] ${chalk.bold('(' + uid + ')')} ${message}`,
1175
1222
  },
1176
1223
  examples: {
1177
1224
  default: 'Deploy the latest build of the current project',
@@ -1797,6 +1844,19 @@ export const commands = {
1797
1844
  },
1798
1845
  testAccount: {
1799
1846
  describe: 'Commands for working with test accounts.',
1847
+ subcommands: {
1848
+ importData: {
1849
+ describe: 'Import data into the CRM',
1850
+ options: {
1851
+ skipConfirm: {
1852
+ describe: 'Skip the confirmation prompt',
1853
+ },
1854
+ filePath: {
1855
+ describe: 'The path to the JSON file containing the import schema',
1856
+ },
1857
+ },
1858
+ },
1859
+ },
1800
1860
  create: {
1801
1861
  describe: 'Create a test account from a config file',
1802
1862
  configPathPrompt: '[--config-path] Enter the path to the test account config: ',
@@ -1806,6 +1866,7 @@ export const commands = {
1806
1866
  errors: {
1807
1867
  configFileNotFound: (configPath) => `No test account config file exists at ${configPath}. Create a test account config file with the ${uiCommandReference('hs test-account create-config')} command.`,
1808
1868
  configFileParseFailed: (configPath) => `Failed to parse test account config file at ${configPath}`,
1869
+ saveAccountToConfigFailure: (accountName) => `Failed to save test account config file to config at ${accountName}`,
1809
1870
  },
1810
1871
  polling: {
1811
1872
  start: (testAccountName) => `Creating test account "${chalk.bold(testAccountName)}"...`,
@@ -2473,14 +2534,14 @@ export const lib = {
2473
2534
  uiExtensionLabel: '[UI Extension]',
2474
2535
  missingComponents: (missingComponents) => `Couldn't find the following components in the deployed build for this project: ${chalk.bold(missingComponents)}. This may cause issues in local development.`,
2475
2536
  defaultWarning: chalk.bold('Changing project configuration requires a new project build.'),
2476
- defaultPublicAppWarning: (installCount, installText) => `${chalk.bold('Changing project configuration requires a new project build.')}\n\nThis will affect your public app's ${chalk.bold(`${installCount} existing ${installText}`)}. If your app has users in production, we strongly recommend creating a copy of this app to test your changes before proceding.`,
2537
+ defaultPublicAppWarning: (installCount, installText) => `${chalk.bold('Changing project configuration requires a new project build.')}\n\nThis will affect your public app's ${chalk.bold(`${installCount} existing ${installText}`)}. If your app has users in production, we strongly recommend creating a copy of this app to test your changes before proceeding.`,
2477
2538
  header: (warning) => `${warning} To reflect these changes and continue testing:`,
2478
2539
  instructionsHeader: 'To reflect these changes and continue testing:',
2479
2540
  stopDev: ` * Stop ${uiCommandReference('hs project dev')}`,
2480
2541
  runUpload: (command) => ` * Run ${command}`,
2481
2542
  restartDev: ` * Re-run ${uiCommandReference('hs project dev')}`,
2482
2543
  pushToGithub: ' * Commit and push your changes to GitHub',
2483
- defaultMarketplaceAppWarning: (installCount, accountText) => `${chalk.bold('Changing project configuration requires creating a new project build.')}\n\nYour marketplace app is currently installed in ${chalk.bold(`${installCount} ${accountText}`)}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceding.`,
2544
+ defaultMarketplaceAppWarning: (installCount, accountText) => `${chalk.bold('Changing project configuration requires creating a new project build.')}\n\nYour marketplace app is currently installed in ${chalk.bold(`${installCount} ${accountText}`)}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceeding.`,
2484
2545
  },
2485
2546
  activeInstallWarning: {
2486
2547
  installCount: (appName, installCount) => `${chalk.bold(`The app ${appName} is installed in ${installCount} production ${installCount === 1 ? 'account' : 'accounts'}`)}`,
@@ -2496,10 +2557,17 @@ export const lib = {
2496
2557
  },
2497
2558
  },
2498
2559
  AppDevModeInterface: {
2499
- defaultMarketplaceAppWarning: (installCount) => `\n\nYour marketplace app is currently installed in ${chalk.bold(`${installCount} ${installCount === 1 ? 'account' : 'accounts'}`)}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceding.`,
2560
+ defaultMarketplaceAppWarning: (installCount) => `Your marketplace app is currently installed in ${chalk.bold(`${installCount} ${installCount === 1 ? 'account' : 'accounts'}`)}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceeding.`,
2500
2561
  autoInstallDeclined: 'You must install your app on your target test account to proceed with local development.',
2501
2562
  autoInstallSuccess: (appName, targetTestAccountId) => `Successfully installed app ${appName} on account ${uiAccountDescription(targetTestAccountId)}\n`,
2502
2563
  autoInstallError: (appName, targetTestAccountId) => `Error installing app ${appName} on account ${uiAccountDescription(targetTestAccountId)}. You may still be able to install your app in your browser.`,
2564
+ fetchAppData: {
2565
+ checking: (appName) => `Checking installations for your app ${chalk.bold(appName)}...`,
2566
+ success: (appName, accountId) => `Your app ${chalk.bold(appName)} is installed on account ${uiAccountDescription(accountId, false)}`,
2567
+ notInstalled: (appName, accountId) => `Your app ${chalk.bold(appName)} is not currently installed on account ${uiAccountDescription(accountId, false)}`,
2568
+ activeInstallations: (appName, installCount) => `[WARNING] Your app ${chalk.bold(appName)} is installed in ${chalk.bold(`${installCount} ${installCount === 1 ? 'account' : 'accounts'}`)}`,
2569
+ error: 'An error occurred while checking installations for your app',
2570
+ },
2503
2571
  },
2504
2572
  LocalDevWebsocketServer: {
2505
2573
  errors: {
@@ -2521,43 +2589,54 @@ export const lib = {
2521
2589
  uploadSuccess: 'Project upload completed successfully. Resuming local dev...',
2522
2590
  },
2523
2591
  localDevHelpers: {
2524
- confirmDefaultAccountIsTarget: {
2525
- configError: `An error occurred while reading the default account from your config. Run ${uiCommandReference('hs auth')} to re-auth this account`,
2526
- declineDefaultAccountExplanation: `To develop on a different account, run ${uiCommandReference('hs accounts use')} to change your default account, then re-run ${uiCommandReference('hs project dev')}.`,
2527
- },
2528
- checkIfDefaultAccountIsSupported: {
2529
- publicApp: `This project contains a public app. Local development of public apps is only supported on developer accounts and developer test accounts. Change your default account using ${uiCommandReference('hs accounts use')}, or link a new account with ${uiCommandReference('hs auth')}.`,
2530
- privateApp: `This project contains a private app. Local development of private apps is not supported in developer accounts. Change your default account using ${uiCommandReference('hs accounts use')}, or link a new account with ${uiCommandReference('hs auth')}.`,
2531
- },
2532
- validateAccountOption: {
2533
- invalidPublicAppAccount: `This project contains a public app. The "--account" flag must point to a developer test account to develop this project locally. Alternatively, change your default account to an App Developer Account using ${uiCommandReference('hs accounts use')} and run ${uiCommandReference('hs project dev')} to set up a new Developer Test Account.`,
2534
- invalidPrivateAppAccount: `This project contains a private app. The account specified with the "--account" flag points to a developer account, which do not support the local development of private apps. Update the "--account" flag to point to a standard, sandbox, or developer test account, or change your default account by running ${uiCommandReference('hs accounts use')}.`,
2535
- nonSandboxWarning: `Testing in a sandbox is strongly recommended. To switch the target account, select an option below or run ${uiCommandReference('hs accounts use')} before running the command again.`,
2536
- publicAppNonDeveloperTestAccountWarning: `Local development of public apps is only supported in ${chalk.bold('developer test accounts')}.`,
2537
- },
2538
- createNewProjectForLocalDev: {
2539
- projectMustExistExplanation: (projectName, accountId) => `The project ${projectName} does not exist in the target account ${uiAccountDescription(accountId)}. This command requires the project to exist in the target account.`,
2540
- publicAppProjectMustExistExplanation: (projectName, accountId) => `The project ${projectName} does not exist in ${uiAccountDescription(accountId)}, the app developer account associated with your target account. This command requires the project to exist in this app developer account.`,
2541
- createProject: (projectName, accountIdentifier) => `Create new project ${projectName} in ${accountIdentifier}?`,
2542
- choseNotToCreateProject: 'Exiting because this command requires the project to exist in the target account.',
2543
- creatingProject: (projectName, accountIdentifier) => `Creating project ${projectName} in ${accountIdentifier}`,
2544
- createdProject: (projectName, accountIdentifier) => `Created project ${projectName} in ${accountIdentifier}`,
2545
- failedToCreateProject: 'Failed to create project in the target account.',
2546
- },
2547
- createInitialBuildForNewProject: {
2548
- initialUploadMessage: 'HubSpot Local Dev Server Startup',
2549
- projectLockedError: 'Your project is locked. This may mean that another user is running the `hs project watch` command for this project. If this is you, unlock the project in Projects UI.',
2550
- genericError: `An error occurred while creating the initial build for this project. Run ${uiCommandReference('hs project upload')} to try again.`,
2551
- },
2552
- checkIfParentAccountIsAuthed: {
2553
- notAuthedError: (parentAccountId, accountIdentifier) => `To develop this project locally, run ${uiCommandReference(`hs auth --account=${parentAccountId}`)} to authenticate the App Developer Account ${parentAccountId} associated with ${accountIdentifier}.`,
2554
- },
2555
- selectAccountTypePrompt: {
2556
- message: '[--account] Choose the type of account to test on',
2557
- developerTestAccountOption: 'Test on a developer test account',
2558
- sandboxAccountOption: 'Test on a sandbox account',
2559
- sandboxAccountOptionDisabled: 'Disabled - requires access to sandbox accounts',
2560
- productionAccountOption: `<${chalk.red('!')} Test on this account ${chalk.red('!')}>`,
2592
+ project: {
2593
+ compareLocalProjectToDeployed: {
2594
+ noDeployedBuild: (projectName, accountIdentifier) => `Your project ${chalk.bold(projectName)} exists in ${accountIdentifier}, but has no deployed build. Projects must be successfully deployed to be developed locally. Address any build and deploy errors your project may have, then run ${uiCommandReference('hs project upload')} to upload and deploy your project.`,
2595
+ checking: 'Checking if your deployed build is up to date...',
2596
+ upToDate: 'Deployed build is up to date.',
2597
+ notUpToDate: `Your project contains undeployed local changes.`,
2598
+ notUpToDateExplanation: `Run ${uiCommandReference('hs project upload')} to upload these changes to HubSpot, then re-run ${uiCommandReference('hs project dev')} to continue local development.`,
2599
+ },
2600
+ createNewProjectForLocalDev: {
2601
+ projectMustExistExplanation: (projectName, accountId) => `The project ${projectName} does not exist in the target account ${uiAccountDescription(accountId)}. This command requires the project to exist in the target account.`,
2602
+ publicAppProjectMustExistExplanation: (projectName, accountId) => `The project ${projectName} does not exist in ${uiAccountDescription(accountId)}, the app developer account associated with your target account. This command requires the project to exist in this app developer account.`,
2603
+ createProject: (projectName, accountIdentifier) => `Create new project ${projectName} in ${accountIdentifier}?`,
2604
+ choseNotToCreateProject: 'Exiting because this command requires the project to exist in the target account.',
2605
+ creatingProject: (projectName, accountIdentifier) => `Creating project ${projectName} in ${accountIdentifier}`,
2606
+ createdProject: (projectName, accountIdentifier) => `Created project ${projectName} in ${accountIdentifier}`,
2607
+ failedToCreateProject: 'Failed to create project in the target account.',
2608
+ },
2609
+ createInitialBuildForNewProject: {
2610
+ initialUploadMessage: 'HubSpot Local Dev Server Startup',
2611
+ projectLockedError: 'Your project is locked. This may mean that another user is running the `hs project watch` command for this project. If this is you, unlock the project in Projects UI.',
2612
+ genericError: `An error occurred while creating the initial build for this project. Run ${uiCommandReference('hs project upload')} to try again.`,
2613
+ },
2614
+ },
2615
+ account: {
2616
+ checkIfDefaultAccountIsSupported: {
2617
+ publicApp: `This project contains a public app. Local development of public apps is only supported on developer accounts and developer test accounts. Change your default account using ${uiCommandReference('hs accounts use')}, or link a new account with ${uiCommandReference('hs auth')}.`,
2618
+ privateApp: `This project contains a private app. Local development of private apps is not supported in developer accounts. Change your default account using ${uiCommandReference('hs accounts use')}, or link a new account with ${uiCommandReference('hs auth')}.`,
2619
+ },
2620
+ validateAccountOption: {
2621
+ invalidPublicAppAccount: `This project contains a public app. The "--account" flag must point to a developer test account to develop this project locally. Alternatively, change your default account to an App Developer Account using ${uiCommandReference('hs accounts use')} and run ${uiCommandReference('hs project dev')} to set up a new Developer Test Account.`,
2622
+ invalidPrivateAppAccount: `This project contains a private app. The account specified with the "--account" flag points to a developer account, which do not support the local development of private apps. Update the "--account" flag to point to a standard, sandbox, or developer test account, or change your default account by running ${uiCommandReference('hs accounts use')}.`,
2623
+ nonSandboxWarning: `Testing in a sandbox is strongly recommended. To switch the target account, select an option below or run ${uiCommandReference('hs accounts use')} before running the command again.`,
2624
+ publicAppNonDeveloperTestAccountWarning: `Local development of public apps is only supported in ${chalk.bold('developer test accounts')}.`,
2625
+ },
2626
+ checkIfParentAccountIsAuthed: {
2627
+ notAuthedError: (parentAccountId, accountIdentifier) => `To develop this project locally, run ${uiCommandReference(`hs auth --account=${parentAccountId}`)} to authenticate the App Developer Account ${parentAccountId} associated with ${accountIdentifier}.`,
2628
+ },
2629
+ selectAccountTypePrompt: {
2630
+ message: '[--testing-account] Choose the type of account to test on',
2631
+ developerTestAccountOption: 'Test on a developer test account (recommended)',
2632
+ sandboxAccountOption: 'Test on a sandbox account',
2633
+ sandboxAccountOptionDisabled: 'Disabled - requires access to sandbox accounts',
2634
+ productionAccountOption: (accountId) => `<${chalk.red('!')} Test on your project account: ${uiAccountDescription(accountId, false)} ${chalk.red('!')}>`,
2635
+ },
2636
+ confirmDefaultAccountIsTarget: {
2637
+ configError: `An error occurred while reading the default account from your config. Run ${uiCommandReference('hs auth')} to re-auth this account`,
2638
+ declineDefaultAccountExplanation: `To develop on a different account, run ${uiCommandReference('hs accounts use')} to change your default account, then re-run ${uiCommandReference('hs project dev')}.`,
2639
+ },
2561
2640
  },
2562
2641
  },
2563
2642
  middleware: {
@@ -2615,6 +2694,11 @@ export const lib = {
2615
2694
  add: {
2616
2695
  nothingAdded: 'No features added.',
2617
2696
  },
2697
+ updateHsMetaFilesWithAutoGeneratedFields: {
2698
+ header: 'Created the following components and features:',
2699
+ applicationLog: (componentType, uid, name) => ` - Created ${chalk.bold(componentType)} with uid ${chalk.bold(uid)} and name ${chalk.bold(name)}`,
2700
+ componentLog: (componentType, uid) => ` - Created ${chalk.bold(componentType)} feature with uid ${chalk.bold(uid)}`,
2701
+ },
2618
2702
  validateProjectConfig: {
2619
2703
  configNotFound: `Unable to locate a project configuration file. Try running again from a project directory, or run ${uiCommandReference('hs project create')} to create a new project.`,
2620
2704
  configMissingFields: 'The project configuration file is missing required fields.',
@@ -2673,6 +2757,16 @@ export const lib = {
2673
2757
  boxen: {
2674
2758
  failedToLoad: 'Failed to load boxen util.',
2675
2759
  },
2760
+ importData: {
2761
+ errors: {
2762
+ incorrectAccountType: (derivedAccountId) => `The account ${uiAccountDescription(derivedAccountId)} is not a standard account, developer test account, or app developer account.`,
2763
+ failedToImportData: 'Failed to import data into portal.',
2764
+ notDeveloperTestAccount: 'The account is not a developer test account.',
2765
+ noAccountConfig: (accountId) => `No account config found for ${uiAccountDescription(accountId)}`,
2766
+ },
2767
+ inProgress: (portalId, fileNames) => `Importing data into ${uiAccountDescription(portalId)} from [${fileNames.join(', ')}]`,
2768
+ viewImportLink: (baseUrl, accountId, importId) => `Data import currently processing. You can view the status of your import ${uiLink('here', `${baseUrl}/import/${accountId}/post/${importId}`)}`,
2769
+ },
2676
2770
  ui: {
2677
2771
  betaTag: chalk.bold('[BETA]'),
2678
2772
  betaWarning: {
@@ -2696,27 +2790,27 @@ export const lib = {
2696
2790
  },
2697
2791
  accountsListCommand: {
2698
2792
  command: 'hs accounts list',
2699
- message: (command) => `Run ${command} to see a list of configured HubSpot accounts`,
2793
+ message: (command) => `${command} - See a list of configured HubSpot accounts`,
2700
2794
  },
2701
2795
  accountsUseCommand: {
2702
2796
  command: 'hs accounts use',
2703
- message: (command) => `Run ${command} to set the Hubspot account that the CLI will target by default`,
2797
+ message: (command) => `${command} - Set the Hubspot account that the CLI will target by default`,
2704
2798
  },
2705
2799
  authCommand: {
2706
2800
  command: 'hs auth',
2707
- message: (command) => `Run ${command} to connect the CLI to additional HubSpot accounts`,
2801
+ message: (command) => `${command} - Connect the CLI to additional HubSpot accounts`,
2708
2802
  },
2709
2803
  feedbackCommand: {
2710
2804
  command: 'hs feedback',
2711
- message: (command) => `Run ${command} to report a bug or leave feedback`,
2805
+ message: (command) => `${command} - Report a bug or leave feedback`,
2712
2806
  },
2713
2807
  helpCommand: {
2714
2808
  command: 'hs help',
2715
- message: (command) => `Run ${command} to see a list of available commands`,
2809
+ message: (command) => `${command} - See a list of available commands`,
2716
2810
  },
2717
2811
  projectCreateCommand: {
2718
2812
  command: 'hs project create',
2719
- message: (command) => `Run ${command} to create a new project`,
2813
+ message: (command) => `${command} - Create a new project`,
2720
2814
  },
2721
2815
  projectDeployCommand: {
2722
2816
  command: 'hs project deploy',
@@ -2724,19 +2818,19 @@ export const lib = {
2724
2818
  },
2725
2819
  projectHelpCommand: {
2726
2820
  command: 'hs project --help',
2727
- message: (command) => `Run ${command} to learn more about available project commands`,
2821
+ message: (command) => `${command} - Learn more about available project commands`,
2728
2822
  },
2729
2823
  projectUploadCommand: {
2730
2824
  command: 'hs project upload',
2731
- message: (command) => `Run ${command} to upload your project to HubSpot and trigger builds`,
2825
+ message: (command) => `${command} - Upload your project to HubSpot and trigger builds`,
2732
2826
  },
2733
2827
  projectDevCommand: {
2734
2828
  command: 'hs project dev',
2735
- message: (command) => `Run ${command} from within your project directory to set up your test environment and start local development`,
2829
+ message: (command) => `${command} - Set up a test environment and start local development`,
2736
2830
  },
2737
2831
  projectInstallDepsCommand: {
2738
2832
  command: 'hs project install-deps',
2739
- message: (command) => `Run ${command} to install dependencies for your project components`,
2833
+ message: (command) => `${command} - Install all project dependencies`,
2740
2834
  },
2741
2835
  sampleProjects: {
2742
2836
  linkText: "HubSpot's sample projects",
@@ -2832,6 +2926,19 @@ export const lib = {
2832
2926
  },
2833
2927
  },
2834
2928
  prompts: {
2929
+ importDataFilePathPrompt: {
2930
+ promptContext: `To view the JSON schema for data imports, visit ${uiLink('the docs', 'https://developers.hubspot.com/docs/guides/api/crm/imports')}`,
2931
+ promptMessage: '[--file-path] Select the JSON file that will be used to import your data.',
2932
+ },
2933
+ confirmImportDataPrompt: {
2934
+ message: (dataFileNames, cliAccount) => `You are importing [${dataFileNames.join(', ')}] into ${uiAccountDescription(getAccountIdentifier(cliAccount))}. Continue?`,
2935
+ },
2936
+ importDataTestAccountSelectPrompt: {
2937
+ errors: {
2938
+ noAccountsFound: 'No accounts found.',
2939
+ noChildTestAccountsFound: (parentAccountId) => `No developer test accounts found under the parent account ${uiAccountDescription(parentAccountId)}`,
2940
+ },
2941
+ },
2835
2942
  projectDevTargetAccountPrompt: {
2836
2943
  createNewSandboxOption: '<Test on a new development sandbox>',
2837
2944
  createNewDeveloperTestAccountOption: '<Test on a new developer test account>',
@@ -3271,12 +3378,21 @@ export const lib = {
3271
3378
  sourceContentsMoved: (newLocation) => `The contents of your old source directory have been moved to ${newLocation}, move any required files to the new source directory.`,
3272
3379
  projectMigrationWarningTitle: '⚠️ Important: Migrating to platformVersion 2025.2 is irreversible ⚠️',
3273
3380
  projectMigrationWarning: uiBetaTag(`Running the ${uiCommandReference('hs project migrate')} command will permanently upgrade your project to platformVersion 2025.2. This action cannot be undone. To ensure you have access to your original files, they will be copied to a new directory (archive) for safekeeping.\n\nThis command will guide you through the process, prompting you to enter the required fields and will download the new project source code into your project source directory.`, false),
3381
+ success: {
3382
+ downloadedProject: (projectName, projectDest) => `Saved ${projectName} to ${projectDest}`,
3383
+ themesMigrationSuccess: (platformVersion) => `Successfully migrated project to platformVersion ${chalk.bold(platformVersion)}. Upload your project using ${uiCommandReference('hs project upload')}`,
3384
+ },
3274
3385
  errors: {
3275
3386
  project: {
3276
3387
  invalidConfig: 'The project configuration file is invalid. Please check the config file and try again.',
3277
3388
  doesNotExist: (account) => `Project does not exist in ${uiAccountDescription(account)}. Migrations are only supported for existing projects.`,
3389
+ themesAlreadyMigrated: 'This project has already been migrated to the latest platform version.',
3390
+ noProjectForThemesMigration: 'Theme migrations are only supported for projects. Please try again from a project directory.',
3391
+ themesAndAppsNotAllowed: 'Support for migrating projects containing both themes and apps to the latest platform version is coming soon. Try again later.',
3278
3392
  multipleApps: 'Multiple apps found in project, this is not allowed in 2025.2',
3279
3393
  alreadyExists: (projectName) => `A project with name ${projectName} already exists. Please choose another name.`,
3394
+ failedToMigrateThemes: 'Failed to migrate project themes. Please verify that you have propoerly formatted themes before trying again.',
3395
+ failedToUpdateProjectConfig: 'Failed to update project config file. Please update the platformVersion in the project config file manually.',
3280
3396
  },
3281
3397
  unmigratableReasons: {
3282
3398
  upToDate: 'App is already up to date',
@@ -3295,6 +3411,7 @@ export const lib = {
3295
3411
  notUngatedForUnifiedApps: (account) => `Your account ${account} isn't enrolled in the required product beta to access this command.`,
3296
3412
  },
3297
3413
  prompt: {
3414
+ themesMigration: (count) => `Identified ${count} theme${count === 1 ? '' : 's'} to migrate. This will migrate all themes in the project.`,
3298
3415
  chooseApp: 'Which app would you like to migrate?',
3299
3416
  inputName: '[--name] What would you like to name the project?',
3300
3417
  inputDest: '[--dest] Where would you like to save the project?',
@@ -3302,6 +3419,7 @@ export const lib = {
3302
3419
  proceed: 'Would you like to proceed?',
3303
3420
  },
3304
3421
  spinners: {
3422
+ checkingForMigratableComponents: 'Checking project for migratable components...',
3305
3423
  beginningMigration: 'Beginning migration',
3306
3424
  unableToStartMigration: 'Unable to begin migration',
3307
3425
  finishingMigration: 'Wrapping up migration',
package/lang/en.lyaml CHANGED
@@ -231,6 +231,27 @@ en:
231
231
  describe: "Name of new asset"
232
232
  type:
233
233
  describe: "Type of asset"
234
+ flags:
235
+ templateType:
236
+ describe: "Template type for template creation (page-template, email-template, partial, global-partial, blog-listing-template, blog-post-template, search-template, section) - only used when type is template"
237
+ moduleLabel:
238
+ describe: "Label for module creation - only used when type is module"
239
+ reactType:
240
+ describe: "Whether to create a React module - only used when type is module"
241
+ contentTypes:
242
+ describe: "Content types where the module can be used (comma-separated list: ANY, LANDING_PAGE, SITE_PAGE, BLOG_POST, BLOG_LISTING, EMAIL, KNOWLEDGE_BASE, QUOTE_TEMPLATE, CUSTOMER_PORTAL, WEB_INTERACTIVE, SUBSCRIPTION, MEMBERSHIP) - only used when type is module"
243
+ global:
244
+ describe: "Whether to create a global module - only used when type is module"
245
+ availableForNewContent:
246
+ describe: "Whether the template is available for new content"
247
+ functionsFolder:
248
+ describe: "Folder to create functions in - only used when type is function"
249
+ filename:
250
+ describe: "Filename for the function - only used when type is function"
251
+ endpointMethod:
252
+ describe: "HTTP method for the function endpoint - only used when type is function"
253
+ endpointPath:
254
+ describe: "API endpoint path for the function - only used when type is function"
234
255
  subcommands:
235
256
  apiSample:
236
257
  folderOverwritePrompt: "The folder with name \"{{ folderName }}\" already exists. Overwrite?"
@@ -962,8 +983,8 @@ en:
962
983
  uiExtensionLabel: "[UI Extension]"
963
984
  missingComponents: "Couldn't find the following components in the deployed build for this project: {{#bold}}'{{ missingComponents }}'{{/bold}}. This may cause issues in local development."
964
985
  defaultWarning: "{{#bold}}Changing project configuration requires a new project build.{{/bold}}"
965
- defaultPublicAppWarning: "{{#bold}}Changing project configuration requires a new project build.{{/bold}}\n\nThis will affect your public app's {{#bold}}{{ installCount }} existing {{ installText }}{{/bold}}. If your app has users in production, we strongly recommend creating a copy of this app to test your changes before proceding."
966
- defaultMarketplaceAppWarning: "{{#bold}}Changing project configuration requires creating a new project build.{{/bold}}\n\nYour marketplace app is currently installed in {{#bold}}{{ installCount }} {{ accountText }}{{/bold}}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceding."
986
+ defaultPublicAppWarning: "{{#bold}}Changing project configuration requires a new project build.{{/bold}}\n\nThis will affect your public app's {{#bold}}{{ installCount }} existing {{ installText }}{{/bold}}. If your app has users in production, we strongly recommend creating a copy of this app to test your changes before proceeding."
987
+ defaultMarketplaceAppWarning: "{{#bold}}Changing project configuration requires creating a new project build.{{/bold}}\n\nYour marketplace app is currently installed in {{#bold}}{{ installCount }} {{ accountText }}{{/bold}}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceeding."
967
988
  header: "{{ warning }} To reflect these changes and continue testing:"
968
989
  stopDev: " * Stop {{ command }}"
969
990
  runUpload: " * Run {{ command }}"
@@ -1060,43 +1081,43 @@ en:
1060
1081
  message: "Use the {{ command }} option with any command to override the default account"
1061
1082
  accountsListCommand:
1062
1083
  command: "hs account list"
1063
- message: "Run {{ command }} to see a list of configured HubSpot accounts"
1084
+ message: "{{ command }} - See a list of configured HubSpot accounts"
1064
1085
  accountsUseCommand:
1065
1086
  command: "hs account use"
1066
- message: "Run {{ command }} to set the Hubspot account that the CLI will target by default"
1087
+ message: "{{ command }} - Set the Hubspot account that the CLI will target by default"
1067
1088
  accountAuthCommand:
1068
1089
  command: "hs account auth"
1069
- message: "Run {{ command }} to connect the CLI to additional HubSpot accounts"
1090
+ message: "{{ command }} - Connect the CLI to additional HubSpot accounts"
1070
1091
  authCommand:
1071
1092
  command: "hs auth"
1072
- message: "Run {{ command }} to connect the CLI to additional HubSpot accounts"
1093
+ message: "{{ command }} - Connect the CLI to additional HubSpot accounts"
1073
1094
  feedbackCommand:
1074
1095
  command: "hs feedback"
1075
- message: "Run {{ command }} to report a bug or leave feedback"
1096
+ message: "{{ command }} - Report bugs or leave feedback"
1076
1097
  getStartedCommand:
1077
1098
  command: "hs get-started"
1078
- message: "Run {{ command }} to get started with HubSpot development"
1099
+ message: "{{ command }} - Get started with HubSpot development"
1079
1100
  helpCommand:
1080
1101
  command: "hs help"
1081
- message: "Run {{ command }} to see a list of available commands"
1102
+ message: "{{ command }} - See a list of available commands"
1082
1103
  projectCreateCommand:
1083
1104
  command: "hs project create"
1084
- message: "Run {{ command }} to create a new project"
1105
+ message: "{{ command }} - create a new project"
1085
1106
  projectDeployCommand:
1086
1107
  command: "hs project deploy"
1087
1108
  message: "Ready to take your project live? Run {{ command }}"
1088
1109
  projectHelpCommand:
1089
1110
  command: "hs project --help"
1090
- message: "Run {{ command }} to learn more about available project commands"
1111
+ message: "{{ command }} - Learn more about available project commands"
1091
1112
  projectUploadCommand:
1092
1113
  command: "hs project upload"
1093
- message: "Run {{ command }} to upload your project to your HubSpot account"
1114
+ message: "{{ command }} - Upload the project to your HubSpot account"
1094
1115
  projectDevCommand:
1095
1116
  command: "hs project dev"
1096
- message: "Run {{ command }} from within your project directory to set up your test environment and start local development"
1117
+ message: "{{ command }} - Set up a test environment and start local development"
1097
1118
  projectInstallDepsCommand:
1098
1119
  command: "hs project install-deps"
1099
- message: "Run {{ command }} to install dependencies for your project components"
1120
+ message: "{{ command }} - Install all project dependencies"
1100
1121
  projectCommandTip:
1101
1122
  message: "Tip: All project commands must be run from within a project directory"
1102
1123
  sampleProjects:
@@ -0,0 +1 @@
1
+ export {};