npm package diff

Package: @forge/tunnel

Versions: 5.3.4 - 5.4.0-next.0

Modified:package/out/services/create-tunnel-service.js

Index: package/out/services/create-tunnel-service.js
===================================================================
--- package/out/services/create-tunnel-service.js
+++ package/out/services/create-tunnel-service.js
@@ -1,68 +1,13 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.NgrokCreateTunnelService = exports.CloudflareCreateTunnelService = exports.TunnelServiceFacade = exports.CloudflareError = exports.NgrokError = exports.USER_NGROK_ERRORS = void 0;
-const tslib_1 = require("tslib");
-const ngrok = tslib_1.__importStar(require("ngrok"));
+exports.CloudflareCreateTunnelService = exports.CloudflareError = void 0;
 const cloudflared_1 = require("cloudflared");
 const url_1 = require("url");
 const cli_shared_1 = require("@forge/cli-shared");
-const path_1 = tslib_1.__importDefault(require("path"));
-exports.USER_NGROK_ERRORS = [
-    'ERR_NGROK_105',
-    'ERR_NGROK_108',
-    'ERR_NGROK_120',
-    'ERR_NGROK_714',
-    'ERR_NGROK_715',
-    'ERR_NGROK_718',
-    'ERR_NGROK_720',
-    'ERR_NGROK_725',
-    'ERR_NGROK_726',
-    'ERR_NGROK_727',
-    'ERR_NGROK_728',
-    'ERR_NGROK_734',
-    'ERR_NGROK_1226',
-    'ERR_NGROK_3208',
-    'no such file or directory',
-    'The system cannot find the file specified',
-    'context canceled'
-];
-class NgrokError extends cli_shared_1.BaseError {
-    constructor(message) {
-        super(undefined, cli_shared_1.Text.tunnel.error.ngrok(message));
-    }
-    isUserError() {
-        return exports.USER_NGROK_ERRORS.some((err) => this.message.includes(err));
-    }
-}
-exports.NgrokError = NgrokError;
 class CloudflareError extends cli_shared_1.BaseError {
 }
 exports.CloudflareError = CloudflareError;
-class TunnelServiceFacade {
-    featureFlagService;
-    logger;
-    instance;
-    constructor(featureFlagService, logger) {
-        this.featureFlagService = featureFlagService;
-        this.logger = logger;
-    }
-    async getInstance() {
-        if (!this.instance) {
-            this.instance = (await this.featureFlagService.isCloudflareTunnelEnabled())
-                ? new CloudflareCreateTunnelService(this.logger)
-                : new NgrokCreateTunnelService(this.logger);
-        }
-        return this.instance;
-    }
-    async establishTunnel({ port, tunnelConfigPath, id, token, tunnelUrl }) {
-        return (await this.getInstance()).establishTunnel({ port, tunnelConfigPath, id, token, tunnelUrl });
-    }
-    async closeTunnel() {
-        return (await this.getInstance()).closeTunnel();
-    }
-}
-exports.TunnelServiceFacade = TunnelServiceFacade;
 class CloudflareCreateTunnelService {
     logger;
     stopFunction;
     constructor(logger) {
@@ -95,52 +40,4 @@
         }
     }
 }
 exports.CloudflareCreateTunnelService = CloudflareCreateTunnelService;
-class NgrokCreateTunnelService {
-    logger;
-    endpoint;
-    constructor(logger) {
-        this.logger = logger;
-    }
-    async establishTunnel({ port, tunnelConfigPath }) {
-        const defaultConfigPath = path_1.default.join(__dirname, '..', '..', 'config', 'ngrok.yml');
-        let ngrokErrorMessage = undefined;
-        try {
-            const options = {
-                addr: port,
-                configPath: tunnelConfigPath ?? defaultConfigPath,
-                onStatusChange: (status) => {
-                    this.logger.debug(cli_shared_1.Text.tunnel.tunnelStatusChange(status));
-                },
-                onLogEvent: (data) => {
-                    const errorMatch = /err=(".+")$/m.exec(data);
-                    if (errorMatch && !data.includes('obj=updater')) {
-                        ngrokErrorMessage = errorMatch[1];
-                        try {
-                            ngrokErrorMessage = JSON.parse(ngrokErrorMessage);
-                        }
-                        catch { }
-                    }
-                    this.logger.debug(data);
-                }
-            };
-            this.endpoint = await ngrok.connect(options);
-            this.logger.debug(cli_shared_1.Text.tunnel.startedTunnel(this.endpoint));
-            return new url_1.URL(this.endpoint);
-        }
-        catch (e) {
-            throw new NgrokError(ngrokErrorMessage);
-        }
-    }
-    async closeTunnel() {
-        if (this.endpoint) {
-            try {
-                await ngrok.disconnect();
-                await ngrok.kill();
-            }
-            catch { }
-            this.endpoint = undefined;
-        }
-    }
-}
-exports.NgrokCreateTunnelService = NgrokCreateTunnelService;

