@forge/tunnel 6.3.9-next.10 → 6.3.9-next.11

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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @forge/tunnel
2
2
 
3
+ ## 6.3.9-next.11
4
+
5
+ ### Patch Changes
6
+
7
+ - a684b69: Refactor the order of starting the containers docker compose stack, to lint the manifest first
8
+ - Updated dependencies [a684b69]
9
+ - @forge/cli-shared@8.15.1-next.9
10
+ - @forge/bundler@6.1.18-next.11
11
+
3
12
  ## 6.3.9-next.10
4
13
 
5
14
  ### Patch Changes
@@ -1,11 +1,17 @@
1
+ /// <reference types="node" resolution-mode="require"/>
1
2
  import { WatcherMonitor } from '@forge/bundler';
2
3
  import { Logger, TunnelOptions, StatsigService } from '@forge/cli-shared';
4
+ import { ChildProcess } from 'child_process';
3
5
  import { StartTunnelResult } from '../start-tunnel-command';
4
6
  import chokidar, { FSWatcher } from 'chokidar';
7
+ export interface DockerAuthenticator {
8
+ authenticateDocker(): Promise<ChildProcess>;
9
+ }
5
10
  export declare class TunnelInteractor {
6
11
  private readonly logger;
12
+ private readonly dockerAuthenticator;
7
13
  private readonly statsigService;
8
- constructor(logger: Logger, statsigService: StatsigService);
14
+ constructor(logger: Logger, statsigService: StatsigService, dockerAuthenticator: DockerAuthenticator);
9
15
  private logTunnelStatus;
10
16
  handleUserExitEvent(stopFunction: () => Promise<void>, bundleMonitor: WatcherMonitor | undefined, manifestFileWatcher: FSWatcher): Promise<void>;
11
17
  watchAndWarnOnManifestChanges(manifestFilePath: string): chokidar.FSWatcher;
@@ -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"}
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,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"}
@@ -10,9 +10,11 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
10
10
  const chokidar_1 = tslib_1.__importDefault(require("chokidar"));
11
11
  class TunnelInteractor {
12
12
  logger;
13
+ dockerAuthenticator;
13
14
  statsigService;
14
- constructor(logger, statsigService) {
15
+ constructor(logger, statsigService, dockerAuthenticator) {
15
16
  this.logger = logger;
17
+ this.dockerAuthenticator = dockerAuthenticator;
16
18
  this.statsigService = statsigService;
17
19
  }
18
20
  logTunnelStatus(localPort, tunnelOptions) {
@@ -87,6 +89,29 @@ class TunnelInteractor {
87
89
  if (tunnelOptions.verify) {
88
90
  await (0, bundler_1.runLinter)(this.statsigService);
89
91
  }
92
+ if (tunnelOptions.containersDockerComposeFiles) {
93
+ try {
94
+ if (this.dockerAuthenticator) {
95
+ this.logger.info('');
96
+ this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.authenticatingDocker));
97
+ const childProcess = await this.dockerAuthenticator.authenticateDocker();
98
+ await (0, cli_shared_1.processDockerAuthentication)(childProcess);
99
+ }
100
+ for (const [serviceKey, filePath] of Object.entries(tunnelOptions.containersDockerComposeFiles)) {
101
+ this.logger.info('');
102
+ this.logger.info(cli_shared_1.Text.tunnel.startingContainerService(serviceKey));
103
+ await (0, cli_shared_1.startDockerComposeStack)(filePath, serviceKey);
104
+ }
105
+ }
106
+ catch (err) {
107
+ this.logger.error(new Error(cli_shared_1.Text.tunnel.error.unableToStartContainerServices));
108
+ for (const filePath of Object.values(tunnelOptions.containersDockerComposeFiles)) {
109
+ await (0, cli_shared_1.deleteDockerComposeFile)(filePath);
110
+ }
111
+ throw err;
112
+ }
113
+ this.logger.info('');
114
+ }
90
115
  this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.bundlingHeader));
91
116
  try {
92
117
  const output = await multiCompiler.compileAndWatch({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/tunnel",
3
- "version": "6.3.9-next.10",
3
+ "version": "6.3.9-next.11",
4
4
  "description": "Tunnel functionality for Forge CLI",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -11,8 +11,8 @@
11
11
  "compile": "tsc -b -v"
12
12
  },
13
13
  "dependencies": {
14
- "@forge/bundler": "6.1.18-next.10",
15
- "@forge/cli-shared": "8.15.1-next.8",
14
+ "@forge/bundler": "6.1.18-next.11",
15
+ "@forge/cli-shared": "8.15.1-next.9",
16
16
  "@forge/csp": "5.6.1",
17
17
  "@forge/runtime": "6.1.2",
18
18
  "@forge/util": "^2.0.1",