@forge/cli 6.4.2-next.1 → 6.4.2-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.
@@ -1,13 +1,15 @@
1
- import { CommandLineUI, PersonalApiCredentialsValidated } from '@forge/cli-shared';
1
+ import { CommandLineUI, FeatureFlagReader, PersonalApiCredentialsValidated } from '@forge/cli-shared';
2
2
  import { TunnelAnalyticsService } from '../../service/tunnel-analytics-service';
3
3
  import { DockerTunnelService, TunnelOptions, TunnelService } from '../../service/tunnel-service';
4
4
  import { TunnelView } from '../view/tunnel-view';
5
5
  export declare class TunnelController {
6
6
  private readonly analyticsService;
7
+ private readonly nodeTunnelService;
7
8
  private readonly localTunnelService;
8
9
  private readonly dockerTunnelService;
9
10
  private readonly tunnelView;
10
- constructor(analyticsService: TunnelAnalyticsService, localTunnelService: TunnelService, dockerTunnelService: DockerTunnelService, tunnelView: TunnelView);
11
+ private readonly featureFlags;
12
+ constructor(analyticsService: TunnelAnalyticsService, nodeTunnelService: TunnelService, localTunnelService: TunnelService, dockerTunnelService: DockerTunnelService, tunnelView: TunnelView, featureFlags: FeatureFlagReader);
11
13
  run(tunnelOptions: TunnelOptions, ui: CommandLineUI): Promise<void>;
12
14
  runDockerTunnel(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean): Promise<void>;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAHV,gBAAgB,EAAE,sBAAsB,EACxC,kBAAkB,EAAE,aAAa,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU;IAG5B,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE,eAAe,CAC1B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC;CAyBjB"}
1
+ {"version":3,"file":"tunnel-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,iBAAiB,EAGjB,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALZ,gBAAgB,EAAE,sBAAsB,EACxC,iBAAiB,EAAE,aAAa,EAChC,kBAAkB,EAAE,aAAa,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,iBAAiB;IAGrC,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE,eAAe,CAC1B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC;CAyBjB"}
@@ -4,15 +4,20 @@ exports.TunnelController = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  const docker_service_1 = require("../../service/docker-service");
6
6
  class TunnelController {
7
- constructor(analyticsService, localTunnelService, dockerTunnelService, tunnelView) {
7
+ constructor(analyticsService, nodeTunnelService, localTunnelService, dockerTunnelService, tunnelView, featureFlags) {
8
8
  this.analyticsService = analyticsService;
9
+ this.nodeTunnelService = nodeTunnelService;
9
10
  this.localTunnelService = localTunnelService;
10
11
  this.dockerTunnelService = dockerTunnelService;
11
12
  this.tunnelView = tunnelView;
13
+ this.featureFlags = featureFlags;
12
14
  }
13
15
  async run(tunnelOptions, ui) {
14
16
  const creds = await (0, cli_shared_1.getCredentialStore)(ui).getCredentials();
15
17
  const errorCallback = this.tunnelView.getTunnelErrorHandler(cli_shared_1.exitOnError);
18
+ if (await this.featureFlags.isNodeRuntime()) {
19
+ return await this.nodeTunnelService.run(tunnelOptions, creds, ui.debugEnabled, errorCallback);
20
+ }
16
21
  if (process.env.FORGE_DEV_TUNNEL) {
17
22
  return await this.localTunnelService.run(tunnelOptions, creds, ui.debugEnabled, errorCallback);
18
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAMhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAKhF,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2QvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAMA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAMhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAKhF,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiSvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
@@ -2,9 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDependencies = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const fs_1 = require("fs");
6
+ const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
5
7
  const bundler_1 = require("@forge/bundler");
6
8
  const cli_shared_1 = require("@forge/cli-shared");
7
- const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
9
+ const tunnel_1 = require("@forge/tunnel");
10
+ const runtime_1 = require("@forge/runtime");
8
11
  const analytics_client_1 = require("../analytics-client/analytics-client");
9
12
  const deploy_1 = require("../deploy");
10
13
  const delete_environment_variable_1 = require("../environment-variables/delete-environment-variable");
@@ -153,13 +156,19 @@ const getDependencies = async (cliDetails) => {
153
156
  const resourcePackagingService = new resource_packaging_service_1.ResourcePackagingService(archiverFactory, fileReader, process.cwd(), bridgeScriptService, iframeResizerScriptService);
154
157
  const packageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(appPackager, archiveUploader, deployer, resourcePackagingService);
155
158
  const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, migrationKeysService, deployView, packageUploadDeployCommand);
156
- const tunnelView = new tunnel_view_1.TunnelView(ui);
159
+ const createSandbox = async (cfg) => new runtime_1.NodeSandbox(cfg);
160
+ const functionHost = new tunnel_1.LocalFunctionHost(configFile, ui, null, createSandbox, fs_1.promises, featureFlagService);
161
+ const localInvocationService = new tunnel_1.LocalInvocationService(configFile, ui, runtime_1.notImplementedInspector);
162
+ const startTunnelCommand = new tunnel_1.StartTunnelCommand(assertiveAppConfigReader, new tunnel_1.LocalDevelopmentServer(localInvocationService, ui, configFile, featureFlagService), new tunnel_1.NgrokCreateTunnelService(ui), new tunnel_1.RegisterTunnelServiceImpl(new tunnel_1.TunnelGraphqlClient(graphQLClient)), functionHost, runtime_1.notImplementedInspector, ui, configFile);
163
+ const tunnelInteractor = new tunnel_1.TunnelInteractor(ui);
157
164
  const configFilePortFindingService = new port_finding_service_1.ConfigFilePortFindingService(configFile);
165
+ const nodeTunnelService = new tunnel_service_1.InProcessTunnelService(ui, startTunnelCommand, tunnelInteractor, configFilePortFindingService);
166
+ const tunnelView = new tunnel_view_1.TunnelView(ui);
158
167
  const localTunnelService = new tunnel_service_1.LocalTunnelService(configFilePortFindingService);
159
168
  const dockerService = new docker_service_1.DockerService();
160
169
  const tunnelAnalyticsService = new tunnel_analytics_service_1.TunnelAnalyticsService(analyticsClientReporter);
161
170
  const dockerTunnelService = new tunnel_service_1.DockerTunnelService(configFilePortFindingService, dockerService, tunnelAnalyticsService);
162
- const tunnelController = new tunnel_controller_1.TunnelController(tunnelAnalyticsService, localTunnelService, dockerTunnelService, tunnelView);
171
+ const tunnelController = new tunnel_controller_1.TunnelController(tunnelAnalyticsService, nodeTunnelService, localTunnelService, dockerTunnelService, tunnelView, featureFlagService);
163
172
  const stubController = new stubController_1.StubController();
164
173
  const prerequisitesController = new prerequisites_controller_1.PrerequisitesController(ui, featureFlagService, cliDetails);
165
174
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"register-contributors-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-contributors-commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA6KtD,eAAO,MAAM,gBAAgB,SAAU,YAAY,KAAG,IAOrD,CAAC"}
1
+ {"version":3,"file":"register-contributors-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-contributors-commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA+KtD,eAAO,MAAM,gBAAgB,SAAU,YAAY,KAAG,IAOrD,CAAC"}
@@ -29,6 +29,8 @@ const registerAddContributorCommand = (parent, { ui, commands: { addContributorC
29
29
  if (!confirmAddContributor) {
30
30
  ui.info(cli_shared_1.Text.addContributor.confirmationInfo);
31
31
  ui.emptyLine();
32
+ ui.info(cli_shared_1.Text.addContributor.learnMore);
33
+ ui.emptyLine();
32
34
  confirmAddContributor = await ui.confirm(cli_shared_1.Text.addContributor.promptConfirmation);
33
35
  if (confirmAddContributor)
34
36
  ui.emptyLine();
@@ -1,4 +1,4 @@
1
1
  import { FeatureFlagService } from '@forge/cli-shared';
2
- import { CachedConfigService } from 'src/service/cached-config-service';
2
+ import { CachedConfigService } from '../service/cached-config-service';
3
3
  export declare function initialiseSentry(featureFlagSerive: FeatureFlagService, cachedConfigService: CachedConfigService): Promise<void>;
4
4
  //# sourceMappingURL=sentry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../../src/command-line/sentry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAKxE,wBAAsB,gBAAgB,CACpC,iBAAiB,EAAE,kBAAkB,EACrC,mBAAmB,EAAE,mBAAmB,iBASzC"}
1
+ {"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../../src/command-line/sentry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAKvE,wBAAsB,gBAAgB,CACpC,iBAAiB,EAAE,kBAAkB,EACrC,mBAAmB,EAAE,mBAAmB,iBASzC"}
@@ -1,5 +1,6 @@
1
- import { HiddenError, PersonalApiCredentials, PersonalApiCredentialsValidated } from '@forge/cli-shared';
2
1
  import { spawn } from 'cross-spawn';
2
+ import { HiddenError, PersonalApiCredentials, PersonalApiCredentialsValidated, UI } from '@forge/cli-shared';
3
+ import { StartTunnelCommand, TunnelInteractor } from '@forge/tunnel';
3
4
  import { DockerService } from './docker-service';
4
5
  import { ConfigFilePortFindingService } from './port-finding-service';
5
6
  import { TunnelAnalyticsService } from './tunnel-analytics-service';
@@ -10,7 +11,18 @@ export declare const CONTAINER_NAME = "forge-tunnel-docker";
10
11
  export declare const IMAGE_NAME: string;
11
12
  export declare class HiddenDockerTunnelError extends HiddenError {
12
13
  }
13
- export declare abstract class TunnelService {
14
+ export declare type TunnelService = {
15
+ run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
16
+ };
17
+ export declare class InProcessTunnelService implements TunnelService {
18
+ private readonly ui;
19
+ private readonly startTunnelCommand;
20
+ private readonly tunnelInteractor;
21
+ private readonly configFilePortFindingService;
22
+ constructor(ui: UI, startTunnelCommand: StartTunnelCommand, tunnelInteractor: TunnelInteractor, configFilePortFindingService: ConfigFilePortFindingService);
23
+ run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentials, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
24
+ }
25
+ declare abstract class TunnelServiceBase implements TunnelService {
14
26
  protected readonly configFilePortFindingService: ConfigFilePortFindingService;
15
27
  constructor(configFilePortFindingService: ConfigFilePortFindingService);
16
28
  abstract run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
@@ -27,10 +39,10 @@ export declare abstract class TunnelService {
27
39
  protected getInteractiveOptions(): string[];
28
40
  protected getVolumeOptions(): string[];
29
41
  }
30
- export declare class LocalTunnelService extends TunnelService {
31
- run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentials, debugEnabled: boolean, onError: (err: Error) => Promise<void>): Promise<void>;
42
+ export declare class LocalTunnelService extends TunnelServiceBase {
43
+ run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentials, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
32
44
  }
33
- export declare class DockerTunnelService extends TunnelService {
45
+ export declare class DockerTunnelService extends TunnelServiceBase {
34
46
  private readonly dockerService;
35
47
  private readonly analyticsService;
36
48
  constructor(configFilePortFindingService: ConfigFilePortFindingService, dockerService: DockerService, analyticsService: TunnelAnalyticsService);
@@ -38,4 +50,5 @@ export declare class DockerTunnelService extends TunnelService {
38
50
  bootstrapDocker(): Promise<ReturnType<typeof spawn>>;
39
51
  private validateDockerVersion;
40
52
  }
53
+ export {};
41
54
  //# sourceMappingURL=tunnel-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAcpD,eAAO,MAAM,UAAU,QAEuB,CAAC;AAE/C,qBAAa,uBAAwB,SAAQ,WAAW;CAAG;AAE3D,8BAAsB,aAAa;IACrB,SAAS,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B;gBAA1D,4BAA4B,EAAE,4BAA4B;aAEzE,GAAG,CACjB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;cAEA,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,OAAO,EACrB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,sBAAsB,GACvC,OAAO,CAAC,MAAM,EAAE,CAAC;IA+BpB,SAAS,CAAC,cAAc,CACtB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,MAAM,EAAE;IAwBX,SAAS,CAAC,2BAA2B,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE;IAItF,SAAS,CAAC,kCAAkC,IAAI,MAAM,EAAE;IAUxD,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ1F,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAYvF,SAAS,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAQ3C,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAE;CAgBvC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACtC,GAAG,CACd,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC;CA0BjB;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IAGlD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFjC,4BAA4B,EAAE,4BAA4B,EACzC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,sBAAsB;IAK9C,GAAG,CACd,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC;IA2BH,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;YAKnD,qBAAqB;CASpC"}
1
+ {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DockerTunnelService = exports.LocalTunnelService = exports.TunnelService = exports.HiddenDockerTunnelError = exports.IMAGE_NAME = exports.CONTAINER_NAME = void 0;
3
+ exports.DockerTunnelService = exports.LocalTunnelService = exports.InProcessTunnelService = exports.HiddenDockerTunnelError = exports.IMAGE_NAME = exports.CONTAINER_NAME = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const cli_shared_1 = require("@forge/cli-shared");
6
5
  const cross_spawn_1 = require("cross-spawn");
7
6
  const os_1 = tslib_1.__importDefault(require("os"));
8
7
  const path_1 = require("path");
9
8
  const portfinder_1 = require("portfinder");
10
9
  const semver_1 = require("semver");
10
+ const cli_shared_1 = require("@forge/cli-shared");
11
11
  const version_info_1 = require("../command-line/version-info");
12
12
  const DISABLE_TTY = process.env.DISABLE_TTY === 'true';
13
13
  const CUR_WORK_APP_DIR = process.env.CUR_WORK_APP_DIR;
@@ -31,7 +31,39 @@ exports.IMAGE_NAME = process.env.FORGE_DEV_DOCKER_TUNNEL
31
31
  class HiddenDockerTunnelError extends cli_shared_1.HiddenError {
32
32
  }
33
33
  exports.HiddenDockerTunnelError = HiddenDockerTunnelError;
34
- class TunnelService {
34
+ class InProcessTunnelService {
35
+ constructor(ui, startTunnelCommand, tunnelInteractor, configFilePortFindingService) {
36
+ this.ui = ui;
37
+ this.startTunnelCommand = startTunnelCommand;
38
+ this.tunnelInteractor = tunnelInteractor;
39
+ this.configFilePortFindingService = configFilePortFindingService;
40
+ }
41
+ async run(tunnelOptions, creds, debugEnabled, onError) {
42
+ try {
43
+ this.ui.info(cli_shared_1.Text.tunnel.preamble);
44
+ this.ui.info(cli_shared_1.Text.ctrlC);
45
+ this.ui.emptyLine();
46
+ const resourcePortMap = await this.configFilePortFindingService.findPorts();
47
+ const tunnel = await this.startTunnelCommand.execute({
48
+ environmentKey: process.env.ENVIRONMENT_KEY || 'default',
49
+ resourcePortMap,
50
+ host: 'localhost'
51
+ });
52
+ const monitor = await this.tunnelInteractor.watchApp(tunnel);
53
+ await this.tunnelInteractor.handleUserExitEvent(tunnel.stopFunction, monitor);
54
+ }
55
+ catch (e) {
56
+ if (onError) {
57
+ await onError(e);
58
+ }
59
+ else {
60
+ await (0, cli_shared_1.exitOnError)(this.ui, e);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ exports.InProcessTunnelService = InProcessTunnelService;
66
+ class TunnelServiceBase {
35
67
  constructor(configFilePortFindingService) {
36
68
  this.configFilePortFindingService = configFilePortFindingService;
37
69
  }
@@ -130,8 +162,7 @@ class TunnelService {
130
162
  return options;
131
163
  }
132
164
  }
133
- exports.TunnelService = TunnelService;
134
- class LocalTunnelService extends TunnelService {
165
+ class LocalTunnelService extends TunnelServiceBase {
135
166
  async run(tunnelOptions, creds, debugEnabled, onError) {
136
167
  const dockerOptions = await this.getDockerOptions(tunnelOptions, debugEnabled, creds);
137
168
  const port = await (0, portfinder_1.getPortPromise)();
@@ -146,14 +177,17 @@ class LocalTunnelService extends TunnelService {
146
177
  ...envVariablesOptions,
147
178
  ...resourcePortEnvVarOption
148
179
  ]));
149
- (0, cross_spawn_1.spawn)('forge-tunnel', [], {
180
+ const process = (0, cross_spawn_1.spawn)('forge-tunnel', [], {
150
181
  stdio: 'inherit',
151
182
  env: Object.assign(Object.assign({}, env), { FORGE_DEV_TUNNEL: 'true' })
152
- }).on('error', onError);
183
+ });
184
+ if (onError) {
185
+ process.on('error', onError);
186
+ }
153
187
  }
154
188
  }
155
189
  exports.LocalTunnelService = LocalTunnelService;
156
- class DockerTunnelService extends TunnelService {
190
+ class DockerTunnelService extends TunnelServiceBase {
157
191
  constructor(configFilePortFindingService, dockerService, analyticsService) {
158
192
  super(configFilePortFindingService);
159
193
  this.dockerService = dockerService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.4.2-next.1",
3
+ "version": "6.4.2-next.11",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,16 +18,19 @@
18
18
  "postinstall": "node -e \"process.exitCode = fs.existsSync('./out/bin/postinstall.js')\" || node ./out/bin/postinstall.js"
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "4.3.1-next.1",
22
- "@forge/cli-shared": "3.5.1",
21
+ "@forge/bundler": "4.4.0-next.9",
22
+ "@forge/cli-shared": "3.6.0-next.1",
23
23
  "@forge/egress": "^1.1.2-next.0",
24
- "@forge/lint": "3.2.14-next.0",
24
+ "@forge/lint": "3.2.14-next.3",
25
25
  "@forge/manifest": "4.6.0",
26
+ "@forge/runtime": "4.1.0-next.2",
27
+ "@forge/tunnel": "3.1.0-next.10",
26
28
  "@forge/util": "1.2.0",
27
29
  "@sentry/node": "^7.29.0",
28
30
  "ajv": "^6.12.5",
29
31
  "archiver": "^5.2.0",
30
32
  "case": "^1.6.2",
33
+ "chalk": "^2.4.2",
31
34
  "cheerio": "^0.22.0",
32
35
  "cli-table3": "^0.6.1",
33
36
  "command-exists": "^1.2.8",
@@ -37,6 +40,7 @@
37
40
  "didyoumean": "^1.2.1",
38
41
  "env-paths": "^2.2.0",
39
42
  "fs-extra": "^8.1.0",
43
+ "form-data": "^3.0.0",
40
44
  "hidefile": "^3.0.0",
41
45
  "latest-version": "^5.1.0",
42
46
  "lodash": "^4.17.20",