@hubspot/cli 7.10.0 → 7.11.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 (211) 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 +3 -0
  4. package/commands/account/__tests__/rename.test.js +10 -3
  5. package/commands/account/auth.js +10 -14
  6. package/commands/account/clean.js +11 -19
  7. package/commands/account/createOverride.js +15 -11
  8. package/commands/account/info.js +8 -5
  9. package/commands/account/list.js +15 -19
  10. package/commands/account/remove.js +23 -22
  11. package/commands/account/removeOverride.js +6 -6
  12. package/commands/account/rename.js +2 -2
  13. package/commands/account/use.js +19 -8
  14. package/commands/app/__tests__/migrate.test.js +8 -4
  15. package/commands/app/migrate.js +2 -2
  16. package/commands/auth.js +18 -14
  17. package/commands/config/migrate.js +5 -5
  18. package/commands/customObject/createSchema.js +2 -3
  19. package/commands/customObject/updateSchema.js +2 -3
  20. package/commands/getStarted.js +2 -3
  21. package/commands/hubdb/__tests__/list.test.js +1 -0
  22. package/commands/hubdb/list.js +2 -2
  23. package/commands/init.js +36 -32
  24. package/commands/project/__tests__/deploy.test.js +15 -10
  25. package/commands/project/__tests__/devUnifiedFlow.test.js +6 -4
  26. package/commands/project/__tests__/lint.test.js +709 -0
  27. package/commands/project/__tests__/logs.test.js +4 -0
  28. package/commands/project/__tests__/validate.test.js +2 -2
  29. package/commands/project/cloneApp.js +2 -2
  30. package/commands/project/create.js +20 -14
  31. package/commands/project/deploy.js +2 -2
  32. package/commands/project/dev/deprecatedFlow.js +4 -5
  33. package/commands/project/dev/index.js +6 -3
  34. package/commands/project/dev/unifiedFlow.js +11 -6
  35. package/commands/project/lint.d.ts +6 -0
  36. package/commands/project/lint.js +178 -0
  37. package/commands/project/logs.js +2 -3
  38. package/commands/project/migrate.js +4 -13
  39. package/commands/project/profile/add.js +6 -7
  40. package/commands/project/profile/delete.js +2 -2
  41. package/commands/project/upload.js +2 -2
  42. package/commands/project/validate.js +2 -2
  43. package/commands/project.js +2 -0
  44. package/commands/sandbox/__tests__/create.test.js +14 -5
  45. package/commands/sandbox/create.js +4 -5
  46. package/commands/sandbox/delete.js +23 -20
  47. package/commands/testAccount/create.js +2 -2
  48. package/commands/testAccount/delete.js +9 -8
  49. package/lang/en.d.ts +53 -12
  50. package/lang/en.js +63 -16
  51. package/lib/__tests__/buildAccount.test.js +22 -30
  52. package/lib/__tests__/commonOpts.test.js +9 -13
  53. package/lib/__tests__/developerTestAccounts.test.js +29 -17
  54. package/lib/__tests__/importData.test.js +20 -10
  55. package/lib/__tests__/oauth.test.js +19 -8
  56. package/lib/__tests__/sandboxSync.test.js +33 -11
  57. package/lib/__tests__/sandboxes.test.js +30 -19
  58. package/lib/__tests__/usageTracking.test.js +10 -10
  59. package/lib/__tests__/validation.test.js +32 -32
  60. package/lib/accountTypes.d.ts +9 -9
  61. package/lib/accountTypes.js +2 -4
  62. package/lib/app/__tests__/migrate.test.js +15 -0
  63. package/lib/app/__tests__/migrate_legacy.test.js +9 -0
  64. package/lib/app/migrate_legacy.d.ts +2 -2
  65. package/lib/buildAccount.d.ts +4 -4
  66. package/lib/buildAccount.js +7 -14
  67. package/lib/commonOpts.js +3 -3
  68. package/lib/configMigrate.d.ts +2 -2
  69. package/lib/configMigrate.js +42 -18
  70. package/lib/configOptions.js +3 -2
  71. package/lib/developerTestAccounts.d.ts +3 -3
  72. package/lib/developerTestAccounts.js +4 -7
  73. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  74. package/lib/doctor/DiagnosticInfoBuilder.js +9 -6
  75. package/lib/doctor/Doctor.js +4 -3
  76. package/lib/doctor/__tests__/Diagnosis.test.js +4 -3
  77. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +17 -9
  78. package/lib/doctor/__tests__/Doctor.test.js +14 -0
  79. package/lib/errorHandlers/index.js +8 -3
  80. package/lib/importData.js +8 -7
  81. package/lib/links.js +5 -5
  82. package/lib/middleware/{__test__ → __tests__}/commandTargetingUtils.test.js +3 -3
  83. package/lib/middleware/{__test__ → __tests__}/configMiddleware.test.js +23 -22
  84. package/lib/middleware/{__test__ → __tests__}/gitMiddleware.test.js +9 -7
  85. package/lib/middleware/autoUpdateMiddleware.js +34 -23
  86. package/lib/middleware/commandTargetingUtils.js +3 -2
  87. package/lib/middleware/configMiddleware.d.ts +6 -1
  88. package/lib/middleware/configMiddleware.js +36 -15
  89. package/lib/middleware/fireAlarmMiddleware.js +4 -15
  90. package/lib/middleware/gitMiddleware.js +8 -4
  91. package/lib/oauth.d.ts +2 -2
  92. package/lib/oauth.js +8 -10
  93. package/lib/projects/__tests__/AppDevModeInterface.test.js +17 -6
  94. package/lib/projects/__tests__/DevServerManager.test.js +1 -0
  95. package/lib/projects/__tests__/LocalDevProcess.test.js +1 -0
  96. package/lib/projects/__tests__/components.test.js +2 -22
  97. package/lib/projects/__tests__/deploy.test.js +16 -13
  98. package/lib/projects/__tests__/uieLinting.test.js +640 -0
  99. package/lib/projects/add/__tests__/legacyAddComponent.test.js +1 -1
  100. package/lib/projects/add/__tests__/v2AddComponent.test.js +30 -4
  101. package/lib/projects/add/legacyAddComponent.js +1 -1
  102. package/lib/projects/add/v2AddComponent.js +16 -5
  103. package/lib/projects/components.d.ts +8 -1
  104. package/lib/projects/components.js +91 -8
  105. package/lib/projects/create/__tests__/v2.test.js +11 -0
  106. package/lib/projects/deploy.js +21 -8
  107. package/lib/projects/localDev/AppDevModeInterface.js +2 -2
  108. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +11 -3
  109. package/lib/projects/localDev/LocalDevLogger.js +4 -4
  110. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +3 -3
  111. package/lib/projects/localDev/helpers/account.d.ts +10 -10
  112. package/lib/projects/localDev/helpers/account.js +6 -11
  113. package/lib/projects/localDev/helpers/process.js +5 -3
  114. package/lib/projects/uieLinting.d.ts +33 -0
  115. package/lib/projects/uieLinting.js +222 -0
  116. package/lib/projects/urls.js +5 -6
  117. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +7 -5
  118. package/lib/prompts/accountNamePrompt.js +3 -3
  119. package/lib/prompts/accountsPrompt.d.ts +1 -1
  120. package/lib/prompts/accountsPrompt.js +6 -7
  121. package/lib/prompts/confirmImportDataPrompt.js +2 -2
  122. package/lib/prompts/downloadProjectPrompt.d.ts +1 -0
  123. package/lib/prompts/downloadProjectPrompt.js +5 -2
  124. package/lib/prompts/importDataTestAccountSelectPrompt.js +4 -5
  125. package/lib/prompts/personalAccessKeyPrompt.js +2 -2
  126. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +3 -3
  127. package/lib/prompts/projectDevTargetAccountPrompt.js +5 -7
  128. package/lib/prompts/sandboxesPrompt.js +7 -8
  129. package/lib/prompts/setAsDefaultAccountPrompt.js +7 -6
  130. package/lib/sandboxSync.d.ts +2 -2
  131. package/lib/sandboxSync.js +3 -9
  132. package/lib/sandboxes.d.ts +4 -4
  133. package/lib/sandboxes.js +6 -11
  134. package/lib/serverlessLogs.js +2 -2
  135. package/lib/theme/__tests__/migrate.test.js +15 -0
  136. package/lib/ui/SpinniesManager.d.ts +5 -7
  137. package/lib/ui/SpinniesManager.js +9 -12
  138. package/lib/ui/__tests__/SpinniesManager.test.d.ts +1 -0
  139. package/lib/ui/__tests__/SpinniesManager.test.js +489 -0
  140. package/lib/ui/index.js +6 -3
  141. package/lib/usageTracking.js +15 -8
  142. package/lib/validation.js +13 -11
  143. package/mcp-server/tools/cms/HsCreateFunctionTool.js +4 -2
  144. package/mcp-server/tools/cms/HsCreateModuleTool.js +4 -2
  145. package/mcp-server/tools/cms/HsCreateTemplateTool.js +4 -2
  146. package/mcp-server/tools/cms/HsFunctionLogsTool.js +4 -2
  147. package/mcp-server/tools/cms/HsListFunctionsTool.js +3 -1
  148. package/mcp-server/tools/cms/HsListTool.js +3 -1
  149. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +1 -0
  150. package/mcp-server/tools/index.js +4 -0
  151. package/mcp-server/tools/project/AddFeatureToProjectTool.js +4 -2
  152. package/mcp-server/tools/project/CreateProjectTool.js +4 -2
  153. package/mcp-server/tools/project/CreateTestAccountTool.js +17 -7
  154. package/mcp-server/tools/project/DeployProjectTool.js +3 -1
  155. package/mcp-server/tools/project/DocFetchTool.js +6 -4
  156. package/mcp-server/tools/project/DocsSearchTool.d.ts +1 -1
  157. package/mcp-server/tools/project/DocsSearchTool.js +10 -8
  158. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +1 -1
  159. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +9 -7
  160. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  161. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +26 -0
  162. package/mcp-server/tools/project/GetBuildLogsTool.js +125 -0
  163. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +26 -0
  164. package/mcp-server/tools/project/GetBuildStatusTool.js +166 -0
  165. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +1 -1
  166. package/mcp-server/tools/project/GetConfigValuesTool.js +9 -7
  167. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  168. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -3
  169. package/mcp-server/tools/project/UploadProjectTools.js +3 -1
  170. package/mcp-server/tools/project/ValidateProjectTool.js +4 -2
  171. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +12 -2
  172. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +5 -1
  173. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +23 -11
  174. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +7 -5
  175. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +7 -5
  176. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +1 -0
  177. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +305 -0
  178. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +1 -0
  179. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +240 -0
  180. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +8 -6
  181. package/mcp-server/utils/__tests__/content.test.js +21 -20
  182. package/mcp-server/utils/__tests__/feedbackTracking.test.js +34 -28
  183. package/mcp-server/utils/config.d.ts +1 -0
  184. package/mcp-server/utils/config.js +10 -0
  185. package/mcp-server/utils/content.d.ts +1 -1
  186. package/mcp-server/utils/content.js +2 -2
  187. package/mcp-server/utils/feedbackTracking.d.ts +1 -1
  188. package/mcp-server/utils/feedbackTracking.js +3 -3
  189. package/mcp-server/utils/toolUsageTracking.js +4 -3
  190. package/package.json +9 -9
  191. package/ui/components/BoxWithTitle.d.ts +2 -1
  192. package/ui/components/BoxWithTitle.js +2 -2
  193. package/ui/components/StatusMessageBoxes.d.ts +5 -4
  194. package/ui/components/StatusMessageBoxes.js +8 -8
  195. package/lib/middleware/__test__/notificationsMiddleware.test.js +0 -8
  196. package/lib/middleware/notificationsMiddleware.d.ts +0 -1
  197. package/lib/middleware/notificationsMiddleware.js +0 -28
  198. package/lib/ui/boxen.d.ts +0 -5
  199. package/lib/ui/boxen.js +0 -26
  200. package/mcp-server/utils/__tests__/cliConfig.test.js +0 -110
  201. package/mcp-server/utils/cliConfig.d.ts +0 -1
  202. package/mcp-server/utils/cliConfig.js +0 -12
  203. /package/{lib/middleware/__test__/commandTargetingUtils.test.d.ts → commands/project/__tests__/lint.test.d.ts} +0 -0
  204. /package/lib/middleware/{__test__/configMiddleware.test.d.ts → __tests__/commandTargetingUtils.test.d.ts} +0 -0
  205. /package/lib/middleware/{__test__/gitMiddleware.test.d.ts → __tests__/configMiddleware.test.d.ts} +0 -0
  206. /package/lib/middleware/{__test__/notificationsMiddleware.test.d.ts → __tests__/gitMiddleware.test.d.ts} +0 -0
  207. /package/lib/middleware/{__test__ → __tests__}/requestMiddleware.test.d.ts +0 -0
  208. /package/lib/middleware/{__test__ → __tests__}/requestMiddleware.test.js +0 -0
  209. /package/lib/middleware/{__test__ → __tests__}/yargsChecksMiddleware.test.d.ts +0 -0
  210. /package/lib/middleware/{__test__ → __tests__}/yargsChecksMiddleware.test.js +0 -0
  211. /package/{mcp-server/utils/__tests__/cliConfig.test.d.ts → lib/projects/__tests__/uieLinting.test.d.ts} +0 -0
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
  }
