@hubspot/cli 7.5.11-experimental.0 → 7.7.0-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 (289) hide show
  1. package/bin/cli.js +5 -6
  2. package/bin/hsmcp.d.ts +2 -0
  3. package/bin/hsmcp.js +13 -0
  4. package/commands/account/auth.d.ts +3 -7
  5. package/commands/account/auth.js +19 -9
  6. package/commands/account/clean.d.ts +3 -7
  7. package/commands/account/clean.js +16 -9
  8. package/commands/account/createOverride.d.ts +3 -7
  9. package/commands/account/createOverride.js +23 -6
  10. package/commands/account/info.d.ts +3 -7
  11. package/commands/account/info.js +13 -5
  12. package/commands/account/list.d.ts +3 -7
  13. package/commands/account/list.js +15 -8
  14. package/commands/account/remove.d.ts +3 -7
  15. package/commands/account/remove.js +21 -9
  16. package/commands/account/removeOverride.d.ts +3 -7
  17. package/commands/account/removeOverride.js +23 -6
  18. package/commands/account/rename.d.ts +3 -7
  19. package/commands/account/rename.js +16 -9
  20. package/commands/account/use.d.ts +5 -9
  21. package/commands/account/use.js +14 -6
  22. package/commands/account.d.ts +3 -4
  23. package/commands/account.js +35 -58
  24. package/commands/app/migrate.d.ts +1 -2
  25. package/commands/app/migrate.js +7 -8
  26. package/commands/app/secret/add.d.ts +7 -0
  27. package/commands/app/secret/add.js +64 -0
  28. package/commands/app/secret/delete.d.ts +8 -0
  29. package/commands/app/secret/delete.js +87 -0
  30. package/commands/app/secret/list.d.ts +6 -0
  31. package/commands/app/secret/list.js +64 -0
  32. package/commands/app/secret/update.d.ts +7 -0
  33. package/commands/app/secret/update.js +77 -0
  34. package/commands/app/secret.d.ts +3 -0
  35. package/commands/app/secret.js +30 -0
  36. package/commands/app.d.ts +2 -5
  37. package/commands/app.js +12 -8
  38. package/commands/auth.d.ts +3 -7
  39. package/commands/auth.js +12 -5
  40. package/commands/cms/convertFields.d.ts +7 -1
  41. package/commands/cms/convertFields.js +57 -41
  42. package/commands/cms/getReactModule.d.ts +7 -1
  43. package/commands/cms/getReactModule.js +52 -34
  44. package/commands/cms/lighthouseScore.d.ts +8 -1
  45. package/commands/cms/lighthouseScore.js +129 -100
  46. package/commands/cms.d.ts +3 -1
  47. package/commands/cms.js +24 -15
  48. package/commands/completion.d.ts +3 -1
  49. package/commands/completion.js +25 -12
  50. package/commands/config/migrate.d.ts +3 -7
  51. package/commands/config/migrate.js +25 -15
  52. package/commands/config/set.d.ts +5 -6
  53. package/commands/config/set.js +38 -14
  54. package/commands/config.d.ts +3 -4
  55. package/commands/config.js +20 -44
  56. package/commands/create/api-sample.d.ts +3 -1
  57. package/commands/create/api-sample.js +34 -38
  58. package/commands/create/app.d.ts +3 -1
  59. package/commands/create/app.js +9 -7
  60. package/commands/create/function.d.ts +3 -1
  61. package/commands/create/function.js +11 -10
  62. package/commands/create/index.d.ts +5 -1
  63. package/commands/create/index.js +23 -11
  64. package/commands/create/module.d.ts +3 -1
  65. package/commands/create/module.js +14 -13
  66. package/commands/create/react-app.d.ts +3 -1
  67. package/commands/create/react-app.js +10 -7
  68. package/commands/create/template.d.ts +3 -1
  69. package/commands/create/template.js +14 -14
  70. package/commands/create/vue-app.d.ts +3 -1
  71. package/commands/create/vue-app.js +10 -7
  72. package/commands/create/webpack-serverless.d.ts +3 -1
  73. package/commands/create/webpack-serverless.js +10 -7
  74. package/commands/create/website-theme.d.ts +3 -1
  75. package/commands/create/website-theme.js +10 -9
  76. package/commands/create.d.ts +4 -24
  77. package/commands/create.js +64 -74
  78. package/commands/customObject/create.d.ts +4 -9
  79. package/commands/customObject/create.js +17 -10
  80. package/commands/customObject/schema/create.d.ts +4 -9
  81. package/commands/customObject/schema/create.js +18 -11
  82. package/commands/customObject/schema/delete.d.ts +4 -9
  83. package/commands/customObject/schema/delete.js +17 -10
  84. package/commands/customObject/schema/fetch-all.d.ts +4 -9
  85. package/commands/customObject/schema/fetch-all.js +17 -10
  86. package/commands/customObject/schema/fetch.d.ts +4 -9
  87. package/commands/customObject/schema/fetch.js +17 -10
  88. package/commands/customObject/schema/list.d.ts +4 -8
  89. package/commands/customObject/schema/list.js +17 -10
  90. package/commands/customObject/schema/update.d.ts +4 -9
  91. package/commands/customObject/schema/update.js +18 -11
  92. package/commands/customObject/schema.d.ts +3 -5
  93. package/commands/customObject/schema.js +27 -54
  94. package/commands/customObject.d.ts +3 -4
  95. package/commands/customObject.js +20 -45
  96. package/commands/doctor.d.ts +6 -8
  97. package/commands/doctor.js +32 -21
  98. package/commands/feedback.d.ts +4 -1
  99. package/commands/feedback.js +40 -47
  100. package/commands/fetch.d.ts +12 -1
  101. package/commands/fetch.js +49 -33
  102. package/commands/filemanager/fetch.d.ts +4 -9
  103. package/commands/filemanager/fetch.js +18 -11
  104. package/commands/filemanager/upload.d.ts +4 -9
  105. package/commands/filemanager/upload.js +17 -11
  106. package/commands/filemanager.d.ts +3 -4
  107. package/commands/filemanager.js +20 -41
  108. package/commands/function/deploy.d.ts +6 -1
  109. package/commands/function/deploy.js +70 -50
  110. package/commands/function/list.d.ts +6 -1
  111. package/commands/function/list.js +44 -32
  112. package/commands/function/server.d.ts +10 -1
  113. package/commands/function/server.js +49 -38
  114. package/commands/function.d.ts +5 -1
  115. package/commands/function.js +24 -10
  116. package/commands/hubdb/clear.d.ts +4 -9
  117. package/commands/hubdb/clear.js +17 -10
  118. package/commands/hubdb/create.d.ts +4 -9
  119. package/commands/hubdb/create.js +17 -10
  120. package/commands/hubdb/delete.d.ts +4 -9
  121. package/commands/hubdb/delete.js +17 -10
  122. package/commands/hubdb/fetch.d.ts +4 -9
  123. package/commands/hubdb/fetch.js +17 -10
  124. package/commands/hubdb.d.ts +3 -2
  125. package/commands/hubdb.js +23 -45
  126. package/commands/init.d.ts +3 -7
  127. package/commands/init.js +12 -5
  128. package/commands/lint.d.ts +6 -4
  129. package/commands/lint.js +44 -43
  130. package/commands/list.d.ts +3 -7
  131. package/commands/list.js +19 -11
  132. package/commands/logs.d.ts +10 -1
  133. package/commands/logs.js +53 -44
  134. package/commands/module/marketplace-validate.d.ts +6 -1
  135. package/commands/module/marketplace-validate.js +39 -27
  136. package/commands/module.d.ts +3 -1
  137. package/commands/module.js +22 -10
  138. package/commands/mv.d.ts +3 -7
  139. package/commands/mv.js +19 -11
  140. package/commands/open.d.ts +3 -7
  141. package/commands/open.js +19 -11
  142. package/commands/project/cloneApp.d.ts +1 -1
  143. package/commands/project/cloneApp.js +2 -2
  144. package/commands/project/create.js +3 -3
  145. package/commands/project/deploy.d.ts +1 -0
  146. package/commands/project/deploy.js +40 -12
  147. package/commands/project/dev/index.d.ts +1 -4
  148. package/commands/project/dev/index.js +48 -16
  149. package/commands/project/dev/unifiedFlow.d.ts +2 -1
  150. package/commands/project/dev/unifiedFlow.js +85 -30
  151. package/commands/project/migrate.d.ts +1 -0
  152. package/commands/project/profile/add.d.ts +7 -0
  153. package/commands/project/profile/add.js +209 -0
  154. package/commands/project/profile/delete.d.ts +6 -0
  155. package/commands/project/profile/delete.js +123 -0
  156. package/commands/project/profile.d.ts +3 -0
  157. package/commands/project/profile.js +25 -0
  158. package/commands/project/upload.d.ts +1 -0
  159. package/commands/project/upload.js +38 -8
  160. package/commands/project/validate.d.ts +4 -0
  161. package/commands/project/validate.js +53 -0
  162. package/commands/project.js +4 -0
  163. package/commands/remove.d.ts +3 -7
  164. package/commands/remove.js +19 -11
  165. package/commands/sandbox/create.d.ts +4 -9
  166. package/commands/sandbox/create.js +18 -11
  167. package/commands/sandbox/delete.d.ts +4 -9
  168. package/commands/sandbox/delete.js +18 -11
  169. package/commands/sandbox.d.ts +3 -4
  170. package/commands/sandbox.js +20 -43
  171. package/commands/secret/addSecret.d.ts +4 -9
  172. package/commands/secret/addSecret.js +17 -10
  173. package/commands/secret/deleteSecret.d.ts +4 -9
  174. package/commands/secret/deleteSecret.js +17 -10
  175. package/commands/secret/listSecret.d.ts +4 -9
  176. package/commands/secret/listSecret.js +17 -10
  177. package/commands/secret/updateSecret.d.ts +4 -9
  178. package/commands/secret/updateSecret.js +17 -10
  179. package/commands/secret.d.ts +3 -4
  180. package/commands/secret.js +25 -48
  181. package/commands/setupMcp.d.ts +8 -0
  182. package/commands/setupMcp.js +229 -0
  183. package/commands/theme/generate-selectors.d.ts +3 -7
  184. package/commands/theme/generate-selectors.js +14 -6
  185. package/commands/theme/marketplace-validate.d.ts +4 -9
  186. package/commands/theme/marketplace-validate.js +17 -10
  187. package/commands/theme/preview.d.ts +4 -9
  188. package/commands/theme/preview.js +16 -9
  189. package/commands/theme.d.ts +3 -4
  190. package/commands/theme.js +23 -46
  191. package/commands/upload.d.ts +12 -1
  192. package/commands/upload.js +118 -97
  193. package/commands/watch.d.ts +14 -1
  194. package/commands/watch.js +76 -65
  195. package/lang/en.d.ts +838 -574
  196. package/lang/en.js +630 -373
  197. package/lang/en.lyaml +30 -23
  198. package/lib/accountTypes.js +2 -1
  199. package/lib/app/migrate.d.ts +23 -0
  200. package/lib/app/migrate.js +14 -3
  201. package/lib/app/migrate_legacy.js +7 -7
  202. package/lib/app/urls.d.ts +16 -0
  203. package/lib/app/urls.js +16 -0
  204. package/lib/configMigrate.js +24 -10
  205. package/lib/configOptions.d.ts +4 -0
  206. package/lib/configOptions.js +41 -46
  207. package/lib/constants.d.ts +6 -0
  208. package/lib/constants.js +7 -1
  209. package/lib/dependencyManagement.d.ts +0 -5
  210. package/lib/dependencyManagement.js +13 -39
  211. package/lib/doctor/Doctor.js +2 -1
  212. package/lib/filesystem.d.ts +1 -1
  213. package/lib/interpolation.d.ts +2 -3
  214. package/lib/lang.d.ts +2 -3
  215. package/lib/middleware/autoUpdateMiddleware.d.ts +1 -0
  216. package/lib/middleware/autoUpdateMiddleware.js +89 -0
  217. package/lib/middleware/configMiddleware.js +8 -0
  218. package/lib/npm.d.ts +9 -0
  219. package/lib/npm.js +36 -0
  220. package/lib/projectProfiles.d.ts +6 -0
  221. package/lib/projectProfiles.js +65 -0
  222. package/lib/projects/buildAndDeploy.js +17 -2
  223. package/lib/projects/localDev/AppDevModeInterface.d.ts +26 -0
  224. package/lib/projects/localDev/AppDevModeInterface.js +156 -0
  225. package/lib/projects/localDev/DevServerManagerV2.d.ts +11 -22
  226. package/lib/projects/localDev/DevServerManagerV2.js +19 -15
  227. package/lib/projects/localDev/LocalDevLogger.d.ts +30 -0
  228. package/lib/projects/localDev/LocalDevLogger.js +158 -0
  229. package/lib/projects/localDev/LocalDevManager.js +12 -5
  230. package/lib/projects/localDev/LocalDevProcess.d.ts +27 -0
  231. package/lib/projects/localDev/LocalDevProcess.js +171 -0
  232. package/lib/projects/localDev/LocalDevState.d.ts +37 -0
  233. package/lib/projects/localDev/LocalDevState.js +78 -0
  234. package/lib/projects/localDev/LocalDevWatcher.d.ts +10 -0
  235. package/lib/projects/localDev/LocalDevWatcher.js +56 -0
  236. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +17 -0
  237. package/lib/projects/localDev/LocalDevWebsocketServer.js +92 -0
  238. package/lib/projects/localDev/helpers.d.ts +3 -2
  239. package/lib/projects/localDev/helpers.js +32 -2
  240. package/lib/projects/upload.d.ts +2 -1
  241. package/lib/projects/upload.js +2 -2
  242. package/lib/prompts/createApiSamplePrompt.d.ts +2 -10
  243. package/lib/prompts/createTemplatePrompt.d.ts +22 -4
  244. package/lib/prompts/installAppPrompt.d.ts +1 -0
  245. package/lib/prompts/installAppPrompt.js +35 -0
  246. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +6 -1
  247. package/lib/prompts/projectDevTargetAccountPrompt.js +6 -6
  248. package/lib/prompts/promptUtils.d.ts +2 -1
  249. package/lib/prompts/promptUtils.js +2 -1
  250. package/lib/prompts/selectAppPrompt.d.ts +2 -0
  251. package/lib/prompts/selectAppPrompt.js +40 -0
  252. package/lib/prompts/{selectPublicAppPrompt.d.ts → selectPublicAppForMigrationPrompt.d.ts} +1 -1
  253. package/lib/prompts/{selectPublicAppPrompt.js → selectPublicAppForMigrationPrompt.js} +8 -8
  254. package/lib/testUtils.d.ts +3 -3
  255. package/lib/testUtils.js +8 -9
  256. package/lib/ui/index.js +4 -1
  257. package/lib/upload.d.ts +1 -1
  258. package/lib/validation.js +4 -5
  259. package/lib/yargsUtils.d.ts +4 -0
  260. package/lib/yargsUtils.js +6 -0
  261. package/mcp-server/index.d.ts +1 -0
  262. package/mcp-server/index.js +17 -0
  263. package/mcp-server/mcpLoader.d.ts +5 -0
  264. package/mcp-server/mcpLoader.js +24 -0
  265. package/mcp-server/tools/ExplainProjectStructureTool.d.ts +33 -0
  266. package/mcp-server/tools/ExplainProjectStructureTool.js +266 -0
  267. package/mcp-server/tools/GenerateAppComponentTool.d.ts +99 -0
  268. package/mcp-server/tools/GenerateAppComponentTool.js +193 -0
  269. package/mcp-server/tools/GenerateCardComponentTool.d.ts +74 -0
  270. package/mcp-server/tools/GenerateCardComponentTool.js +146 -0
  271. package/mcp-server/tools/GenerateProjectConfigTool.d.ts +32 -0
  272. package/mcp-server/tools/GenerateProjectConfigTool.js +40 -0
  273. package/mcp-server/tools/HubSpotCLIHelper.d.ts +16 -0
  274. package/mcp-server/tools/HubSpotCLIHelper.js +74 -0
  275. package/mcp-server/tools/UploadProjectTool.d.ts +44 -0
  276. package/mcp-server/tools/UploadProjectTool.js +149 -0
  277. package/mcp-server/tools/ValidateProjectTool.d.ts +62 -0
  278. package/mcp-server/tools/ValidateProjectTool.js +315 -0
  279. package/package.json +13 -6
  280. package/types/Cms.d.ts +30 -0
  281. package/types/Cms.js +2 -0
  282. package/types/LocalDev.d.ts +24 -0
  283. package/types/LocalDev.js +2 -0
  284. package/types/Prompts.d.ts +0 -7
  285. package/types/Yargs.d.ts +8 -1
  286. package/lib/projects/localDev/LocalDevManagerV2.d.ts +0 -64
  287. package/lib/projects/localDev/LocalDevManagerV2.js +0 -345
  288. package/lib/prompts/installPublicAppPrompt.d.ts +0 -1
  289. package/lib/prompts/installPublicAppPrompt.js +0 -41
