Skip to content

Commit a7b5215

Browse files
authored
Sync from internal - version 8.3.0 (#1594)
1 parent bc62fcb commit a7b5215

53 files changed

Lines changed: 360 additions & 970 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/migrate.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,12 @@ function mapPlatformVersionToEnum(platformVersion: string): string {
130130
return PLATFORM_VERSIONS.unstable.toUpperCase();
131131
}
132132

133-
return `V${platformVersion.replace('.', '_')}`;
133+
const reformattedPlatformVersion = platformVersion
134+
.replaceAll('.', '_')
135+
.replaceAll('-', '_')
136+
.toUpperCase();
137+
138+
return `V${reformattedPlatformVersion}`;
134139
}
135140

136141
export async function initializeAppMigration(

commands/account/auth.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { makeYargsBuilder } from '../../lib/yargsUtils.js';
1616
import { commands } from '../../lang/en.js';
1717
import { uiLogger } from '../../lib/ui/logger.js';
1818
import { authenticateNewAccount } from '../../lib/accountAuth.js';
19+
import { PromptExitError } from '../../lib/errors/PromptExitError.js';
1920

2021
const TRACKING_STATUS = {
2122
STARTED: 'started',
@@ -61,11 +62,19 @@ async function handler(
6162

6263
handleExit(deleteConfigFileIfEmpty);
6364

64-
const updatedConfig = await authenticateNewAccount({
65-
env: args.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD,
66-
providedPersonalAccessKey,
67-
accountId: parsedUserProvidedAccountId,
68-
});
65+
let updatedConfig;
66+
try {
67+
updatedConfig = await authenticateNewAccount({
68+
env: args.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD,
69+
providedPersonalAccessKey,
70+
accountId: parsedUserProvidedAccountId,
71+
});
72+
} catch (e) {
73+
if (e instanceof PromptExitError) {
74+
process.exit(e.exitCode);
75+
}
76+
throw e;
77+
}
6978

7079
if (!updatedConfig) {
7180
if (!disableTracking) {

commands/account/use.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { CommonArgs, YargsCommandModule } from '../../types/Yargs.js';
2424
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
2525
import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2626
import { authenticateNewAccount } from '../../lib/accountAuth.js';
27+
import { PromptExitError } from '../../lib/errors/PromptExitError.js';
2728
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
2829

2930
const command = 'use [account]';
@@ -55,10 +56,18 @@ async function handler(
5556
}
5657

5758
if (newDefaultAccount === AUTHENTICATE_NEW_ACCOUNT_VALUE) {
58-
const updatedConfig = await authenticateNewAccount({
59-
env: args.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD,
60-
setAsDefaultAccount: true,
61-
});
59+
let updatedConfig;
60+
try {
61+
updatedConfig = await authenticateNewAccount({
62+
env: args.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD,
63+
setAsDefaultAccount: true,
64+
});
65+
} catch (e) {
66+
if (e instanceof PromptExitError) {
67+
process.exit(e.exitCode);
68+
}
69+
throw e;
70+
}
6271

6372
if (!updatedConfig) {
6473
process.exit(EXIT_CODES.ERROR);

commands/app/__tests__/migrate.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ describe('commands/app/migrate', () => {
111111
}),
112112
'platform-version': expect.objectContaining({
113113
type: 'string',
114-
default: '2025.2',
114+
default: '2026.03',
115115
}),
116116
})
117117
);
@@ -123,7 +123,7 @@ describe('commands/app/migrate', () => {
123123
expect(optionsSpy).toHaveBeenCalledWith(
124124
expect.objectContaining({
125125
'platform-version': expect.objectContaining({
126-
default: '2025.2',
126+
default: '2026.03',
127127
}),
128128
})
129129
);

commands/app/migrate.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { migrateApp, MigrateAppArgs } from '../../lib/app/migrate.js';
1414
import { getIsInProject } from '../../lib/projects/config.js';
1515
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
1616

17-
const { v2025_2 } = PLATFORM_VERSIONS;
17+
const { v2025_2, v2026_03_beta, v2026_03 } = PLATFORM_VERSIONS;
1818

1919
const command = 'migrate';
2020
const describe = commands.project.migrateApp.describe;
@@ -97,8 +97,8 @@ function appMigrateBuilder(yargs: Argv): Argv<MigrateAppArgs> {
9797
},
9898
'platform-version': {
9999
type: 'string',
100-
choices: [v2025_2],
101-
default: v2025_2,
100+
choices: [v2025_2, v2026_03_beta, v2026_03],
101+
default: v2026_03,
102102
},
103103
unstable: {
104104
type: 'boolean',

commands/auth.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import { authenticateWithOauth } from '../lib/oauth.js';
3636
import { EXIT_CODES } from '../lib/enums/exitCodes.js';
3737
import { uiFeatureHighlight } from '../lib/ui/index.js';
3838
import { logError } from '../lib/errorHandlers/index.js';
39+
import { PromptExitError } from '../lib/errors/PromptExitError.js';
3940
import {
4041
AccountArgs,
4142
CommonArgs,
@@ -155,14 +156,14 @@ async function handler(args: ArgumentsCamelCase<AuthArgs>): Promise<void> {
155156

156157
break;
157158
case PERSONAL_ACCESS_KEY_AUTH_METHOD.value:
158-
const { personalAccessKey } = providedPersonalAccessKey
159-
? { personalAccessKey: providedPersonalAccessKey }
160-
: await personalAccessKeyPrompt({
161-
env,
162-
account: parsedUserProvidedAccountId,
163-
});
164-
165159
try {
160+
const { personalAccessKey } = providedPersonalAccessKey
161+
? { personalAccessKey: providedPersonalAccessKey }
162+
: await personalAccessKeyPrompt({
163+
env,
164+
account: parsedUserProvidedAccountId,
165+
});
166+
166167
token = await getAccessToken(personalAccessKey, env);
167168
defaultName = token.hubName ? toKebabCase(token.hubName) : undefined;
168169

@@ -172,6 +173,9 @@ async function handler(args: ArgumentsCamelCase<AuthArgs>): Promise<void> {
172173
env
173174
);
174175
} catch (e) {
176+
if (e instanceof PromptExitError) {
177+
process.exit(e.exitCode);
178+
}
175179
logError(e);
176180
}
177181

commands/cms/__tests__/upload.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import * as modulesLib from '@hubspot/local-dev-lib/cms/modules';
88
import * as ignoreRulesLib from '@hubspot/local-dev-lib/ignoreRules';
99
import * as themesLib from '@hubspot/local-dev-lib/cms/themes';
1010
import * as configLib from '@hubspot/local-dev-lib/config';
11+
import * as handleFieldsJSLib from '@hubspot/local-dev-lib/cms/handleFieldsJS';
1112
import { uiLogger } from '../../../lib/ui/logger.js';
1213
import * as errorHandlers from '../../../lib/errorHandlers/index.js';
1314
import * as commonOpts from '../../../lib/commonOpts.js';
@@ -27,6 +28,7 @@ vi.mock('@hubspot/local-dev-lib/cms/modules');
2728
vi.mock('@hubspot/local-dev-lib/ignoreRules');
2829
vi.mock('@hubspot/local-dev-lib/cms/themes');
2930
vi.mock('@hubspot/local-dev-lib/config');
31+
vi.mock('@hubspot/local-dev-lib/cms/handleFieldsJS');
3032
vi.mock('../../../lib/errorHandlers/index.js');
3133
vi.mock('../../../lib/commonOpts.js');
3234
vi.mock('../../../lib/prompts/uploadPrompt.js');
@@ -64,6 +66,10 @@ const getConfigAccountIfExistsSpy = vi.spyOn(
6466
configLib,
6567
'getConfigAccountIfExists'
6668
);
69+
const isConvertableFieldJsSpy = vi.spyOn(
70+
handleFieldsJSLib,
71+
'isConvertableFieldJs'
72+
);
6773

6874
describe('commands/cms/upload', () => {
6975
beforeEach(() => {
@@ -79,6 +85,7 @@ describe('commands/cms/upload', () => {
7985
getThemePreviewUrlSpy.mockReturnValue(undefined);
8086
// Mock config to prevent reading actual config file in CI
8187
getConfigAccountIfExistsSpy.mockReturnValue(undefined);
88+
isConvertableFieldJsSpy.mockReturnValue(false);
8289
});
8390

8491
describe('command', () => {

commands/getStarted.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ async function handler(
190190
HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH,
191191
projectDest,
192192
{
193-
sourceDir: '2025.2/private-app-get-started-template',
193+
sourceDir: '2026.03/private-app-get-started-template',
194194
hideLogs: true,
195195
}
196196
);

commands/hubdb/clear.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Argv, ArgumentsCamelCase } from 'yargs';
22
import { uiLogger } from '../../lib/ui/logger.js';
33
import { logError } from '../../lib/errorHandlers/index.js';
4+
import { PromptExitError } from '../../lib/errors/PromptExitError.js';
45
import { clearHubDbTableRows } from '@hubspot/local-dev-lib/hubdb';
56
import { publishTable } from '@hubspot/local-dev-lib/api/hubdb';
67
import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
@@ -59,6 +60,9 @@ async function handler(
5960
uiLogger.log(commands.hubdb.subcommands.clear.logs.tableEmpty(tableId));
6061
}
6162
} catch (e) {
63+
if (e instanceof PromptExitError) {
64+
process.exit(e.exitCode);
65+
}
6266
logError(e);
6367
}
6468
}

commands/hubdb/delete.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Argv, ArgumentsCamelCase } from 'yargs';
22
import { uiLogger } from '../../lib/ui/logger.js';
33
import { logError } from '../../lib/errorHandlers/index.js';
4+
import { PromptExitError } from '../../lib/errors/PromptExitError.js';
45
import { deleteTable } from '@hubspot/local-dev-lib/api/hubdb';
56
import { trackCommandUsage } from '../../lib/usageTracking.js';
67
import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
@@ -61,6 +62,9 @@ async function handler(
6162
);
6263
process.exit(EXIT_CODES.SUCCESS);
6364
} catch (e) {
65+
if (e instanceof PromptExitError) {
66+
process.exit(e.exitCode);
67+
}
6468
uiLogger.error(
6569
commands.hubdb.subcommands.delete.errors.delete(args.tableId || '')
6670
);

0 commit comments

Comments
 (0)