@@ -1,4 +1,5 @@
1
1
  import { getProjectThemeDetails, migrateThemes, } from '@hubspot/project-parsing-lib';
2
+ import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
2
3
  import { confirmPrompt } from '../../prompts/promptUtils.js';
3
4
  import { writeProjectConfig, } from '../../projects/config.js';
4
5
  import { ensureProjectExists } from '../../projects/ensureProjectExists.js';
@@ -13,6 +14,7 @@ vi.mock('../../projects/config');
13
14
  vi.mock('../../projects/ensureProjectExists');
14
15
  vi.mock('../../projects/platformVersion');
15
16
  vi.mock('../../app/migrate');
17
+ vi.mock('@hubspot/local-dev-lib/config');
16
18
  const mockedGetProjectThemeDetails = getProjectThemeDetails;
17
19
  const mockedMigrateThemes = migrateThemes;
18
20
  const mockedConfirmPrompt = confirmPrompt;
@@ -20,6 +22,7 @@ const mockedWriteProjectConfig = writeProjectConfig;
20
22
  const mockedEnsureProjectExists = ensureProjectExists;
21
23
  const mockedUseV2Api = isV2Project;
22
24
  const mockedFetchMigrationApps = fetchMigrationApps;
25
+ const mockedGetConfigAccountById = getConfigAccountById;
23
26
  const ACCOUNT_ID = 123;
