@forge/tunnel
6.3.9-next.106.3.9-next.11
~
Modified (5 files)
Index: package/out/command/interactors/tunnel-interactor.js
===================================================================
--- package/out/command/interactors/tunnel-interactor.js
+++ package/out/command/interactors/tunnel-interactor.js
@@ -9,11 +9,13 @@
const fs_1 = tslib_1.__importDefault(require("fs"));
const chokidar_1 = tslib_1.__importDefault(require("chokidar"));
class TunnelInteractor {
logger;
+ dockerAuthenticator;
statsigService;
- constructor(logger, statsigService) {
+ constructor(logger, statsigService, dockerAuthenticator) {
this.logger = logger;
+ this.dockerAuthenticator = dockerAuthenticator;
this.statsigService = statsigService;
}
logTunnelStatus(localPort, tunnelOptions) {
this.logger.info('');
@@ -86,8 +88,31 @@
const multiCompiler = new multi_compiler_watcher_1.MultiCompilerWatcher(faasServer, uiServers);
if (tunnelOptions.verify) {
await (0, bundler_1.runLinter)(this.statsigService);
}
+ if (tunnelOptions.containersDockerComposeFiles) {
+ try {
+ if (this.dockerAuthenticator) {
+ this.logger.info('');
+ this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.authenticatingDocker));
+ const childProcess = await this.dockerAuthenticator.authenticateDocker();
+ await (0, cli_shared_1.processDockerAuthentication)(childProcess);
+ }
+ for (const [serviceKey, filePath] of Object.entries(tunnelOptions.containersDockerComposeFiles)) {
+ this.logger.info('');
+ this.logger.info(cli_shared_1.Text.tunnel.startingContainerService(serviceKey));
+ await (0, cli_shared_1.startDockerComposeStack)(filePath, serviceKey);
+ }
+ }
+ catch (err) {
+ this.logger.error(new Error(cli_shared_1.Text.tunnel.error.unableToStartContainerServices));
+ for (const filePath of Object.values(tunnelOptions.containersDockerComposeFiles)) {
+ await (0, cli_shared_1.deleteDockerComposeFile)(filePath);
+ }
+ throw err;
+ }
+ this.logger.info('');
+ }
this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.bundlingHeader));
try {
const output = await multiCompiler.compileAndWatch({
onRuntimeChange: { onBuildWillStart, onBuildFinished: onBuildFinished('runtime') }, Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/tunnel",
- "version": "6.3.9-next.10",
+ "version": "6.3.9-next.11",
"description": "Tunnel functionality for Forge CLI",
"author": "Atlassian",
"license": "SEE LICENSE IN LICENSE.txt",
"main": "out/index.js",
@@ -10,10 +10,10 @@
"clean": "rm -rf ./out && rm -f tsconfig.tsbuildinfo",
"compile": "tsc -b -v"
},
"dependencies": {
- "@forge/bundler": "6.1.18-next.10",
- "@forge/cli-shared": "8.15.1-next.8",
+ "@forge/bundler": "6.1.18-next.11",
+ "@forge/cli-shared": "8.15.1-next.9",
"@forge/csp": "5.6.1",
"@forge/runtime": "6.1.2",
"@forge/util": "^2.0.1",
"cheerio": "^1.1.0", Index: package/out/command/interactors/tunnel-interactor.d.ts.map
===================================================================
--- package/out/command/interactors/tunnel-interactor.d.ts.map
+++ package/out/command/interactors/tunnel-interactor.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"tunnel-interactor.d.ts","sourceRoot":"","sources":["../../../src/command/interactors/tunnel-interactor.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAyC,MAAM,EAAQ,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,gBAAgB;IAGzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAE7B,MAAM,EAAE,MAAM,EAC/B,cAAc,EAAE,cAAc;IAKhC,OAAO,CAAC,eAAe;IAShB,mBAAmB,CACxB,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACjC,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,mBAAmB,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAsCT,6BAA6B,CAAC,gBAAgB,EAAE,MAAM;IAUtD,QAAQ,sBACM,iBAAiB,kBACrB,aAAa,KAC3B,QAAQ,cAAc,GAAG,SAAS,CAAC,CAsDpC;CACH"}
\ No newline at end of file
+{"version":3,"file":"tunnel-interactor.d.ts","sourceRoot":"","sources":["../../../src/command/interactors/tunnel-interactor.ts"],"names":[],"mappings":";AACA,OAAO,EAA4B,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAGL,MAAM,EAEN,aAAa,EACb,cAAc,EAIf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CAC7C;AAED,qBAAa,gBAAgB;IAGzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAE7B,MAAM,EAAE,MAAM,EAC/B,cAAc,EAAE,cAAc,EACb,mBAAmB,EAAE,mBAAmB;IAK3D,OAAO,CAAC,eAAe;IAShB,mBAAmB,CACxB,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACjC,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,mBAAmB,EAAE,SAAS,GAC7B,OAAO,CAAC,IAAI,CAAC;IAsCT,6BAA6B,CAAC,gBAAgB,EAAE,MAAM;IAUtD,QAAQ,sBACM,iBAAiB,kBACrB,aAAa,KAC3B,QAAQ,cAAc,GAAG,SAAS,CAAC,CAqFpC;CACH"}
\ No newline at end of file File too large for inline diff
Index: package/out/command/interactors/tunnel-interactor.d.ts
===================================================================
--- package/out/command/interactors/tunnel-interactor.d.ts
+++ package/out/command/interactors/tunnel-interactor.d.ts
@@ -1,12 +1,18 @@
+/// <reference types="node" resolution-mode="require"/>
import { WatcherMonitor } from '@forge/bundler';
import { Logger, TunnelOptions, StatsigService } from '@forge/cli-shared';
+import { ChildProcess } from 'child_process';
import { StartTunnelResult } from '../start-tunnel-command';
import chokidar, { FSWatcher } from 'chokidar';
+export interface DockerAuthenticator {
+ authenticateDocker(): Promise<ChildProcess>;
+}
export declare class TunnelInteractor {
private readonly logger;
+ private readonly dockerAuthenticator;
private readonly statsigService;
- constructor(logger: Logger, statsigService: StatsigService);
+ constructor(logger: Logger, statsigService: StatsigService, dockerAuthenticator: DockerAuthenticator);
private logTunnelStatus;
handleUserExitEvent(stopFunction: () => Promise<void>, bundleMonitor: WatcherMonitor | undefined, manifestFileWatcher: FSWatcher): Promise<void>;
watchAndWarnOnManifestChanges(manifestFilePath: string): chokidar.FSWatcher;
watchApp: (startTunnelResult: StartTunnelResult, tunnelOptions?: TunnelOptions) => Promise<WatcherMonitor | undefined>;