@hubspot/cli 7.4.8 → 7.4.9-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.
Files changed (140) hide show
  1. package/commands/account/createOverride.js +9 -0
  2. package/commands/account/remove.js +6 -1
  3. package/commands/account/removeOverride.js +9 -0
  4. package/commands/cms/convertFields.d.ts +7 -1
  5. package/commands/cms/convertFields.js +57 -41
  6. package/commands/cms/getReactModule.d.ts +7 -1
  7. package/commands/cms/getReactModule.js +52 -34
  8. package/commands/cms/lighthouseScore.d.ts +8 -1
  9. package/commands/cms/lighthouseScore.js +129 -100
  10. package/commands/cms.d.ts +3 -1
  11. package/commands/cms.js +24 -15
  12. package/commands/completion.d.ts +3 -1
  13. package/commands/completion.js +25 -12
  14. package/commands/create/api-sample.d.ts +3 -1
  15. package/commands/create/api-sample.js +34 -38
  16. package/commands/create/app.d.ts +3 -1
  17. package/commands/create/app.js +9 -7
  18. package/commands/create/function.d.ts +3 -1
  19. package/commands/create/function.js +11 -10
  20. package/commands/create/index.d.ts +5 -1
  21. package/commands/create/index.js +23 -11
  22. package/commands/create/module.d.ts +3 -1
  23. package/commands/create/module.js +14 -13
  24. package/commands/create/react-app.d.ts +3 -1
  25. package/commands/create/react-app.js +10 -7
  26. package/commands/create/template.d.ts +3 -1
  27. package/commands/create/template.js +14 -14
  28. package/commands/create/vue-app.d.ts +3 -1
  29. package/commands/create/vue-app.js +10 -7
  30. package/commands/create/webpack-serverless.d.ts +3 -1
  31. package/commands/create/webpack-serverless.js +10 -7
  32. package/commands/create/website-theme.d.ts +3 -1
  33. package/commands/create/website-theme.js +10 -9
  34. package/commands/create.d.ts +4 -24
  35. package/commands/create.js +55 -73
  36. package/commands/customObject/create.d.ts +4 -9
  37. package/commands/customObject/create.js +17 -10
  38. package/commands/customObject/schema/create.d.ts +4 -9
  39. package/commands/customObject/schema/create.js +18 -11
  40. package/commands/customObject/schema/delete.d.ts +4 -9
  41. package/commands/customObject/schema/delete.js +17 -10
  42. package/commands/customObject/schema/fetch-all.d.ts +4 -9
  43. package/commands/customObject/schema/fetch-all.js +17 -10
  44. package/commands/customObject/schema/fetch.d.ts +4 -9
  45. package/commands/customObject/schema/fetch.js +17 -10
  46. package/commands/customObject/schema/list.d.ts +4 -8
  47. package/commands/customObject/schema/list.js +17 -10
  48. package/commands/customObject/schema/update.d.ts +4 -9
  49. package/commands/customObject/schema/update.js +18 -11
  50. package/commands/customObject/schema.d.ts +3 -5
  51. package/commands/customObject/schema.js +27 -54
  52. package/commands/customObject.d.ts +3 -4
  53. package/commands/customObject.js +20 -45
  54. package/commands/feedback.d.ts +7 -1
  55. package/commands/feedback.js +36 -20
  56. package/commands/fetch.d.ts +12 -1
  57. package/commands/fetch.js +49 -33
  58. package/commands/function/deploy.d.ts +6 -1
  59. package/commands/function/deploy.js +70 -50
  60. package/commands/function/list.d.ts +6 -1
  61. package/commands/function/list.js +44 -32
  62. package/commands/function/server.d.ts +10 -1
  63. package/commands/function/server.js +49 -38
  64. package/commands/function.d.ts +5 -1
  65. package/commands/function.js +24 -10
  66. package/commands/hubdb/clear.d.ts +4 -9
  67. package/commands/hubdb/clear.js +17 -10
  68. package/commands/hubdb/create.d.ts +4 -9
  69. package/commands/hubdb/create.js +17 -10
  70. package/commands/hubdb/delete.d.ts +4 -9
  71. package/commands/hubdb/delete.js +17 -10
  72. package/commands/hubdb/fetch.d.ts +4 -9
  73. package/commands/hubdb/fetch.js +17 -10
  74. package/commands/hubdb.d.ts +3 -2
  75. package/commands/hubdb.js +23 -45
  76. package/commands/lint.d.ts +6 -4
  77. package/commands/lint.js +44 -43
  78. package/commands/logs.d.ts +10 -1
  79. package/commands/logs.js +53 -44
  80. package/commands/module/marketplace-validate.d.ts +6 -1
  81. package/commands/module/marketplace-validate.js +39 -27
  82. package/commands/module.d.ts +3 -1
  83. package/commands/module.js +22 -10
  84. package/commands/project/dev/unifiedFlow.js +28 -5
  85. package/commands/sandbox/create.d.ts +4 -9
  86. package/commands/sandbox/create.js +18 -11
  87. package/commands/sandbox/delete.d.ts +4 -9
  88. package/commands/sandbox/delete.js +18 -11
  89. package/commands/sandbox.d.ts +3 -4
  90. package/commands/sandbox.js +20 -43
  91. package/commands/secret/addSecret.d.ts +4 -9
  92. package/commands/secret/addSecret.js +17 -10
  93. package/commands/secret/deleteSecret.d.ts +4 -9
  94. package/commands/secret/deleteSecret.js +17 -10
  95. package/commands/secret/listSecret.d.ts +4 -9
  96. package/commands/secret/listSecret.js +17 -10
  97. package/commands/secret/updateSecret.d.ts +4 -9
  98. package/commands/secret/updateSecret.js +17 -10
  99. package/commands/secret.d.ts +3 -4
  100. package/commands/secret.js +25 -48
  101. package/commands/upload.d.ts +12 -1
  102. package/commands/upload.js +118 -97
  103. package/commands/watch.d.ts +14 -1
  104. package/commands/watch.js +76 -65
  105. package/lang/en.d.ts +565 -543
  106. package/lang/en.js +360 -338
  107. package/lang/en.lyaml +3 -0
  108. package/lib/constants.d.ts +5 -0
  109. package/lib/constants.js +6 -1
  110. package/lib/errorHandlers/suppressError.js +12 -19
  111. package/lib/filesystem.d.ts +1 -1
  112. package/lib/interpolation.d.ts +2 -3
  113. package/lib/lang.d.ts +2 -3
  114. package/lib/projects/buildAndDeploy.js +17 -2
  115. package/lib/projects/localDev/AppDevModeInterface.d.ts +25 -0
  116. package/lib/projects/localDev/AppDevModeInterface.js +117 -0
  117. package/lib/projects/localDev/DevServerManagerV2.d.ts +11 -22
  118. package/lib/projects/localDev/DevServerManagerV2.js +19 -15
  119. package/lib/projects/localDev/LocalDevLogger.d.ts +30 -0
  120. package/lib/projects/localDev/LocalDevLogger.js +158 -0
  121. package/lib/projects/localDev/LocalDevManager.js +2 -3
  122. package/lib/projects/localDev/LocalDevProcess.d.ts +41 -0
  123. package/lib/projects/localDev/LocalDevProcess.js +178 -0
  124. package/lib/projects/localDev/LocalDevWatcher.d.ts +10 -0
  125. package/lib/projects/localDev/LocalDevWatcher.js +55 -0
  126. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +15 -0
  127. package/lib/projects/localDev/LocalDevWebsocketServer.js +80 -0
  128. package/lib/prompts/createApiSamplePrompt.d.ts +2 -10
  129. package/lib/prompts/createTemplatePrompt.d.ts +22 -4
  130. package/lib/upload.d.ts +1 -1
  131. package/lib/yargsUtils.d.ts +4 -0
  132. package/lib/yargsUtils.js +6 -0
  133. package/package.json +5 -3
  134. package/types/Cms.d.ts +30 -0
  135. package/types/Cms.js +2 -0
  136. package/types/LocalDev.d.ts +22 -0
  137. package/types/LocalDev.js +2 -0
  138. package/types/Yargs.d.ts +5 -0
  139. package/lib/projects/localDev/LocalDevManagerV2.d.ts +0 -64
  140. package/lib/projects/localDev/LocalDevManagerV2.js +0 -345
