@hubspot/cli 7.8.12-experimental.1 → 7.9.0-beta.1
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/commands/__tests__/cms.test.js +44 -1
- package/commands/__tests__/customObject.test.js +22 -1
- package/commands/__tests__/project.test.js +2 -0
- package/commands/account/auth.js +1 -0
- package/commands/auth.js +1 -0
- package/commands/{__tests__/remove.test.js → cms/__tests__/delete.test.js} +8 -8
- package/commands/{__tests__ → cms/__tests__}/fetch.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/function.test.js +7 -3
- package/commands/{__tests__ → cms/__tests__}/lint.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/list.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/mv.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/theme.test.js +9 -2
- package/commands/cms/app/create.d.ts +9 -0
- package/commands/cms/app/create.js +82 -0
- package/commands/cms/app.d.ts +3 -0
- package/commands/cms/app.js +17 -0
- package/commands/cms/delete.d.ts +6 -0
- package/commands/cms/delete.js +43 -0
- package/commands/cms/fetch.d.ts +12 -0
- package/commands/cms/fetch.js +79 -0
- package/commands/{__tests__ → cms/function/__tests__}/logs.test.js +4 -5
- package/commands/cms/function/create.d.ts +12 -0
- package/commands/cms/function/create.js +84 -0
- package/commands/cms/function/deploy.d.ts +6 -0
- package/commands/cms/function/deploy.js +89 -0
- package/commands/cms/function/list.d.ts +6 -0
- package/commands/cms/function/list.js +60 -0
- package/commands/cms/function/logs.d.ts +10 -0
- package/commands/cms/function/logs.js +135 -0
- package/commands/cms/function/server.d.ts +10 -0
- package/commands/cms/function/server.js +69 -0
- package/commands/cms/function.d.ts +3 -0
- package/commands/cms/function.js +27 -0
- package/commands/cms/lint.d.ts +6 -0
- package/commands/cms/lint.js +83 -0
- package/commands/cms/list.d.ts +6 -0
- package/commands/cms/list.js +96 -0
- package/commands/cms/module/create.d.ts +11 -0
- package/commands/cms/module/create.js +84 -0
- package/commands/cms/module/marketplace-validate.d.ts +6 -0
- package/commands/cms/module/marketplace-validate.js +45 -0
- package/commands/cms/module.d.ts +3 -0
- package/commands/cms/module.js +17 -0
- package/commands/cms/mv.d.ts +7 -0
- package/commands/cms/mv.js +60 -0
- package/commands/cms/template/create.d.ts +9 -0
- package/commands/cms/template/create.js +72 -0
- package/commands/cms/template.d.ts +3 -0
- package/commands/cms/template.js +17 -0
- package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.js +2 -2
- package/commands/{theme → cms/theme}/__tests__/preview.test.js +2 -2
- package/commands/cms/theme/create.d.ts +6 -0
- package/commands/cms/theme/create.js +58 -0
- package/commands/cms/theme/generate-selectors.d.ts +6 -0
- package/commands/cms/theme/generate-selectors.js +171 -0
- package/commands/cms/theme/marketplace-validate.d.ts +6 -0
- package/commands/cms/theme/marketplace-validate.js +46 -0
- package/commands/cms/theme/preview.d.ts +12 -0
- package/commands/cms/theme/preview.js +224 -0
- package/commands/cms/theme.d.ts +3 -0
- package/commands/cms/theme.js +25 -0
- package/commands/cms/upload.d.ts +12 -0
- package/commands/cms/upload.js +212 -0
- package/commands/cms/watch.d.ts +14 -0
- package/commands/cms/watch.js +138 -0
- package/commands/cms/webpack/create.d.ts +6 -0
- package/commands/cms/webpack/create.js +58 -0
- package/commands/cms/webpack.d.ts +3 -0
- package/commands/cms/webpack.js +17 -0
- package/commands/cms.js +26 -0
- package/commands/create.js +4 -2
- package/commands/customObject/{schema/__tests__/create.test.js → __tests__/createSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/delete.test.js → __tests__/deleteSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/fetch-all.test.js → __tests__/fetch-all-schemas.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/fetch.test.js → __tests__/fetchSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/list.test.js → __tests__/listSchemas.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/update.test.js → __tests__/updateSchema.test.js} +5 -5
- package/commands/customObject/createSchema.d.ts +6 -0
- package/commands/customObject/createSchema.js +56 -0
- package/commands/customObject/deleteSchema.d.ts +7 -0
- package/commands/customObject/deleteSchema.js +69 -0
- package/commands/customObject/fetchAllSchemas.d.ts +6 -0
- package/commands/customObject/fetchAllSchemas.js +57 -0
- package/commands/customObject/fetchSchema.d.ts +7 -0
- package/commands/customObject/fetchSchema.js +67 -0
- package/commands/customObject/listSchemas.d.ts +4 -0
- package/commands/customObject/listSchemas.js +35 -0
- package/commands/customObject/schema/create.d.ts +4 -6
- package/commands/customObject/schema/create.js +13 -36
- package/commands/customObject/schema/delete.d.ts +4 -7
- package/commands/customObject/schema/delete.js +15 -50
- package/commands/customObject/schema/fetch-all.d.ts +4 -6
- package/commands/customObject/schema/fetch-all.js +14 -41
- package/commands/customObject/schema/fetch.d.ts +4 -7
- package/commands/customObject/schema/fetch.js +14 -49
- package/commands/customObject/schema/list.d.ts +4 -4
- package/commands/customObject/schema/list.js +10 -19
- package/commands/customObject/schema/update.d.ts +4 -7
- package/commands/customObject/schema/update.js +15 -50
- package/commands/customObject/schema.js +4 -2
- package/commands/customObject/updateSchema.d.ts +7 -0
- package/commands/customObject/updateSchema.js +71 -0
- package/commands/customObject.js +16 -1
- package/commands/feedback.js +1 -1
- package/commands/fetch.d.ts +4 -12
- package/commands/fetch.js +19 -46
- package/commands/function/deploy.d.ts +4 -6
- package/commands/function/deploy.js +14 -71
- package/commands/function/list.d.ts +4 -6
- package/commands/function/list.js +14 -40
- package/commands/function/server.d.ts +4 -10
- package/commands/function/server.js +22 -29
- package/commands/function.d.ts +2 -4
- package/commands/function.js +25 -14
- package/commands/lint.d.ts +4 -6
- package/commands/lint.js +13 -65
- package/commands/list.d.ts +4 -6
- package/commands/list.js +13 -74
- package/commands/logs.d.ts +4 -10
- package/commands/logs.js +24 -87
- package/commands/module/marketplace-validate.d.ts +4 -6
- package/commands/module/marketplace-validate.js +15 -27
- package/commands/module.d.ts +2 -2
- package/commands/module.js +17 -15
- package/commands/mv.d.ts +4 -7
- package/commands/mv.js +13 -39
- package/commands/project/__tests__/add.test.js +12 -12
- package/commands/project/__tests__/devUnifiedFlow.test.js +32 -0
- package/commands/project/__tests__/list.test.js +31 -0
- package/commands/project/__tests__/migrate.test.js +1 -0
- package/commands/project/add.d.ts +2 -2
- package/commands/project/add.js +3 -2
- package/commands/project/create.js +1 -1
- package/commands/project/dev/deprecatedFlow.js +2 -2
- package/commands/project/dev/index.js +5 -5
- package/commands/project/dev/unifiedFlow.js +8 -3
- package/commands/project/download.js +5 -2
- package/commands/project/installDeps.d.ts +2 -2
- package/commands/project/installDeps.js +1 -0
- package/commands/project/list.d.ts +4 -0
- package/commands/project/list.js +62 -0
- package/commands/project/migrate.js +5 -2
- package/commands/project.js +2 -0
- package/commands/remove.d.ts +4 -6
- package/commands/remove.js +12 -24
- package/commands/testAccount/create.js +2 -2
- package/commands/testAccount/delete.js +1 -1
- package/commands/theme/generate-selectors.d.ts +4 -6
- package/commands/theme/generate-selectors.js +14 -152
- package/commands/theme/marketplace-validate.d.ts +4 -6
- package/commands/theme/marketplace-validate.js +14 -25
- package/commands/theme/preview.d.ts +4 -12
- package/commands/theme/preview.js +18 -180
- package/commands/theme.d.ts +2 -2
- package/commands/theme.js +19 -13
- package/commands/upload.d.ts +4 -12
- package/commands/upload.js +19 -169
- package/commands/watch.d.ts +4 -14
- package/commands/watch.js +23 -88
- package/lang/en.d.ts +561 -425
- package/lang/en.js +563 -427
- package/lang/en.lyaml +2 -2
- package/lib/__tests__/buildAccount.test.js +2 -2
- package/lib/__tests__/http.test.js +40 -0
- package/lib/buildAccount.d.ts +2 -2
- package/lib/buildAccount.js +7 -7
- package/lib/configMigrate.js +88 -9
- package/lib/constants.d.ts +9 -0
- package/lib/constants.js +9 -0
- package/lib/generateSelectors.js +1 -1
- package/lib/http.d.ts +1 -0
- package/lib/http.js +26 -0
- package/lib/middleware/autoUpdateMiddleware.d.ts +2 -1
- package/lib/middleware/autoUpdateMiddleware.js +12 -2
- package/lib/middleware/commandTargetingUtils.d.ts +1 -1
- package/lib/middleware/commandTargetingUtils.js +16 -20
- package/lib/projects/__tests__/AppDevModeInterface.test.js +95 -109
- package/lib/projects/__tests__/DevServerManager.test.d.ts +1 -0
- package/lib/projects/__tests__/DevServerManager.test.js +183 -0
- package/lib/projects/__tests__/LocalDevProcess.test.js +6 -5
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +6 -6
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +1 -0
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +161 -0
- package/lib/projects/__tests__/deploy.test.js +9 -9
- package/lib/projects/__tests__/upload.test.js +2 -2
- package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
- package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +35 -35
- package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
- package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
- package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
- package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +2 -2
- package/lib/projects/create/index.js +2 -2
- package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
- package/lib/projects/create/{v3.js → v2.js} +3 -3
- package/lib/projects/deploy.d.ts +1 -1
- package/lib/projects/deploy.js +2 -2
- package/lib/projects/localDev/AppDevModeInterface.d.ts +10 -3
- package/lib/projects/localDev/AppDevModeInterface.js +132 -105
- package/lib/projects/localDev/DevServerManager.d.ts +10 -29
- package/lib/projects/localDev/DevServerManager.js +20 -76
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
- package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +6 -6
- package/lib/projects/localDev/LocalDevProcess.js +3 -2
- package/lib/projects/localDev/LocalDevState.d.ts +3 -0
- package/lib/projects/localDev/LocalDevState.js +9 -0
- package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +4 -0
- package/lib/projects/localDev/LocalDevWebsocketServer.js +39 -6
- package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +13 -0
- package/lib/projects/localDev/UIExtensionsDevModeInterface.js +37 -0
- package/lib/projects/localDev/helpers/account.d.ts +1 -1
- package/lib/projects/localDev/helpers/account.js +2 -2
- package/lib/projects/localDev/helpers/process.d.ts +1 -0
- package/lib/projects/localDev/helpers/process.js +15 -0
- package/lib/projects/localDev/helpers/project.js +2 -3
- package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +3 -0
- package/lib/projects/localDev/localDevWebsocketServerUtils.js +9 -0
- package/lib/projects/urls.d.ts +0 -1
- package/lib/projects/urls.js +0 -3
- package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
- package/lib/prompts/installAppPrompt.d.ts +1 -6
- package/lib/prompts/installAppPrompt.js +1 -6
- package/lib/prompts/projectAddPrompt.d.ts +2 -2
- package/lib/prompts/projectAddPrompt.js +1 -1
- package/lib/theme/__tests__/migrate.test.js +4 -4
- package/lib/ui/index.d.ts +2 -0
- package/lib/ui/index.js +8 -0
- package/lib/ui/uiMessages.d.ts +5 -0
- package/lib/ui/uiMessages.js +5 -0
- package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +2 -2
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +1 -1
- package/package.json +6 -5
- package/types/Cms.d.ts +6 -6
- package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
- package/lib/projects/localDev/DevServerManagerV2.js +0 -81
- /package/commands/{customObject/schema → cms}/__tests__/delete.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/fetch.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/function.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/lint.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/list.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/mv.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/theme.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/function/__tests__}/logs.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.js +0 -0
- /package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/preview.test.d.ts +0 -0
- /package/commands/{__tests__/remove.test.d.ts → customObject/__tests__/createSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/create.test.d.ts → __tests__/deleteSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/fetch-all.test.d.ts → __tests__/fetch-all-schemas.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/fetch.test.d.ts → __tests__/fetchSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/list.test.d.ts → __tests__/listSchemas.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/update.test.d.ts → __tests__/updateSchema.test.d.ts} +0 -0
- /package/{lib/projects/add/__tests__/v3AddComponent.test.d.ts → commands/project/__tests__/list.test.d.ts} +0 -0
- /package/lib/{projects/create/__tests__/v3.test.d.ts → __tests__/http.test.d.ts} +0 -0
- /package/{commands/create → lib/cmsAssets}/api-sample.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/api-sample.js +0 -0
- /package/{commands/create → lib/cmsAssets}/app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/function.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/function.js +0 -0
- /package/{commands/create → lib/cmsAssets}/index.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/index.js +0 -0
- /package/{commands/create → lib/cmsAssets}/module.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/module.js +0 -0
- /package/{commands/create → lib/cmsAssets}/react-app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/react-app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/template.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/template.js +0 -0
- /package/{commands/create → lib/cmsAssets}/vue-app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/vue-app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/webpack-serverless.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/webpack-serverless.js +0 -0
- /package/{commands/create → lib/cmsAssets}/website-theme.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/website-theme.js +0 -0
- /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
package/lang/en.js
CHANGED
|
@@ -4,7 +4,7 @@ import { PLATFORM_VERSIONS } from '@hubspot/local-dev-lib/constants/projects';
|
|
|
4
4
|
import { PERSONAL_ACCESS_KEY_AUTH_METHOD } from '@hubspot/local-dev-lib/constants/auth';
|
|
5
5
|
import { ARCHIVED_HUBSPOT_CONFIG_YAML_FILE_NAME, GLOBAL_CONFIG_PATH, DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME, } from '@hubspot/local-dev-lib/constants/config';
|
|
6
6
|
import { uiAccountDescription, uiBetaTag, uiCommandReference, uiLink, UI_COLORS, uiAuthCommandReference, } from '../lib/ui/index.js';
|
|
7
|
-
import { getProjectDetailUrl, getProjectSettingsUrl, getLocalDevUiUrl,
|
|
7
|
+
import { getProjectDetailUrl, getProjectSettingsUrl, getLocalDevUiUrl, } from '../lib/projects/urls.js';
|
|
8
8
|
import { getProductUpdatesUrl } from '../lib/links.js';
|
|
9
9
|
import { APP_DISTRIBUTION_TYPES, APP_AUTH_TYPES, PROJECT_CONFIG_FILE, PROJECT_WITH_APP, LEGACY_PUBLIC_APP_FILE, } from '../lib/constants.js';
|
|
10
10
|
import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
|
|
@@ -329,8 +329,299 @@ export const commands = {
|
|
|
329
329
|
},
|
|
330
330
|
},
|
|
331
331
|
cms: {
|
|
332
|
-
describe: 'Commands for
|
|
332
|
+
describe: 'Commands for managing CMS assets.',
|
|
333
333
|
subcommands: {
|
|
334
|
+
template: {
|
|
335
|
+
describe: 'Commands for managing templates.',
|
|
336
|
+
subcommands: {
|
|
337
|
+
create: {
|
|
338
|
+
describe: 'Create a new CMS template.',
|
|
339
|
+
errors: {
|
|
340
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
341
|
+
},
|
|
342
|
+
positionals: {
|
|
343
|
+
name: 'Name of the new template.',
|
|
344
|
+
dest: 'Destination folder for the new template.',
|
|
345
|
+
},
|
|
346
|
+
options: {
|
|
347
|
+
templateType: 'Template type for template creation.',
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
webpack: {
|
|
353
|
+
describe: 'Commands for managing webpack.',
|
|
354
|
+
subcommands: {
|
|
355
|
+
create: {
|
|
356
|
+
describe: 'Create a new webpack bundle.',
|
|
357
|
+
errors: {
|
|
358
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
359
|
+
},
|
|
360
|
+
positionals: {
|
|
361
|
+
dest: 'Destination folder for the new webpack bundle.',
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
theme: {
|
|
367
|
+
describe: 'Commands for managing themes.',
|
|
368
|
+
subcommands: {
|
|
369
|
+
create: {
|
|
370
|
+
describe: 'Create a new theme.',
|
|
371
|
+
errors: {
|
|
372
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
373
|
+
},
|
|
374
|
+
positionals: {
|
|
375
|
+
dest: 'Destination folder for the new theme.',
|
|
376
|
+
},
|
|
377
|
+
},
|
|
378
|
+
generateSelectors: {
|
|
379
|
+
describe: 'Automatically generates an editor-preview.json file for the given theme. The selectors this command generates are not perfect, so please edit editor-preview.json after running.',
|
|
380
|
+
errors: {
|
|
381
|
+
invalidPath: (themePath) => `Could not find directory "${themePath}"`,
|
|
382
|
+
fieldsNotFound: "Unable to find theme's fields.json.",
|
|
383
|
+
noSelectorsFound: 'No selectors found.',
|
|
384
|
+
},
|
|
385
|
+
success: (themePath, selectorsPath) => `Selectors generated for ${themePath}, please double check the selectors generated at ${selectorsPath} before uploading the theme.`,
|
|
386
|
+
positionals: {
|
|
387
|
+
path: "The path of the theme you'd like to generate an editor-preview.json for.",
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
marketplaceValidate: {
|
|
391
|
+
describe: 'Validate a theme for the marketplace.',
|
|
392
|
+
errors: {
|
|
393
|
+
invalidPath: (path) => `The path "${path}" is not a path to a folder in the Design Manager`,
|
|
394
|
+
},
|
|
395
|
+
logs: {
|
|
396
|
+
validatingTheme: (path) => `Validating theme "${path}" \n`,
|
|
397
|
+
},
|
|
398
|
+
results: {
|
|
399
|
+
required: 'Required validation results:',
|
|
400
|
+
recommended: 'Recommended validation results:',
|
|
401
|
+
warnings: {
|
|
402
|
+
file: (file) => `File: ${file}`,
|
|
403
|
+
lineNumber: (line) => `Line number: ${line}`,
|
|
404
|
+
},
|
|
405
|
+
noErrors: 'No errors',
|
|
406
|
+
},
|
|
407
|
+
positionals: {
|
|
408
|
+
path: {
|
|
409
|
+
describe: 'Path to the theme within the Design Manager.',
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
},
|
|
413
|
+
preview: {
|
|
414
|
+
describe: 'Upload and watch a theme directory on your computer for changes and start a local development server to preview theme changes on a site.',
|
|
415
|
+
errors: {
|
|
416
|
+
invalidPath: (path) => `The path "${path}" is not a path to a directory`,
|
|
417
|
+
noThemeComponents: 'Your project has no theme components available to preview.',
|
|
418
|
+
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
419
|
+
},
|
|
420
|
+
positionals: {
|
|
421
|
+
src: 'Path to the local directory your theme is in, relative to your current working directory',
|
|
422
|
+
dest: 'Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.',
|
|
423
|
+
},
|
|
424
|
+
options: {
|
|
425
|
+
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
426
|
+
noSsl: 'Disable HTTPS',
|
|
427
|
+
port: 'The port on which to start the local server',
|
|
428
|
+
},
|
|
429
|
+
initialUploadProgressBar: {
|
|
430
|
+
start: 'Starting...',
|
|
431
|
+
uploading: 'Uploading...',
|
|
432
|
+
finish: 'Complete!',
|
|
433
|
+
},
|
|
434
|
+
logs: {
|
|
435
|
+
processExited: 'Stopping dev server...',
|
|
436
|
+
},
|
|
437
|
+
},
|
|
438
|
+
},
|
|
439
|
+
},
|
|
440
|
+
app: {
|
|
441
|
+
describe: 'Commands for managing CMS apps.',
|
|
442
|
+
subcommands: {
|
|
443
|
+
create: {
|
|
444
|
+
describe: 'Create a new CMS app.',
|
|
445
|
+
errors: {
|
|
446
|
+
unsupportedAssetType: (assetType, supportedAssetTypes) => `The asset type ${assetType} is not supported. Supported asset types are ${supportedAssetTypes}.`,
|
|
447
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
448
|
+
},
|
|
449
|
+
positionals: {
|
|
450
|
+
type: 'Type of the new app.',
|
|
451
|
+
name: 'Name of the new app.',
|
|
452
|
+
dest: 'Destination folder for the new app.',
|
|
453
|
+
},
|
|
454
|
+
},
|
|
455
|
+
},
|
|
456
|
+
},
|
|
457
|
+
list: {
|
|
458
|
+
describe: 'List remote contents of a directory in the HubSpot CMS.',
|
|
459
|
+
gettingPathContents: (path) => `Getting contents of ${path}.`,
|
|
460
|
+
noFilesFoundAtPath: (path) => `No files found in ${path}.`,
|
|
461
|
+
positionals: {
|
|
462
|
+
path: {
|
|
463
|
+
describe: 'Remote directory to list contents',
|
|
464
|
+
},
|
|
465
|
+
},
|
|
466
|
+
},
|
|
467
|
+
module: {
|
|
468
|
+
describe: 'Commands for working with modules, including marketplace validation with the marketplace-validate subcommand.',
|
|
469
|
+
subcommands: {
|
|
470
|
+
create: {
|
|
471
|
+
describe: 'Create a new CMS module.',
|
|
472
|
+
errors: {
|
|
473
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
474
|
+
},
|
|
475
|
+
positionals: {
|
|
476
|
+
name: 'Name of the new module.',
|
|
477
|
+
dest: 'Destination folder for the new module.',
|
|
478
|
+
},
|
|
479
|
+
options: {
|
|
480
|
+
moduleLabel: 'Label for the new module.',
|
|
481
|
+
reactType: 'Whether to create a React module.',
|
|
482
|
+
contentTypes: (contentTypes) => `Content types where the module can be used (${contentTypes.join(', ')}).`,
|
|
483
|
+
global: 'Whether to create a global module.',
|
|
484
|
+
availableForNewContent: 'Whether to create a module available for new content.',
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
marketplaceValidate: {
|
|
488
|
+
describe: 'Validate a module for the marketplace. Make sure to include the suffix .module in the path to the module within the Design Manager.',
|
|
489
|
+
errors: {
|
|
490
|
+
invalidPath: (path) => `The path "${path}" is not a path to a module within the Design Manager.`,
|
|
491
|
+
},
|
|
492
|
+
logs: {
|
|
493
|
+
validatingModule: (path) => `Validating module "${path}" \n`,
|
|
494
|
+
},
|
|
495
|
+
results: {
|
|
496
|
+
required: 'Required validation results:',
|
|
497
|
+
recommended: 'Recommended validation results:',
|
|
498
|
+
warnings: {
|
|
499
|
+
file: (file) => `File: ${file}`,
|
|
500
|
+
lineNumber: (line) => `Line number: ${line}`,
|
|
501
|
+
},
|
|
502
|
+
noErrors: 'No errors',
|
|
503
|
+
},
|
|
504
|
+
positionals: {
|
|
505
|
+
src: 'Path to the module within the Design Manager.',
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
upload: {
|
|
511
|
+
describe: 'Upload a folder or file from your computer to the HubSpot CMS.',
|
|
512
|
+
errors: {
|
|
513
|
+
destinationRequired: 'A destination path needs to be passed',
|
|
514
|
+
fileIgnored: (path) => `The file "${path}" is being ignored via an .hsignore rule`,
|
|
515
|
+
invalidPath: (path) => `The path "${path}" is not a path to a file or folder`,
|
|
516
|
+
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
517
|
+
someFilesFailed: (dest) => `One or more files failed to upload to "${dest}" in the Design Manager`,
|
|
518
|
+
deleteFailed: (path, accountId) => `Deleting "${path}" from account ${uiAccountDescription(accountId)} failed`,
|
|
519
|
+
},
|
|
520
|
+
options: {
|
|
521
|
+
options: 'Options to pass to javascript fields files',
|
|
522
|
+
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
523
|
+
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
524
|
+
clean: 'Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.',
|
|
525
|
+
force: 'Skips confirmation prompts when doing a clean upload.',
|
|
526
|
+
},
|
|
527
|
+
previewUrl: (previewUrl) => `To preview this theme, visit: ${previewUrl}`,
|
|
528
|
+
positionals: {
|
|
529
|
+
src: 'Path to the local file, relative to your current working directory.',
|
|
530
|
+
dest: 'Path in HubSpot Design Tools, can be a net new path.',
|
|
531
|
+
},
|
|
532
|
+
success: {
|
|
533
|
+
fileUploaded: (src, dest, accountId) => `Uploaded file from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
534
|
+
uploadComplete: (dest) => `Uploading files to "${dest}" in the Design Manager is complete`,
|
|
535
|
+
},
|
|
536
|
+
uploading: (src, dest, accountId) => `Uploading files from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
537
|
+
notUploaded: (src) => `There was an error processing "${src}". The file has not been uploaded.`,
|
|
538
|
+
cleaning: (filePath, accountId) => `Removing "${filePath}" from account ${uiAccountDescription(accountId)} and uploading local...`,
|
|
539
|
+
confirmCleanUpload: (filePath, accountId) => `You are about to delete the directory "${filePath}" and its contents on HubSpot account ${uiAccountDescription(accountId)} before uploading. This will also clear the global content associated with any global partial templates and modules. Are you sure you want to do this?`,
|
|
540
|
+
},
|
|
541
|
+
delete: {
|
|
542
|
+
describe: 'Delete a file or folder from the HubSpot CMS.',
|
|
543
|
+
deleted: (path, accountId) => `Deleted "${path}" from account ${uiAccountDescription(accountId)}`,
|
|
544
|
+
errors: {
|
|
545
|
+
deleteFailed: (path, accountId) => `Deleting "${path}" from account ${uiAccountDescription(accountId)} failed`,
|
|
546
|
+
},
|
|
547
|
+
positionals: {
|
|
548
|
+
path: 'Remote hubspot path',
|
|
549
|
+
},
|
|
550
|
+
},
|
|
551
|
+
watch: {
|
|
552
|
+
describe: 'Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.',
|
|
553
|
+
errors: {
|
|
554
|
+
folderFailed: (src, dest, accountId) => `Initial uploading of folder "${src}" to "${dest}" in account ${uiAccountDescription(accountId)} had failures`,
|
|
555
|
+
fileFailed: (file, dest, accountId) => `Upload of file "${file}" to "${dest}" in account ${uiAccountDescription(accountId)} failed`,
|
|
556
|
+
destinationRequired: 'A destination directory needs to be passed',
|
|
557
|
+
invalidPath: (path) => `The "${path}" is not a path to a directory`,
|
|
558
|
+
},
|
|
559
|
+
options: {
|
|
560
|
+
disableInitial: 'Disable the initial upload when watching a directory (default)',
|
|
561
|
+
initialUpload: 'Upload directory before watching for updates',
|
|
562
|
+
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
563
|
+
remove: 'Will cause watch to delete files in your HubSpot account that are not found locally.',
|
|
564
|
+
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
565
|
+
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
566
|
+
options: 'Options to pass to javascript fields files',
|
|
567
|
+
},
|
|
568
|
+
positionals: {
|
|
569
|
+
src: 'Path to the local directory your files are in, relative to your current working directory',
|
|
570
|
+
dest: 'Path in HubSpot Design Tools. Can be a net new path',
|
|
571
|
+
},
|
|
572
|
+
warnings: {
|
|
573
|
+
disableInitial: `Passing the "${chalk.bold('--disable-initial')}" option is no longer necessary. Running "${uiCommandReference('hs watch')}" no longer uploads the watched directory by default.`,
|
|
574
|
+
initialUpload: `To upload the directory run "${uiCommandReference('hs upload')}" beforehand or add the "${chalk.bold('--initial-upload')}" option when running "${uiCommandReference('hs watch')}".`,
|
|
575
|
+
notUploaded: (path) => `The "${uiCommandReference('hs watch')}" command no longer uploads the watched directory when started. The directory "${path}" was not uploaded.`,
|
|
576
|
+
},
|
|
577
|
+
},
|
|
578
|
+
fetch: {
|
|
579
|
+
describe: 'Fetch a file, directory or module from HubSpot and write to a path on your computer.',
|
|
580
|
+
errors: {
|
|
581
|
+
sourceRequired: 'A source to fetch is required.',
|
|
582
|
+
},
|
|
583
|
+
options: {
|
|
584
|
+
staging: {
|
|
585
|
+
describe: 'Retrieve staged changes for project',
|
|
586
|
+
},
|
|
587
|
+
assetVersion: {
|
|
588
|
+
describe: 'Specify what version of a default asset to fetch',
|
|
589
|
+
},
|
|
590
|
+
},
|
|
591
|
+
positionals: {
|
|
592
|
+
dest: {
|
|
593
|
+
describe: 'Local directory you would like the files to be placed in, relative to your current working directory',
|
|
594
|
+
},
|
|
595
|
+
src: {
|
|
596
|
+
describe: 'Path in HubSpot Design Tools',
|
|
597
|
+
},
|
|
598
|
+
},
|
|
599
|
+
},
|
|
600
|
+
lint: {
|
|
601
|
+
issuesFound: (count) => `${count} issues found.`,
|
|
602
|
+
groupName: (path) => `Linting ${path}`,
|
|
603
|
+
positionals: {
|
|
604
|
+
path: {
|
|
605
|
+
describe: 'Local folder to lint',
|
|
606
|
+
},
|
|
607
|
+
},
|
|
608
|
+
},
|
|
609
|
+
mv: {
|
|
610
|
+
describe: 'Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.',
|
|
611
|
+
errors: {
|
|
612
|
+
sourcePathExists: (srcPath, destPath) => `The folder "${srcPath}" already exists in "${destPath}".`,
|
|
613
|
+
moveFailed: (srcPath, destPath, accountId) => `Moving "${srcPath}" to "${destPath}" in account ${accountId} failed`,
|
|
614
|
+
},
|
|
615
|
+
move: (srcPath, destPath, accountId) => `Moved "${srcPath}" to "${destPath}" in account ${accountId}`,
|
|
616
|
+
positionals: {
|
|
617
|
+
srcPath: {
|
|
618
|
+
describe: 'Remote hubspot path',
|
|
619
|
+
},
|
|
620
|
+
destPath: {
|
|
621
|
+
describe: 'Remote hubspot path',
|
|
622
|
+
},
|
|
623
|
+
},
|
|
624
|
+
},
|
|
334
625
|
lighthouseScore: {
|
|
335
626
|
describe: 'Score a theme using Google lighthouse.',
|
|
336
627
|
examples: {
|
|
@@ -387,6 +678,124 @@ export const commands = {
|
|
|
387
678
|
invalidName: 'Module not found with that name, please check the spelling of the module you are trying to download.',
|
|
388
679
|
},
|
|
389
680
|
},
|
|
681
|
+
function: {
|
|
682
|
+
describe: 'Commands for managing CMS serverless functions.',
|
|
683
|
+
subcommands: {
|
|
684
|
+
create: {
|
|
685
|
+
describe: 'Create a new CMS serverless function.',
|
|
686
|
+
errors: {
|
|
687
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
688
|
+
},
|
|
689
|
+
positionals: {
|
|
690
|
+
name: 'Name of the function',
|
|
691
|
+
dest: 'Destination folder for the function',
|
|
692
|
+
},
|
|
693
|
+
options: {
|
|
694
|
+
functionsFolder: 'Folder to create functions in',
|
|
695
|
+
filename: 'Filename for the function',
|
|
696
|
+
endpointMethod: 'HTTP method for the function endpoint',
|
|
697
|
+
endpointPath: 'API endpoint path for the function',
|
|
698
|
+
},
|
|
699
|
+
},
|
|
700
|
+
logs: {
|
|
701
|
+
describe: 'View logs for a CMS serverless function.',
|
|
702
|
+
errors: {
|
|
703
|
+
noLogsFound: (functionPath, accountId) => `No logs were found for the function path "${functionPath}" in account "${accountId}".`,
|
|
704
|
+
},
|
|
705
|
+
examples: {
|
|
706
|
+
default: 'Get 5 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
707
|
+
follow: 'Poll for and output logs for function residing at /_hcms/api/my-endpoint immediately upon new execution',
|
|
708
|
+
limit: 'Get 10 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
709
|
+
},
|
|
710
|
+
endpointPrompt: 'Enter a serverless function endpoint:',
|
|
711
|
+
gettingLogs: (latest, functionPath) => `Getting ${latest ? 'latest ' : ''}logs for function with path: ${functionPath}.`,
|
|
712
|
+
options: {
|
|
713
|
+
compact: {
|
|
714
|
+
describe: 'output compact logs',
|
|
715
|
+
},
|
|
716
|
+
follow: {
|
|
717
|
+
describe: 'follow logs',
|
|
718
|
+
},
|
|
719
|
+
latest: {
|
|
720
|
+
describe: 'retrieve most recent log only',
|
|
721
|
+
},
|
|
722
|
+
limit: {
|
|
723
|
+
describe: 'limit the number of logs to output',
|
|
724
|
+
},
|
|
725
|
+
},
|
|
726
|
+
positionals: {
|
|
727
|
+
endpoint: {
|
|
728
|
+
describe: 'Serverless function endpoint',
|
|
729
|
+
},
|
|
730
|
+
},
|
|
731
|
+
tailLogs: (functionPath, accountId) => `Waiting for log entries for "${functionPath}" on account "${accountId}".\n`,
|
|
732
|
+
},
|
|
733
|
+
deploy: {
|
|
734
|
+
debug: {
|
|
735
|
+
startingBuildAndDeploy: (functionPath) => `Starting build and deploy for .functions folder with path: ${functionPath}`,
|
|
736
|
+
},
|
|
737
|
+
errors: {
|
|
738
|
+
buildError: (details) => `Build error: ${details}`,
|
|
739
|
+
noPackageJson: (functionPath) => `Unable to find package.json for function ${functionPath}.`,
|
|
740
|
+
notFunctionsFolder: (functionPath) => `Specified path ${functionPath} is not a .functions folder.`,
|
|
741
|
+
},
|
|
742
|
+
examples: {
|
|
743
|
+
default: 'Build and deploy a new bundle for all functions within the myFunctionFolder.functions folder',
|
|
744
|
+
},
|
|
745
|
+
loading: (functionPath, account) => `Building and deploying bundle for "${functionPath}" on ${account}`,
|
|
746
|
+
loadingFailed: (functionPath, account) => `Failed to build and deploy bundle for "${functionPath}" on ${account}`,
|
|
747
|
+
positionals: {
|
|
748
|
+
path: {
|
|
749
|
+
describe: 'Path to the ".functions" folder',
|
|
750
|
+
},
|
|
751
|
+
},
|
|
752
|
+
success: {
|
|
753
|
+
deployed: (functionPath, accountId, buildTimeSeconds) => `Built and deployed bundle from package.json for ${functionPath} on account ${accountId} in ${buildTimeSeconds}s.`,
|
|
754
|
+
},
|
|
755
|
+
},
|
|
756
|
+
list: {
|
|
757
|
+
debug: {
|
|
758
|
+
gettingFunctions: 'Getting currently deployed functions',
|
|
759
|
+
},
|
|
760
|
+
describe: 'List the currently deployed CMS serverless functions.',
|
|
761
|
+
info: {
|
|
762
|
+
noFunctions: 'No functions found',
|
|
763
|
+
},
|
|
764
|
+
options: {
|
|
765
|
+
json: {
|
|
766
|
+
describe: 'output raw json data',
|
|
767
|
+
},
|
|
768
|
+
},
|
|
769
|
+
},
|
|
770
|
+
server: {
|
|
771
|
+
debug: {
|
|
772
|
+
startingServer: (functionPath) => `Starting local test server for .functions folder with path: ${functionPath}`,
|
|
773
|
+
},
|
|
774
|
+
examples: {
|
|
775
|
+
default: 'Run a local function test server.',
|
|
776
|
+
},
|
|
777
|
+
options: {
|
|
778
|
+
contact: {
|
|
779
|
+
describe: 'Pass contact data to the test function',
|
|
780
|
+
},
|
|
781
|
+
logOutput: {
|
|
782
|
+
describe: 'Output the response body from the serverless function execution (It is suggested not to use this in production environments as it can reveal any secure data returned by the function in logs)',
|
|
783
|
+
},
|
|
784
|
+
port: {
|
|
785
|
+
describe: 'Port to run the test server on',
|
|
786
|
+
},
|
|
787
|
+
watch: {
|
|
788
|
+
describe: 'Watch the specified .functions folder for changes and restart the server',
|
|
789
|
+
},
|
|
790
|
+
},
|
|
791
|
+
positionals: {
|
|
792
|
+
path: {
|
|
793
|
+
describe: 'Path to local .functions folder',
|
|
794
|
+
},
|
|
795
|
+
},
|
|
796
|
+
},
|
|
797
|
+
},
|
|
798
|
+
},
|
|
390
799
|
},
|
|
391
800
|
},
|
|
392
801
|
create: {
|
|
@@ -470,6 +879,9 @@ export const commands = {
|
|
|
470
879
|
describe: 'Commands for managing custom objects.',
|
|
471
880
|
seeMoreLink: `${uiLink('View our docs to find out more', 'https://developers.hubspot.com/docs/api-reference/crm-custom-objects-v3/guide#custom-objects-api-guide')}`,
|
|
472
881
|
subcommands: {
|
|
882
|
+
schema: {
|
|
883
|
+
describe: 'Commands for managing custom object schemas.',
|
|
884
|
+
},
|
|
473
885
|
create: {
|
|
474
886
|
describe: 'Create custom object instances.',
|
|
475
887
|
errors: {
|
|
@@ -492,122 +904,117 @@ export const commands = {
|
|
|
492
904
|
inputName: "[--name] Enter the name of the schema for the custom object(s) you'd like to create:",
|
|
493
905
|
inputPath: '[--path] Enter the path to the JSON file containing the object definitions:',
|
|
494
906
|
},
|
|
495
|
-
|
|
496
|
-
describe: '
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
options: {
|
|
505
|
-
definition: {
|
|
506
|
-
describe: 'Local path to the JSON file containing the schema definition',
|
|
507
|
-
},
|
|
508
|
-
},
|
|
509
|
-
success: {
|
|
510
|
-
schemaCreated: (accountId) => `Your schema has been created in account "${accountId}"`,
|
|
511
|
-
schemaViewable: (url) => `Schema can be viewed at ${url}`,
|
|
512
|
-
},
|
|
907
|
+
createSchema: {
|
|
908
|
+
describe: 'Create a custom object schema.',
|
|
909
|
+
errors: {
|
|
910
|
+
invalidSchema: 'The schema definition is invalid. Please check the schema and try again.',
|
|
911
|
+
creationFailed: (definition) => `Schema creation from ${definition} failed`,
|
|
912
|
+
},
|
|
913
|
+
options: {
|
|
914
|
+
definition: {
|
|
915
|
+
describe: 'Local path to the JSON file containing the schema definition',
|
|
513
916
|
},
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
},
|
|
532
|
-
success: {
|
|
533
|
-
delete: (name) => `Successfully initiated deletion of ${name}`,
|
|
534
|
-
},
|
|
535
|
-
confirmDelete: (name) => `Are you sure you want to delete the schema "${name}"?`,
|
|
536
|
-
deleteCancelled: (name) => `Deletion of schema "${name}" cancelled.`,
|
|
537
|
-
selectSchema: 'Which schema would you like to delete?',
|
|
917
|
+
},
|
|
918
|
+
success: {
|
|
919
|
+
schemaCreated: (accountId) => `Your schema has been created in account "${accountId}"`,
|
|
920
|
+
schemaViewable: (url) => `Schema can be viewed at ${url}`,
|
|
921
|
+
},
|
|
922
|
+
},
|
|
923
|
+
deleteSchema: {
|
|
924
|
+
describe: 'Delete a custom object schema.',
|
|
925
|
+
errors: {
|
|
926
|
+
delete: (name) => `Unable to delete ${name}`,
|
|
927
|
+
},
|
|
928
|
+
examples: {
|
|
929
|
+
default: 'Delete "schemaName" schema',
|
|
930
|
+
},
|
|
931
|
+
positionals: {
|
|
932
|
+
name: {
|
|
933
|
+
describe: 'Name of the target schema',
|
|
538
934
|
},
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
},
|
|
544
|
-
examples: {
|
|
545
|
-
default: 'Fetch all schemas for an account and put them in the current working directory',
|
|
546
|
-
specifyPath: 'Fetch all schemas for an account and put them in a directory named my/folder',
|
|
547
|
-
},
|
|
548
|
-
positionals: {
|
|
549
|
-
dest: {
|
|
550
|
-
describe: 'Local folder where schemas will be written',
|
|
551
|
-
},
|
|
552
|
-
},
|
|
553
|
-
success: {
|
|
554
|
-
fetch: (path) => `Saved schemas to ${path}`,
|
|
555
|
-
},
|
|
556
|
-
inputDest: 'Where would you like to save the schemas?',
|
|
935
|
+
},
|
|
936
|
+
options: {
|
|
937
|
+
force: {
|
|
938
|
+
describe: 'Force the deletion of the schema.',
|
|
557
939
|
},
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
save: (name, path) => `The schema "${name}" has been saved to "${path}"`,
|
|
579
|
-
savedToPath: (path) => `Saved schema to ${path}`,
|
|
580
|
-
},
|
|
940
|
+
},
|
|
941
|
+
success: {
|
|
942
|
+
delete: (name) => `Successfully initiated deletion of ${name}`,
|
|
943
|
+
},
|
|
944
|
+
confirmDelete: (name) => `Are you sure you want to delete the schema "${name}"?`,
|
|
945
|
+
deleteCancelled: (name) => `Deletion of schema "${name}" cancelled.`,
|
|
946
|
+
selectSchema: 'Which schema would you like to delete?',
|
|
947
|
+
},
|
|
948
|
+
fetchAllSchemas: {
|
|
949
|
+
describe: 'Fetch all custom object schemas for an account.',
|
|
950
|
+
errors: {
|
|
951
|
+
fetch: 'Unable to fetch schemas',
|
|
952
|
+
},
|
|
953
|
+
examples: {
|
|
954
|
+
default: 'Fetch all schemas for an account and put them in the current working directory',
|
|
955
|
+
specifyPath: 'Fetch all schemas for an account and put them in a directory named my/folder',
|
|
956
|
+
},
|
|
957
|
+
positionals: {
|
|
958
|
+
dest: {
|
|
959
|
+
describe: 'Local folder where schemas will be written',
|
|
581
960
|
},
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
961
|
+
},
|
|
962
|
+
success: {
|
|
963
|
+
fetch: (path) => `Saved schemas to ${path}`,
|
|
964
|
+
},
|
|
965
|
+
inputDest: 'Where would you like to save the schemas?',
|
|
966
|
+
},
|
|
967
|
+
fetchSchema: {
|
|
968
|
+
describe: 'Fetch a custom object schema.',
|
|
969
|
+
errors: {
|
|
970
|
+
fetch: (name) => `Unable to fetch ${name}`,
|
|
971
|
+
},
|
|
972
|
+
examples: {
|
|
973
|
+
default: 'Fetch "schemaId" schema and put it in the current working directory',
|
|
974
|
+
specifyPath: 'Fetch "schemaId" schema and put it in a directory named my/folder',
|
|
975
|
+
},
|
|
976
|
+
positionals: {
|
|
977
|
+
dest: {
|
|
978
|
+
describe: 'Local folder where schema will be written',
|
|
587
979
|
},
|
|
588
|
-
|
|
589
|
-
describe: '
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
980
|
+
name: {
|
|
981
|
+
describe: 'Name of the target schema',
|
|
982
|
+
},
|
|
983
|
+
},
|
|
984
|
+
selectSchema: 'Which schema would you like to fetch?',
|
|
985
|
+
inputDest: 'What would you like to name the destination file?',
|
|
986
|
+
success: {
|
|
987
|
+
save: (name, path) => `The schema "${name}" has been saved to "${path}"`,
|
|
988
|
+
savedToPath: (path) => `Saved schema to ${path}`,
|
|
989
|
+
},
|
|
990
|
+
},
|
|
991
|
+
listSchemas: {
|
|
992
|
+
describe: 'List custom object schemas.',
|
|
993
|
+
errors: {
|
|
994
|
+
list: 'Unable to list schemas',
|
|
995
|
+
},
|
|
996
|
+
},
|
|
997
|
+
updateSchema: {
|
|
998
|
+
describe: 'Update an existing custom object schema.',
|
|
999
|
+
errors: {
|
|
1000
|
+
invalidSchema: 'The schema definition is invalid. Please check the schema and try again.',
|
|
1001
|
+
update: (definition) => `Schema update from ${definition} failed`,
|
|
1002
|
+
},
|
|
1003
|
+
options: {
|
|
1004
|
+
path: {
|
|
1005
|
+
describe: 'Local path to the JSON file containing the schema definition',
|
|
1006
|
+
},
|
|
1007
|
+
},
|
|
1008
|
+
positionals: {
|
|
1009
|
+
name: {
|
|
1010
|
+
describe: 'Name of the target schema',
|
|
609
1011
|
},
|
|
610
1012
|
},
|
|
1013
|
+
success: {
|
|
1014
|
+
update: (accountId) => `Your schema has been updated in account "${accountId}"`,
|
|
1015
|
+
viewAtUrl: (url) => `Schema can be viewed at ${url}`,
|
|
1016
|
+
},
|
|
1017
|
+
selectSchema: 'Which schema would you like to update?',
|
|
611
1018
|
},
|
|
612
1019
|
},
|
|
613
1020
|
},
|
|
@@ -622,28 +1029,6 @@ export const commands = {
|
|
|
622
1029
|
},
|
|
623
1030
|
outputWritten: (filename) => `Output written to ${chalk.bold(filename)}`,
|
|
624
1031
|
},
|
|
625
|
-
fetch: {
|
|
626
|
-
describe: 'Fetch a file, directory or module from HubSpot and write to a path on your computer.',
|
|
627
|
-
errors: {
|
|
628
|
-
sourceRequired: 'A source to fetch is required.',
|
|
629
|
-
},
|
|
630
|
-
options: {
|
|
631
|
-
staging: {
|
|
632
|
-
describe: 'Retrieve staged changes for project',
|
|
633
|
-
},
|
|
634
|
-
assetVersion: {
|
|
635
|
-
describe: 'Specify what version of a default asset to fetch',
|
|
636
|
-
},
|
|
637
|
-
},
|
|
638
|
-
positionals: {
|
|
639
|
-
dest: {
|
|
640
|
-
describe: 'Local directory you would like the files to be placed in, relative to your current working directory',
|
|
641
|
-
},
|
|
642
|
-
src: {
|
|
643
|
-
describe: 'Path in HubSpot Design Tools',
|
|
644
|
-
},
|
|
645
|
-
},
|
|
646
|
-
},
|
|
647
1032
|
filemanager: {
|
|
648
1033
|
describe: 'Commands for managing files in the File Manager.',
|
|
649
1034
|
subcommands: {
|
|
@@ -693,75 +1078,6 @@ export const commands = {
|
|
|
693
1078
|
},
|
|
694
1079
|
},
|
|
695
1080
|
},
|
|
696
|
-
function: {
|
|
697
|
-
describe: 'Commands for managing CMS serverless functions.',
|
|
698
|
-
subcommands: {
|
|
699
|
-
deploy: {
|
|
700
|
-
debug: {
|
|
701
|
-
startingBuildAndDeploy: (functionPath) => `Starting build and deploy for .functions folder with path: ${functionPath}`,
|
|
702
|
-
},
|
|
703
|
-
errors: {
|
|
704
|
-
buildError: (details) => `Build error: ${details}`,
|
|
705
|
-
noPackageJson: (functionPath) => `Unable to find package.json for function ${functionPath}.`,
|
|
706
|
-
notFunctionsFolder: (functionPath) => `Specified path ${functionPath} is not a .functions folder.`,
|
|
707
|
-
},
|
|
708
|
-
examples: {
|
|
709
|
-
default: 'Build and deploy a new bundle for all functions within the myFunctionFolder.functions folder',
|
|
710
|
-
},
|
|
711
|
-
loading: (functionPath, account) => `Building and deploying bundle for "${functionPath}" on ${account}`,
|
|
712
|
-
loadingFailed: (functionPath, account) => `Failed to build and deploy bundle for "${functionPath}" on ${account}`,
|
|
713
|
-
positionals: {
|
|
714
|
-
path: {
|
|
715
|
-
describe: 'Path to the ".functions" folder',
|
|
716
|
-
},
|
|
717
|
-
},
|
|
718
|
-
success: {
|
|
719
|
-
deployed: (functionPath, accountId, buildTimeSeconds) => `Built and deployed bundle from package.json for ${functionPath} on account ${accountId} in ${buildTimeSeconds}s.`,
|
|
720
|
-
},
|
|
721
|
-
},
|
|
722
|
-
list: {
|
|
723
|
-
debug: {
|
|
724
|
-
gettingFunctions: 'Getting currently deployed functions',
|
|
725
|
-
},
|
|
726
|
-
describe: 'List the currently deployed CMS serverless functions.',
|
|
727
|
-
info: {
|
|
728
|
-
noFunctions: 'No functions found',
|
|
729
|
-
},
|
|
730
|
-
options: {
|
|
731
|
-
json: {
|
|
732
|
-
describe: 'output raw json data',
|
|
733
|
-
},
|
|
734
|
-
},
|
|
735
|
-
},
|
|
736
|
-
server: {
|
|
737
|
-
debug: {
|
|
738
|
-
startingServer: (functionPath) => `Starting local test server for .functions folder with path: ${functionPath}`,
|
|
739
|
-
},
|
|
740
|
-
examples: {
|
|
741
|
-
default: 'Run a local function test server.',
|
|
742
|
-
},
|
|
743
|
-
options: {
|
|
744
|
-
contact: {
|
|
745
|
-
describe: 'Pass contact data to the test function',
|
|
746
|
-
},
|
|
747
|
-
logOutput: {
|
|
748
|
-
describe: 'Output the response body from the serverless function execution (It is suggested not to use this in production environments as it can reveal any secure data returned by the function in logs)',
|
|
749
|
-
},
|
|
750
|
-
port: {
|
|
751
|
-
describe: 'Port to run the test server on',
|
|
752
|
-
},
|
|
753
|
-
watch: {
|
|
754
|
-
describe: 'Watch the specified .functions folder for changes and restart the server',
|
|
755
|
-
},
|
|
756
|
-
},
|
|
757
|
-
positionals: {
|
|
758
|
-
path: {
|
|
759
|
-
describe: 'Path to local .functions folder',
|
|
760
|
-
},
|
|
761
|
-
},
|
|
762
|
-
},
|
|
763
|
-
},
|
|
764
|
-
},
|
|
765
1081
|
hubdb: {
|
|
766
1082
|
describe: 'Commands for managing HubDB tables.',
|
|
767
1083
|
subcommands: {
|
|
@@ -877,58 +1193,6 @@ export const commands = {
|
|
|
877
1193
|
globalConfigFileExists: `You are using our new global configuration for account management, which is not compatible with this command. Please use ${uiCommandReference('hs account auth')} instead.`,
|
|
878
1194
|
},
|
|
879
1195
|
},
|
|
880
|
-
lint: {
|
|
881
|
-
issuesFound: (count) => `${count} issues found.`,
|
|
882
|
-
groupName: (path) => `Linting ${path}`,
|
|
883
|
-
positionals: {
|
|
884
|
-
path: {
|
|
885
|
-
describe: 'Local folder to lint',
|
|
886
|
-
},
|
|
887
|
-
},
|
|
888
|
-
},
|
|
889
|
-
list: {
|
|
890
|
-
describe: 'List remote contents of a directory.',
|
|
891
|
-
gettingPathContents: (path) => `Getting contents of ${path}.`,
|
|
892
|
-
noFilesFoundAtPath: (path) => `No files found in ${path}.`,
|
|
893
|
-
positionals: {
|
|
894
|
-
path: {
|
|
895
|
-
describe: 'Remote directory to list contents',
|
|
896
|
-
},
|
|
897
|
-
},
|
|
898
|
-
},
|
|
899
|
-
logs: {
|
|
900
|
-
describe: 'View logs for a CMS serverless function.',
|
|
901
|
-
errors: {
|
|
902
|
-
noLogsFound: (functionPath, accountId) => `No logs were found for the function path "${functionPath}" in account "${accountId}".`,
|
|
903
|
-
},
|
|
904
|
-
examples: {
|
|
905
|
-
default: 'Get 5 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
906
|
-
follow: 'Poll for and output logs for function residing at /_hcms/api/my-endpoint immediately upon new execution',
|
|
907
|
-
limit: 'Get 10 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
908
|
-
},
|
|
909
|
-
endpointPrompt: 'Enter a serverless function endpoint:',
|
|
910
|
-
gettingLogs: (latest, functionPath) => `Getting ${latest ? 'latest ' : ''}logs for function with path: ${functionPath}.`,
|
|
911
|
-
options: {
|
|
912
|
-
compact: {
|
|
913
|
-
describe: 'output compact logs',
|
|
914
|
-
},
|
|
915
|
-
follow: {
|
|
916
|
-
describe: 'follow logs',
|
|
917
|
-
},
|
|
918
|
-
latest: {
|
|
919
|
-
describe: 'retrieve most recent log only',
|
|
920
|
-
},
|
|
921
|
-
limit: {
|
|
922
|
-
describe: 'limit the number of logs to output',
|
|
923
|
-
},
|
|
924
|
-
},
|
|
925
|
-
positionals: {
|
|
926
|
-
endpoint: {
|
|
927
|
-
describe: 'Serverless function endpoint',
|
|
928
|
-
},
|
|
929
|
-
},
|
|
930
|
-
tailLogs: (functionPath, accountId) => `Waiting for log entries for "${functionPath}" on account "${accountId}".\n`,
|
|
931
|
-
},
|
|
932
1196
|
mcp: {
|
|
933
1197
|
describe: 'Commands for managing HubSpot MCP servers.',
|
|
934
1198
|
setup: {
|
|
@@ -988,14 +1252,6 @@ export const commands = {
|
|
|
988
1252
|
shuttingDown: 'Shutting down MCP server...',
|
|
989
1253
|
},
|
|
990
1254
|
},
|
|
991
|
-
mv: {
|
|
992
|
-
describe: 'Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.',
|
|
993
|
-
errors: {
|
|
994
|
-
sourcePathExists: (srcPath, destPath) => `The folder "${srcPath}" already exists in "${destPath}".`,
|
|
995
|
-
moveFailed: (srcPath, destPath, accountId) => `Moving "${srcPath}" to "${destPath}" in account ${accountId} failed`,
|
|
996
|
-
},
|
|
997
|
-
move: (srcPath, destPath, accountId) => `Moved "${srcPath}" to "${destPath}" in account ${accountId}`,
|
|
998
|
-
},
|
|
999
1255
|
open: {
|
|
1000
1256
|
describe: 'Open a HubSpot page in your browser.',
|
|
1001
1257
|
options: {
|
|
@@ -1083,7 +1339,7 @@ export const commands = {
|
|
|
1083
1339
|
header: 'HubSpot projects local development',
|
|
1084
1340
|
placeholderAccountSelection: 'Using default account as target account (for now)',
|
|
1085
1341
|
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.',
|
|
1086
|
-
|
|
1342
|
+
learnMoreMessageV2: `Learn more about ${uiLink('HubSpot projects local dev', 'https://developers.hubspot.com/docs/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')}`,
|
|
1087
1343
|
learnMoreMessageLegacy: uiLink('Learn more about the projects local dev server', 'https://developers.hubspot.com/docs/developer-tooling/local-development/hubspot-cli/project-commands#start-a-local-development-server'),
|
|
1088
1344
|
profileProjectAccountExplanation: (accountId, profileName) => `Using account ${uiAccountDescription(accountId)} from profile ${chalk.bold(profileName)} for project upload`,
|
|
1089
1345
|
defaultProjectAccountExplanation: (accountId) => `Using default account ${uiAccountDescription(accountId)} for project upload`,
|
|
@@ -1100,7 +1356,8 @@ export const commands = {
|
|
|
1100
1356
|
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.`,
|
|
1101
1357
|
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')}.`,
|
|
1102
1358
|
unsupportedAccountFlagLegacy: 'The --project-account and --testing-account flags are not supported for projects with platform versions earlier than 2025.2.',
|
|
1103
|
-
|
|
1359
|
+
unsupportedAccountFlagV2: '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',
|
|
1360
|
+
localDevAlreadyRunning: `Another ${uiCommandReference('hs project dev')} process is already running. To proceed with local development of this project, stop the existing process and re-run ${uiCommandReference('hs project dev')}.`,
|
|
1104
1361
|
},
|
|
1105
1362
|
examples: {
|
|
1106
1363
|
default: 'Start local dev for the current project',
|
|
@@ -1442,7 +1699,7 @@ export const commands = {
|
|
|
1442
1699
|
uploadFailed: (remotePath, filePath) => `Failed to upload file "${filePath}" to "${remotePath}"`,
|
|
1443
1700
|
deleteFileFailed: (remotePath) => `Failed to delete file "${remotePath}"`,
|
|
1444
1701
|
deleteFolderFailed: (remotePath) => `Failed to delete folder "${remotePath}"`,
|
|
1445
|
-
|
|
1702
|
+
v2ApiError: (platformVersion) => `${uiCommandReference('hs project watch')} is not supported for platform version '${platformVersion}' use ${uiCommandReference('hs project dev')} instead to develop locally. ${uiLink('How to develop locally', 'https://developers.hubspot.com/docs/guides/crm/ui-extensions/local-development')}`,
|
|
1446
1703
|
},
|
|
1447
1704
|
},
|
|
1448
1705
|
download: {
|
|
@@ -1523,15 +1780,16 @@ export const commands = {
|
|
|
1523
1780
|
},
|
|
1524
1781
|
},
|
|
1525
1782
|
},
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1783
|
+
list: {
|
|
1784
|
+
describe: 'List uploaded projects that exist in the current target account',
|
|
1785
|
+
projects: `${chalk.bold('Projects')}:`,
|
|
1786
|
+
labels: {
|
|
1787
|
+
name: 'Name',
|
|
1788
|
+
platformVersion: 'Platform Version',
|
|
1789
|
+
},
|
|
1790
|
+
errors: {
|
|
1791
|
+
noProjectsFound: (accountId) => `No projects found for account ${uiAccountDescription(accountId)}`,
|
|
1792
|
+
},
|
|
1535
1793
|
},
|
|
1536
1794
|
},
|
|
1537
1795
|
sandbox: {
|
|
@@ -1791,155 +2049,6 @@ export const commands = {
|
|
|
1791
2049
|
},
|
|
1792
2050
|
},
|
|
1793
2051
|
},
|
|
1794
|
-
theme: {
|
|
1795
|
-
describe: 'Commands for managing themes.',
|
|
1796
|
-
subcommands: {
|
|
1797
|
-
generateSelectors: {
|
|
1798
|
-
describe: 'Automatically generates an editor-preview.json file for the given theme. The selectors this command generates are not perfect, so please edit editor-preview.json after running.',
|
|
1799
|
-
errors: {
|
|
1800
|
-
invalidPath: (themePath) => `Could not find directory "${themePath}"`,
|
|
1801
|
-
fieldsNotFound: "Unable to find theme's fields.json.",
|
|
1802
|
-
noSelectorsFound: 'No selectors found.',
|
|
1803
|
-
},
|
|
1804
|
-
success: (themePath, selectorsPath) => `Selectors generated for ${themePath}, please double check the selectors generated at ${selectorsPath} before uploading the theme.`,
|
|
1805
|
-
positionals: {
|
|
1806
|
-
path: "The path of the theme you'd like to generate an editor-preview.json for.",
|
|
1807
|
-
},
|
|
1808
|
-
},
|
|
1809
|
-
marketplaceValidate: {
|
|
1810
|
-
describe: 'Validate a theme for the marketplace.',
|
|
1811
|
-
errors: {
|
|
1812
|
-
invalidPath: (path) => `The path "${path}" is not a path to a folder in the Design Manager`,
|
|
1813
|
-
},
|
|
1814
|
-
logs: {
|
|
1815
|
-
validatingTheme: (path) => `Validating theme "${path}" \n`,
|
|
1816
|
-
},
|
|
1817
|
-
results: {
|
|
1818
|
-
required: 'Required validation results:',
|
|
1819
|
-
recommended: 'Recommended validation results:',
|
|
1820
|
-
warnings: {
|
|
1821
|
-
file: (file) => `File: ${file}`,
|
|
1822
|
-
lineNumber: (line) => `Line number: ${line}`,
|
|
1823
|
-
},
|
|
1824
|
-
noErrors: 'No errors',
|
|
1825
|
-
},
|
|
1826
|
-
positionals: {
|
|
1827
|
-
path: {
|
|
1828
|
-
describe: 'Path to the theme within the Design Manager.',
|
|
1829
|
-
},
|
|
1830
|
-
},
|
|
1831
|
-
},
|
|
1832
|
-
preview: {
|
|
1833
|
-
describe: 'Upload and watch a theme directory on your computer for changes and start a local development server to preview theme changes on a site.',
|
|
1834
|
-
errors: {
|
|
1835
|
-
invalidPath: (path) => `The path "${path}" is not a path to a directory`,
|
|
1836
|
-
noThemeComponents: 'Your project has no theme components available to preview.',
|
|
1837
|
-
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
1838
|
-
},
|
|
1839
|
-
positionals: {
|
|
1840
|
-
src: 'Path to the local directory your theme is in, relative to your current working directory',
|
|
1841
|
-
dest: 'Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.',
|
|
1842
|
-
},
|
|
1843
|
-
options: {
|
|
1844
|
-
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
1845
|
-
noSsl: 'Disable HTTPS',
|
|
1846
|
-
port: 'The port on which to start the local server',
|
|
1847
|
-
},
|
|
1848
|
-
initialUploadProgressBar: {
|
|
1849
|
-
start: 'Starting...',
|
|
1850
|
-
uploading: 'Uploading...',
|
|
1851
|
-
finish: 'Complete!',
|
|
1852
|
-
},
|
|
1853
|
-
logs: {
|
|
1854
|
-
processExited: 'Stopping dev server...',
|
|
1855
|
-
},
|
|
1856
|
-
},
|
|
1857
|
-
},
|
|
1858
|
-
},
|
|
1859
|
-
module: {
|
|
1860
|
-
describe: 'Commands for working with modules, including marketplace validation with the marketplace-validate subcommand.',
|
|
1861
|
-
subcommands: {
|
|
1862
|
-
marketplaceValidate: {
|
|
1863
|
-
describe: 'Validate a module for the marketplace. Make sure to include the suffix .module in the path to the module within the Design Manager.',
|
|
1864
|
-
errors: {
|
|
1865
|
-
invalidPath: (path) => `The path "${path}" is not a path to a module within the Design Manager.`,
|
|
1866
|
-
},
|
|
1867
|
-
logs: {
|
|
1868
|
-
validatingModule: (path) => `Validating module "${path}" \n`,
|
|
1869
|
-
},
|
|
1870
|
-
results: {
|
|
1871
|
-
required: 'Required validation results:',
|
|
1872
|
-
recommended: 'Recommended validation results:',
|
|
1873
|
-
warnings: {
|
|
1874
|
-
file: (file) => `File: ${file}`,
|
|
1875
|
-
lineNumber: (line) => `Line number: ${line}`,
|
|
1876
|
-
},
|
|
1877
|
-
noErrors: 'No errors',
|
|
1878
|
-
},
|
|
1879
|
-
positionals: {
|
|
1880
|
-
src: 'Path to the module within the Design Manager.',
|
|
1881
|
-
},
|
|
1882
|
-
},
|
|
1883
|
-
},
|
|
1884
|
-
},
|
|
1885
|
-
upload: {
|
|
1886
|
-
describe: 'Upload a folder or file from your computer to the HubSpot CMS.',
|
|
1887
|
-
errors: {
|
|
1888
|
-
destinationRequired: 'A destination path needs to be passed',
|
|
1889
|
-
fileIgnored: (path) => `The file "${path}" is being ignored via an .hsignore rule`,
|
|
1890
|
-
invalidPath: (path) => `The path "${path}" is not a path to a file or folder`,
|
|
1891
|
-
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
1892
|
-
someFilesFailed: (dest) => `One or more files failed to upload to "${dest}" in the Design Manager`,
|
|
1893
|
-
deleteFailed: (path, accountId) => `Deleting "${path}" from account ${uiAccountDescription(accountId)} failed`,
|
|
1894
|
-
},
|
|
1895
|
-
options: {
|
|
1896
|
-
options: 'Options to pass to javascript fields files',
|
|
1897
|
-
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
1898
|
-
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
1899
|
-
clean: 'Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.',
|
|
1900
|
-
force: 'Skips confirmation prompts when doing a clean upload.',
|
|
1901
|
-
},
|
|
1902
|
-
previewUrl: (previewUrl) => `To preview this theme, visit: ${previewUrl}`,
|
|
1903
|
-
positionals: {
|
|
1904
|
-
src: 'Path to the local file, relative to your current working directory.',
|
|
1905
|
-
dest: 'Path in HubSpot Design Tools, can be a net new path.',
|
|
1906
|
-
},
|
|
1907
|
-
success: {
|
|
1908
|
-
fileUploaded: (src, dest, accountId) => `Uploaded file from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
1909
|
-
uploadComplete: (dest) => `Uploading files to "${dest}" in the Design Manager is complete`,
|
|
1910
|
-
},
|
|
1911
|
-
uploading: (src, dest, accountId) => `Uploading files from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
1912
|
-
notUploaded: (src) => `There was an error processing "${src}". The file has not been uploaded.`,
|
|
1913
|
-
cleaning: (filePath, accountId) => `Removing "${filePath}" from account ${uiAccountDescription(accountId)} and uploading local...`,
|
|
1914
|
-
confirmCleanUpload: (filePath, accountId) => `You are about to delete the directory "${filePath}" and its contents on HubSpot account ${uiAccountDescription(accountId)} before uploading. This will also clear the global content associated with any global partial templates and modules. Are you sure you want to do this?`,
|
|
1915
|
-
},
|
|
1916
|
-
watch: {
|
|
1917
|
-
describe: 'Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.',
|
|
1918
|
-
errors: {
|
|
1919
|
-
folderFailed: (src, dest, accountId) => `Initial uploading of folder "${src}" to "${dest}" in account ${uiAccountDescription(accountId)} had failures`,
|
|
1920
|
-
fileFailed: (file, dest, accountId) => `Upload of file "${file}" to "${dest}" in account ${uiAccountDescription(accountId)} failed`,
|
|
1921
|
-
destinationRequired: 'A destination directory needs to be passed',
|
|
1922
|
-
invalidPath: (path) => `The "${path}" is not a path to a directory`,
|
|
1923
|
-
},
|
|
1924
|
-
options: {
|
|
1925
|
-
disableInitial: 'Disable the initial upload when watching a directory (default)',
|
|
1926
|
-
initialUpload: 'Upload directory before watching for updates',
|
|
1927
|
-
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
1928
|
-
remove: 'Will cause watch to delete files in your HubSpot account that are not found locally.',
|
|
1929
|
-
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
1930
|
-
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
1931
|
-
options: 'Options to pass to javascript fields files',
|
|
1932
|
-
},
|
|
1933
|
-
positionals: {
|
|
1934
|
-
src: 'Path to the local directory your files are in, relative to your current working directory',
|
|
1935
|
-
dest: 'Path in HubSpot Design Tools. Can be a net new path',
|
|
1936
|
-
},
|
|
1937
|
-
warnings: {
|
|
1938
|
-
disableInitial: `Passing the "${chalk.bold('--disable-initial')}" option is no longer necessary. Running "${uiCommandReference('hs watch')}" no longer uploads the watched directory by default.`,
|
|
1939
|
-
initialUpload: `To upload the directory run "${uiCommandReference('hs upload')}" beforehand or add the "${chalk.bold('--initial-upload')}" option when running "${uiCommandReference('hs watch')}".`,
|
|
1940
|
-
notUploaded: (path) => `The "${uiCommandReference('hs watch')}" command no longer uploads the watched directory when started. The directory "${path}" was not uploaded.`,
|
|
1941
|
-
},
|
|
1942
|
-
},
|
|
1943
2052
|
convertFields: {
|
|
1944
2053
|
describe: 'Converts a specific JavaScript fields file of a module or theme to JSON.',
|
|
1945
2054
|
positionals: {
|
|
@@ -2041,6 +2150,7 @@ export const commands = {
|
|
|
2041
2150
|
options: {
|
|
2042
2151
|
name: 'The name of the test account (in your CLI config) to delete',
|
|
2043
2152
|
id: 'The id of the test account',
|
|
2153
|
+
force: 'Skips all confirmation prompts when deleting a test account.',
|
|
2044
2154
|
},
|
|
2045
2155
|
examples: {
|
|
2046
2156
|
withPositionalID: (testAccountToDelete) => `Delete a test account with id "${testAccountToDelete}" using positional argument`,
|
|
@@ -2695,10 +2805,14 @@ export const lib = {
|
|
|
2695
2805
|
},
|
|
2696
2806
|
},
|
|
2697
2807
|
AppDevModeInterface: {
|
|
2808
|
+
autoInstallStaticAuthApp: {
|
|
2809
|
+
installing: (appName, targetTestAccountId) => `Installing ${chalk.bold(appName)} on account ${uiAccountDescription(targetTestAccountId)}...`,
|
|
2810
|
+
success: (appName, targetTestAccountId) => `Successfully installed ${chalk.bold(appName)} on account ${uiAccountDescription(targetTestAccountId)}\n`,
|
|
2811
|
+
error: (appName, targetTestAccountId) => `Error installing ${chalk.bold(appName)} on account ${uiAccountDescription(targetTestAccountId)}. You may still be able to install your app in your browser.`,
|
|
2812
|
+
},
|
|
2698
2813
|
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.`,
|
|
2699
2814
|
autoInstallDeclined: 'You must install your app on your target test account to proceed with local development.',
|
|
2700
2815
|
autoInstallSuccess: (appName, targetTestAccountId) => `Successfully installed app ${appName} on account ${uiAccountDescription(targetTestAccountId)}\n`,
|
|
2701
|
-
autoInstallError: (appName, targetTestAccountId) => `Error installing app ${appName} on account ${uiAccountDescription(targetTestAccountId)}. You may still be able to install your app in your browser.`,
|
|
2702
2816
|
fetchAppData: {
|
|
2703
2817
|
checking: (appName) => `Checking installations for your app ${chalk.bold(appName)}...`,
|
|
2704
2818
|
success: (appName, accountId) => `Your app ${chalk.bold(appName)} is installed on account ${uiAccountDescription(accountId, false)}`,
|
|
@@ -2708,6 +2822,14 @@ export const lib = {
|
|
|
2708
2822
|
},
|
|
2709
2823
|
distributionChanged: `Your app's distribution type has been changed from ${APP_DISTRIBUTION_TYPES.PRIVATE} to ${APP_DISTRIBUTION_TYPES.MARKETPLACE}. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${chalk.bold('permanantly')} change your app's distribution type. This will uninstall your app from all accounts.`,
|
|
2710
2824
|
authTypeChanged: `Your app's auth type has been changed from ${APP_AUTH_TYPES.STATIC} to ${APP_AUTH_TYPES.OAUTH}. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${chalk.bold('permanantly')} change your app's auth type. This will uninstall your app from all accounts.`,
|
|
2825
|
+
installationFailed: 'An error occured while installing your app. Your app must be installed in your target test account to proceed with local development.',
|
|
2826
|
+
waitUntilAppIsInstalled: {
|
|
2827
|
+
link: (installUrl) => `${uiLink('Install your app', installUrl)} to proceed with local development\n`,
|
|
2828
|
+
waiting: 'Waiting for your app to be installed...',
|
|
2829
|
+
success: (appName, accountId) => `Your app ${chalk.bold(appName)} has been installed successfully on account ${uiAccountDescription(accountId)}\n`,
|
|
2830
|
+
},
|
|
2831
|
+
appDataNotFound: 'An error occurred while fetching data for your app.',
|
|
2832
|
+
oauthAppRedirectUrlError: (redirectUrl) => `${chalk.bold('No reponse from your OAuth service:')} ${redirectUrl}\nYour app needs a valid OAuth2 service to be installed for local dev. ${uiLink('Learn more', 'https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth')}`,
|
|
2711
2833
|
},
|
|
2712
2834
|
LocalDevWebsocketServer: {
|
|
2713
2835
|
errors: {
|
|
@@ -2791,7 +2913,7 @@ export const lib = {
|
|
|
2791
2913
|
},
|
|
2792
2914
|
middleware: {
|
|
2793
2915
|
updateNotification: {
|
|
2794
|
-
notifyTitle: chalk.bold('
|
|
2916
|
+
notifyTitle: chalk.bold('CLI update available'),
|
|
2795
2917
|
cmsUpdateNotification: (packageName) => `${chalk.bold('The CMS CLI is now the HubSpot CLI')}\n\nTo upgrade, uninstall ${chalk.bold(packageName)}\nand then run ${uiCommandReference('{updateCommand}')}`,
|
|
2796
2918
|
cliUpdateNotification: `HubSpot CLI version ${chalk.cyan(chalk.bold('{currentVersion}'))} is outdated.\nRun ${uiCommandReference('{updateCommand}')} to upgrade to version ${chalk.cyan(chalk.bold('{latestVersion}'))}`,
|
|
2797
2919
|
},
|
|
@@ -3011,7 +3133,7 @@ export const lib = {
|
|
|
3011
3133
|
},
|
|
3012
3134
|
},
|
|
3013
3135
|
buildAccount: {
|
|
3014
|
-
|
|
3136
|
+
createDeveloperTestAccountV2: {
|
|
3015
3137
|
syncFailure: 'Failed to sync developer test account',
|
|
3016
3138
|
pakFailure: 'Failed to generate personal access key for developer test account',
|
|
3017
3139
|
},
|
|
@@ -3075,6 +3197,21 @@ export const lib = {
|
|
|
3075
3197
|
mergeConflictMessage: (count, propertyList) => `Conflict${count > 1 ? 's' : ''} detected for ${chalk.bold(propertyList)}.`,
|
|
3076
3198
|
mergeConfigConflictPrompt: (property, newValue, oldValue) => `Change ${property} from ${newValue} to ${oldValue}?`,
|
|
3077
3199
|
},
|
|
3200
|
+
handleAccountNameConflicts: {
|
|
3201
|
+
warnings: {
|
|
3202
|
+
accountNameConflictMessage: (count) => `${count} account name conflict${count > 1 ? 's' : ''} detected.`,
|
|
3203
|
+
forceFlagDetected: (count, renameDetails) => `Force flag detected. Automatically renaming ${count} account${count > 1 ? 's' : ''} with duplicate name${count > 1 ? 's' : ''}:\n${renameDetails}`,
|
|
3204
|
+
},
|
|
3205
|
+
prompts: {
|
|
3206
|
+
renameOrOmitAccountPrompt: (accountName, accountId) => `Local account name="${accountName}" (ID: ${accountId}) conflicts with an existing global account.\nRename the local account to include it in the merge? If not, it will be skipped.`,
|
|
3207
|
+
newAccountNamePrompt: (accountName, portalId) => `Enter a new name for the local account [ID: ${portalId}] (currently named "${accountName}"):`,
|
|
3208
|
+
},
|
|
3209
|
+
errors: {
|
|
3210
|
+
nameRequired: 'The name may not be blank. Please add a name for the config.',
|
|
3211
|
+
sameName: 'The new account name must be different from the current name.',
|
|
3212
|
+
nameAlreadyInConfig: (name) => `The name "${name}" is already used by another account.`,
|
|
3213
|
+
},
|
|
3214
|
+
},
|
|
3078
3215
|
handleMerge: {
|
|
3079
3216
|
description: (archivedConfigName) => `We will automatically merge the contents of your deprecated config file into your global configuration file. This will merge the configured accounts and settings into the global config. Then it will archive the deprecated config as ${archivedConfigName} for you to manually cleanup at your convenience.`,
|
|
3080
3217
|
confirmPrompt: 'Merge the deprecated config into your global config?',
|
|
@@ -3320,7 +3457,6 @@ export const lib = {
|
|
|
3320
3457
|
installAppPrompt: {
|
|
3321
3458
|
explanation: 'Local development requires this app to be installed in the target test account.',
|
|
3322
3459
|
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.",
|
|
3323
|
-
staticAuthExplanation: (projectAccountId, testingAccountId, projectName, appUid) => `To install this static auth app, your testing account ${uiAccountDescription(testingAccountId)} must be on ${uiLink("this app's allowlist", getAppAllowlistUrl(projectAccountId, projectName, appUid))}.`,
|
|
3324
3460
|
prompt: 'Open HubSpot to install this app?',
|
|
3325
3461
|
autoPrompt: 'Install this app in your target test account?',
|
|
3326
3462
|
reinstallPrompt: 'Open HubSpot to reinstall this app?',
|