@hubspot/cli 7.8.12-experimental.1 → 7.9.0-beta.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.
- package/commands/__tests__/cms.test.js +44 -1
- package/commands/__tests__/customObject.test.js +22 -1
- package/commands/__tests__/project.test.js +2 -0
- package/commands/account/auth.js +1 -0
- package/commands/auth.js +1 -0
- package/commands/{__tests__/remove.test.js → cms/__tests__/delete.test.js} +8 -8
- package/commands/{__tests__ → cms/__tests__}/fetch.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/function.test.js +7 -3
- package/commands/{__tests__ → cms/__tests__}/lint.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/list.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/mv.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/theme.test.js +9 -2
- package/commands/cms/app/create.d.ts +9 -0
- package/commands/cms/app/create.js +82 -0
- package/commands/cms/app.d.ts +3 -0
- package/commands/cms/app.js +17 -0
- package/commands/cms/delete.d.ts +6 -0
- package/commands/cms/delete.js +43 -0
- package/commands/cms/fetch.d.ts +12 -0
- package/commands/cms/fetch.js +79 -0
- package/commands/{__tests__ → cms/function/__tests__}/logs.test.js +4 -5
- package/commands/cms/function/create.d.ts +12 -0
- package/commands/cms/function/create.js +84 -0
- package/commands/cms/function/deploy.d.ts +6 -0
- package/commands/cms/function/deploy.js +89 -0
- package/commands/cms/function/list.d.ts +6 -0
- package/commands/cms/function/list.js +60 -0
- package/commands/cms/function/logs.d.ts +10 -0
- package/commands/cms/function/logs.js +135 -0
- package/commands/cms/function/server.d.ts +10 -0
- package/commands/cms/function/server.js +69 -0
- package/commands/cms/function.d.ts +3 -0
- package/commands/cms/function.js +27 -0
- package/commands/cms/lint.d.ts +6 -0
- package/commands/cms/lint.js +83 -0
- package/commands/cms/list.d.ts +6 -0
- package/commands/cms/list.js +96 -0
- package/commands/cms/module/create.d.ts +11 -0
- package/commands/cms/module/create.js +84 -0
- package/commands/cms/module/marketplace-validate.d.ts +6 -0
- package/commands/cms/module/marketplace-validate.js +45 -0
- package/commands/cms/module.d.ts +3 -0
- package/commands/cms/module.js +17 -0
- package/commands/cms/mv.d.ts +7 -0
- package/commands/cms/mv.js +60 -0
- package/commands/cms/template/create.d.ts +9 -0
- package/commands/cms/template/create.js +72 -0
- package/commands/cms/template.d.ts +3 -0
- package/commands/cms/template.js +17 -0
- package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.js +2 -2
- package/commands/{theme → cms/theme}/__tests__/preview.test.js +2 -2
- package/commands/cms/theme/create.d.ts +6 -0
- package/commands/cms/theme/create.js +58 -0
- package/commands/cms/theme/generate-selectors.d.ts +6 -0
- package/commands/cms/theme/generate-selectors.js +171 -0
- package/commands/cms/theme/marketplace-validate.d.ts +6 -0
- package/commands/cms/theme/marketplace-validate.js +46 -0
- package/commands/cms/theme/preview.d.ts +12 -0
- package/commands/cms/theme/preview.js +224 -0
- package/commands/cms/theme.d.ts +3 -0
- package/commands/cms/theme.js +25 -0
- package/commands/cms/upload.d.ts +12 -0
- package/commands/cms/upload.js +212 -0
- package/commands/cms/watch.d.ts +14 -0
- package/commands/cms/watch.js +138 -0
- package/commands/cms/webpack/create.d.ts +6 -0
- package/commands/cms/webpack/create.js +58 -0
- package/commands/cms/webpack.d.ts +3 -0
- package/commands/cms/webpack.js +17 -0
- package/commands/cms.js +26 -0
- package/commands/create.js +4 -2
- package/commands/customObject/{schema/__tests__/create.test.js → __tests__/createSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/delete.test.js → __tests__/deleteSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/fetch-all.test.js → __tests__/fetch-all-schemas.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/fetch.test.js → __tests__/fetchSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/list.test.js → __tests__/listSchemas.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/update.test.js → __tests__/updateSchema.test.js} +5 -5
- package/commands/customObject/createSchema.d.ts +6 -0
- package/commands/customObject/createSchema.js +56 -0
- package/commands/customObject/deleteSchema.d.ts +7 -0
- package/commands/customObject/deleteSchema.js +69 -0
- package/commands/customObject/fetchAllSchemas.d.ts +6 -0
- package/commands/customObject/fetchAllSchemas.js +57 -0
- package/commands/customObject/fetchSchema.d.ts +7 -0
- package/commands/customObject/fetchSchema.js +67 -0
- package/commands/customObject/listSchemas.d.ts +4 -0
- package/commands/customObject/listSchemas.js +35 -0
- package/commands/customObject/schema/create.d.ts +4 -6
- package/commands/customObject/schema/create.js +13 -36
- package/commands/customObject/schema/delete.d.ts +4 -7
- package/commands/customObject/schema/delete.js +15 -50
- package/commands/customObject/schema/fetch-all.d.ts +4 -6
- package/commands/customObject/schema/fetch-all.js +14 -41
- package/commands/customObject/schema/fetch.d.ts +4 -7
- package/commands/customObject/schema/fetch.js +14 -49
- package/commands/customObject/schema/list.d.ts +4 -4
- package/commands/customObject/schema/list.js +10 -19
- package/commands/customObject/schema/update.d.ts +4 -7
- package/commands/customObject/schema/update.js +15 -50
- package/commands/customObject/schema.js +4 -2
- package/commands/customObject/updateSchema.d.ts +7 -0
- package/commands/customObject/updateSchema.js +71 -0
- package/commands/customObject.js +16 -1
- package/commands/feedback.js +1 -1
- package/commands/fetch.d.ts +4 -12
- package/commands/fetch.js +19 -46
- package/commands/function/deploy.d.ts +4 -6
- package/commands/function/deploy.js +14 -71
- package/commands/function/list.d.ts +4 -6
- package/commands/function/list.js +14 -40
- package/commands/function/server.d.ts +4 -10
- package/commands/function/server.js +22 -29
- package/commands/function.d.ts +2 -4
- package/commands/function.js +25 -14
- package/commands/lint.d.ts +4 -6
- package/commands/lint.js +13 -65
- package/commands/list.d.ts +4 -6
- package/commands/list.js +13 -74
- package/commands/logs.d.ts +4 -10
- package/commands/logs.js +24 -87
- package/commands/module/marketplace-validate.d.ts +4 -6
- package/commands/module/marketplace-validate.js +15 -27
- package/commands/module.d.ts +2 -2
- package/commands/module.js +17 -15
- package/commands/mv.d.ts +4 -7
- package/commands/mv.js +13 -39
- package/commands/project/__tests__/add.test.js +12 -12
- package/commands/project/__tests__/devUnifiedFlow.test.js +32 -0
- package/commands/project/__tests__/list.test.js +31 -0
- package/commands/project/__tests__/migrate.test.js +1 -0
- package/commands/project/add.d.ts +2 -2
- package/commands/project/add.js +3 -2
- package/commands/project/create.js +1 -1
- package/commands/project/dev/deprecatedFlow.js +2 -2
- package/commands/project/dev/index.js +5 -5
- package/commands/project/dev/unifiedFlow.js +8 -3
- package/commands/project/download.js +5 -2
- package/commands/project/installDeps.d.ts +2 -2
- package/commands/project/installDeps.js +1 -0
- package/commands/project/list.d.ts +4 -0
- package/commands/project/list.js +62 -0
- package/commands/project/migrate.js +5 -2
- package/commands/project.js +2 -0
- package/commands/remove.d.ts +4 -6
- package/commands/remove.js +12 -24
- package/commands/testAccount/create.js +2 -2
- package/commands/testAccount/delete.js +1 -1
- package/commands/theme/generate-selectors.d.ts +4 -6
- package/commands/theme/generate-selectors.js +14 -152
- package/commands/theme/marketplace-validate.d.ts +4 -6
- package/commands/theme/marketplace-validate.js +14 -25
- package/commands/theme/preview.d.ts +4 -12
- package/commands/theme/preview.js +18 -180
- package/commands/theme.d.ts +2 -2
- package/commands/theme.js +19 -13
- package/commands/upload.d.ts +4 -12
- package/commands/upload.js +19 -169
- package/commands/watch.d.ts +4 -14
- package/commands/watch.js +23 -88
- package/lang/en.d.ts +560 -425
- package/lang/en.js +562 -427
- package/lang/en.lyaml +2 -2
- package/lib/__tests__/buildAccount.test.js +2 -2
- package/lib/buildAccount.d.ts +2 -2
- package/lib/buildAccount.js +7 -7
- package/lib/configMigrate.js +88 -9
- package/lib/constants.d.ts +9 -0
- package/lib/constants.js +9 -0
- package/lib/generateSelectors.js +1 -1
- package/lib/middleware/autoUpdateMiddleware.d.ts +2 -1
- package/lib/middleware/autoUpdateMiddleware.js +12 -2
- package/lib/middleware/commandTargetingUtils.d.ts +1 -1
- package/lib/middleware/commandTargetingUtils.js +16 -20
- package/lib/projects/__tests__/AppDevModeInterface.test.js +95 -109
- package/lib/projects/__tests__/DevServerManager.test.js +183 -0
- package/lib/projects/__tests__/LocalDevProcess.test.js +6 -5
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +6 -6
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +1 -0
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +161 -0
- package/lib/projects/__tests__/deploy.test.js +9 -9
- package/lib/projects/__tests__/upload.test.js +2 -2
- package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
- package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +35 -35
- package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
- package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
- package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
- package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +2 -2
- package/lib/projects/create/index.js +2 -2
- package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
- package/lib/projects/create/{v3.js → v2.js} +3 -3
- package/lib/projects/deploy.d.ts +1 -1
- package/lib/projects/deploy.js +2 -2
- package/lib/projects/localDev/AppDevModeInterface.d.ts +9 -3
- package/lib/projects/localDev/AppDevModeInterface.js +116 -105
- package/lib/projects/localDev/DevServerManager.d.ts +10 -29
- package/lib/projects/localDev/DevServerManager.js +20 -76
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
- package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +6 -6
- package/lib/projects/localDev/LocalDevProcess.js +3 -2
- package/lib/projects/localDev/LocalDevState.d.ts +3 -0
- package/lib/projects/localDev/LocalDevState.js +9 -0
- package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +4 -0
- package/lib/projects/localDev/LocalDevWebsocketServer.js +39 -6
- package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +13 -0
- package/lib/projects/localDev/UIExtensionsDevModeInterface.js +37 -0
- package/lib/projects/localDev/helpers/account.d.ts +1 -1
- package/lib/projects/localDev/helpers/account.js +2 -2
- package/lib/projects/localDev/helpers/process.d.ts +1 -0
- package/lib/projects/localDev/helpers/process.js +15 -0
- package/lib/projects/localDev/helpers/project.js +2 -3
- package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +3 -0
- package/lib/projects/localDev/localDevWebsocketServerUtils.js +9 -0
- package/lib/projects/urls.d.ts +0 -1
- package/lib/projects/urls.js +0 -3
- package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
- package/lib/prompts/installAppPrompt.d.ts +1 -6
- package/lib/prompts/installAppPrompt.js +1 -6
- package/lib/prompts/projectAddPrompt.d.ts +2 -2
- package/lib/prompts/projectAddPrompt.js +1 -1
- package/lib/theme/__tests__/migrate.test.js +4 -4
- package/lib/ui/index.d.ts +2 -0
- package/lib/ui/index.js +8 -0
- package/lib/ui/uiMessages.d.ts +5 -0
- package/lib/ui/uiMessages.js +5 -0
- package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +2 -2
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +1 -1
- package/package.json +6 -5
- package/types/Cms.d.ts +6 -6
- package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
- package/lib/projects/localDev/DevServerManagerV2.js +0 -81
- /package/commands/{customObject/schema → cms}/__tests__/delete.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/fetch.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/function.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/lint.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/list.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/mv.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/theme.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/function/__tests__}/logs.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.js +0 -0
- /package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/preview.test.d.ts +0 -0
- /package/commands/{__tests__/remove.test.d.ts → customObject/__tests__/createSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/create.test.d.ts → __tests__/deleteSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/fetch-all.test.d.ts → __tests__/fetch-all-schemas.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/fetch.test.d.ts → __tests__/fetchSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/list.test.d.ts → __tests__/listSchemas.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/update.test.d.ts → __tests__/updateSchema.test.d.ts} +0 -0
- /package/{lib/projects/add/__tests__/v3AddComponent.test.d.ts → commands/project/__tests__/list.test.d.ts} +0 -0
- /package/{commands/create → lib/cmsAssets}/api-sample.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/api-sample.js +0 -0
- /package/{commands/create → lib/cmsAssets}/app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/function.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/function.js +0 -0
- /package/{commands/create → lib/cmsAssets}/index.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/index.js +0 -0
- /package/{commands/create → lib/cmsAssets}/module.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/module.js +0 -0
- /package/{commands/create → lib/cmsAssets}/react-app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/react-app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/template.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/template.js +0 -0
- /package/{commands/create → lib/cmsAssets}/vue-app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/vue-app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/webpack-serverless.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/webpack-serverless.js +0 -0
- /package/{commands/create → lib/cmsAssets}/website-theme.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/website-theme.js +0 -0
- /package/lib/projects/{create/__tests__/v3.test.d.ts → __tests__/DevServerManager.test.d.ts} +0 -0
- /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
|
@@ -10,6 +10,7 @@ declare class AppDevModeInterface {
|
|
|
10
10
|
localDevLogger: LocalDevLogger;
|
|
11
11
|
_appNode?: AppIRNode | null;
|
|
12
12
|
marketplaceAppInstalls?: number;
|
|
13
|
+
private appInstallResolve?;
|
|
13
14
|
constructor(options: AppDevModeInterfaceConstructorOptions);
|
|
14
15
|
private getAppNodeFromProjectNodes;
|
|
15
16
|
private get appNode();
|
|
@@ -17,18 +18,23 @@ declare class AppDevModeInterface {
|
|
|
17
18
|
private set appData(value);
|
|
18
19
|
private isStaticAuthApp;
|
|
19
20
|
private isOAuthApp;
|
|
21
|
+
private isAutomaticallyInstallable;
|
|
20
22
|
private getAppInstallUrl;
|
|
21
23
|
private fetchAppData;
|
|
22
24
|
private checkMarketplaceAppInstalls;
|
|
25
|
+
private waitUntilAppIsInstalled;
|
|
26
|
+
private autoInstallStaticAuthApp;
|
|
23
27
|
private installAppOrOpenInstallUrl;
|
|
24
28
|
private checkTestAccountAppInstallation;
|
|
29
|
+
private resolveAppInstallPromise;
|
|
30
|
+
private handleAppInstallSuccessDevServerMessage;
|
|
31
|
+
private handleAppInstallInitiatedDevServerMessage;
|
|
32
|
+
private handleAppInstallFailureDevServerMessage;
|
|
25
33
|
private onDevServerMessage;
|
|
26
34
|
private onChangeProjectNodes;
|
|
27
|
-
private setUpStateListeners;
|
|
28
35
|
private removeStateListeners;
|
|
29
|
-
setup(
|
|
36
|
+
setup(): Promise<void>;
|
|
30
37
|
start(): Promise<void>;
|
|
31
|
-
fileChange(filePath: string, event: string): Promise<void>;
|
|
32
38
|
cleanup(): Promise<void>;
|
|
33
39
|
}
|
|
34
40
|
export default AppDevModeInterface;
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
import { fetchAppInstallationData } from '@hubspot/local-dev-lib/api/localDevAuth';
|
|
2
|
-
import { fetchAppMetadataByUid, fetchPublicAppProductionInstallCounts,
|
|
3
|
-
|
|
4
|
-
} from '@hubspot/local-dev-lib/api/appsDev';
|
|
5
|
-
import { DevModeUnifiedInterface as UIEDevModeInterface } from '@hubspot/ui-extensions-dev-server';
|
|
6
|
-
import { requestPorts } from '@hubspot/local-dev-lib/portManager';
|
|
2
|
+
import { fetchAppMetadataByUid, fetchPublicAppProductionInstallCounts, installStaticAuthAppOnTestAccount, } from '@hubspot/local-dev-lib/api/appsDev';
|
|
3
|
+
import { getAccountConfig } from '@hubspot/local-dev-lib/config';
|
|
7
4
|
import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, APP_INSTALLATION_STATES, LOCAL_DEV_SERVER_MESSAGE_TYPES, } from '../../constants.js';
|
|
8
5
|
import { EXIT_CODES } from '../../enums/exitCodes.js';
|
|
9
6
|
import { isAppIRNode } from '../../projects/structure.js';
|
|
10
7
|
import { uiLine } from '../../ui/index.js';
|
|
11
8
|
import { logError } from '../../errorHandlers/index.js';
|
|
12
|
-
import {
|
|
13
|
-
// installAppAutoPrompt,
|
|
14
|
-
installAppBrowserPrompt, } from '../../prompts/installAppPrompt.js';
|
|
9
|
+
import { installAppAutoPrompt, installAppBrowserPrompt, } from '../../prompts/installAppPrompt.js';
|
|
15
10
|
import { confirmPrompt } from '../../prompts/promptUtils.js';
|
|
16
11
|
import { lib } from '../../../lang/en.js';
|
|
17
12
|
import { uiLogger } from '../../ui/logger.js';
|
|
18
13
|
import { getOauthAppInstallUrl, getStaticAuthAppInstallUrl, } from '../../app/urls.js';
|
|
14
|
+
import { isDeveloperTestAccount, isSandbox } from '../../accountTypes.js';
|
|
19
15
|
import SpinniesManager from '../../ui/SpinniesManager.js';
|
|
20
16
|
class AppDevModeInterface {
|
|
21
17
|
localDevState;
|
|
22
18
|
localDevLogger;
|
|
23
19
|
_appNode;
|
|
24
20
|
marketplaceAppInstalls;
|
|
21
|
+
appInstallResolve;
|
|
25
22
|
constructor(options) {
|
|
26
23
|
this.localDevState = options.localDevState;
|
|
27
24
|
this.localDevLogger = options.localDevLogger;
|
|
@@ -43,10 +40,18 @@ class AppDevModeInterface {
|
|
|
43
40
|
return this._appNode;
|
|
44
41
|
}
|
|
45
42
|
get appData() {
|
|
43
|
+
// These checks are primarily for type safety
|
|
44
|
+
// App data will never be accessed before being set
|
|
46
45
|
if (!this.appNode) {
|
|
47
|
-
|
|
46
|
+
uiLogger.log(lib.AppDevModeInterface.appDataNotFound);
|
|
47
|
+
process.exit(EXIT_CODES.ERROR);
|
|
48
|
+
}
|
|
49
|
+
const data = this.localDevState.getAppDataByUid(this.appNode.uid);
|
|
50
|
+
if (!data) {
|
|
51
|
+
uiLogger.log(lib.AppDevModeInterface.appDataNotFound);
|
|
52
|
+
process.exit(EXIT_CODES.ERROR);
|
|
48
53
|
}
|
|
49
|
-
return
|
|
54
|
+
return data;
|
|
50
55
|
}
|
|
51
56
|
set appData(appData) {
|
|
52
57
|
if (!this.appNode) {
|
|
@@ -60,32 +65,23 @@ class AppDevModeInterface {
|
|
|
60
65
|
isOAuthApp() {
|
|
61
66
|
return (this.appNode?.config.auth.type.toLowerCase() === APP_AUTH_TYPES.OAUTH);
|
|
62
67
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// const hasCorrectParent =
|
|
75
|
-
// targetTestingAccount.parentAccountId ===
|
|
76
|
-
// this.localDevState.targetProjectAccountId;
|
|
77
|
-
// return (
|
|
78
|
-
// isTestAccount &&
|
|
79
|
-
// hasCorrectParent &&
|
|
80
|
-
// this.isStaticAuthApp()
|
|
81
|
-
// );
|
|
82
|
-
// }
|
|
68
|
+
isAutomaticallyInstallable() {
|
|
69
|
+
const targetTestingAccount = getAccountConfig(this.localDevState.targetTestingAccountId);
|
|
70
|
+
if (!targetTestingAccount) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
const isTestAccount = isDeveloperTestAccount(targetTestingAccount) ||
|
|
74
|
+
isSandbox(targetTestingAccount);
|
|
75
|
+
const hasCorrectParent = targetTestingAccount.parentAccountId ===
|
|
76
|
+
this.localDevState.targetProjectAccountId;
|
|
77
|
+
return isTestAccount && hasCorrectParent && this.isStaticAuthApp();
|
|
78
|
+
}
|
|
83
79
|
async getAppInstallUrl() {
|
|
84
80
|
if (this.appNode && this.isOAuthApp()) {
|
|
85
81
|
return getOauthAppInstallUrl({
|
|
86
82
|
targetAccountId: this.localDevState.targetTestingAccountId,
|
|
87
83
|
env: this.localDevState.env,
|
|
88
|
-
clientId: this.appData.clientId,
|
|
84
|
+
clientId: this.appData.clientId,
|
|
89
85
|
scopes: this.appNode.config.auth.requiredScopes,
|
|
90
86
|
redirectUrls: this.appNode.config.auth.redirectUrls,
|
|
91
87
|
});
|
|
@@ -120,13 +116,13 @@ class AppDevModeInterface {
|
|
|
120
116
|
id: appData.id,
|
|
121
117
|
clientId: appData.clientId,
|
|
122
118
|
name: appData.name,
|
|
123
|
-
installationState: APP_INSTALLATION_STATES.
|
|
119
|
+
installationState: APP_INSTALLATION_STATES.UNKNOWN,
|
|
124
120
|
scopeGroupIds: appData.scopeGroupIds,
|
|
125
121
|
};
|
|
126
122
|
this.marketplaceAppInstalls = uniquePortalInstallCount;
|
|
127
123
|
}
|
|
128
124
|
async checkMarketplaceAppInstalls() {
|
|
129
|
-
if (!this.
|
|
125
|
+
if (!this.marketplaceAppInstalls) {
|
|
130
126
|
return;
|
|
131
127
|
}
|
|
132
128
|
SpinniesManager.fail('fetchAppData', {
|
|
@@ -142,53 +138,58 @@ class AppDevModeInterface {
|
|
|
142
138
|
}
|
|
143
139
|
this.localDevState.addUploadWarning(lib.AppDevModeInterface.defaultMarketplaceAppWarning(this.marketplaceAppInstalls));
|
|
144
140
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
141
|
+
async waitUntilAppIsInstalled(installUrl) {
|
|
142
|
+
uiLogger.log(lib.AppDevModeInterface.waitUntilAppIsInstalled.link(installUrl));
|
|
143
|
+
SpinniesManager.add('waitUntilAppIsInstalled', {
|
|
144
|
+
text: lib.AppDevModeInterface.waitUntilAppIsInstalled.waiting,
|
|
145
|
+
});
|
|
146
|
+
await new Promise(resolve => {
|
|
147
|
+
this.appInstallResolve = resolve;
|
|
148
|
+
});
|
|
149
|
+
SpinniesManager.succeed('waitUntilAppIsInstalled', {
|
|
150
|
+
text: lib.AppDevModeInterface.waitUntilAppIsInstalled.success(this.appNode?.config.name || '', this.localDevState.targetTestingAccountId),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
async autoInstallStaticAuthApp() {
|
|
154
|
+
const shouldInstall = await installAppAutoPrompt();
|
|
155
|
+
if (!shouldInstall) {
|
|
156
|
+
uiLogger.log(lib.AppDevModeInterface.autoInstallDeclined);
|
|
157
|
+
process.exit(EXIT_CODES.SUCCESS);
|
|
158
|
+
}
|
|
159
|
+
uiLogger.log('');
|
|
160
|
+
SpinniesManager.add('autoInstallStaticAuthApp', {
|
|
161
|
+
text: lib.AppDevModeInterface.autoInstallStaticAuthApp.installing(this.appData.name, this.localDevState.targetTestingAccountId),
|
|
162
|
+
});
|
|
163
|
+
try {
|
|
164
|
+
await installStaticAuthAppOnTestAccount(this.appData.id, this.localDevState.targetTestingAccountId, this.appData.scopeGroupIds);
|
|
165
|
+
SpinniesManager.succeed('autoInstallStaticAuthApp', {
|
|
166
|
+
text: lib.AppDevModeInterface.autoInstallStaticAuthApp.success(this.appData.name, this.localDevState.targetTestingAccountId),
|
|
167
|
+
});
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
SpinniesManager.fail('autoInstallStaticAuthApp', {
|
|
172
|
+
text: lib.AppDevModeInterface.autoInstallStaticAuthApp.error(this.appData.name, this.localDevState.targetTestingAccountId),
|
|
173
|
+
failColor: 'white',
|
|
174
|
+
});
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
158
178
|
async installAppOrOpenInstallUrl(isReinstall) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
// uiLogger.success(
|
|
164
|
-
// lib.AppDevModeInterface.autoInstallSuccess(
|
|
165
|
-
// this.appData!.name,
|
|
166
|
-
// this.localDevState.targetTestingAccountId
|
|
167
|
-
// )
|
|
168
|
-
// );
|
|
169
|
-
// return;
|
|
170
|
-
// } catch (e) {
|
|
171
|
-
// uiLogger.error(
|
|
172
|
-
// lib.AppDevModeInterface.autoInstallError(
|
|
173
|
-
// this.appData!.name,
|
|
174
|
-
// this.localDevState.targetTestingAccountId
|
|
175
|
-
// )
|
|
176
|
-
// );
|
|
177
|
-
// }
|
|
178
|
-
// }
|
|
179
|
-
const staticAuthInstallOptions = this.isStaticAuthApp()
|
|
180
|
-
? {
|
|
181
|
-
testingAccountId: this.localDevState.targetTestingAccountId,
|
|
182
|
-
projectAccountId: this.localDevState.targetProjectAccountId,
|
|
183
|
-
projectName: this.localDevState.projectConfig.name,
|
|
184
|
-
appUid: this.appNode.uid,
|
|
179
|
+
if (this.isAutomaticallyInstallable()) {
|
|
180
|
+
const installSuccess = await this.autoInstallStaticAuthApp();
|
|
181
|
+
if (installSuccess) {
|
|
182
|
+
return;
|
|
185
183
|
}
|
|
186
|
-
|
|
184
|
+
}
|
|
187
185
|
const installUrl = await this.getAppInstallUrl();
|
|
188
|
-
await installAppBrowserPrompt(installUrl, isReinstall
|
|
186
|
+
await installAppBrowserPrompt(installUrl, isReinstall);
|
|
187
|
+
if (!isReinstall) {
|
|
188
|
+
await this.waitUntilAppIsInstalled(installUrl);
|
|
189
|
+
}
|
|
189
190
|
}
|
|
190
191
|
async checkTestAccountAppInstallation() {
|
|
191
|
-
if (!this.appNode
|
|
192
|
+
if (!this.appNode) {
|
|
192
193
|
return {};
|
|
193
194
|
}
|
|
194
195
|
const { data: { isInstalledWithScopeGroups, previouslyAuthorizedScopeGroups }, } = await fetchAppInstallationData(this.localDevState.targetTestingAccountId, this.localDevState.projectId, this.appNode.uid, this.appNode.config.auth.requiredScopes, this.appNode.config.auth.optionalScopes);
|
|
@@ -205,11 +206,46 @@ class AppDevModeInterface {
|
|
|
205
206
|
installationState: APP_INSTALLATION_STATES.INSTALLED_WITH_OUTDATED_SCOPES,
|
|
206
207
|
};
|
|
207
208
|
}
|
|
209
|
+
else {
|
|
210
|
+
this.appData = {
|
|
211
|
+
...this.appData,
|
|
212
|
+
installationState: APP_INSTALLATION_STATES.NOT_INSTALLED,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
208
215
|
return { needsInstall: !isInstalledWithScopeGroups, isReinstall };
|
|
209
216
|
}
|
|
210
|
-
|
|
217
|
+
resolveAppInstallPromise() {
|
|
218
|
+
if (this.appInstallResolve) {
|
|
219
|
+
this.appInstallResolve();
|
|
220
|
+
this.appInstallResolve = undefined;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
handleAppInstallSuccessDevServerMessage() {
|
|
224
|
+
this.resolveAppInstallPromise();
|
|
225
|
+
this.appData = {
|
|
226
|
+
...this.appData,
|
|
227
|
+
installationState: APP_INSTALLATION_STATES.INSTALLED,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
handleAppInstallInitiatedDevServerMessage() {
|
|
231
|
+
this.resolveAppInstallPromise();
|
|
232
|
+
}
|
|
233
|
+
handleAppInstallFailureDevServerMessage() {
|
|
234
|
+
uiLogger.error(lib.AppDevModeInterface.installationFailed);
|
|
235
|
+
process.exit(EXIT_CODES.ERROR);
|
|
236
|
+
}
|
|
237
|
+
onDevServerMessage = async (message) => {
|
|
211
238
|
if (message === LOCAL_DEV_SERVER_MESSAGE_TYPES.WEBSOCKET_SERVER_CONNECTED) {
|
|
212
|
-
this.checkTestAccountAppInstallation();
|
|
239
|
+
await this.checkTestAccountAppInstallation();
|
|
240
|
+
}
|
|
241
|
+
else if (message === LOCAL_DEV_SERVER_MESSAGE_TYPES.STATIC_AUTH_APP_INSTALL_SUCCESS) {
|
|
242
|
+
this.handleAppInstallSuccessDevServerMessage();
|
|
243
|
+
}
|
|
244
|
+
else if (message === LOCAL_DEV_SERVER_MESSAGE_TYPES.STATIC_AUTH_APP_INSTALL_FAILURE) {
|
|
245
|
+
this.handleAppInstallFailureDevServerMessage();
|
|
246
|
+
}
|
|
247
|
+
else if (message === LOCAL_DEV_SERVER_MESSAGE_TYPES.OAUTH_APP_INSTALL_INITIATED) {
|
|
248
|
+
this.handleAppInstallInitiatedDevServerMessage();
|
|
213
249
|
}
|
|
214
250
|
};
|
|
215
251
|
onChangeProjectNodes = (nodes) => {
|
|
@@ -227,17 +263,11 @@ class AppDevModeInterface {
|
|
|
227
263
|
this.localDevState.addUploadWarning(lib.AppDevModeInterface.authTypeChanged);
|
|
228
264
|
}
|
|
229
265
|
};
|
|
230
|
-
setUpStateListeners() {
|
|
231
|
-
this.localDevState.addListener('devServerMessage', this.onDevServerMessage);
|
|
232
|
-
this.localDevState.addListener('projectNodes', this.onChangeProjectNodes);
|
|
233
|
-
}
|
|
234
266
|
removeStateListeners() {
|
|
235
267
|
this.localDevState.removeListener('devServerMessage', this.onDevServerMessage);
|
|
236
268
|
this.localDevState.removeListener('projectNodes', this.onChangeProjectNodes);
|
|
237
269
|
}
|
|
238
|
-
|
|
239
|
-
// In the future, update UIE Dev Server to use LocalDevState
|
|
240
|
-
async setup(args) {
|
|
270
|
+
async setup() {
|
|
241
271
|
if (!this.appNode) {
|
|
242
272
|
return;
|
|
243
273
|
}
|
|
@@ -254,6 +284,7 @@ class AppDevModeInterface {
|
|
|
254
284
|
failColor: 'white',
|
|
255
285
|
});
|
|
256
286
|
}
|
|
287
|
+
this.localDevState.addListener('devServerMessage', this.onDevServerMessage);
|
|
257
288
|
await this.installAppOrOpenInstallUrl(isReinstall || false);
|
|
258
289
|
}
|
|
259
290
|
else {
|
|
@@ -268,32 +299,12 @@ class AppDevModeInterface {
|
|
|
268
299
|
catch (e) {
|
|
269
300
|
logError(e);
|
|
270
301
|
}
|
|
271
|
-
this.setUpStateListeners();
|
|
272
|
-
return UIEDevModeInterface.setup(args);
|
|
273
302
|
}
|
|
274
303
|
async start() {
|
|
275
|
-
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
return UIEDevModeInterface.start({
|
|
279
|
-
accountId: this.localDevState.targetTestingAccountId,
|
|
280
|
-
// @ts-expect-error TODO: reconcile types between CLI and UIE Dev Server
|
|
281
|
-
projectConfig: this.localDevState.projectConfig,
|
|
282
|
-
requestPorts,
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
async fileChange(filePath, event) {
|
|
286
|
-
if (!this.appNode) {
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
return UIEDevModeInterface.fileChange(filePath, event);
|
|
304
|
+
this.localDevState.addListener('projectNodes', this.onChangeProjectNodes);
|
|
290
305
|
}
|
|
291
306
|
async cleanup() {
|
|
292
|
-
if (!this.appNode) {
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
307
|
this.removeStateListeners();
|
|
296
|
-
return UIEDevModeInterface.cleanup();
|
|
297
308
|
}
|
|
298
309
|
}
|
|
299
310
|
export default AppDevModeInterface;
|
|
@@ -1,40 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
cleanup?: () => Promise<void>;
|
|
7
|
-
};
|
|
8
|
-
type ComponentsByType = {
|
|
9
|
-
[key in ComponentTypes]?: {
|
|
10
|
-
[key: string]: Component;
|
|
11
|
-
};
|
|
1
|
+
import LocalDevState from './LocalDevState.js';
|
|
2
|
+
import LocalDevLogger from './LocalDevLogger.js';
|
|
3
|
+
type DevServerManagerConstructorOptions = {
|
|
4
|
+
localDevState: LocalDevState;
|
|
5
|
+
logger: LocalDevLogger;
|
|
12
6
|
};
|
|
13
7
|
declare class DevServerManager {
|
|
14
8
|
private initialized;
|
|
15
9
|
private started;
|
|
16
|
-
private componentsByType;
|
|
17
10
|
private devServers;
|
|
18
|
-
constructor();
|
|
19
|
-
iterateDevServers
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
arrangeComponentsByType(components: Component[]): ComponentsByType;
|
|
23
|
-
setup({ components, onUploadRequired, accountId, setActiveApp, }: {
|
|
24
|
-
components: Component[];
|
|
25
|
-
onUploadRequired: () => void;
|
|
26
|
-
accountId: number;
|
|
27
|
-
setActiveApp: (appUid: string | undefined) => Promise<void>;
|
|
28
|
-
}): Promise<void>;
|
|
29
|
-
start({ accountId, projectConfig, }: {
|
|
30
|
-
accountId: number;
|
|
31
|
-
projectConfig: ProjectConfig;
|
|
32
|
-
}): Promise<void>;
|
|
11
|
+
constructor(options: DevServerManagerConstructorOptions);
|
|
12
|
+
private iterateDevServers;
|
|
13
|
+
setup(): Promise<void>;
|
|
14
|
+
start(): Promise<void>;
|
|
33
15
|
fileChange({ filePath, event, }: {
|
|
34
16
|
filePath: string;
|
|
35
17
|
event: string;
|
|
36
18
|
}): Promise<void>;
|
|
37
19
|
cleanup(): Promise<void>;
|
|
38
20
|
}
|
|
39
|
-
|
|
40
|
-
export default Manager;
|
|
21
|
+
export default DevServerManager;
|
|
@@ -1,93 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { DevModeInterface as UIEDevModeInterface } from '@hubspot/ui-extensions-dev-server';
|
|
3
|
-
import { startPortManagerServer, stopPortManagerServer, requestPorts, } from '@hubspot/local-dev-lib/portManager';
|
|
4
|
-
import { getHubSpotApiOrigin, getHubSpotWebsiteOrigin, } from '@hubspot/local-dev-lib/urls';
|
|
5
|
-
import { getAccountConfig } from '@hubspot/local-dev-lib/config';
|
|
6
|
-
import { ComponentTypes, } from '../../../types/Projects.js';
|
|
1
|
+
import AppDevModeInterface from './AppDevModeInterface.js';
|
|
7
2
|
import { lib } from '../../../lang/en.js';
|
|
8
|
-
import
|
|
9
|
-
const SERVER_KEYS = {
|
|
10
|
-
privateApp: 'privateApp',
|
|
11
|
-
publicApp: 'publicApp',
|
|
12
|
-
};
|
|
3
|
+
import UIExtensionsDevModeInterface from './UIExtensionsDevModeInterface.js';
|
|
13
4
|
class DevServerManager {
|
|
14
5
|
initialized;
|
|
15
6
|
started;
|
|
16
|
-
componentsByType;
|
|
17
7
|
devServers;
|
|
18
|
-
constructor() {
|
|
8
|
+
constructor(options) {
|
|
19
9
|
this.initialized = false;
|
|
20
10
|
this.started = false;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
serverInterface: UIEDevModeInterface,
|
|
30
|
-
},
|
|
31
|
-
};
|
|
11
|
+
const AppsDevServer = new AppDevModeInterface({
|
|
12
|
+
localDevState: options.localDevState,
|
|
13
|
+
localDevLogger: options.logger,
|
|
14
|
+
});
|
|
15
|
+
const UIExtensionsDevServer = new UIExtensionsDevModeInterface({
|
|
16
|
+
localDevState: options.localDevState,
|
|
17
|
+
});
|
|
18
|
+
this.devServers = [AppsDevServer, UIExtensionsDevServer];
|
|
32
19
|
}
|
|
33
20
|
async iterateDevServers(callback) {
|
|
34
|
-
|
|
35
|
-
for (let i = 0; i < serverKeys.length; i++) {
|
|
36
|
-
const serverKey = serverKeys[i];
|
|
37
|
-
const devServer = this.devServers[serverKey];
|
|
38
|
-
const compatibleComponents = this.componentsByType[devServer.componentType] || {};
|
|
39
|
-
if (Object.keys(compatibleComponents).length) {
|
|
40
|
-
await callback(devServer.serverInterface, compatibleComponents);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
uiLogger.debug(lib.DevServerManager.noCompatibleComponents(serverKey));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
21
|
+
await Promise.all(this.devServers.map(devServer => callback(devServer)));
|
|
46
22
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
|
|
23
|
+
async setup() {
|
|
24
|
+
for (const devServer of this.devServers) {
|
|
25
|
+
if (devServer.setup) {
|
|
26
|
+
// Run setup functions in order
|
|
27
|
+
await devServer.setup();
|
|
51
28
|
}
|
|
52
|
-
if ('name' in component.config && component.config.name) {
|
|
53
|
-
acc[component.type][component.config.name] = component;
|
|
54
|
-
}
|
|
55
|
-
return acc;
|
|
56
|
-
}, {});
|
|
57
|
-
}
|
|
58
|
-
async setup({ components, onUploadRequired, accountId, setActiveApp, }) {
|
|
59
|
-
this.componentsByType = this.arrangeComponentsByType(components);
|
|
60
|
-
let env;
|
|
61
|
-
const accountConfig = getAccountConfig(accountId);
|
|
62
|
-
if (accountConfig) {
|
|
63
|
-
env = accountConfig.env;
|
|
64
29
|
}
|
|
65
|
-
await startPortManagerServer();
|
|
66
|
-
await this.iterateDevServers(async (serverInterface, compatibleComponents) => {
|
|
67
|
-
if (serverInterface.setup) {
|
|
68
|
-
await serverInterface.setup({
|
|
69
|
-
components: compatibleComponents,
|
|
70
|
-
onUploadRequired,
|
|
71
|
-
logger,
|
|
72
|
-
urls: {
|
|
73
|
-
api: getHubSpotApiOrigin(env),
|
|
74
|
-
web: getHubSpotWebsiteOrigin(env),
|
|
75
|
-
},
|
|
76
|
-
setActiveApp,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
30
|
this.initialized = true;
|
|
81
31
|
}
|
|
82
|
-
async start(
|
|
32
|
+
async start() {
|
|
83
33
|
if (this.initialized) {
|
|
84
34
|
await this.iterateDevServers(async (serverInterface) => {
|
|
85
35
|
if (serverInterface.start) {
|
|
86
|
-
await serverInterface.start(
|
|
87
|
-
accountId,
|
|
88
|
-
projectConfig,
|
|
89
|
-
requestPorts,
|
|
90
|
-
});
|
|
36
|
+
await serverInterface.start();
|
|
91
37
|
}
|
|
92
38
|
});
|
|
93
39
|
}
|
|
@@ -112,9 +58,7 @@ class DevServerManager {
|
|
|
112
58
|
await serverInterface.cleanup();
|
|
113
59
|
}
|
|
114
60
|
});
|
|
115
|
-
await stopPortManagerServer();
|
|
116
61
|
}
|
|
117
62
|
}
|
|
118
63
|
}
|
|
119
|
-
|
|
120
|
-
export default Manager;
|
|
64
|
+
export default DevServerManager;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ProjectConfig, ComponentTypes, Component } from '../../../types/Projects.js';
|
|
2
|
+
type DevServerInterface = {
|
|
3
|
+
setup?: Function;
|
|
4
|
+
start?: (options: object) => Promise<void>;
|
|
5
|
+
fileChange?: (filePath: string, event: string) => Promise<void>;
|
|
6
|
+
cleanup?: () => Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
type ComponentsByType = {
|
|
9
|
+
[key in ComponentTypes]?: {
|
|
10
|
+
[key: string]: Component;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
declare class DevServerManager_DEPRECATED {
|
|
14
|
+
private initialized;
|
|
15
|
+
private started;
|
|
16
|
+
private componentsByType;
|
|
17
|
+
private devServers;
|
|
18
|
+
constructor();
|
|
19
|
+
iterateDevServers(callback: (serverInterface: DevServerInterface, compatibleComponents: {
|
|
20
|
+
[key: string]: Component;
|
|
21
|
+
}) => Promise<void>): Promise<void>;
|
|
22
|
+
arrangeComponentsByType(components: Component[]): ComponentsByType;
|
|
23
|
+
setup({ components, onUploadRequired, accountId, setActiveApp, }: {
|
|
24
|
+
components: Component[];
|
|
25
|
+
onUploadRequired: () => void;
|
|
26
|
+
accountId: number;
|
|
27
|
+
setActiveApp: (appUid: string | undefined) => Promise<void>;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
start({ accountId, projectConfig, }: {
|
|
30
|
+
accountId: number;
|
|
31
|
+
projectConfig: ProjectConfig;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
fileChange({ filePath, event, }: {
|
|
34
|
+
filePath: string;
|
|
35
|
+
event: string;
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
cleanup(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
declare const Manager: DevServerManager_DEPRECATED;
|
|
40
|
+
export default Manager;
|