@@ -1,345 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = __importDefault(require("path"));
7
- const chokidar_1 = __importDefault(require("chokidar"));
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const logger_1 = require("@hubspot/local-dev-lib/logger");
10
- const localDevAuth_1 = require("@hubspot/local-dev-lib/api/localDevAuth");
11
- const appsDev_1 = require("@hubspot/local-dev-lib/api/appsDev");
12
- const config_1 = require("@hubspot/local-dev-lib/config");
13
- const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
14
- const constants_1 = require("../../constants");
15
- const SpinniesManager_1 = __importDefault(require("../../ui/SpinniesManager"));
16
- const DevServerManagerV2_1 = __importDefault(require("./DevServerManagerV2"));
17
- const exitCodes_1 = require("../../enums/exitCodes");
18
- const urls_1 = require("../../projects/urls");
19
- const structure_1 = require("../../projects/structure");
20
- const ui_1 = require("../../ui");
21
- const index_1 = require("../../errorHandlers/index");
22
- const installPublicAppPrompt_1 = require("../../prompts/installPublicAppPrompt");
23
- const promptUtils_1 = require("../../prompts/promptUtils");
24
- const process_1 = require("../../process");
25
- const en_1 = require("../../../lang/en");
26
- const logger_2 = require("../../ui/logger");
27
- const WATCH_EVENTS = {
28
- add: 'add',
29
- change: 'change',
30
- unlink: 'unlink',
31
- unlinkDir: 'unlinkDir',
32
- };
33
- class LocalDevManagerV2 {
34
- targetProjectAccountId;
35
- targetTestingAccountId;
36
- projectConfig;
37
- projectDir;
38
- projectId;
39
- debug;
40
- deployedBuild;
41
- isGithubLinked;
42
- watcher;
43
- uploadWarnings;
44
- projectNodes;
45
- activeApp;
46
- activePublicAppData;
47
- env;
48
- publicAppActiveInstalls;
49
- projectSourceDir;
50
- mostRecentUploadWarning;
51
- constructor(options) {
52
- this.targetProjectAccountId = options.targetProjectAccountId;
53
- this.targetTestingAccountId = options.targetTestingAccountId;
54
- this.projectConfig = options.projectConfig;
55
- this.projectDir = options.projectDir;
56
- this.projectId = options.projectId;
57
- this.debug = options.debug || false;
58
- this.deployedBuild = options.deployedBuild;
59
- this.isGithubLinked = options.isGithubLinked;
60
- this.watcher = null;
61
- this.uploadWarnings = {};
62
- this.projectNodes = options.projectNodes;
63
- this.activeApp = null;
64
- this.activePublicAppData = null;
65
- this.env = options.env;
66
- this.publicAppActiveInstalls = null;
67
- this.mostRecentUploadWarning = null;
68
- this.projectSourceDir = path_1.default.join(this.projectDir, this.projectConfig.srcDir);
69
- if (!this.targetProjectAccountId ||
70
- !this.projectConfig ||
71
- !this.projectDir) {
72
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.failedToInitialize);
73
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
74
- }
75
- }
76
- async setActiveApp(appUid) {
77
- if (!appUid) {
78
- logger_2.uiLogger.error(en_1.lib.LocalDevManager.missingUid);
79
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
80
- }
81
- const app = Object.values(this.projectNodes).find(component => component.uid === appUid) || null;
82
- if (app && (0, structure_1.isAppIRNode)(app)) {
83
- this.activeApp = app;
84
- if (app.config.distribution === constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE) {
85
- try {
86
- await this.setActivePublicAppData();
87
- await this.checkActivePublicAppInstalls();
88
- await this.checkPublicAppInstallation();
89
- }
90
- catch (e) {
91
- (0, index_1.logError)(e);
92
- }
93
- }
94
- }
95
- return;
96
- }
97
- async setActivePublicAppData() {
98
- const { data: { results: portalPublicApps }, } = await (0, appsDev_1.fetchPublicAppsForPortal)(this.targetProjectAccountId);
99
- const activePublicAppData = portalPublicApps.find(({ sourceId }) => sourceId === this.activeApp?.uid);
100
- if (!activePublicAppData) {
101
- return;
102
- }
103
- const { data: { uniquePortalInstallCount }, } = await (0, appsDev_1.fetchPublicAppProductionInstallCounts)(activePublicAppData.id, this.targetProjectAccountId);
104
- this.activePublicAppData = activePublicAppData;
105
- this.publicAppActiveInstalls = uniquePortalInstallCount;
106
- }
107
- async checkActivePublicAppInstalls() {
108
- if (!this.activePublicAppData ||
109
- !this.publicAppActiveInstalls ||
110
- this.publicAppActiveInstalls < 1) {
111
- return;
112
- }
113
- (0, ui_1.uiLine)();
114
- logger_2.uiLogger.warn(en_1.lib.LocalDevManager.activeInstallWarning.installCount(this.activePublicAppData.name, this.publicAppActiveInstalls, this.publicAppActiveInstalls === 1 ? 'account' : 'accounts'));
115
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.activeInstallWarning.explanation);
116
- (0, ui_1.uiLine)();
117
- const proceed = await (0, promptUtils_1.confirmPrompt)(en_1.lib.LocalDevManager.activeInstallWarning.confirmationPrompt, { defaultAnswer: false });
118
- if (!proceed) {
119
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
120
- }
121
- }
122
- async start() {
123
- SpinniesManager_1.default.stopAll();
124
- SpinniesManager_1.default.init();
125
- // Local dev currently relies on the existence of a deployed build in the target account
126
- if (!this.deployedBuild) {
127
- logger_2.uiLogger.error(en_1.lib.LocalDevManager.noDeployedBuild(this.projectConfig.name, (0, ui_1.uiAccountDescription)(this.targetProjectAccountId), this.getUploadCommand()));
128
- logger_2.uiLogger.log('');
129
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
130
- }
131
- const setupSucceeded = await this.devServerSetup();
132
- if (!setupSucceeded) {
133
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
134
- }
135
- else if (!this.debug) {
136
- console.clear();
137
- }
138
- (0, ui_1.uiBetaTag)(en_1.lib.LocalDevManager.betaMessage);
139
- logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.learnMoreLocalDevServer, 'https://developers.hubspot.com/docs/platform/project-cli-commands#start-a-local-development-server'));
140
- logger_2.uiLogger.log('');
141
- logger_2.uiLogger.log(chalk_1.default.hex(ui_1.UI_COLORS.SORBET)(en_1.lib.LocalDevManager.running(this.projectConfig.name, (0, ui_1.uiAccountDescription)(this.targetProjectAccountId))));
142
- logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.viewProjectLink, (0, urls_1.getProjectDetailUrl)(this.projectConfig.name, this.targetProjectAccountId) || ''));
143
- logger_2.uiLogger.log('');
144
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.quitHelper);
145
- (0, ui_1.uiLine)();
146
- logger_2.uiLogger.log('');
147
- await this.devServerStart();
148
- // Initialize project file watcher to detect configuration file changes
149
- this.startWatching();
150
- this.updateKeypressListeners();
151
- this.monitorConsoleOutput();
152
- // Verify that there are no mismatches between components in the local project
153
- // and components in the deployed build of the project.
154
- this.compareLocalProjectToDeployed();
155
- }
156
- async stop(showProgress = true) {
157
- if (showProgress) {
158
- SpinniesManager_1.default.add('cleanupMessage', {
159
- text: en_1.lib.LocalDevManager.exitingStart,
160
- });
161
- }
162
- await this.stopWatching();
163
- const cleanupSucceeded = await this.devServerCleanup();
164
- if (!cleanupSucceeded) {
165
- if (showProgress) {
166
- SpinniesManager_1.default.fail('cleanupMessage', {
167
- text: en_1.lib.LocalDevManager.exitingFail,
168
- });
169
- }
170
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
171
- }
172
- if (showProgress) {
173
- SpinniesManager_1.default.succeed('cleanupMessage', {
174
- text: en_1.lib.LocalDevManager.exitingSucceed,
175
- });
176
- }
177
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
178
- }
179
- async checkPublicAppInstallation() {
180
- if (!this.activeApp || !this.activePublicAppData) {
181
- return;
182
- }
183
- const { data: { isInstalledWithScopeGroups, previouslyAuthorizedScopeGroups }, } = await (0, localDevAuth_1.fetchAppInstallationData)(this.targetTestingAccountId, this.projectId, this.activeApp.uid, this.activeApp.config.auth.requiredScopes, this.activeApp.config.auth.optionalScopes);
184
- const isReinstall = previouslyAuthorizedScopeGroups.length > 0;
185
- if (!isInstalledWithScopeGroups) {
186
- await (0, installPublicAppPrompt_1.installPublicAppPrompt)(this.env, this.targetTestingAccountId, this.activePublicAppData.clientId, this.activeApp.config.auth.requiredScopes, this.activeApp.config.auth.redirectUrls, isReinstall);
187
- }
188
- }
189
- updateKeypressListeners() {
190
- (0, process_1.handleKeypress)(async (key) => {
191
- if ((key.ctrl && key.name === 'c') || key.name === 'q') {
192
- this.stop();
193
- }
194
- });
195
- }
196
- getUploadCommand() {
197
- const currentDefaultAccount = (0, config_1.getConfigDefaultAccount)() || undefined;
198
- return this.targetProjectAccountId !== (0, config_1.getAccountId)(currentDefaultAccount)
199
- ? (0, ui_1.uiCommandReference)(`hs project upload --account=${this.targetProjectAccountId}`)
200
- : (0, ui_1.uiCommandReference)('hs project upload');
201
- }
202
- logUploadWarning(reason) {
203
- let warning = reason;
204
- if (!warning) {
205
- warning =
206
- this.publicAppActiveInstalls && this.publicAppActiveInstalls > 0
207
- ? en_1.lib.LocalDevManager.uploadWarning.defaultMarketplaceAppWarning(this.publicAppActiveInstalls, this.publicAppActiveInstalls === 1 ? 'account' : 'accounts')
208
- : en_1.lib.LocalDevManager.uploadWarning.defaultWarning;
209
- }
210
- // Avoid logging the warning to the console if it is currently the most
211
- // recently logged warning. We do not want to spam the console with the same message.
212
- if (!this.uploadWarnings[warning]) {
213
- logger_2.uiLogger.log('');
214
- logger_2.uiLogger.warn(en_1.lib.LocalDevManager.uploadWarning.header(warning));
215
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.stopDev);
216
- if (this.isGithubLinked) {
217
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.pushToGithub);
218
- }
219
- else {
220
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.runUpload(this.getUploadCommand()));
221
- }
222
- logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.restartDev);
223
- this.mostRecentUploadWarning = warning;
224
- this.uploadWarnings[warning] = true;
225
- }
226
- }
227
- monitorConsoleOutput() {
228
- const originalStdoutWrite = process.stdout.write.bind(process.stdout);
229
- function customStdoutWrite(chunk, encoding, callback) {
230
- // Reset the most recently logged warning
231
- if (this.mostRecentUploadWarning &&
232
- this.uploadWarnings[this.mostRecentUploadWarning]) {
233
- delete this.uploadWarnings[this.mostRecentUploadWarning];
234
- }
235
- if (typeof encoding === 'function') {
236
- return originalStdoutWrite(chunk, callback);
237
- }
238
- return originalStdoutWrite(chunk, encoding, callback);
239
- }
240
- customStdoutWrite.bind(this);
241
- process.stdout.write = customStdoutWrite;
242
- }
243
- compareLocalProjectToDeployed() {
244
- const deployedComponentNames = this.deployedBuild.subbuildStatuses.map(subbuildStatus => subbuildStatus.buildName);
245
- const missingProjectNodes = [];
246
- Object.values(this.projectNodes).forEach(node => {
247
- if (!deployedComponentNames.includes(node.uid)) {
248
- const userFriendlyName = (0, project_parsing_lib_1.mapToUserFriendlyName)(node.componentType);
249
- const label = userFriendlyName ? `[${userFriendlyName}] ` : '';
250
- missingProjectNodes.push(`${label}${node.uid}`);
251
- }
252
- });
253
- if (missingProjectNodes.length) {
254
- this.logUploadWarning(en_1.lib.LocalDevManager.uploadWarning.missingComponents(missingProjectNodes.join(', ')));
255
- }
256
- }
257
- startWatching() {
258
- this.watcher = chokidar_1.default.watch(this.projectDir, {
259
- ignoreInitial: true,
260
- });
261
- const configPaths = Object.values(this.projectNodes).map(component => component.localDev.componentConfigPath);
262
- const projectConfigPath = path_1.default.join(this.projectDir, constants_1.PROJECT_CONFIG_FILE);
263
- configPaths.push(projectConfigPath);
264
- this.watcher.on('add', filePath => {
265
- this.handleWatchEvent(filePath, WATCH_EVENTS.add, configPaths);
266
- });
267
- this.watcher.on('change', filePath => {
268
- this.handleWatchEvent(filePath, WATCH_EVENTS.change, configPaths);
269
- });
270
- this.watcher.on('unlink', filePath => {
271
- this.handleWatchEvent(filePath, WATCH_EVENTS.unlink, configPaths);
272
- });
273
- this.watcher.on('unlinkDir', filePath => {
274
- this.handleWatchEvent(filePath, WATCH_EVENTS.unlinkDir, configPaths);
275
- });
276
- }
277
- async stopWatching() {
278
- await this.watcher?.close();
279
- }
280
- handleWatchEvent(filePath, event, configPaths) {
281
- if (configPaths.includes(filePath)) {
282
- this.logUploadWarning();
283
- }
284
- else {
285
- this.devServerFileChange(filePath, event);
286
- }
287
- }
288
- async devServerSetup() {
289
- try {
290
- await DevServerManagerV2_1.default.setup({
291
- projectNodes: this.projectNodes,
292
- accountId: this.targetTestingAccountId,
293
- setActiveApp: this.setActiveApp.bind(this),
294
- });
295
- return true;
296
- }
297
- catch (e) {
298
- if (this.debug) {
299
- logger_1.logger.error(e);
300
- }
301
- logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.setupError(e instanceof Error ? e.message : ''));
302
- return false;
303
- }
304
- }
305
- async devServerStart() {
306
- try {
307
- await DevServerManagerV2_1.default.start({
308
- accountId: this.targetTestingAccountId,
309
- projectConfig: this.projectConfig,
310
- });
311
- }
312
- catch (e) {
313
- if (this.debug) {
314
- logger_1.logger.error(e);
315
- }
316
- logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.startError(e instanceof Error ? e.message : ''));
317
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
318
- }
319
- }
320
- devServerFileChange(filePath, event) {
321
- try {
322
- DevServerManagerV2_1.default.fileChange({ filePath, event });
323
- }
324
- catch (e) {
325
- if (this.debug) {
326
- logger_1.logger.error(e);
327
- }
328
- logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.fileChangeError(e instanceof Error ? e.message : ''));
329
- }
330
- }
331
- async devServerCleanup() {
332
- try {
333
- await DevServerManagerV2_1.default.cleanup();
334
- return true;
335
- }
336
- catch (e) {
337
- if (this.debug) {
338
- logger_1.logger.error(e);
339
- }
340
- logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.cleanupError(e instanceof Error ? e.message : ''));
341
- return false;
342
- }
343
- }
344
- }
345
- exports.default = LocalDevManagerV2;