@@ -3,16 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.describe = exports.command = void 0;
7
- exports.handler = handler;
8
- exports.builder = builder;
9
6
  const SpinniesManager_1 = __importDefault(require("../../lib/ui/SpinniesManager"));
10
- const commonOpts_1 = require("../../lib/commonOpts");
11
7
  const usageTracking_1 = require("../../lib/usageTracking");
12
8
  const marketplaceValidate_1 = require("../../lib/marketplaceValidate");
13
9
  const lang_1 = require("../../lib/lang");
14
- exports.command = 'marketplace-validate <path>';
15
- exports.describe = (0, lang_1.i18n)('commands.theme.subcommands.marketplaceValidate.describe');
10
+ const yargsUtils_1 = require("../../lib/yargsUtils");
11
+ const command = 'marketplace-validate <path>';
12
+ const describe = (0, lang_1.i18n)('commands.theme.subcommands.marketplaceValidate.describe');
16
13
  async function handler(args) {
17
14
  const { path, derivedAccountId } = args;
18
15
  (0, usageTracking_1.trackCommandUsage)('validate', {}, derivedAccountId);
@@ -31,10 +28,7 @@ async function handler(args) {
31
28
  (0, marketplaceValidate_1.displayValidationResults)('commands.theme.subcommands.marketplaceValidate', validationResults);
32
29
  process.exit();
33
30
  }
34
- function builder(yargs) {
35
- (0, commonOpts_1.addConfigOptions)(yargs);
36
- (0, commonOpts_1.addAccountOptions)(yargs);
37
- (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
31
+ function themeValidateBuilder(yargs) {
38
32
  yargs.positional('path', {
39
33
  describe: (0, lang_1.i18n)('commands.theme.subcommands.marketplaceValidate.positionals.path.describe'),
40
34
  type: 'string',
@@ -42,3 +36,16 @@ function builder(yargs) {
42
36
  });
43
37
  return yargs;
44
38
  }
39
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(themeValidateBuilder, command, describe, {
40
+ useGlobalOptions: true,
41
+ useConfigOptions: true,
42
+ useAccountOptions: true,
43
+ useEnvironmentOptions: true,
44
+ });
45
+ const themeValidateCommand = {
46
+ command,
47
+ describe,
48
+ handler,
49
+ builder,
50
+ };
51
+ exports.default = themeValidateCommand;
@@ -1,9 +1,5 @@
1
- import { Argv, ArgumentsCamelCase } from 'yargs';
2
- import { CommonArgs, ConfigArgs, AccountArgs } from '../../types/Yargs';
3
- export declare const command = "preview [--src] [--dest]";
4
- export declare const describe: string;
5
- type CombinedArgs = CommonArgs & ConfigArgs & AccountArgs;
6
- type ThemePreviewArgs = CombinedArgs & {
1
+ import { CommonArgs, ConfigArgs, AccountArgs, YargsCommandModule } from '../../types/Yargs';
2
+ type ThemePreviewArgs = CommonArgs & ConfigArgs & AccountArgs & {
7
3
  src: string;
8
4
  dest: string;
9
5
  notify: string;
@@ -12,6 +8,5 @@ type ThemePreviewArgs = CombinedArgs & {
12
8
  resetSession?: boolean;
13
9
  generateFieldsTypes?: boolean;
14
10
  };
15
- export declare function handler(args: ArgumentsCamelCase<ThemePreviewArgs>): Promise<void>;
16
- export declare function builder(yargs: Argv): Argv<ThemePreviewArgs>;
17
- export {};
11
+ declare const themePreviewCommand: YargsCommandModule<unknown, ThemePreviewArgs>;
12
+ export default themePreviewCommand;
@@ -3,9 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.describe = exports.command = void 0;
7
- exports.handler = handler;
8
- exports.builder = builder;
9
6
  const fs_1 = __importDefault(require("fs"));
10
7
  const path_1 = __importDefault(require("path"));
11
8
  const cli_progress_1 = __importDefault(require("cli-progress"));
@@ -15,7 +12,6 @@ const path_2 = require("@hubspot/local-dev-lib/path");
15
12
  const files_1 = require("@hubspot/local-dev-lib/constants/files");
16
13
  const themes_1 = require("@hubspot/local-dev-lib/cms/themes");
17
14
  const theme_preview_dev_server_1 = require("@hubspot/theme-preview-dev-server");
18
- const commonOpts_1 = require("../../lib/commonOpts");
19
15
  const upload_1 = require("../../lib/upload");
20
16
  const usageTracking_1 = require("../../lib/usageTracking");
21
17
  const previewPrompt_1 = require("../../lib/prompts/previewPrompt");
@@ -27,8 +23,9 @@ const structure_1 = require("../../lib/projects/structure");
27
23
  const Projects_1 = require("../../types/Projects");
28
24
  const hasFeature_1 = require("../../lib/hasFeature");
29
25
  const constants_1 = require("../../lib/constants");
30
- exports.command = 'preview [--src] [--dest]';
31
- exports.describe = (0, lang_1.i18n)('commands.theme.subcommands.preview.describe');
26
+ const yargsUtils_1 = require("../../lib/yargsUtils");
27
+ const command = 'preview [--src] [--dest]';
28
+ const describe = (0, lang_1.i18n)('commands.theme.subcommands.preview.describe');
32
29
  function validateSrcPath(src) {
33
30
  const logInvalidPath = () => {
34
31
  logger_1.logger.error((0, lang_1.i18n)('commands.theme.subcommands.preview.errors.invalidPath', {
@@ -183,9 +180,7 @@ async function handler(args) {
183
180
  });
184
181
  }
185
182
  }
186
- function builder(yargs) {
187
- (0, commonOpts_1.addConfigOptions)(yargs);
188
- (0, commonOpts_1.addAccountOptions)(yargs);
183
+ function themePreviewBuilder(yargs) {
189
184
  yargs
190
185
  .option('src', {
191
186
  describe: (0, lang_1.i18n)('commands.theme.subcommands.preview.options.src.describe'),
@@ -221,3 +216,15 @@ function builder(yargs) {
221
216
  });
222
217
  return yargs;
223
218
  }
219
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(themePreviewBuilder, command, describe, {
220
+ useGlobalOptions: true,
221
+ useConfigOptions: true,
222
+ useAccountOptions: true,
223
+ });
224
+ const themePreviewCommand = {
225
+ command,
226
+ describe,
227
+ handler,
228
+ builder,
229
+ };
230
+ exports.default = themePreviewCommand;
@@ -1,4 +1,3 @@
1
- import { Argv } from 'yargs';
2
- export declare const command: string[];
3
- export declare const describe: string;
4
- export declare function builder(yargs: Argv): Argv;
1
+ import { YargsCommandModuleBucket } from '../types/Yargs';
2
+ declare const themeCommand: YargsCommandModuleBucket;
3
+ export default themeCommand;
package/commands/theme.js CHANGED
@@ -1,53 +1,30 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.describe = exports.command = void 0;
37
- exports.builder = builder;
38
- const marketplaceValidate = __importStar(require("./theme/marketplace-validate"));
39
- const generateSelectors = __importStar(require("./theme/generate-selectors"));
40
- const previewCommand = __importStar(require("./theme/preview"));
41
- const commonOpts_1 = require("../lib/commonOpts");
6
+ const marketplace_validate_1 = __importDefault(require("./theme/marketplace-validate"));
7
+ const generate_selectors_1 = __importDefault(require("./theme/generate-selectors"));
8
+ const preview_1 = __importDefault(require("./theme/preview"));
42
9
  const lang_1 = require("../lib/lang");
43
- exports.command = ['theme', 'themes'];
44
- exports.describe = (0, lang_1.i18n)('commands.theme.describe');
45
- function builder(yargs) {
46
- (0, commonOpts_1.addGlobalOptions)(yargs);
10
+ const yargsUtils_1 = require("../lib/yargsUtils");
11
+ const command = ['theme', 'themes'];
12
+ const describe = (0, lang_1.i18n)('commands.theme.describe');
13
+ function themeBuilder(yargs) {
47
14
  yargs
48
- .command(previewCommand)
49
- .command(marketplaceValidate)
50
- .command(generateSelectors)
15
+ .command(preview_1.default)
16
+ .command(marketplace_validate_1.default)
17
+ .command(generate_selectors_1.default)
51
18
  .demandCommand(1, '');
52
19
  return yargs;
53
20
  }
21
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(themeBuilder, command, describe);
22
+ const themeCommand = {
23
+ command,
24
+ describe,
25
+ builder,
26
+ handler: () => { },
27
+ };
28
+ exports.default = themeCommand;
29
+ // TODO Remove this legacy export once we've migrated all commands to TS
30
+ module.exports = themeCommand;
@@ -1 +1,12 @@
1
- export {};
1
+ import { CommonArgs, ConfigArgs, AccountArgs, EnvironmentArgs, CmsPublishModeArgs, YargsCommandModule } from '../types/Yargs';
2
+ type UploadArgs = CommonArgs & ConfigArgs & AccountArgs & EnvironmentArgs & CmsPublishModeArgs & {
3
+ src?: string;
4
+ dest?: string;
5
+ fieldOptions?: string | string[];
6
+ saveOutput?: boolean;
7
+ convertFields?: boolean;
8
+ clean?: boolean;
9
+ force?: boolean;
10
+ };
11
+ declare const uploadCommand: YargsCommandModule<unknown, UploadArgs>;
12
+ export default uploadCommand;
@@ -1,107 +1,112 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // @ts-nocheck
4
- const fs = require('fs');
5
- const path = require('path');
6
- const { uploadFolder, hasUploadErrors, } = require('@hubspot/local-dev-lib/cms/uploadFolder');
7
- const { getFileMapperQueryValues, } = require('@hubspot/local-dev-lib/fileMapper');
8
- const { upload, deleteFile } = require('@hubspot/local-dev-lib/api/fileMapper');
9
- const { getCwd, convertToUnixPath, isAllowedExtension, } = require('@hubspot/local-dev-lib/path');
10
- const { logger } = require('@hubspot/local-dev-lib/logger');
11
- const { ApiErrorContext, logError } = require('../lib/errorHandlers/index');
12
- const { validateSrcAndDestPaths, } = require('@hubspot/local-dev-lib/cms/modules');
13
- const { shouldIgnoreFile } = require('@hubspot/local-dev-lib/ignoreRules');
14
- const { getThemePreviewUrl, getThemeJSONPath, } = require('@hubspot/local-dev-lib/cms/themes');
15
- const { addConfigOptions, addAccountOptions, addCmsPublishModeOptions, addUseEnvironmentOptions, addGlobalOptions, getCmsPublishMode, } = require('../lib/commonOpts');
16
- const { uploadPrompt } = require('../lib/prompts/uploadPrompt');
17
- const { confirmPrompt } = require('../lib/prompts/promptUtils');
18
- const { validateCmsPublishMode } = require('../lib/validation');
19
- const { trackCommandUsage } = require('../lib/usageTracking');
20
- const { getUploadableFileList } = require('../lib/upload');
21
- const { i18n } = require('../lib/lang');
22
- const { EXIT_CODES } = require('../lib/enums/exitCodes');
23
- const { FieldsJs, isConvertableFieldJs, cleanupTmpDirSync, } = require('@hubspot/local-dev-lib/cms/handleFieldsJS');
24
- exports.command = 'upload [src] [dest]';
25
- exports.describe = i18n('commands.upload.describe');
26
- const logThemePreview = (filePath, accountId) => {
27
- const previewUrl = getThemePreviewUrl(filePath, accountId);
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const uploadFolder_1 = require("@hubspot/local-dev-lib/cms/uploadFolder");
9
+ const fileMapper_1 = require("@hubspot/local-dev-lib/fileMapper");
10
+ const fileMapper_2 = require("@hubspot/local-dev-lib/api/fileMapper");
11
+ const path_2 = require("@hubspot/local-dev-lib/path");
12
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
13
+ const modules_1 = require("@hubspot/local-dev-lib/cms/modules");
14
+ const ignoreRules_1 = require("@hubspot/local-dev-lib/ignoreRules");
15
+ const themes_1 = require("@hubspot/local-dev-lib/cms/themes");
16
+ const handleFieldsJS_1 = require("@hubspot/local-dev-lib/cms/handleFieldsJS");
17
+ const index_1 = require("../lib/errorHandlers/index");
18
+ const commonOpts_1 = require("../lib/commonOpts");
19
+ const uploadPrompt_1 = require("../lib/prompts/uploadPrompt");
20
+ const promptUtils_1 = require("../lib/prompts/promptUtils");
21
+ const validation_1 = require("../lib/validation");
22
+ const usageTracking_1 = require("../lib/usageTracking");
23
+ const upload_1 = require("../lib/upload");
24
+ const lang_1 = require("../lib/lang");
25
+ const exitCodes_1 = require("../lib/enums/exitCodes");
26
+ const yargsUtils_1 = require("../lib/yargsUtils");
27
+ const command = 'upload [src] [dest]';
28
+ const describe = (0, lang_1.i18n)('commands.upload.describe');
29
+ function logThemePreview(filePath, accountId) {
30
+ const previewUrl = (0, themes_1.getThemePreviewUrl)(filePath, accountId);
28
31
  // Only log if we are actually in a theme
29
32
  if (previewUrl) {
30
- logger.log(i18n('commands.upload.previewUrl', {
33
+ logger_1.logger.log((0, lang_1.i18n)('commands.upload.previewUrl', {
31
34
  previewUrl,
32
35
  }));
33
36
  }
34
- };
35
- exports.handler = async (options) => {
36
- if (!validateCmsPublishMode(options)) {
37
- process.exit(EXIT_CODES.WARNING);
37
+ }
38
+ async function handler(args) {
39
+ if (!(0, validation_1.validateCmsPublishMode)(args)) {
40
+ process.exit(exitCodes_1.EXIT_CODES.WARNING);
38
41
  }
39
- const { derivedAccountId } = options;
40
- const cmsPublishMode = getCmsPublishMode(options);
41
- const uploadPromptAnswers = await uploadPrompt(options);
42
- const src = options.src || uploadPromptAnswers.src;
43
- const saveOutput = options.saveOutput;
44
- let dest = options.dest || uploadPromptAnswers.dest;
45
- let absoluteSrcPath = path.resolve(getCwd(), src);
42
+ const { derivedAccountId } = args;
43
+ const cmsPublishMode = (0, commonOpts_1.getCmsPublishMode)(args);
44
+ const uploadPromptAnswers = await (0, uploadPrompt_1.uploadPrompt)(args);
45
+ const src = args.src || uploadPromptAnswers.src;
46
+ const saveOutput = args.saveOutput;
47
+ let dest = args.dest || uploadPromptAnswers.dest;
48
+ let absoluteSrcPath = path_1.default.resolve((0, path_2.getCwd)(), src);
46
49
  if (!dest) {
47
- logger.error(i18n('commands.upload.errors.destinationRequired'));
50
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.destinationRequired'));
48
51
  return;
49
52
  }
50
53
  // Check for theme.json file and determine the root path for the project based on it if it exists
51
- const themeJsonPath = getThemeJSONPath(absoluteSrcPath);
54
+ const themeJsonPath = (0, themes_1.getThemeJSONPath)(absoluteSrcPath);
52
55
  const projectRoot = themeJsonPath
53
- ? path.dirname(themeJsonPath)
54
- : path.dirname(getCwd());
56
+ ? path_1.default.dirname(themeJsonPath)
57
+ : path_1.default.dirname((0, path_2.getCwd)());
55
58
  const convertFields = projectRoot &&
56
- isConvertableFieldJs(projectRoot, absoluteSrcPath, options.convertFields);
59
+ (0, handleFieldsJS_1.isConvertableFieldJs)(projectRoot, absoluteSrcPath, args.convertFields);
57
60
  let fieldsJs;
58
61
  if (convertFields) {
59
- fieldsJs = await new FieldsJs(projectRoot, absoluteSrcPath, undefined, options.fieldOptions).init();
62
+ fieldsJs = await new handleFieldsJS_1.FieldsJs(projectRoot, absoluteSrcPath, undefined, args.fieldOptions).init();
60
63
  if (fieldsJs.rejected)
61
64
  return;
62
65
  // Ensures that the dest path is a .json. The user might pass '.js' accidentally - this ensures it just works.
63
- absoluteSrcPath = fieldsJs.outputPath;
64
- dest = path.join(path.dirname(dest), 'fields.json');
66
+ if (fieldsJs.outputPath) {
67
+ absoluteSrcPath = fieldsJs.outputPath;
68
+ }
69
+ dest = path_1.default.join(path_1.default.dirname(dest), 'fields.json');
65
70
  }
66
71
  let stats;
67
72
  try {
68
- stats = fs.statSync(absoluteSrcPath);
73
+ stats = fs_1.default.statSync(absoluteSrcPath);
69
74
  if (!stats.isFile() && !stats.isDirectory()) {
70
- logger.error(i18n('commands.upload.errors.invalidPath', {
75
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.invalidPath', {
71
76
  path: src,
72
77
  }));
73
78
  return;
74
79
  }
75
80
  }
76
81
  catch (e) {
77
- logger.error(i18n('commands.upload.errors.invalidPath', {
82
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.invalidPath', {
78
83
  path: src,
79
84
  }));
80
85
  return;
81
86
  }
82
- const normalizedDest = convertToUnixPath(dest);
83
- trackCommandUsage('upload', { mode: cmsPublishMode, type: stats.isFile() ? 'file' : 'folder' }, derivedAccountId);
84
- const srcDestIssues = await validateSrcAndDestPaths({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
87
+ const normalizedDest = (0, path_2.convertToUnixPath)(dest);
88
+ (0, usageTracking_1.trackCommandUsage)('upload', { mode: cmsPublishMode, type: stats.isFile() ? 'file' : 'folder' }, derivedAccountId);
89
+ const srcDestIssues = await (0, modules_1.validateSrcAndDestPaths)({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
85
90
  if (srcDestIssues.length) {
86
- srcDestIssues.forEach(({ message }) => logger.error(message));
87
- process.exit(EXIT_CODES.WARNING);
91
+ srcDestIssues.forEach(({ message }) => logger_1.logger.error(message));
92
+ process.exit(exitCodes_1.EXIT_CODES.WARNING);
88
93
  }
89
94
  if (stats.isFile()) {
90
- if (!isAllowedExtension(src) && !convertFields) {
91
- logger.error(i18n('commands.upload.errors.invalidPath', {
95
+ if (!(0, path_2.isAllowedExtension)(src) && !convertFields) {
96
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.invalidPath', {
92
97
  path: src,
93
98
  }));
94
99
  return;
95
100
  }
96
- if (shouldIgnoreFile(absoluteSrcPath)) {
97
- logger.error(i18n('commands.upload.errors.fileIgnored', {
101
+ if ((0, ignoreRules_1.shouldIgnoreFile)(absoluteSrcPath)) {
102
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.fileIgnored', {
98
103
  path: src,
99
104
  }));
100
105
  return;
101
106
  }
102
- upload(derivedAccountId, absoluteSrcPath, normalizedDest, getFileMapperQueryValues(cmsPublishMode, options))
107
+ (0, fileMapper_2.upload)(derivedAccountId, absoluteSrcPath, normalizedDest, (0, fileMapper_1.getFileMapperQueryValues)(cmsPublishMode))
103
108
  .then(() => {
104
- logger.success(i18n('commands.upload.success.fileUploaded', {
109
+ logger_1.logger.success((0, lang_1.i18n)('commands.upload.success.fileUploaded', {
105
110
  accountId: derivedAccountId,
106
111
  dest: normalizedDest,
107
112
  src,
@@ -109,127 +114,143 @@ exports.handler = async (options) => {
109
114
  logThemePreview(src, derivedAccountId);
110
115
  })
111
116
  .catch(error => {
112
- logger.error(i18n('commands.upload.errors.uploadFailed', {
117
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.uploadFailed', {
113
118
  dest: normalizedDest,
114
119
  src,
115
120
  }));
116
- logError(error, new ApiErrorContext({
121
+ (0, index_1.logError)(error, new index_1.ApiErrorContext({
117
122
  accountId: derivedAccountId,
118
123
  request: normalizedDest,
119
124
  payload: src,
120
125
  }));
121
- process.exit(EXIT_CODES.WARNING);
126
+ process.exit(exitCodes_1.EXIT_CODES.WARNING);
122
127
  })
123
128
  .finally(() => {
124
129
  if (!convertFields)
125
130
  return;
126
- if (saveOutput) {
131
+ if (saveOutput && fieldsJs) {
127
132
  fieldsJs.saveOutput();
128
133
  }
129
- cleanupTmpDirSync(fieldsJs.rootWriteDir);
134
+ if (fieldsJs) {
135
+ (0, handleFieldsJS_1.cleanupTmpDirSync)(fieldsJs.rootWriteDir);
136
+ }
130
137
  });
131
138
  }
132
139
  else {
133
- logger.log(i18n('commands.upload.uploading', {
140
+ logger_1.logger.log((0, lang_1.i18n)('commands.upload.uploading', {
134
141
  accountId: derivedAccountId,
135
142
  dest,
136
143
  src,
137
144
  }));
138
145
  // Generate the first-pass file list in here, and pass to uploadFolder.
139
- const filePaths = await getUploadableFileList(absoluteSrcPath, options.convertFields);
140
- if (options.clean) {
146
+ const filePaths = await (0, upload_1.getUploadableFileList)(absoluteSrcPath, args.convertFields ?? false);
147
+ if (args.clean) {
141
148
  // If clean is true, will first delete the dest folder and then upload src. Cleans up files that only exist on HS.
142
- let cleanUpload = options.force;
143
- if (!options.force) {
144
- cleanUpload = await confirmPrompt(i18n('commands.upload.confirmCleanUpload', {
149
+ let cleanUpload = args.force;
150
+ if (!args.force) {
151
+ cleanUpload = await (0, promptUtils_1.confirmPrompt)((0, lang_1.i18n)('commands.upload.confirmCleanUpload', {
145
152
  accountId: derivedAccountId,
146
153
  path: dest,
147
154
  }), { defaultAnswer: false });
148
155
  }
149
156
  if (cleanUpload) {
150
157
  try {
151
- await deleteFile(derivedAccountId, dest);
152
- logger.log(i18n('commands.upload.cleaning', {
158
+ await (0, fileMapper_2.deleteFile)(derivedAccountId, dest);
159
+ logger_1.logger.log((0, lang_1.i18n)('commands.upload.cleaning', {
153
160
  accountId: derivedAccountId,
154
161
  filePath: dest,
155
162
  }));
156
163
  }
157
164
  catch (error) {
158
- logger.error(i18n('commands.upload.errors.deleteFailed', {
165
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.deleteFailed', {
159
166
  accountId: derivedAccountId,
160
167
  path: dest,
161
168
  }));
162
169
  }
163
170
  }
164
171
  }
165
- uploadFolder(derivedAccountId, absoluteSrcPath, dest, {
166
- cmsPublishMode,
167
- }, options, filePaths)
172
+ (0, uploadFolder_1.uploadFolder)(derivedAccountId, absoluteSrcPath, dest, {}, {
173
+ convertFields: args.convertFields,
174
+ // @ts-expect-error - fieldOptions is a string or string[]
175
+ fieldOptions: args.fieldOptions ?? undefined,
176
+ saveOutput: args.saveOutput,
177
+ }, filePaths)
168
178
  .then(results => {
169
- if (!hasUploadErrors(results)) {
170
- logger.success(i18n('commands.upload.success.uploadComplete', {
179
+ if (!(0, uploadFolder_1.hasUploadErrors)(results)) {
180
+ logger_1.logger.success((0, lang_1.i18n)('commands.upload.success.uploadComplete', {
171
181
  dest,
172
182
  }));
173
183
  logThemePreview(src, derivedAccountId);
174
184
  }
175
185
  else {
176
- logger.error(i18n('commands.upload.errors.someFilesFailed', {
186
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.someFilesFailed', {
177
187
  dest,
178
188
  }));
179
- process.exit(EXIT_CODES.WARNING);
189
+ process.exit(exitCodes_1.EXIT_CODES.WARNING);
180
190
  }
181
191
  })
182
192
  .catch(error => {
183
- logger.error(i18n('commands.upload.errors.uploadFailed', {
193
+ logger_1.logger.error((0, lang_1.i18n)('commands.upload.errors.uploadFailed', {
184
194
  dest,
185
195
  src,
186
196
  }));
187
- logError(error, {
197
+ (0, index_1.logError)(error, {
188
198
  accountId: derivedAccountId,
189
199
  });
190
- process.exit(EXIT_CODES.WARNING);
200
+ process.exit(exitCodes_1.EXIT_CODES.WARNING);
191
201
  });
192
202
  }
193
- };
194
- exports.builder = yargs => {
203
+ }
204
+ function uploadBuilder(yargs) {
195
205
  yargs.positional('src', {
196
- describe: i18n('commands.upload.positionals.src.describe'),
206
+ describe: (0, lang_1.i18n)('commands.upload.positionals.src.describe'),
197
207
  type: 'string',
198
208
  });
199
209
  yargs.positional('dest', {
200
- describe: i18n('commands.upload.positionals.dest.describe'),
210
+ describe: (0, lang_1.i18n)('commands.upload.positionals.dest.describe'),
201
211
  type: 'string',
202
212
  });
203
213
  yargs.option('fieldOptions', {
204
- describe: i18n('commands.upload.options.options.describe'),
214
+ describe: (0, lang_1.i18n)('commands.upload.options.options.describe'),
205
215
  type: 'array',
206
216
  default: [''],
207
217
  hidden: true,
208
218
  });
209
219
  yargs.option('saveOutput', {
210
- describe: i18n('commands.upload.options.saveOutput.describe'),
220
+ describe: (0, lang_1.i18n)('commands.upload.options.saveOutput.describe'),
211
221
  type: 'boolean',
212
222
  default: false,
213
223
  });
214
224
  yargs.option('convertFields', {
215
- describe: i18n('commands.upload.options.convertFields.describe'),
225
+ describe: (0, lang_1.i18n)('commands.upload.options.convertFields.describe'),
216
226
  type: 'boolean',
217
227
  default: false,
218
228
  });
219
229
  yargs.option('clean', {
220
- describe: i18n('commands.upload.options.clean.describe'),
230
+ describe: (0, lang_1.i18n)('commands.upload.options.clean.describe'),
221
231
  type: 'boolean',
222
232
  default: false,
223
233
  });
224
234
  yargs.option('force', {
225
- describe: i18n('commands.upload.options.force.describe'),
235
+ describe: (0, lang_1.i18n)('commands.upload.options.force.describe'),
226
236
  type: 'boolean',
227
237
  default: false,
228
238
  });
229
- addConfigOptions(yargs);
230
- addAccountOptions(yargs);
231
- addCmsPublishModeOptions(yargs, { write: true });
232
- addUseEnvironmentOptions(yargs);
233
- addGlobalOptions(yargs);
234
239
  return yargs;
240
+ }
241
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(uploadBuilder, command, describe, {
242
+ useGlobalOptions: true,
243
+ useConfigOptions: true,
244
+ useAccountOptions: true,
245
+ useEnvironmentOptions: true,
246
+ useCmsPublishModeOptions: true,
247
+ });
248
+ const uploadCommand = {
249
+ command,
250
+ describe,
251
+ handler,
252
+ builder,
235
253
  };
254
+ exports.default = uploadCommand;
255
+ // TODO remove this after cli.ts is ported to TS
256
+ module.exports = uploadCommand;
@@ -1 +1,14 @@
1
- export {};
1
+ import { AccountArgs, CmsPublishModeArgs, CommonArgs, ConfigArgs, EnvironmentArgs, YargsCommandModule } from '../types/Yargs';
2
+ type WatchCommandArgs = ConfigArgs & AccountArgs & EnvironmentArgs & CommonArgs & CmsPublishModeArgs & {
3
+ src?: string;
4
+ dest?: string;
5
+ fieldOptions?: string[];
6
+ remove?: boolean;
7
+ initialUpload?: boolean;
8
+ disableInitial?: boolean;
9
+ notify?: string;
10
+ convertFields?: boolean;
11
+ saveOutput?: boolean;
12
+ };
13
+ declare const watchCommand: YargsCommandModule<unknown, WatchCommandArgs>;
14
+ export default watchCommand;