Modified:package/out/services/register-tunnel-service.js

Index: package/out/services/register-tunnel-service.js
===================================================================
--- package/out/services/register-tunnel-service.js
+++ package/out/services/register-tunnel-service.js
@@ -3,12 +3,10 @@
 exports.RegisterTunnelServiceImpl = void 0;
 const ONE_DAY = 1000 * 60 * 60 * 24;
 class RegisterTunnelServiceImpl {
     tunnelClient;
-    featureFlagService;
-    constructor(tunnelClient, featureFlagService) {
+    constructor(tunnelClient) {
         this.tunnelClient = tunnelClient;
-        this.featureFlagService = featureFlagService;
         this.keepAliveActive = true;
     }
     keepAliveHandler;
     keepAliveActive;
@@ -19,16 +17,9 @@
         const expiry = await this.tunnelClient.createAppTunnels(appId, environmentKey, tunnelDefinitions);
         await this.keepTunnelsAlive(appId, environmentKey, tunnelDefinitions, expiry);
     }
     async setupTunnel(appId, environmentKey) {
-        if (await this.featureFlagService.isCloudflareTunnelEnabled()) {
-            return await this.tunnelClient.setupTunnel(appId, environmentKey);
-        }
-        return {
-            token: undefined,
-            id: undefined,
-            url: undefined
-        };
+        return await this.tunnelClient.setupTunnel(appId, environmentKey);
     }
     async unregisterTunnels(appId, environmentKey) {
         if (this.keepAliveHandler) {
             clearTimeout(this.keepAliveHandler);

Modified:package/out/command/start-tunnel-command.js

Index: package/out/command/start-tunnel-command.js
===================================================================
--- package/out/command/start-tunnel-command.js
+++ package/out/command/start-tunnel-command.js
@@ -38,15 +38,14 @@
             ...Object.values(this.tunnelServers).map((server) => server.stop()),
             this.cspReporterServer?.stop()
         ]);
     };
