npm package diff
Package: @forge/tunnel
Versions: 5.10.0-next.12 - 5.10.0-next.13
Modified: package/out/sandbox/node-sandbox.js
Index: package/out/sandbox/node-sandbox.js
===================================================================
--- package/out/sandbox/node-sandbox.js
+++ package/out/sandbox/node-sandbox.js
@@ -2,39 +2,58 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeSandbox = void 0;
const tslib_1 = require("tslib");
const child_process_1 = require("child_process");
-const path_1 = require("path");
+const path_1 = tslib_1.__importDefault(require("path"));
const readline_1 = tslib_1.__importDefault(require("readline"));
const uuid_1 = require("uuid");
const runtime_1 = require("@forge/runtime");
-const RUNNER = (0, path_1.join)(__dirname, '..', '..', 'out', 'sandbox', 'sandbox-runner.js');
+const RUNNER = path_1.default.join(__dirname, '..', '..', 'out', 'sandbox', 'sandbox-runner.js');
class NodeSandbox {
+ statsigService;
name;
process;
callbacks;
- constructor({ appPath, modName, handler, debugPort }) {
- this.name = `${modName}.${handler}`;
- const fileName = `${appPath}/${modName}.cjs`;
+ constructor({ appPath, modName, handler, debugPort }, statsigService) {
+ this.statsigService = statsigService;
+ const name = `${modName}.${handler}`;
+ this.name = name;
this.callbacks = new Map();
- this.process = (0, child_process_1.fork)(RUNNER, [fileName, handler], {
- stdio: ['ignore', 'pipe', 2, 'ipc'],
- env: {
- _HANDLER: this.name,
- FORGE_EFS_RUNTIME_PATH: appPath,
- FORGE_CUSTOM_WRAPPER_FILE_NAME: '__forge_wrapper__.cjs'
- },
- execArgv: debugPort ? [`--inspect=0.0.0.0:${debugPort}`] : undefined
- });
- readline_1.default.createInterface(this.process.stdout).on('line', (line) => {
- const message = JSON.parse(line);
- this.handleOutput(message);
- });
- this.process.on('message', (message) => {
- const requestId = message.requestId;
- const result = message.result;
- this.callbacks.get(requestId)?.(result);
- });
+ this.process = (async () => {
+ const useSingleWrapper = await this.statsigService.packageSingleWrapper();
+ let fileName;
+ let handlerName;
+ let handlerEnv;
+ if (useSingleWrapper) {
+ fileName = path_1.default.join(appPath, '__forge__.js');
+ handlerName = 'main';
+ handlerEnv = '__forge__.main';
+ }
+ else {
+ fileName = path_1.default.join(appPath, `${modName}.cjs`);
+ handlerName = handler;
+ handlerEnv = `index.${handler}`;
+ }
+ const process = (0, child_process_1.fork)(RUNNER, [fileName, handlerName], {
+ stdio: ['ignore', 'pipe', 2, 'ipc'],
+ env: {
+ _HANDLER: handlerEnv,
+ FORGE_EFS_RUNTIME_PATH: appPath,
+ FORGE_CUSTOM_WRAPPER_FILE_NAME: '__forge_wrapper__.cjs'
+ },
+ execArgv: debugPort ? [`--inspect=0.0.0.0:${debugPort}`] : undefined
+ });
+ readline_1.default.createInterface(process.stdout).on('line', (line) => {
+ const message = JSON.parse(line);
+ this.handleOutput(message);
+ });
+ process.on('message', (message) => {
+ const requestId = message.requestId;
+ const result = message.result;
+ this.callbacks.get(requestId)?.(result);
+ });
+ return process;
+ })();
}
handleOutput(output) {
if (output.invocationId) {
const p3LogEvent = output;
@@ -60,12 +79,12 @@
requestId,
deadline
};
const message = { lambdaEvent, tunnelContext };
- this.process.send(message);
+ void this.process.then((process) => process.send(message));
});
}
stop() {
- this.process.kill();
+ void this.process.then((process) => process.kill());
}
}
exports.NodeSandbox = NodeSandbox;
Modified: package/package.json
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/tunnel",
- "version": "5.10.0-next.12",
+ "version": "5.10.0-next.13",
"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": "4.21.0-next.12",
- "@forge/cli-shared": "6.7.0-next.10",
+ "@forge/bundler": "4.21.0-next.13",
+ "@forge/cli-shared": "6.7.0-next.11",
"@forge/csp": "3.6.2",
"@forge/runtime": "5.10.7-next.0",
"cloudflared": "^0.7.0",
"chokidar": "^3.6.0",
Modified: package/out/sandbox/node-sandbox.d.ts.map
Index: package/out/sandbox/node-sandbox.d.ts.map
===================================================================
--- package/out/sandbox/node-sandbox.d.ts.map
+++ package/out/sandbox/node-sandbox.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"node-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/node-sandbox.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,SAAS,EAIV,MAAM,gBAAgB,CAAC;AAMxB,qBAAa,WAAY,YAAW,OAAO;IACzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;gBAEhE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,aAAa;IA6BnE,OAAO,CAAC,YAAY;IAOd,OAAO,CACX,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,aAAa,EAC/B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAChC,OAAO,CAAC,gBAAgB,CAAC;IA+B5B,IAAI,IAAI,IAAI;CAGb"}
\ No newline at end of file
+{"version":3,"file":"node-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/node-sandbox.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,SAAS,EAIV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,qBAAa,WAAY,YAAW,OAAO;IAOvC,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;gBAG1E,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,aAAa,EACtC,cAAc,EAAE,cAAc;IAmDjD,OAAO,CAAC,YAAY;IAOd,OAAO,CACX,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,aAAa,EAC/B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAChC,OAAO,CAAC,gBAAgB,CAAC;IA+B5B,IAAI,IAAI,IAAI;CAGb"}
\ No newline at end of file
Modified: package/CHANGELOG.md
Large diffs are not rendered by default.
Modified: package/out/sandbox/node-sandbox.d.ts
Index: package/out/sandbox/node-sandbox.d.ts
===================================================================
--- package/out/sandbox/node-sandbox.d.ts
+++ package/out/sandbox/node-sandbox.d.ts
@@ -1,10 +1,12 @@
import { XenInvocationRequest, LimitsTracker, InvocationResult, Sandbox, SandboxConfig, Inspector } from '@forge/runtime';
+import { StatsigService } from '@forge/cli-shared';
export declare class NodeSandbox implements Sandbox {
+ private readonly statsigService;
readonly name: string;
- private readonly process;
+ private process;
private readonly callbacks;
- constructor({ appPath, modName, handler, debugPort }: SandboxConfig);
+ constructor({ appPath, modName, handler, debugPort }: SandboxConfig, statsigService: StatsigService);
private handleOutput;
execute(xenInvocationRequest: XenInvocationRequest, invocationLimits: LimitsTracker, inspector?: Inspector | undefined): Promise<InvocationResult>;
stop(): void;
}