npm package diff

Package: @forge/tunnel

Versions: 5.7.0-next.7 - 5.7.0-next.8

Modified:package/out/servers/dev-server.js

Index: package/out/servers/dev-server.js
===================================================================
--- package/out/servers/dev-server.js
+++ package/out/servers/dev-server.js
@@ -6,9 +6,8 @@
 const express_1 = tslib_1.__importDefault(require("express"));
 const bundler_1 = require("@forge/bundler");
 const cli_shared_1 = require("@forge/cli-shared");
 const runtime_1 = require("@forge/runtime");
-const bundler_2 = require("@forge/bundler");
 const util_1 = require("../util");
 async function stopServer(server) {
     if (!server) {
         return;
@@ -52,51 +51,26 @@
     }
     async stop() {
         await stopServer(this.httpServer);
     }
-    async compileAndWatch({ onBuildWillStart, onBuildFinished }, tunnelOptions = cli_shared_1.defaultNoDebugTunnelOptions) {
+    async compileAndWatch(watch, tunnelOptions = cli_shared_1.defaultNoDebugTunnelOptions) {
         const isNodeJsRuntime = (await this.configFile.runtimeType()) === cli_shared_1.RuntimeType.nodejs;
         const outputDir = isNodeJsRuntime && tunnelOptions.debug ? path_1.default.resolve(cli_shared_1.TUNNEL_BUNDLE_DIRECTORY) : (0, cli_shared_1.tmpDir)('tunnel');
         const handlers = await this.configFile.getAppHandlers();
         const entryPoints = (0, bundler_1.getEntryPoints)(handlers);
         if (!entryPoints.length) {
             return { outputDir };
         }
-        const getConfig = isNodeJsRuntime
-            ? (0, bundler_2.getNodeRuntimeBuildConfig)((0, bundler_1.getWrapperProvider)({ fileSystemReader: this.fileSystemReader, statsigService: this.statsigService }))
-            : bundler_2.getSandboxedRuntimeBuildConfig;
-        const config = getConfig(entryPoints, {
-            isWatchMode: true,
-            isDebugMode: tunnelOptions.debug,
+        const bundler = isNodeJsRuntime
+            ? new bundler_1.NodeBundler(this.logger, (0, bundler_1.getWrapperProvider)({ fileSystemReader: this.fileSystemReader, statsigService: this.statsigService }))
+            : new bundler_1.SandboxBundler(this.logger);
+        const { result } = await bundler.watch({
             appDirectory: process.cwd(),
-            outputDir
-        });
-        const compiler = (0, bundler_2.getCompiler)(config);
-        let isFirstRun = true;
-        compiler.hooks.watchRun.tapAsync('watchRun', async (_, watchRunCallback) => {
-            if (!isFirstRun) {
-                await onBuildWillStart();
-            }
-            watchRunCallback();
-        });
-        return new Promise((resolve, reject) => {
-            compiler.watch({ poll: 1000 }, async (compilerError, stats) => {
-                try {
-                    (0, bundler_2.handleWebpackCompilationResult)(this.logger, compilerError, stats);
-                    this.logger.info(cli_shared_1.LogColor.trace(cli_shared_1.Text.tunnel.functionsBundlingSucceeded));
-                    if (!isFirstRun) {
-                        await onBuildFinished(null, { outputDir });
-                    }
-                    isFirstRun = false;
-                    resolve({ outputDir });
-                }
-                catch (err) {
-                    await onBuildFinished(err);
-                    isFirstRun = false;
-                    reject(err);
-                }
-            });
-        });
+            entryPoints,
+            watchMode: tunnelOptions.debug ? 'debug' : 'watch',
+            successMessage: cli_shared_1.Text.tunnel.functionsBundlingSucceeded
+        }, watch);
+        return result;
     }
     getApp() {
         return this.app;
     }

Modified:package/out/command/interactors/multi-compiler-watcher.js

Index: package/out/command/interactors/multi-compiler-watcher.js
===================================================================
--- package/out/command/interactors/multi-compiler-watcher.js
+++ package/out/command/interactors/multi-compiler-watcher.js
@@ -11,13 +11,13 @@
     }
     allServers() {
         return [this.faasServer, ...this.uiServers];
     }
-    async compileAndWatch({ onChange: { onBuildWillStart, onBuildFinished } }, tunnelOptions = cli_shared_1.defaultNoDebugTunnelOptions) {
-        const [faasResult] = await Promise.all(this.allServers().map((server) => server.compileAndWatch({
-            onBuildWillStart,
-            onBuildFinished
-        }, tunnelOptions)));
+    async compileAndWatch({ onRuntimeChange, onUIChange }, tunnelOptions = cli_shared_1.defaultNoDebugTunnelOptions) {
+        const [faasResult] = await Promise.all([
+            this.faasServer.compileAndWatch(onRuntimeChange, tunnelOptions),
+            ...this.uiServers.map((server) => server.compileAndWatch(onUIChange, tunnelOptions))
+        ]);
         return faasResult;
     }
     async stop() {
         await Promise.all(this.allServers().map((server) => server.stop()));

Modified:package/out/servers/native-ui-tunnel-server.js

Index: package/out/servers/native-ui-tunnel-server.js
===================================================================
--- package/out/servers/native-ui-tunnel-server.js
+++ package/out/servers/native-ui-tunnel-server.js
@@ -74,19 +74,19 @@
         });
         let isFirstCompilation = true;
         return new Promise((resolve, reject) => {
             compiler.hooks.done.tapAsync('done', async (stats, doneCallback) => {
-                const maybeError = stats.hasErrors() ? stats.compilation.getErrors()[0] : undefined;
                 try {
-                    (0, bundler_1.handleWebpackCompilationResult)(this.logger, maybeError, stats);
+                    (0, bundler_1.handleWebpackCompilationResult)(this.logger, null, stats);
                     this.logger.info(cli_shared_1.LogColor.trace(cli_shared_1.Text.tunnel.resourcesBundlingSucceeded));
+                    const result = { outputDir: this.outputDir };
                     if (!isFirstCompilation) {
-                        await onBuildFinished(null);
+                        await onBuildFinished(null, result);
                     }
                     else {
                         isFirstCompilation = false;
                     }
-                    resolve({ outputDir: this.outputDir });
+                    resolve(result);
                 }
                 catch (err) {
                     await onBuildFinished(err);
                     isFirstCompilation = false;

Modified:package/out/command/interactors/tunnel-interactor.js

Index: package/out/command/interactors/tunnel-interactor.js
===================================================================
--- package/out/command/interactors/tunnel-interactor.js
+++ package/out/command/interactors/tunnel-interactor.js
@@ -58,25 +58,20 @@
         const { localPort, inspectorAddress, reloadSandboxes, faasServer, uiServers } = startTunnelResult;
         if (inspectorAddress) {
             this.logger.info(cli_shared_1.Text.tunnel.startedInspector(inspectorAddress));
         }
-        const onBundlingStart = async () => {
-            try {
-                this.logger.info('');
-                this.logger.info(cli_shared_1.Text.bundle.detectedChanges);
-                await (0, bundler_1.runLinter)();
-                this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.bundlingHeader));
-            }
-            catch (err) {
-                throw err;
-            }
+        const onBuildWillStart = async () => {
+            this.logger.info('');
+            this.logger.info(cli_shared_1.Text.bundle.detectedChanges);
+            await (0, bundler_1.runLinter)();
+            this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.bundlingHeader));
         };
-        const onBundlingFinish = async (err, output) => {
+        const onBuildFinished = (kind) => async (err, output) => {
             if (err) {
                 this.logger.error(err);
                 return;
             }
-            if (output) {
+            if (kind === 'runtime') {
                 await reloadSandboxes(output, tunnelOptions);
             }
             this.logger.info('');
             this.logger.info(cli_shared_1.Text.tunnel.startedServer(localPort, this.logger.debugEnabled) + '\n');
@@ -85,12 +80,10 @@
         await (0, bundler_1.runLinter)();
         this.logger.info(cli_shared_1.Text.tunnel.preBundleTask(cli_shared_1.Text.tunnel.bundlingHeader));
         try {
             const output = await multiCompiler.compileAndWatch({
-                onChange: {
-                    onBuildWillStart: onBundlingStart,
-                    onBuildFinished: onBundlingFinish
-                }
+                onRuntimeChange: { onBuildWillStart, onBuildFinished: onBuildFinished('runtime') },
+                onUIChange: { onBuildWillStart, onBuildFinished: onBuildFinished('ui') }
             }, tunnelOptions);
             await reloadSandboxes(output, tunnelOptions);
             this.logger.info('');
             this.logger.info(cli_shared_1.Text.tunnel.startedServer(localPort, this.logger.debugEnabled) + '\n');

Modified:package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/tunnel",
-  "version": "5.7.0-next.7",
+  "version": "5.7.0-next.8",
   "description": "Tunnel functionality for Forge CLI",
   "author": "Atlassian",
   "license": "UNLICENSED",
   "main": "out/index.js",
@@ -10,9 +10,9 @@
     "clean": "rm -rf ./out && rm -f tsconfig.tsbuildinfo",
     "compile": "tsc -b -v"
   },
   "dependencies": {
-    "@forge/bundler": "4.20.1-next.6",
+    "@forge/bundler": "4.20.1-next.7",
     "@forge/cli-shared": "6.4.0-next.6",
     "@forge/csp": "3.4.0-next.0",
     "@forge/runtime": "5.10.3",
     "chokidar": "^3.6.0",

Modified:package/out/servers/dev-server.d.ts.map

Index: package/out/servers/dev-server.d.ts.map
===================================================================
--- package/out/servers/dev-server.d.ts.map
+++ package/out/servers/dev-server.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/servers/dev-server.ts"],"names":[],"mappings":";;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EACL,UAAU,EAEV,gBAAgB,EAEhB,MAAM,EAEN,cAAc,EAId,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAe,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AACD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1G;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACrE;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/E;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAO5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAVjC,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,OAAO,CAAsB;gBAGlB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc;IAQpC,KAAK,CAAC,IAAI,SAAI,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe5F,IAAI;IAIJ,eAAe,CAC1B,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,UAAU,CAAC,aAAa,CAAC,EAChE,aAAa,GAAE,aAA2C,GACzD,OAAO,CAAC,aAAa,CAAC;IAyDlB,MAAM,IAAI,OAAO,CAAC,WAAW;IAI7B,gBAAgB,EAAE,OAAO,CAAC,OAAO,CA2CtC;CACH"}
\ No newline at end of file
+{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/servers/dev-server.ts"],"names":[],"mappings":";;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAGL,YAAY,EACZ,aAAa,EAGd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EAEV,gBAAgB,EAChB,MAAM,EAEN,cAAc,EAId,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAe,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAIvD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACrE;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/E;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAO5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAVjC,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,OAAO,CAAsB;gBAGlB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc;IAQpC,KAAK,CAAC,IAAI,SAAI,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe5F,IAAI;IAIJ,eAAe,CAC1B,KAAK,EAAE,YAAY,EACnB,aAAa,GAAE,aAA2C,GACzD,OAAO,CAAC,aAAa,CAAC;IA6BlB,MAAM,IAAI,OAAO,CAAC,WAAW;IAI7B,gBAAgB,EAAE,OAAO,CAAC,OAAO,CA2CtC;CACH"}
\ No newline at end of file

Modified:package/out/command/interactors/multi-compiler-watcher.d.ts.map

Index: package/out/command/interactors/multi-compiler-watcher.d.ts.map
===================================================================
--- package/out/command/interactors/multi-compiler-watcher.d.ts.map
+++ package/out/command/interactors/multi-compiler-watcher.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"multi-compiler-watcher.d.ts","sourceRoot":"","sources":["../../../src/command/interactors/multi-compiler-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,qBAAa,oBAAqB,YAAW,cAAc;IAEvD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,iBAAiB,EAAE;IAG1C,UAAU,IAAI,iBAAiB,EAAE;IAI3B,eAAe,CAC1B,EACE,QAAQ,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAChD,EAAE;QACD,QAAQ,EAAE,UAAU,CAAC;KACtB,EACD,aAAa,GAAE,aAA2C,GACzD,OAAO,CAAC,aAAa,CAAC;IAgBZ,IAAI;CAGlB"}
\ No newline at end of file
+{"version":3,"file":"multi-compiler-watcher.d.ts","sourceRoot":"","sources":["../../../src/command/interactors/multi-compiler-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,qBAAa,oBAAqB,YAAW,cAAc;IAEvD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,iBAAiB,EAAE;IAG1C,UAAU,IAAI,iBAAiB,EAAE;IAI3B,eAAe,CAC1B,EACE,eAAe,EACf,UAAU,EACX,EAAE;QACD,eAAe,EAAE,YAAY,CAAC;QAC9B,UAAU,EAAE,YAAY,CAAC;KAC1B,EACD,aAAa,GAAE,aAA2C,GACzD,OAAO,CAAC,aAAa,CAAC;IASZ,IAAI;CAGlB"}
\ No newline at end of file

Modified:package/out/servers/native-ui-tunnel-server.d.ts.map

Index: package/out/servers/native-ui-tunnel-server.d.ts.map
===================================================================
--- package/out/servers/native-ui-tunnel-server.d.ts.map
+++ package/out/servers/native-ui-tunnel-server.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"native-ui-tunnel-server.d.ts","sourceRoot":"","sources":["../../src/servers/native-ui-tunnel-server.ts"],"names":[],"mappings":"AAAA,OAAO,gBAA+D,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAuE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEnF,qBAAa,oBAAqB,SAAQ,oBAAqB,YAAW,iBAAiB;IAI7E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAHvC,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEN,UAAU,EAAE,wBAAwB;IA4D3D,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAWzC,eAAe,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAsCjG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
\ No newline at end of file
+{"version":3,"file":"native-ui-tunnel-server.d.ts","sourceRoot":"","sources":["../../src/servers/native-ui-tunnel-server.ts"],"names":[],"mappings":"AAAA,OAAO,gBAA+D,MAAM,oBAAoB,CAAC;AACjG,OAAO,EACL,aAAa,EAIb,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEvE,qBAAa,oBAAqB,SAAQ,oBAAqB,YAAW,iBAAiB;IAI7E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAHvC,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEN,UAAU,EAAE,wBAAwB;IA4D3D,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAWzC,eAAe,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCnG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
\ No newline at end of file

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

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,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAEpC,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,CA8DpC;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,EAAyC,MAAM,EAAQ,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAEpC,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,CAwDpC;CACH"}
\ No newline at end of file

Modified:package/CHANGELOG.md

too-big

Modified:package/out/servers/dev-server.d.ts

Index: package/out/servers/dev-server.d.ts
===================================================================
--- package/out/servers/dev-server.d.ts
+++ package/out/servers/dev-server.d.ts
@@ -2,20 +2,16 @@
 /// <reference types="node" resolution-mode="require"/>
 import http from 'http';
 import { URL } from 'url';
 import express from 'express';
+import { BundlerWatch, BundlerOutput } from '@forge/bundler';
 import { ConfigFile, FileSystemReader, Logger, StatsigService, TunnelOptions } from '@forge/cli-shared';
 import { ExternalRequestBody } from '@forge/runtime';
 import { Permissions, Remotes } from '@forge/manifest';
-import { BundlerOutput } from '@forge/bundler';
-export interface WatchHooks<T = any> {
-    onBuildWillStart: () => Promise<void>;
-    onBuildFinished: (err: Error | null, result?: T) => Promise<void>;
-}
 export interface DevelopmentServer {
     start(port?: number, permissions?: Permissions, remotes?: Remotes): Promise<StartDevServerResult>;
     stop(): Promise<void>;
-    compileAndWatch(hooks: WatchHooks<BundlerOutput>, tunnelOptions?: TunnelOptions): Promise<BundlerOutput>;
+    compileAndWatch(hooks: BundlerWatch, tunnelOptions?: TunnelOptions): Promise<BundlerOutput>;
 }
 export interface StartDevServerResult {
     port: number;
     devServer: DevelopmentServer;
@@ -38,9 +34,9 @@
     private remotes;
     constructor(invocationService: InvocationService, logger: Logger, configFile: ConfigFile, fileSystemReader: FileSystemReader, statsigService: StatsigService);
     start(port?: number, permissions?: Permissions, remotes?: Remotes): Promise<StartDevServerResult>;
     stop(): Promise<void>;
-    compileAndWatch({ onBuildWillStart, onBuildFinished }: WatchHooks<BundlerOutput>, tunnelOptions?: TunnelOptions): Promise<BundlerOutput>;
+    compileAndWatch(watch: BundlerWatch, tunnelOptions?: TunnelOptions): Promise<BundlerOutput>;
     getApp(): express.Application;
     handleInvocation: express.Handler;
 }
 //# sourceMappingURL=dev-server.d.ts.map
\ No newline at end of file

Modified:package/out/command/interactors/multi-compiler-watcher.d.ts

Index: package/out/command/interactors/multi-compiler-watcher.d.ts
===================================================================
--- package/out/command/interactors/multi-compiler-watcher.d.ts
+++ package/out/command/interactors/multi-compiler-watcher.d.ts
@@ -1,14 +1,15 @@
-import { BundlerOutput, WatcherMonitor } from '@forge/bundler';
-import { DevelopmentServer, WatchHooks } from '../../servers';
+import { BundlerOutput, BundlerWatch, WatcherMonitor } from '@forge/bundler';
+import { DevelopmentServer } from '../../servers';
 import { TunnelOptions } from '@forge/cli-shared';
 export declare class MultiCompilerWatcher implements WatcherMonitor {
     private readonly faasServer;
     private readonly uiServers;
     constructor(faasServer: DevelopmentServer, uiServers: DevelopmentServer[]);
     allServers(): DevelopmentServer[];
-    compileAndWatch({ onChange: { onBuildWillStart, onBuildFinished } }: {
-        onChange: WatchHooks;
+    compileAndWatch({ onRuntimeChange, onUIChange }: {
+        onRuntimeChange: BundlerWatch;
+        onUIChange: BundlerWatch;
     }, tunnelOptions?: TunnelOptions): Promise<BundlerOutput>;
     stop(): Promise<void>;
 }
 //# sourceMappingURL=multi-compiler-watcher.d.ts.map
\ No newline at end of file

Modified:package/out/servers/native-ui-tunnel-server.d.ts

Index: package/out/servers/native-ui-tunnel-server.d.ts
===================================================================
--- package/out/servers/native-ui-tunnel-server.d.ts
+++ package/out/servers/native-ui-tunnel-server.d.ts
@@ -1,14 +1,14 @@
 import WebpackDevServer from 'webpack-dev-server';
-import { BundlerOutput } from '@forge/bundler';
+import { BundlerOutput, BundlerWatch } from '@forge/bundler';
 import { ResourceTunnelServer, ResourceTunnelServerArgs } from './resource-tunnel-server';
-import { DevelopmentServer, StartDevServerResult, WatchHooks } from './dev-server';
+import { DevelopmentServer, StartDevServerResult } from './dev-server';
 export declare class NativeUITunnelServer extends ResourceTunnelServer implements DevelopmentServer {
     private readonly tunnelArgs;
     readonly server: WebpackDevServer;
     private readonly outputDir;
     constructor(tunnelArgs: ResourceTunnelServerArgs);
     start(): Promise<Required<StartDevServerResult>>;
-    compileAndWatch({ onBuildWillStart, onBuildFinished }: WatchHooks): Promise<BundlerOutput>;
+    compileAndWatch({ onBuildWillStart, onBuildFinished }: BundlerWatch): Promise<BundlerOutput>;
     stop(): Promise<void>;
 }
 //# sourceMappingURL=native-ui-tunnel-server.d.ts.map
\ No newline at end of file