24
27
  const PROJECT_NAME = 'Test Project';
25
28
  const PLATFORM_VERSION = '2025.2';
@@ -31,6 +34,18 @@ const createLoadedProjectConfig = (name) => ({
31
34
  describe('lib/theme/migrate', () => {
32
35
  beforeEach(() => {
33
36
  mockedUseV2Api.mockReturnValue(false);
37
+ // Mock account config for the test account ID
38
+ mockedGetConfigAccountById.mockReturnValue({
39
+ accountId: ACCOUNT_ID,
40
+ name: 'Test Account',
41
+ authType: 'personalaccesskey',
42
+ auth: {
43
+ tokenInfo: {
44
+ accessToken: 'test-token',
45
+ },
46
+ },
47
+ env: 'prod',
48
+ });
34
49
  });
35
50
  describe('getHasMigratableThemes', () => {
36
51
  it('should return false when no projectConfig is provided', async () => {
@@ -17,13 +17,11 @@ declare class SpinniesManager {
17
17
  private resetState;
18
18
  setDisableOutput(disableOutput: boolean): void;
19
19
  pick(name: string): SpinnerState | undefined;
20
- add(name: string, options?: Partial<SpinnerState>): SpinnerState & {
21
- name: string;
22
- };
23
- update(name: string, options?: Partial<SpinnerState>): SpinnerState;
24
- succeed(name: string, options?: Partial<SpinnerState>): SpinnerState;
25
- fail(name: string, options?: Partial<SpinnerState>): SpinnerState;
26
- remove(name: string): SpinnerState;
20
+ add(name: string, options?: Partial<SpinnerState>): void;
21
+ update(name: string, options?: Partial<SpinnerState>): void;
22
+ succeed(name: string, options?: Partial<SpinnerState>): void;
23
+ fail(name: string, options?: Partial<SpinnerState>): void;
24
+ remove(name: string): void;
27
25
  stopAll(newStatus?: (typeof VALID_STATUSES)[number]): {
28
26
  [key: string]: SpinnerState;
29
27
  };
@@ -10,7 +10,8 @@ The above copyright notice and this permission notice shall be included in all c
10
10
  import readline from 'readline';
11
11
  import chalk from 'chalk';
12
12
  import cliCursor from 'cli-cursor';
13
- import { breakText, cleanStream, colorOptions, getLinesLength, purgeSpinnerOptions, purgeSpinnersOptions, SPINNERS, terminalSupportsUnicode, writeStream, prefixOptions, } from './spinniesUtils.js';
13
+ import { breakText, cleanStream, colorOptions, getLinesLength, prefixOptions, purgeSpinnerOptions, purgeSpinnersOptions, SPINNERS, terminalSupportsUnicode, writeStream, } from './spinniesUtils.js';
14
+ import { uiLogger } from './logger.js';
14
15
  function safeColor(text, color) {
15
16
  const chalkFn = chalk[color];
16
17
  if (typeof chalkFn === 'function') {
@@ -74,40 +75,34 @@ class SpinniesManager {
74
75
  if (!options.text) {
75
76
  options.text = resolvedName;
76
77
  }
77
- const spinnerProperties = {
78
+ this.spinners[resolvedName] = {
78
79
  ...colorOptions(this.options),
79
80
  succeedPrefix: this.options.succeedPrefix,
80
81
  failPrefix: this.options.failPrefix,
81
82
  status: 'spinning',
82
83
  ...purgeSpinnerOptions(options),
83
84
  };
84
- this.spinners[resolvedName] = spinnerProperties;
85
85
  this.updateSpinnerState();
86
- return { name: resolvedName, ...spinnerProperties };
87
86
  }
88
87
  update(name, options = {}) {
89
88
  const { status } = options;
90
89
  this.setSpinnerProperties(name, options, status);
91
90
  this.updateSpinnerState();
92
- return this.spinners[name];
93
91
  }
94
92
  succeed(name, options = {}) {
95
93
  this.setSpinnerProperties(name, options, 'succeed');
96
94
  this.updateSpinnerState();
97
- return this.spinners[name];
98
95
  }
99
96
  fail(name, options = {}) {
100
97
  this.setSpinnerProperties(name, options, 'fail');
101
98
  this.updateSpinnerState();
102
- return this.spinners[name];
103
99
  }
104
100
  remove(name) {
105
101
  if (typeof name !== 'string') {
106
- throw Error('A spinner reference name must be specified');
102
+ uiLogger.debug('A spinner reference name must be specified');
103
+ return;
107
104
  }
108
- const spinner = this.spinners[name];
109
105
  delete this.spinners[name];
110
- return spinner;
111
106
  }
112
107
  stopAll(newStatus = 'stopped') {
113
108
  Object.keys(this.spinners).forEach(name => {
@@ -136,10 +131,12 @@ class SpinniesManager {
136
131
  }
137
132
  setSpinnerProperties(name, options, status) {
138
133
  if (typeof name !== 'string') {
139
- throw Error('A spinner reference name must be specified');
134
+ uiLogger.debug('A spinner reference name must be specified');
135
+ return;
140
136
  }
141
137
  if (!this.spinners[name]) {
142
- throw Error(`No spinner initialized with name ${name}`);
138
+ uiLogger.debug(`No spinner initialized with name ${name}`);
139
+ return;
143
140
  }
144
141
  options = purgeSpinnerOptions(options);
145
142
  status = status || 'spinning';
@@ -0,0 +1 @@
1
+ export {};