@hubspot/cli 7.9.0 → 7.9.1-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 (214) hide show
  1. package/bin/cli.js +5 -4
  2. package/commands/__tests__/getStarted.test.js +10 -0
  3. package/commands/__tests__/project.test.js +2 -0
  4. package/commands/account/__tests__/rename.test.js +42 -0
  5. package/commands/account/auth.js +10 -14
  6. package/commands/account/clean.js +11 -19
  7. package/commands/account/createOverride.js +17 -23
  8. package/commands/account/info.js +8 -5
  9. package/commands/account/list.js +13 -18
  10. package/commands/account/remove.js +23 -22
  11. package/commands/account/removeOverride.js +8 -16
  12. package/commands/account/rename.d.ts +1 -1
  13. package/commands/account/rename.js +6 -3
  14. package/commands/account/use.js +19 -8
  15. package/commands/app/__tests__/migrate.test.js +8 -4
  16. package/commands/app/migrate.js +2 -2
  17. package/commands/auth.js +18 -14
  18. package/commands/cms/theme/preview.js +1 -4
  19. package/commands/config/migrate.js +5 -5
  20. package/commands/config/set.js +1 -2
  21. package/commands/customObject/createSchema.js +2 -3
  22. package/commands/customObject/updateSchema.js +2 -3
  23. package/commands/getStarted.js +15 -22
  24. package/commands/hubdb/__tests__/list.test.js +1 -0
  25. package/commands/hubdb/list.js +2 -2
  26. package/commands/hubdb.d.ts +1 -1
  27. package/commands/init.js +36 -32
  28. package/commands/project/__tests__/deploy.test.js +10 -5
  29. package/commands/project/__tests__/devUnifiedFlow.test.js +6 -4
  30. package/commands/project/__tests__/logs.test.js +4 -0
  31. package/commands/project/__tests__/updateDeps.test.js +142 -0
  32. package/commands/project/__tests__/validate.test.js +2 -2
  33. package/commands/project/cloneApp.js +2 -2
  34. package/commands/project/create.js +0 -1
  35. package/commands/project/deploy.js +2 -2
  36. package/commands/project/dev/deprecatedFlow.js +4 -5
  37. package/commands/project/dev/index.js +14 -4
  38. package/commands/project/dev/unifiedFlow.js +4 -5
  39. package/commands/project/listBuilds.js +7 -1
  40. package/commands/project/logs.js +2 -3
  41. package/commands/project/profile/add.js +6 -7
  42. package/commands/project/profile/delete.js +2 -2
  43. package/commands/project/updateDeps.d.ts +6 -0
  44. package/commands/project/updateDeps.js +80 -0
  45. package/commands/project/upload.js +9 -3
  46. package/commands/project/validate.js +9 -3
  47. package/commands/project/watch.js +7 -2
  48. package/commands/project.js +2 -0
  49. package/commands/sandbox/__tests__/create.test.js +14 -5
  50. package/commands/sandbox/create.js +4 -5
  51. package/commands/sandbox/delete.js +23 -20
  52. package/commands/testAccount/__tests__/create.test.js +68 -0
  53. package/commands/testAccount/create.d.ts +8 -0
  54. package/commands/testAccount/create.js +135 -45
  55. package/commands/testAccount/delete.js +9 -8
  56. package/commands/testAccount/importData.d.ts +1 -1
  57. package/lang/en.d.ts +3199 -3185
  58. package/lang/en.js +52 -14
  59. package/lib/__tests__/buildAccount.test.js +22 -30
  60. package/lib/__tests__/commonOpts.test.js +9 -13
  61. package/lib/__tests__/dependencyManagement.test.js +273 -1
  62. package/lib/__tests__/developerTestAccounts.test.js +29 -17
  63. package/lib/__tests__/importData.test.js +20 -10
  64. package/lib/__tests__/oauth.test.js +19 -8
  65. package/lib/__tests__/sandboxSync.test.js +33 -11
  66. package/lib/__tests__/sandboxes.test.js +30 -19
  67. package/lib/__tests__/usageTracking.test.js +10 -10
  68. package/lib/__tests__/validation.test.js +32 -32
  69. package/lib/accountTypes.d.ts +9 -9
  70. package/lib/accountTypes.js +2 -4
  71. package/lib/app/__tests__/migrate.test.js +15 -0
  72. package/lib/app/__tests__/migrate_legacy.test.js +9 -0
  73. package/lib/app/migrate_legacy.d.ts +2 -2
  74. package/lib/buildAccount.d.ts +4 -4
  75. package/lib/buildAccount.js +7 -14
  76. package/lib/commonOpts.js +5 -8
  77. package/lib/configMigrate.d.ts +2 -2
  78. package/lib/configMigrate.js +42 -18
  79. package/lib/configOptions.js +3 -2
  80. package/lib/constants.d.ts +1 -0
  81. package/lib/constants.js +6 -0
  82. package/lib/dependencyManagement.d.ts +8 -2
  83. package/lib/dependencyManagement.js +75 -12
  84. package/lib/developerTestAccounts.d.ts +3 -3
  85. package/lib/developerTestAccounts.js +4 -7
  86. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  87. package/lib/doctor/DiagnosticInfoBuilder.js +9 -6
  88. package/lib/doctor/Doctor.js +4 -3
  89. package/lib/doctor/__tests__/Diagnosis.test.js +4 -3
  90. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +17 -9
  91. package/lib/doctor/__tests__/Doctor.test.js +14 -0
  92. package/lib/importData.js +8 -7
  93. package/lib/links.js +5 -5
  94. package/lib/mcp/__tests__/setup.test.d.ts +1 -0
  95. package/lib/mcp/__tests__/setup.test.js +127 -0
  96. package/lib/mcp/setup.d.ts +4 -12
  97. package/lib/mcp/setup.js +34 -1
  98. package/lib/middleware/__test__/commandTargetingUtils.test.js +3 -3
  99. package/lib/middleware/__test__/configMiddleware.test.js +23 -22
  100. package/lib/middleware/__test__/gitMiddleware.test.js +9 -7
  101. package/lib/middleware/autoUpdateMiddleware.d.ts +3 -1
  102. package/lib/middleware/autoUpdateMiddleware.js +10 -2
  103. package/lib/middleware/commandTargetingUtils.js +2 -2
  104. package/lib/middleware/configMiddleware.d.ts +6 -1
  105. package/lib/middleware/configMiddleware.js +36 -15
  106. package/lib/middleware/gitMiddleware.js +8 -4
  107. package/lib/npm.d.ts +3 -0
  108. package/lib/npm.js +6 -0
  109. package/lib/oauth.d.ts +2 -2
  110. package/lib/oauth.js +8 -10
  111. package/lib/projects/__tests__/AppDevModeInterface.test.js +17 -6
  112. package/lib/projects/__tests__/DevServerManager.test.js +1 -0
  113. package/lib/projects/__tests__/LocalDevProcess.test.js +1 -0
  114. package/lib/projects/__tests__/components.test.js +148 -24
  115. package/lib/projects/__tests__/deploy.test.js +1 -0
  116. package/lib/projects/__tests__/platformVersion.test.js +5 -1
  117. package/lib/projects/__tests__/projects.test.js +13 -42
  118. package/lib/projects/components.js +76 -20
  119. package/lib/projects/config.js +5 -9
  120. package/lib/projects/create/__tests__/v2.test.js +11 -0
  121. package/lib/projects/localDev/AppDevModeInterface.js +2 -2
  122. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +2 -2
  123. package/lib/projects/localDev/LocalDevLogger.js +4 -4
  124. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +3 -3
  125. package/lib/projects/localDev/helpers/account.d.ts +10 -10
  126. package/lib/projects/localDev/helpers/account.js +6 -11
  127. package/lib/projects/platformVersion.js +1 -1
  128. package/lib/projects/urls.js +5 -6
  129. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +1 -0
  130. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +153 -0
  131. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +7 -5
  132. package/lib/prompts/accountNamePrompt.js +3 -3
  133. package/lib/prompts/accountsPrompt.d.ts +1 -1
  134. package/lib/prompts/accountsPrompt.js +6 -7
  135. package/lib/prompts/confirmImportDataPrompt.js +2 -2
  136. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +5 -0
  137. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +76 -66
  138. package/lib/prompts/downloadProjectPrompt.d.ts +1 -0
  139. package/lib/prompts/downloadProjectPrompt.js +5 -2
  140. package/lib/prompts/importDataTestAccountSelectPrompt.js +4 -5
  141. package/lib/prompts/personalAccessKeyPrompt.js +2 -2
  142. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +3 -3
  143. package/lib/prompts/projectDevTargetAccountPrompt.js +5 -7
  144. package/lib/prompts/sandboxesPrompt.js +7 -8
  145. package/lib/prompts/setAsDefaultAccountPrompt.js +7 -6
  146. package/lib/sandboxSync.d.ts +2 -2
  147. package/lib/sandboxSync.js +3 -9
  148. package/lib/sandboxes.d.ts +4 -4
  149. package/lib/sandboxes.js +6 -11
  150. package/lib/serverlessLogs.js +2 -2
  151. package/lib/theme/__tests__/migrate.test.js +15 -0
  152. package/lib/ui/index.js +6 -3
  153. package/lib/usageTracking.js +15 -8
  154. package/lib/validation.js +13 -11
  155. package/mcp-server/tools/cms/HsCreateFunctionTool.js +8 -2
  156. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -4
  157. package/mcp-server/tools/cms/HsCreateModuleTool.js +8 -2
  158. package/mcp-server/tools/cms/HsCreateTemplateTool.js +8 -2
  159. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -4
  160. package/mcp-server/tools/cms/HsFunctionLogsTool.js +6 -2
  161. package/mcp-server/tools/cms/HsListFunctionsTool.js +5 -1
  162. package/mcp-server/tools/cms/HsListTool.js +5 -1
  163. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +1 -0
  164. package/mcp-server/tools/index.js +4 -0
  165. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +1 -1
  166. package/mcp-server/tools/project/AddFeatureToProjectTool.js +9 -3
  167. package/mcp-server/tools/project/CreateProjectTool.js +8 -2
  168. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +41 -0
  169. package/mcp-server/tools/project/CreateTestAccountTool.js +150 -0
  170. package/mcp-server/tools/project/DeployProjectTool.d.ts +1 -1
  171. package/mcp-server/tools/project/DeployProjectTool.js +8 -2
  172. package/mcp-server/tools/project/DocFetchTool.d.ts +1 -1
  173. package/mcp-server/tools/project/DocFetchTool.js +9 -5
  174. package/mcp-server/tools/project/DocsSearchTool.d.ts +1 -1
  175. package/mcp-server/tools/project/DocsSearchTool.js +12 -8
  176. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +1 -1
  177. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +11 -7
  178. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +1 -1
  179. package/mcp-server/tools/project/GetApplicationInfoTool.js +11 -7
  180. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +26 -0
  181. package/mcp-server/tools/project/GetBuildStatusTool.js +164 -0
  182. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +1 -1
  183. package/mcp-server/tools/project/GetConfigValuesTool.js +11 -7
  184. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  185. package/mcp-server/tools/project/GuidedWalkthroughTool.js +7 -3
  186. package/mcp-server/tools/project/UploadProjectTools.d.ts +9 -3
  187. package/mcp-server/tools/project/UploadProjectTools.js +51 -5
  188. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  189. package/mcp-server/tools/project/ValidateProjectTool.js +7 -3
  190. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +1 -0
  191. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +454 -0
  192. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +5 -1
  193. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +25 -13
  194. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +7 -5
  195. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +7 -5
  196. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +1 -0
  197. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +240 -0
  198. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +8 -6
  199. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +56 -4
  200. package/mcp-server/utils/__tests__/content.test.js +21 -20
  201. package/mcp-server/utils/__tests__/feedbackTracking.test.js +33 -28
  202. package/mcp-server/utils/content.d.ts +1 -1
  203. package/mcp-server/utils/content.js +2 -2
  204. package/mcp-server/utils/feedbackTracking.d.ts +1 -1
  205. package/mcp-server/utils/feedbackTracking.js +3 -3
  206. package/mcp-server/utils/toolUsageTracking.js +4 -3
  207. package/package.json +8 -7
  208. package/lang/en.lyaml +0 -1508
  209. package/lib/lang.d.ts +0 -8
  210. package/lib/lang.js +0 -72
  211. package/mcp-server/utils/__tests__/cliConfig.test.js +0 -110
  212. package/mcp-server/utils/cliConfig.d.ts +0 -1
  213. package/mcp-server/utils/cliConfig.js +0 -12
  214. /package/{mcp-server/utils/__tests__/cliConfig.test.d.ts → commands/project/__tests__/updateDeps.test.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { getAccountId } from '@hubspot/local-dev-lib/config';
1
+ import { getConfigAccountIfExists } from '@hubspot/local-dev-lib/config';
2
2
  import { fetchProjects } from '@hubspot/local-dev-lib/api/projects';
3
3
  import { downloadProjectPrompt } from '../downloadProjectPrompt.js';
4
4
  vi.mock('../promptUtils', () => ({
@@ -10,15 +10,17 @@ vi.mock('@hubspot/local-dev-lib/api/projects', () => ({
10
10
  }),
11
11
  }));
12
12
  vi.mock('@hubspot/local-dev-lib/config', () => ({
13
- getAccountId: vi.fn().mockImplementation(() => 123456789),
14
- configFileExists: vi.fn().mockImplementation(() => true),
13
+ getConfigAccountIfExists: vi
14
+ .fn()
15
+ .mockImplementation(() => ({ accountId: 123456789 })),
16
+ globalConfigFileExists: vi.fn().mockReturnValue(true),
15
17
  }));
16
18
  describe('lib/prompts/downloadProjectPrompt', () => {
17
19
  it('should honor the account passed as an option', async () => {
18
20
  const account = 'Prod';
19
21
  await downloadProjectPrompt({ account });
20
- expect(getAccountId).toHaveBeenCalledTimes(1);
21
- expect(getAccountId).toHaveBeenCalledWith(account);
22
+ expect(getConfigAccountIfExists).toHaveBeenCalledTimes(1);
23
+ expect(getConfigAccountIfExists).toHaveBeenCalledWith(account);
22
24
  });
23
25
  it('should fetch the projects for the correct accountId', async () => {
24
26
  const account = 'Prod';
@@ -1,4 +1,4 @@
1
- import { accountNameExistsInConfig } from '@hubspot/local-dev-lib/config';
1
+ import { getConfigAccountIfExists } from '@hubspot/local-dev-lib/config';
2
2
  import { promptUser } from './promptUtils.js';
3
3
  import { lib } from '../../lang/en.js';
4
4
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
@@ -17,7 +17,7 @@ export function getCliAccountNamePromptConfig(defaultName) {
17
17
  else if (val.indexOf(' ') >= 0) {
18
18
  return lib.prompts.accountNamePrompt.errors.spacesInName;
19
19
  }
20
- return accountNameExistsInConfig(val)
20
+ return getConfigAccountIfExists(val)
21
21
  ? lib.prompts.accountNamePrompt.errors.accountNameExists(val)
22
22
  : true;
23
23
  },
@@ -54,7 +54,7 @@ export function hubspotAccountNamePrompt({ accountType, currentPortalCount = 0,
54
54
  else if (!val.trim().length) {
55
55
  return lib.prompts.accountNamePrompt.errors.nameRequired;
56
56
  }
57
- return accountNameExistsInConfig(val)
57
+ return getConfigAccountIfExists(val)
58
58
  ? lib.prompts.accountNamePrompt.errors.accountNameExists(val)
59
59
  : true;
60
60
  },
@@ -1 +1 @@
1
- export declare function selectAccountFromConfig(prompt?: string): Promise<string>;
1
+ export declare function selectAccountFromConfig(prompt?: string): Promise<number>;
@@ -1,17 +1,16 @@
1
- import { getConfigDefaultAccount, getConfigAccounts, } from '@hubspot/local-dev-lib/config';
2
- import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
1
+ import { getConfigDefaultAccountIfExists, getAllConfigAccounts, } from '@hubspot/local-dev-lib/config';
3
2
  import { promptUser } from './promptUtils.js';
4
3
  import { commands } from '../../lang/en.js';
5
4
  import { uiAccountDescription } from '../ui/index.js';
6
5
  function mapAccountChoices(portals) {
7
6
  return (portals?.map(p => ({
8
- name: uiAccountDescription(getAccountIdentifier(p), false),
9
- value: String(p.name || getAccountIdentifier(p)),
7
+ name: uiAccountDescription(p.accountId, false),
8
+ value: p.accountId,
10
9
  })) || []);
11
10
  }
12
11
  export async function selectAccountFromConfig(prompt = '') {
13
- const accountsList = getConfigAccounts();
14
- const defaultAccount = getConfigDefaultAccount();
12
+ const accountsList = getAllConfigAccounts();
13
+ const defaultAccount = getConfigDefaultAccountIfExists();
15
14
  const { default: selectedDefault } = await promptUser([
16
15
  {
17
16
  type: 'list',
@@ -19,7 +18,7 @@ export async function selectAccountFromConfig(prompt = '') {
19
18
  pageSize: 20,
20
19
  message: prompt || commands.account.subcommands.use.promptMessage,
21
20
  choices: mapAccountChoices(accountsList),
22
- default: defaultAccount ?? undefined,
21
+ default: defaultAccount?.accountId ?? undefined,
23
22
  },
24
23
  ]);
25
24
  return selectedDefault;
@@ -1,8 +1,8 @@
1
- import { getAccountConfig } from '@hubspot/local-dev-lib/config';
1
+ import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
2
2
  import { promptUser } from './promptUtils.js';
3
3
  import { lib } from '../../lang/en.js';
4
4
  export async function confirmImportDataPrompt(targetAccountId, dataFileNames) {
5
- const account = getAccountConfig(targetAccountId);
5
+ const account = getConfigAccountById(targetAccountId);
6
6
  const { confirmImportData } = await promptUser({
7
7
  type: 'confirm',
8
8
  name: 'confirmImportData',
@@ -14,5 +14,10 @@ export type HubConfig = {
14
14
  export declare function createDeveloperTestAccountConfigPrompt(args?: {
15
15
  name?: string;
16
16
  description?: string;
17
+ marketingLevel?: AccountLevel;
18
+ opsLevel?: AccountLevel;
19
+ serviceLevel?: AccountLevel;
20
+ salesLevel?: AccountLevel;
21
+ contentLevel?: AccountLevel;
17
22
  }, supportFlags?: boolean): Promise<DeveloperTestAccountConfig>;
18
23
  export {};
@@ -49,15 +49,17 @@ const TEST_ACCOUNT_TIERS = [
49
49
  new Separator(),
50
50
  ];
51
51
  export async function createDeveloperTestAccountConfigPrompt(args = {}, supportFlags = true) {
52
- const { name, description } = args;
53
- let accountName = name;
54
- let accountDescription = description;
55
- let accountLevelsArray = [];
56
- if (!accountName) {
57
- const namePromptResult = await promptUser({
52
+ const hasAnyTierLevels = !!(args.marketingLevel ||
53
+ args.opsLevel ||
54
+ args.serviceLevel ||
55
+ args.salesLevel ||
56
+ args.contentLevel);
57
+ const result = await promptUser([
58
+ {
58
59
  name: 'accountName',
59
60
  message: lib.prompts.createDeveloperTestAccountConfigPrompt.namePrompt(supportFlags),
60
61
  type: 'input',
62
+ when: !args.name,
61
63
  validate: value => {
62
64
  if (!value) {
63
65
  return lib.prompts.createDeveloperTestAccountConfigPrompt.errors
@@ -65,58 +67,67 @@ export async function createDeveloperTestAccountConfigPrompt(args = {}, supportF
65
67
  }
66
68
  return true;
67
69
  },
68
- });
69
- accountName = namePromptResult.accountName;
70
- }
71
- if (!accountDescription) {
72
- const descriptionPromptResult = await promptUser({
70
+ },
71
+ {
73
72
  name: 'description',
74
73
  message: lib.prompts.createDeveloperTestAccountConfigPrompt.descriptionPrompt(supportFlags),
75
74
  type: 'input',
76
- });
77
- accountDescription = descriptionPromptResult.description;
78
- }
79
- const useDefaultAccountLevelsPromptResult = await promptUser({
80
- name: 'useDefaultAccountLevels',
81
- message: lib.prompts.createDeveloperTestAccountConfigPrompt
82
- .useDefaultAccountLevelsPrompt.message,
83
- type: 'list',
84
- choices: [
85
- {
86
- name: lib.prompts.createDeveloperTestAccountConfigPrompt
87
- .useDefaultAccountLevelsPrompt.default,
88
- value: 'default',
89
- },
90
- {
91
- name: lib.prompts.createDeveloperTestAccountConfigPrompt
92
- .useDefaultAccountLevelsPrompt.manual,
93
- value: 'manual',
94
- },
95
- ],
96
- });
97
- if (useDefaultAccountLevelsPromptResult.useDefaultAccountLevels === 'default') {
98
- accountLevelsArray = [
99
- { hub: 'MARKETING', tier: AccountTiers.ENTERPRISE },
100
- { hub: 'OPS', tier: AccountTiers.ENTERPRISE },
101
- { hub: 'SERVICE', tier: AccountTiers.ENTERPRISE },
102
- { hub: 'SALES', tier: AccountTiers.ENTERPRISE },
103
- { hub: 'CONTENT', tier: AccountTiers.ENTERPRISE },
104
- ];
75
+ when: !args.description,
76
+ },
77
+ ]);
78
+ const accountName = args.name || result.accountName;
79
+ const description = args.description || result.description;
80
+ let accountLevels = {};
81
+ if (hasAnyTierLevels) {
82
+ accountLevels = {
83
+ marketingLevel: args.marketingLevel || 'ENTERPRISE',
84
+ opsLevel: args.opsLevel || 'ENTERPRISE',
85
+ serviceLevel: args.serviceLevel || 'ENTERPRISE',
86
+ salesLevel: args.salesLevel || 'ENTERPRISE',
87
+ contentLevel: args.contentLevel || 'ENTERPRISE',
88
+ };
105
89
  }
106
90
  else {
107
- const accountLevelsPromptResult = await promptUser({
108
- name: 'testAccountLevels',
109
- message: lib.prompts.createDeveloperTestAccountConfigPrompt.tiersPrompt,
110
- type: 'checkbox',
111
- pageSize: 13,
112
- choices: TEST_ACCOUNT_TIERS,
113
- loop: false,
114
- validate: choices => {
115
- if (choices?.length < Object.keys(hubs).length) {
116
- return lib.prompts.createDeveloperTestAccountConfigPrompt.errors
117
- .allHubsRequired;
118
- }
119
- else {
91
+ const tierChoiceResult = await promptUser({
92
+ name: 'useDefaultAccountLevels',
93
+ message: lib.prompts.createDeveloperTestAccountConfigPrompt
94
+ .useDefaultAccountLevelsPrompt.message,
95
+ type: 'list',
96
+ choices: [
97
+ {
98
+ name: lib.prompts.createDeveloperTestAccountConfigPrompt
99
+ .useDefaultAccountLevelsPrompt.default,
100
+ value: 'default',
101
+ },
102
+ {
103
+ name: lib.prompts.createDeveloperTestAccountConfigPrompt
104
+ .useDefaultAccountLevelsPrompt.manual,
105
+ value: 'manual',
106
+ },
107
+ ],
108
+ });
109
+ if (tierChoiceResult.useDefaultAccountLevels === 'default') {
110
+ accountLevels = {
111
+ marketingLevel: 'ENTERPRISE',
112
+ opsLevel: 'ENTERPRISE',
113
+ serviceLevel: 'ENTERPRISE',
114
+ salesLevel: 'ENTERPRISE',
115
+ contentLevel: 'ENTERPRISE',
116
+ };
117
+ }
118
+ else {
119
+ const tierResult = await promptUser({
120
+ name: 'testAccountLevels',
121
+ message: lib.prompts.createDeveloperTestAccountConfigPrompt.tiersPrompt,
122
+ type: 'checkbox',
123
+ pageSize: 13,
124
+ choices: TEST_ACCOUNT_TIERS,
125
+ loop: false,
126
+ validate: choices => {
127
+ if (choices?.length < Object.keys(hubs).length) {
128
+ return lib.prompts.createDeveloperTestAccountConfigPrompt.errors
129
+ .allHubsRequired;
130
+ }
120
131
  const hubMap = {};
121
132
  for (const choice of choices) {
122
133
  const { hub } = choice.value;
@@ -126,21 +137,20 @@ export async function createDeveloperTestAccountConfigPrompt(args = {}, supportF
126
137
  }
127
138
  hubMap[hub] = true;
128
139
  }
129
- }
130
- return true;
131
- },
132
- });
133
- accountLevelsArray = accountLevelsPromptResult.testAccountLevels;
140
+ return true;
141
+ },
142
+ });
143
+ accountLevels = tierResult.testAccountLevels.reduce((acc, level) => {
144
+ const { hub: hubName, tier: hubTier } = level;
145
+ const hubLevel = hubs[hubName];
146
+ acc[hubLevel] = hubTier;
147
+ return acc;
148
+ }, {});
149
+ }
134
150
  }
135
- const accountLevels = accountLevelsArray.reduce((acc, level) => {
136
- const { hub: hubName, tier: hubTier } = level;
137
- const hubLevel = hubs[hubName];
138
- acc[hubLevel] = hubTier;
139
- return acc;
140
- }, {});
141
151
  return {
142
- accountName: accountName,
143
- description: accountDescription,
152
+ accountName,
153
+ description,
144
154
  ...accountLevels,
145
155
  };
146
156
  }
@@ -3,6 +3,7 @@ type DownloadProjectPromptResponse = {
3
3
  };
4
4
  export declare function downloadProjectPrompt(promptOptions: {
5
5
  account?: string;
6
+ derivedAccountId?: number;
6
7
  project?: string;
7
8
  name?: string;
8
9
  }): Promise<DownloadProjectPromptResponse>;
@@ -1,5 +1,5 @@
1
1
  import { promptUser } from './promptUtils.js';
2
- import { getAccountId } from '@hubspot/local-dev-lib/config';
2
+ import { getConfigAccountIfExists } from '@hubspot/local-dev-lib/config';
3
3
  import { fetchProjects } from '@hubspot/local-dev-lib/api/projects';
4
4
  import { logError, ApiErrorContext } from '../errorHandlers/index.js';
5
5
  import { uiLogger } from '../ui/logger.js';
@@ -20,7 +20,10 @@ async function createProjectsList(accountId) {
20
20
  }
21
21
  }
22
22
  export async function downloadProjectPrompt(promptOptions) {
23
- const accountId = getAccountId(promptOptions.account);
23
+ const account = promptOptions.account
24
+ ? getConfigAccountIfExists(promptOptions.account)
25
+ : undefined;
26
+ const accountId = account?.accountId || promptOptions.derivedAccountId || null;
24
27
  const projectsList = await createProjectsList(accountId);
25
28
  const response = await promptUser([
26
29
  {
@@ -1,10 +1,9 @@
1
- import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
2
1
  import { promptUser } from './promptUtils.js';
3
- import { getConfigAccounts } from '@hubspot/local-dev-lib/config';
2
+ import { getAllConfigAccounts } from '@hubspot/local-dev-lib/config';
4
3
  import { uiAccountDescription } from '../ui/index.js';
5
4
  import { lib } from '../../lang/en.js';
6
5
  export async function importDataTestAccountSelectPrompt(parentAccountId) {
7
- const accounts = getConfigAccounts();
6
+ const accounts = getAllConfigAccounts();
8
7
  if (!accounts) {
9
8
  throw new Error(lib.prompts.importDataTestAccountSelectPrompt.errors.noAccountsFound);
10
9
  }
@@ -12,8 +11,8 @@ export async function importDataTestAccountSelectPrompt(parentAccountId) {
12
11
  .filter(account => account.parentAccountId === parentAccountId)
13
12
  .map(account => {
14
13
  return {
15
- name: uiAccountDescription(getAccountIdentifier(account)),
16
- value: getAccountIdentifier(account),
14
+ name: uiAccountDescription(account.accountId),
15
+ value: account.accountId,
17
16
  };
18
17
  })
19
18
  .filter(account => account.value !== undefined && account.name !== undefined);
@@ -1,6 +1,6 @@
1
1
  import open from 'open';
2
2
  import { OAUTH_SCOPES, DEFAULT_OAUTH_SCOPES, } from '@hubspot/local-dev-lib/constants/auth';
3
- import { deleteEmptyConfigFile } from '@hubspot/local-dev-lib/config';
3
+ import { deleteConfigFileIfEmpty } from '@hubspot/local-dev-lib/config';
4
4
  import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
5
5
  import { uiLogger } from '../ui/logger.js';
6
6
  import { promptUser } from './promptUtils.js';
@@ -26,7 +26,7 @@ export async function personalAccessKeyPrompt({ env, account, }) {
26
26
  PERSONAL_ACCESS_KEY_BROWSER_OPEN_PREP,
27
27
  ]);
28
28
  if (!choice) {
29
- deleteEmptyConfigFile();
29
+ deleteConfigFileIfEmpty();
30
30
  process.exit(EXIT_CODES.SUCCESS);
31
31
  }
32
32
  if (choice ===
@@ -1,4 +1,4 @@
1
- import { CLIAccount } from '@hubspot/local-dev-lib/types/Accounts';
1
+ import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
2
  import { DeveloperTestAccount } from '@hubspot/local-dev-lib/types/developerTestAccounts.js';
3
3
  export type ProjectDevTargetAccountPromptResponse = {
4
4
  targetAccountId: number | null;
@@ -6,7 +6,7 @@ export type ProjectDevTargetAccountPromptResponse = {
6
6
  parentAccountId?: number | null;
7
7
  notInConfigAccount?: DeveloperTestAccount | null;
8
8
  };
9
- export declare function selectSandboxTargetAccountPrompt(accounts: CLIAccount[], defaultAccountConfig: CLIAccount): Promise<ProjectDevTargetAccountPromptResponse>;
10
- export declare function selectDeveloperTestTargetAccountPrompt(accounts: CLIAccount[], defaultAccountConfig: CLIAccount): Promise<ProjectDevTargetAccountPromptResponse>;
9
+ export declare function selectSandboxTargetAccountPrompt(accounts: HubSpotConfigAccount[], defaultAccountConfig: HubSpotConfigAccount): Promise<ProjectDevTargetAccountPromptResponse>;
10
+ export declare function selectDeveloperTestTargetAccountPrompt(accounts: HubSpotConfigAccount[], defaultAccountConfig: HubSpotConfigAccount): Promise<ProjectDevTargetAccountPromptResponse>;
11
11
  export declare function confirmDefaultAccountPrompt(accountName: string, accountType: string): Promise<boolean>;
12
12
  export declare function confirmUseExistingDeveloperTestAccountPrompt(account: DeveloperTestAccount): Promise<boolean>;
@@ -1,7 +1,5 @@
1
- import { getAccountId } from '@hubspot/local-dev-lib/config';
2
1
  import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
3
2
  import { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } from '@hubspot/local-dev-lib/constants/config';
4
- import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
5
3
  import { fetchDeveloperTestAccounts } from '@hubspot/local-dev-lib/api/developerTestAccounts';
6
4
  import { promptUser } from './promptUtils.js';
7
5
  import { lib } from '../../lang/en.js';
@@ -12,9 +10,9 @@ import { EXIT_CODES } from '../enums/exitCodes.js';
12
10
  function mapNestedAccount(accountConfig) {
13
11
  const parentAccountId = accountConfig.parentAccountId ?? null;
14
12
  return {
15
- name: uiAccountDescription(getAccountIdentifier(accountConfig), false),
13
+ name: uiAccountDescription(accountConfig.accountId, false),
16
14
  value: {
17
- targetAccountId: getAccountId(accountConfig.name),
15
+ targetAccountId: accountConfig.accountId,
18
16
  createNestedAccount: false,
19
17
  parentAccountId,
20
18
  },
@@ -24,7 +22,7 @@ function getNonConfigDeveloperTestAccountName(account) {
24
22
  return `${account.accountName} [${HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST]}] (${account.id})`;
25
23
  }
26
24
  export async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig) {
27
- const defaultAccountId = getAccountId(defaultAccountConfig.name);
25
+ const defaultAccountId = defaultAccountConfig.accountId;
28
26
  let choices = [];
29
27
  let sandboxUsage = {
30
28
  STANDARD: { used: 0, available: 0, limit: 0 },
@@ -84,7 +82,7 @@ export async function selectSandboxTargetAccountPrompt(accounts, defaultAccountC
84
82
  return selectTargetAccountPrompt(defaultAccountId, 'sandbox account', choices);
85
83
  }
86
84
  export async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAccountConfig) {
87
- const defaultAccountId = getAccountId(defaultAccountConfig.name);
85
+ const defaultAccountId = defaultAccountConfig.accountId;
88
86
  let devTestAccountsResponse;
89
87
  try {
90
88
  if (defaultAccountId) {
@@ -108,7 +106,7 @@ export async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAc
108
106
  }
109
107
  const devTestAccounts = [];
110
108
  if (devTestAccountsResponse && devTestAccountsResponse.results) {
111
- const accountIds = accounts.map(account => getAccountIdentifier(account));
109
+ const accountIds = accounts.map(account => account.accountId);
112
110
  devTestAccountsResponse.results.forEach(acct => {
113
111
  const inConfig = accountIds.includes(acct.id);
114
112
  devTestAccounts.push({
@@ -2,23 +2,22 @@ import { promptUser } from './promptUtils.js';
2
2
  import { lib } from '../../lang/en.js';
3
3
  import { uiAccountDescription } from '../ui/index.js';
4
4
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
5
- import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
6
5
  import { isSandbox } from '../accountTypes.js';
7
- import { getConfigDefaultAccount, getConfigAccounts, } from '@hubspot/local-dev-lib/config';
6
+ import { getConfigDefaultAccountIfExists, getAllConfigAccounts, } from '@hubspot/local-dev-lib/config';
8
7
  function mapSandboxAccountChoices(portals) {
9
8
  return (portals
10
9
  ?.filter(p => isSandbox(p))
11
10
  .map(p => ({
12
- name: uiAccountDescription(getAccountIdentifier(p), false),
13
- value: p.name || getAccountIdentifier(p),
11
+ name: uiAccountDescription(p.accountId, false),
12
+ value: p.accountId,
14
13
  })) || []);
15
14
  }
16
15
  function mapNonSandboxAccountChoices(portals) {
17
16
  return (portals
18
17
  ?.filter(p => !isSandbox(p))
19
18
  .map(p => ({
20
- name: `${p.name} (${getAccountIdentifier(p)})`,
21
- value: p.name || getAccountIdentifier(p),
19
+ name: `${p.name} (${p.accountId})`,
20
+ value: p.accountId,
22
21
  })) || []);
23
22
  }
24
23
  export async function sandboxTypePrompt() {
@@ -42,7 +41,7 @@ export async function sandboxTypePrompt() {
42
41
  ]);
43
42
  }
44
43
  export function deleteSandboxPrompt(promptParentAccount = false) {
45
- const accountsList = getConfigAccounts();
44
+ const accountsList = getAllConfigAccounts();
46
45
  const choices = promptParentAccount
47
46
  ? mapNonSandboxAccountChoices(accountsList)
48
47
  : mapSandboxAccountChoices(accountsList);
@@ -58,7 +57,7 @@ export function deleteSandboxPrompt(promptParentAccount = false) {
58
57
  type: 'list',
59
58
  pageSize: 20,
60
59
  choices,
61
- default: getConfigDefaultAccount(),
60
+ default: getConfigDefaultAccountIfExists()?.accountId,
62
61
  },
63
62
  ]);
64
63
  }
@@ -1,25 +1,26 @@
1
- import { updateDefaultAccount, getConfigDefaultAccount, } from '@hubspot/local-dev-lib/config';
1
+ import { setConfigAccountAsDefault, getConfigDefaultAccountIfExists, getAllConfigAccounts, } from '@hubspot/local-dev-lib/config';
2
2
  import { promptUser } from './promptUtils.js';
3
3
  import { lib } from '../../lang/en.js';
4
4
  import { uiLogger } from '../ui/logger.js';
5
5
  export async function setAsDefaultAccountPrompt(accountName) {
6
6
  // Accounts for deprecated and new config
7
- const defaultAccount = getConfigDefaultAccount();
7
+ const defaultAccount = getConfigDefaultAccountIfExists();
8
+ const accounts = getAllConfigAccounts() || [];
8
9
  const { setAsDefault } = await promptUser([
9
10
  {
10
11
  name: 'setAsDefault',
11
12
  type: 'confirm',
12
- when: defaultAccount !== accountName,
13
+ when: accounts.length >= 1 && defaultAccount?.name !== accountName,
13
14
  message: lib.prompts.setAsDefaultAccountPrompt.setAsDefaultAccountMessage,
14
15
  },
15
16
  ]);
16
17
  uiLogger.log('');
17
18
  if (setAsDefault) {
18
- updateDefaultAccount(accountName);
19
+ setConfigAccountAsDefault(accountName);
19
20
  uiLogger.success(lib.prompts.setAsDefaultAccountPrompt.setAsDefaultAccount(accountName));
20
21
  }
21
- else {
22
- uiLogger.log(lib.prompts.setAsDefaultAccountPrompt.keepingCurrentDefault(getConfigDefaultAccount()));
22
+ else if (defaultAccount) {
23
+ uiLogger.log(lib.prompts.setAsDefaultAccountPrompt.keepingCurrentDefault(defaultAccount.name));
23
24
  }
24
25
  return setAsDefault;
25
26
  }
@@ -1,4 +1,4 @@
1
- import { CLIAccount } from '@hubspot/local-dev-lib/types/Accounts';
1
+ import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
2
  import { Environment } from '@hubspot/local-dev-lib/types/Config';
3
3
  import { SandboxSyncTask } from '../types/Sandboxes.js';
4
- export declare function syncSandbox(accountConfig: CLIAccount, parentAccountConfig: CLIAccount, env: Environment, syncTasks: Array<SandboxSyncTask>, slimInfoMessage?: boolean): Promise<void>;
4
+ export declare function syncSandbox(accountConfig: HubSpotConfigAccount, parentAccountConfig: HubSpotConfigAccount, env: Environment, syncTasks: Array<SandboxSyncTask>, slimInfoMessage?: boolean): Promise<void>;
@@ -3,23 +3,17 @@ import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
3
3
  import { uiLogger } from './ui/logger.js';
4
4
  import { initiateSync } from '@hubspot/local-dev-lib/api/sandboxSync';
5
5
  import { isSpecifiedError } from '@hubspot/local-dev-lib/errors/index';
6
- import { getAccountId } from '@hubspot/local-dev-lib/config';
7
- import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
8
6
  import { lib } from '../lang/en.js';
9
7
  import { getAvailableSyncTypes, getSandboxTypeAsString } from './sandboxes.js';
10
8
  import { debugError, logError, ApiErrorContext, } from './errorHandlers/index.js';
11
9
  import { uiAccountDescription, uiLine, uiCommandDisabledBanner, } from './ui/index.js';
12
10
  import { isDevelopmentSandbox } from './accountTypes.js';
13
11
  export async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, slimInfoMessage = false) {
14
- const id = getAccountIdentifier(accountConfig);
15
- const accountId = getAccountId(id);
16
- const parentId = getAccountIdentifier(parentAccountConfig);
17
- const parentAccountId = getAccountId(parentId);
12
+ const accountId = accountConfig.accountId;
13
+ const parentAccountId = parentAccountConfig.accountId;
18
14
  const isDevSandbox = isDevelopmentSandbox(accountConfig);
19
15
  if (!accountId || !parentAccountId) {
20
- throw new Error(lib.sandbox.sync.failure.invalidUser(accountId ? uiAccountDescription(accountId) : id.toString(), parentAccountId
21
- ? uiAccountDescription(parentAccountId)
22
- : parentId.toString()));
16
+ throw new Error(lib.sandbox.sync.failure.invalidUser(uiAccountDescription(accountId), uiAccountDescription(parentAccountId)));
23
17
  }
24
18
  SpinniesManager.init({
25
19
  succeedColor: 'white',
@@ -1,4 +1,4 @@
1
- import { AccountType, CLIAccount } from '@hubspot/local-dev-lib/types/Accounts';
1
+ import { AccountType, HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
2
  import { Environment } from '@hubspot/local-dev-lib/types/Config';
3
3
  import { SandboxSyncTask, SandboxAccountType } from '../types/Sandboxes.js';
4
4
  export declare const SYNC_TYPES: {
@@ -16,7 +16,7 @@ export declare const SANDBOX_TYPE_MAP_V2: {
16
16
  readonly DEVELOPMENT_SANDBOX: "DEVELOPER";
17
17
  };
18
18
  export declare function getSandboxTypeAsString(accountType?: AccountType): string;
19
- export declare function getHasSandboxesByType(parentAccountConfig: CLIAccount, type: AccountType): boolean;
20
- export declare function getAvailableSyncTypes(parentAccountConfig: CLIAccount, config: CLIAccount): Promise<Array<SandboxSyncTask>>;
21
- export declare function validateSandboxUsageLimits(accountConfig: CLIAccount, sandboxType: AccountType, env: Environment): Promise<void>;
19
+ export declare function getHasSandboxesByType(parentAccountConfig: HubSpotConfigAccount, type: AccountType): boolean;
20
+ export declare function getAvailableSyncTypes(parentAccountConfig: HubSpotConfigAccount, config: HubSpotConfigAccount): Promise<Array<SandboxSyncTask>>;
21
+ export declare function validateSandboxUsageLimits(accountConfig: HubSpotConfigAccount, sandboxType: AccountType, env: Environment): Promise<void>;
22
22
  export declare function handleSandboxCreateError(err: unknown, env: Environment, name: string, accountId: number): never;
package/lib/sandboxes.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
2
2
  import { fetchTypes } from '@hubspot/local-dev-lib/api/sandboxSync';
3
- import { getAccountId, getConfigAccounts } from '@hubspot/local-dev-lib/config';
3
+ import { getAllConfigAccounts } from '@hubspot/local-dev-lib/config';
4
4
  import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
5
5
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
6
- import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
7
6
  import { isMissingScopeError, isSpecifiedError, } from '@hubspot/local-dev-lib/errors/index';
8
7
  import { uiLogger } from './ui/logger.js';
9
8
  import { lib } from '../lang/en.js';
@@ -33,9 +32,8 @@ export function getSandboxTypeAsString(accountType) {
33
32
  return 'standard';
34
33
  }
35
34
  export function getHasSandboxesByType(parentAccountConfig, type) {
36
- const id = getAccountIdentifier(parentAccountConfig);
37
- const parentPortalId = getAccountId(id);
38
- const accountsList = getConfigAccounts() || [];
35
+ const parentPortalId = parentAccountConfig.accountId;
36
+ const accountsList = getAllConfigAccounts();
39
37
  for (const portal of accountsList) {
40
38
  if ((portal.parentAccountId !== null ||
41
39
  portal.parentAccountId !== undefined) &&
@@ -49,10 +47,8 @@ export function getHasSandboxesByType(parentAccountConfig, type) {
49
47
  }
50
48
  // Fetches available sync types for a given sandbox portal
51
49
  export async function getAvailableSyncTypes(parentAccountConfig, config) {
52
- const parentId = getAccountIdentifier(parentAccountConfig);
53
- const parentPortalId = getAccountId(parentId);
54
- const id = getAccountIdentifier(config);
55
- const portalId = getAccountId(id);
50
+ const parentPortalId = parentAccountConfig.accountId;
51
+ const portalId = config.accountId;
56
52
  if (!parentPortalId || !portalId) {
57
53
  throw new Error(lib.sandbox.sync.failure.syncTypeFetch);
58
54
  }
@@ -63,8 +59,7 @@ export async function getAvailableSyncTypes(parentAccountConfig, config) {
63
59
  return syncTypes.map(t => ({ type: t.name }));
64
60
  }
65
61
  export async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
66
- const id = getAccountIdentifier(accountConfig);
67
- const accountId = getAccountId(id);
62
+ const accountId = accountConfig.accountId;
68
63
  if (!accountId) {
69
64
  throw new Error(lib.sandbox.create.failure.usageLimitsFetch);
70
65
  }
@@ -3,7 +3,7 @@ import chalk from 'chalk';
3
3
  import { uiLogger } from './ui/logger.js';
4
4
  import { isHubSpotHttpError, isMissingScopeError, } from '@hubspot/local-dev-lib/errors/index';
5
5
  import { SCOPE_GROUPS, PERSONAL_ACCESS_KEY_AUTH_METHOD, } from '@hubspot/local-dev-lib/constants/auth';
6
- import { getAccountConfig } from '@hubspot/local-dev-lib/config';
6
+ import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
7
7
  import { fetchScopeData } from '@hubspot/local-dev-lib/api/localDevAuth';
8
8
  import { outputLogs } from './ui/serverlessFunctionLogs.js';
9
9
  import { logError, ApiErrorContext } from './errorHandlers/index.js';
@@ -33,7 +33,7 @@ function handleUserInput() {
33
33
  });
34
34
  }
35
35
  async function verifyAccessKeyAndUserAccess(accountId, scopeGroup) {
36
- const accountConfig = getAccountConfig(accountId);
36
+ const accountConfig = getConfigAccountById(accountId);
37
37
  if (!accountConfig) {
38
38
  return;
39
39
  }