-    startFaaSTunnelServer = async ({ port, tunnelConfigPath, appId, environmentKey }) => {
+    startFaaSTunnelServer = async ({ port, appId, environmentKey }) => {
         const { permissions = {}, remotes = [] } = await this.configFile.readConfig();
         const serverInfo = await this.devServer.start(port, permissions, remotes);
         const { id, token, url } = await this.tunnelClient.setupTunnel(appId, environmentKey);
         const faasTunnelUrl = await this.tunnelFactory.establishTunnel({
             port: serverInfo.port,
-            tunnelConfigPath,
             id,
             token,
             tunnelUrl: url
         });
@@ -85,9 +84,8 @@
         const allResources = await this.configFile.getResources();
         try {
             const faasTunnelServer = await this.startFaaSTunnelServer({
                 port,
-                tunnelConfigPath: options.ngrokConfig,
                 appId,
                 environmentKey
             });
             const customUITunnelsServers = await this.startResourceBasedTunnelsServers(allResources, options);

Modified:package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/tunnel",
-  "version": "5.3.4",
+  "version": "5.4.0-next.0",
   "description": "Tunnel functionality for Forge CLI",
   "author": "Atlassian",
   "license": "UNLICENSED",
   "main": "out/index.js",
@@ -10,18 +10,17 @@
     "clean": "rm -rf ./out && rm -f tsconfig.tsbuildinfo",
     "compile": "tsc -b -v"
   },
   "dependencies": {
-    "@forge/bundler": "4.17.5",
-    "@forge/cli-shared": "5.3.2",
+    "@forge/bundler": "4.17.6-next.0",
+    "@forge/cli-shared": "5.4.0-next.0",
     "@forge/csp": "3.2.2",
     "@forge/runtime": "5.10.1",
     "chokidar": "^3.6.0",
     "cloudflared": "^0.5.2",
     "express": "^4.18.3",
     "express-intercept": "^1.1.0",
     "http-proxy-middleware": "^2.0.6",
-    "ngrok": "^5.0.0-beta.2",
     "node-cache": "^5.1.2",
     "tmp": "^0.2.3",
     "tslib": "^2.6.2",
     "uuid": "^9.0.1",

Modified:package/out/services/create-tunnel-service.d.ts.map

Index: package/out/services/create-tunnel-service.d.ts.map
===================================================================
--- package/out/services/create-tunnel-service.d.ts.map
+++ package/out/services/create-tunnel-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"create-tunnel-service.d.ts","sourceRoot":"","sources":["../../src/services/create-tunnel-service.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAGhF,oBAAY,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,iBAAiB,GACnB,sBAAsB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9F,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAGD,eAAO,MAAM,iBAAiB,UAkB7B,CAAC;AACF,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,OAAO,CAAC,EAAE,MAAM;IAIrB,WAAW;CAGnB;AAED,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAKjD,qBAAa,mBAAoB,YAAW,mBAAmB;IAI3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAkC;gBAG/B,kBAAkB,EAAE,kBAAkB,EACtC,MAAM,EAAE,MAAM;YAGnB,WAAW;IASZ,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7F,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1C;AAED,qBAAa,6BAA8B,YAAW,mBAAmB;IAG3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,YAAY,CAA0E;gBAEjE,MAAM,EAAE,MAAM;IAE9B,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAwB3E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1C;AAED,qBAAa,wBAAyB,YAAW,mBAAmB;IAGtD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAqB;gBAER,MAAM,EAAE,MAAM;IAE9B,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAsCvE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB1C"}
\ No newline at end of file
+{"version":3,"file":"create-tunnel-service.d.ts","sourceRoot":"","sources":["../../src/services/create-tunnel-service.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAE5D,oBAAY,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,sBAAsB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,6BAA8B,YAAW,mBAAmB;IAG3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,YAAY,CAA0E;gBAEjE,MAAM,EAAE,MAAM;IAE9B,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAwB3E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1C"}
\ No newline at end of file

Modified:package/out/services/register-tunnel-service.d.ts.map

Index: package/out/services/register-tunnel-service.d.ts.map
===================================================================
--- package/out/services/register-tunnel-service.d.ts.map
+++ package/out/services/register-tunnel-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"register-tunnel-service.d.ts","sourceRoot":"","sources":["../../src/services/register-tunnel-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB;IAKzD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAAU;IAEpB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB;IAQ3F,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAWjD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;YAQtD,gBAAgB;IAoB9B,OAAO,CAAC,MAAM;CAaf"}
\ No newline at end of file
+{"version":3,"file":"register-tunnel-service.d.ts","sourceRoot":"","sources":["../../src/services/register-tunnel-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1E,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,qBAAa,yBAA0B,YAAW,qBAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAIvD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAAU;IAEpB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB;IAQ3F,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAIjD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;YAQtD,gBAAgB;IAoB9B,OAAO,CAAC,MAAM;CAaf"}
\ No newline at end of file

Modified:package/out/command/start-tunnel-command.d.ts.map

Index: package/out/command/start-tunnel-command.d.ts.map
===================================================================
--- package/out/command/start-tunnel-command.d.ts.map
+++ package/out/command/start-tunnel-command.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"start-tunnel-command.d.ts","sourceRoot":"","sources":["../../src/command/start-tunnel-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAyB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAC;AAG9D,OAAO,EACL,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAsC,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAX7B,OAAO,CAAC,aAAa,CAAmE;IACxF,OAAO,CAAC,iBAAiB,CAAgC;gBAGtC,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,iBAAiB,EAC5B,aAAa,EAAE,mBAAmB,EAClC,YAAY,EAAE,qBAAqB,EACnC,YAAY,EAAE,qBAAqB,EACnC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU;IAGzC,OAAO,CAAC,YAAY,CAUlB;IAEF,OAAO,CAAC,qBAAqB,CA0B3B;IAEF,OAAO,CAAC,gCAAgC,CAmCtC;IAEW,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAyD9E"}
\ No newline at end of file
+{"version":3,"file":"start-tunnel-command.d.ts","sourceRoot":"","sources":["../../src/command/start-tunnel-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAyB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAC;AAG9D,OAAO,EACL,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAsC,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAX7B,OAAO,CAAC,aAAa,CAAmE;IACxF,OAAO,CAAC,iBAAiB,CAAgC;gBAGtC,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,iBAAiB,EAC5B,aAAa,EAAE,mBAAmB,EAClC,YAAY,EAAE,qBAAqB,EACnC,YAAY,EAAE,qBAAqB,EACnC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU;IAGzC,OAAO,CAAC,YAAY,CAUlB;IAEF,OAAO,CAAC,qBAAqB,CAuB3B;IAEF,OAAO,CAAC,gCAAgC,CAmCtC;IAEW,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAwD9E"}
\ No newline at end of file

Modified:package/CHANGELOG.md

too-big

Modified:package/out/services/create-tunnel-service.d.ts

Index: package/out/services/create-tunnel-service.d.ts
===================================================================
--- package/out/services/create-tunnel-service.d.ts
+++ package/out/services/create-tunnel-service.d.ts
@@ -1,49 +1,25 @@
 /// <reference types="node" resolution-mode="require"/>
 import { URL } from 'url';
-import { BaseError, FeatureFlagService, Logger } from '@forge/cli-shared';
-export declare type NgrokTunnelConfig = {
-    tunnelConfigPath: string | undefined;
-};
+import { BaseError, Logger } from '@forge/cli-shared';
 export declare type CloudflareTunnelConfig = {
     token: string | null | undefined;
     id: string | null | undefined;
     tunnelUrl: string | null | undefined;
 };
 export declare type TunnelConfig = {
     port: number;
-} & NgrokTunnelConfig & CloudflareTunnelConfig;
+} & CloudflareTunnelConfig;
 export interface CreateTunnelService {
-    establishTunnel({ port, tunnelConfigPath, token, id, tunnelUrl }: TunnelConfig): Promise<URL>;
+    establishTunnel({ port, token, id, tunnelUrl }: TunnelConfig): Promise<URL>;
     closeTunnel(): Promise<void>;
 }
-export declare const USER_NGROK_ERRORS: string[];
-export declare class NgrokError extends BaseError {
-    constructor(message?: string);
-    isUserError(): boolean;
-}
 export declare class CloudflareError extends BaseError {
 }
-export declare class TunnelServiceFacade implements CreateTunnelService {
-    private readonly featureFlagService;
-    private readonly logger;
-    private instance;
-    constructor(featureFlagService: FeatureFlagService, logger: Logger);
-    private getInstance;
-    establishTunnel({ port, tunnelConfigPath, id, token, tunnelUrl }: TunnelConfig): Promise<URL>;
-    closeTunnel(): Promise<void>;
-}
 export declare class CloudflareCreateTunnelService implements CreateTunnelService {
     private readonly logger;
     private stopFunction;
     constructor(logger: Logger);
     establishTunnel({ port, id, token, tunnelUrl }: TunnelConfig): Promise<URL>;
     closeTunnel(): Promise<void>;
 }
-export declare class NgrokCreateTunnelService implements CreateTunnelService {
-    private readonly logger;
-    private endpoint;
-    constructor(logger: Logger);
-    establishTunnel({ port, tunnelConfigPath }: TunnelConfig): Promise<URL>;
-    closeTunnel(): Promise<void>;
-}
 //# sourceMappingURL=create-tunnel-service.d.ts.map
\ No newline at end of file

Modified:package/out/services/register-tunnel-service.d.ts

Index: package/out/services/register-tunnel-service.d.ts
===================================================================
--- package/out/services/register-tunnel-service.d.ts
+++ package/out/services/register-tunnel-service.d.ts
@@ -1,15 +1,13 @@
 import { TunnelClient, TunnelDefinitions, TunnelSetup } from '../graphql';
-import { FeatureFlagService } from '@forge/cli-shared';
 export interface RegisterTunnelService {
     setupTunnel(appId: string, environmentKey: string): Promise<TunnelSetup>;
     registerTunnels(appId: string, environmentKey: string, tunnelDefinitions: TunnelDefinitions): Promise<void>;
     unregisterTunnels(appId: string, environmentKey: string): Promise<void>;
 }
 export declare class RegisterTunnelServiceImpl implements RegisterTunnelService {
     private readonly tunnelClient;
-    private readonly featureFlagService;
-    constructor(tunnelClient: TunnelClient, featureFlagService: FeatureFlagService);
+    constructor(tunnelClient: TunnelClient);
     private keepAliveHandler;
     private keepAliveActive;
     registerTunnels(appId: string, environmentKey: string, tunnelDefinitions: TunnelDefinitions): Promise<void>;
     setupTunnel(appId: string, environmentKey: string): Promise<TunnelSetup>;

Modified:package/out/command/start-tunnel-command.d.ts

Index: package/out/command/start-tunnel-command.d.ts
===================================================================
--- package/out/command/start-tunnel-command.d.ts
+++ package/out/command/start-tunnel-command.d.ts
@@ -8,9 +8,8 @@
 export interface StartTunnelOptions {
     port?: number;
     host: string;
     environmentKey: string;
-    ngrokConfig: string | undefined;
     resourcePortMap?: Record<string, number>;
 }
 export interface StartTunnelResult {
     localPort: number;