npm package diff
Package: @forge/tunnel
Versions: 5.7.3-next.1 - 5.7.3-next.2
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
@@ -12,8 +12,20 @@
stopFunction;
constructor(logger) {
this.logger = logger;
}
+ handleTunnleEstablishError(e) {
+ const UNKNOWN_SYS_ERROR = 'Unknown system error -86';
+ const userSysErrors = [UNKNOWN_SYS_ERROR, 'EPERM'];
+ if (userSysErrors.some((error) => e.message.includes(error))) {
+ let errorMessage = e.message;
+ if (e.message.includes(UNKNOWN_SYS_ERROR)) {
+ errorMessage += ': Running `softwareupdate --install-rosetta` may help fix the problem';
+ }
+ throw new cli_shared_1.UserError(undefined, errorMessage);
+ }
+ throw e;
+ }
async establishTunnel({ port, id, token, tunnelUrl }) {
if (!id || !token || !tunnelUrl) {
throw new CloudflareError(undefined, 'Missing configuration to create tunnel');
}
@@ -24,24 +36,29 @@
'--protocol': 'http2'
};
options[id] = null;
process.env['TUNNEL_LOGLEVEL'] = 'debug';
- const { connections, stop, child } = (0, cloudflared_1.tunnel)(options);
- child.stdout?.on('data', (chunk) => this.logger.debug(cli_shared_1.Text.tunnel.cloudflaredLog(chunk)));
- child.stderr?.on('data', (chunk) => this.logger.debug(cli_shared_1.Text.tunnel.cloudflaredLog(chunk)));
- child.on('error', (err) => {
- this.logger.error(err);
- throw new cli_shared_1.BaseError(undefined, cli_shared_1.Text.tunnel.error.cloudflaredError);
- });
- child.on('exit', (code) => {
- if (code !== 0 && code !== null) {
- throw new cli_shared_1.BaseError(undefined, cli_shared_1.Text.tunnel.error.cloudflaredExit(code));
- }
- });
- await Promise.all(connections);
- this.stopFunction = stop;
- this.logger.debug(cli_shared_1.Text.tunnel.startedTunnel(tunnelUrl));
- return new url_1.URL(tunnelUrl);
+ try {
+ const { connections, stop, child } = (0, cloudflared_1.tunnel)(options);
+ child.stdout?.on('data', (chunk) => this.logger.debug(cli_shared_1.Text.tunnel.cloudflaredLog(chunk)));
+ child.stderr?.on('data', (chunk) => this.logger.debug(cli_shared_1.Text.tunnel.cloudflaredLog(chunk)));
+ child.on('error', (err) => {
+ this.logger.error(err);
+ throw new cli_shared_1.BaseError(undefined, cli_shared_1.Text.tunnel.error.cloudflaredError);
+ });
+ child.on('exit', (code) => {
+ if (code !== 0 && code !== null) {
+ throw new cli_shared_1.BaseError(undefined, cli_shared_1.Text.tunnel.error.cloudflaredExit(code));
+ }
+ });
+ await Promise.all(connections);
+ this.stopFunction = stop;
+ this.logger.debug(cli_shared_1.Text.tunnel.startedTunnel(tunnelUrl));
+ return new url_1.URL(tunnelUrl);
+ }
+ catch (e) {
+ throw this.handleTunnleEstablishError(e);
+ }
}
async closeTunnel() {
if (this.stopFunction) {
try {
Modified: package/out/graphql/tunnel-graphql-client.js
Index: package/out/graphql/tunnel-graphql-client.js
===================================================================
--- package/out/graphql/tunnel-graphql-client.js
+++ package/out/graphql/tunnel-graphql-client.js
@@ -1,19 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.TunnelGraphqlClient = void 0;
+exports.TunnelGraphqlClient = exports.RegisterAppTunnelError = void 0;
const cli_shared_1 = require("@forge/cli-shared");
const cli_shared_2 = require("@forge/cli-shared");
class CreateAppTunnelError extends cli_shared_1.GraphQlMutationError {
constructor(message, { requestId, code, statusCode }) {
super(cli_shared_2.Text.tunnel.error.create(message), { requestId, code, statusCode });
}
}
class RegisterAppTunnelError extends cli_shared_1.GraphQlMutationError {
+ static userErrorCodes = ['ENVIRONMENT_MISMATCH', 'ENVIRONMENT_NOT_FOUND'];
+ errorCode;
constructor(message, { requestId, code, statusCode }) {
super(cli_shared_2.Text.tunnel.error.create(message), { requestId, code, statusCode });
+ this.errorCode = code;
}
+ getAttributes() {
+ return {
+ isUserError: this.isUserError()
+ };
+ }
+ isUserError() {
+ return typeof this.errorCode === 'string' && RegisterAppTunnelError.userErrorCodes.includes(this.errorCode);
+ }
}
+exports.RegisterAppTunnelError = RegisterAppTunnelError;
class DeleteAppTunnelError extends cli_shared_1.GraphQlMutationError {
constructor(message, { requestId, code, statusCode }) {
super(cli_shared_2.Text.tunnel.error.delete(message), { requestId, code, statusCode });
}
Modified: package/package.json
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/tunnel",
- "version": "5.7.3-next.1",
+ "version": "5.7.3-next.2",
"description": "Tunnel functionality for Forge CLI",
"author": "Atlassian",
"license": "UNLICENSED",
"main": "out/index.js",
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":";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;IA0C3E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1C"}
\ 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,EAAmB,MAAM,mBAAmB,CAAC;AAEvE,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;IAE3C,OAAO,CAAC,0BAA0B;IAgBrB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IA8C3E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1C"}
\ No newline at end of file
Modified: package/out/graphql/tunnel-graphql-client.d.ts.map
Index: package/out/graphql/tunnel-graphql-client.d.ts.map
===================================================================
--- package/out/graphql/tunnel-graphql-client.d.ts.map
+++ package/out/graphql/tunnel-graphql-client.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"tunnel-graphql-client.d.ts","sourceRoot":"","sources":["../../src/graphql/tunnel-graphql-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EACL,aAAa,EAMd,MAAM,mBAAmB,CAAC;AA8B3B,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,GAAG,CAAC;KAChB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,gBAAgB,CACd,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACtC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,qBAAa,mBAAoB,YAAW,YAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEnD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA8CxE,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IA0C/B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsC1E"}
\ No newline at end of file
+{"version":3,"file":"tunnel-graphql-client.d.ts","sourceRoot":"","sources":["../../src/graphql/tunnel-graphql-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EACL,aAAa,EAGb,oBAAoB,EAGpB,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAY3B,qBAAa,sBAAuB,SAAQ,oBAAqB,YAAW,kBAAkB;IAC5F,OAAO,CAAC,MAAM,CAAC,cAAc,CAAqD;IAClF,OAAO,CAAC,SAAS,CAAC,CAAS;gBAGzB,OAAO,EAAE,MAAM,EACf,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAMjG,aAAa,IAAI,cAAc;IAK/B,WAAW,IAAI,OAAO;CAG9B;AAWD,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,GAAG,CAAC;KAChB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,gBAAgB,CACd,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACtC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,qBAAa,mBAAoB,YAAW,YAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEnD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA8CxE,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IA0C/B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsC1E"}
\ No newline at end of file
Modified: package/CHANGELOG.md
Large diffs are not rendered by default.
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
@@ -18,8 +18,9 @@
export declare class CloudflareCreateTunnelService implements CreateTunnelService {
private readonly logger;
private stopFunction;
constructor(logger: Logger);
+ private handleTunnleEstablishError;
establishTunnel({ port, id, token, tunnelUrl }: TunnelConfig): Promise<URL>;
closeTunnel(): Promise<void>;
}
//# sourceMappingURL=create-tunnel-service.d.ts.map
\ No newline at end of file
Modified: package/out/graphql/tunnel-graphql-client.d.ts
Index: package/out/graphql/tunnel-graphql-client.d.ts
===================================================================
--- package/out/graphql/tunnel-graphql-client.d.ts
+++ package/out/graphql/tunnel-graphql-client.d.ts
@@ -1,7 +1,18 @@
/// <reference types="node" resolution-mode="require"/>
import { URL } from 'url';
-import { GraphQLClient } from '@forge/cli-shared';
+import { GraphQLClient, GraphQlMutationError, ErrorWithAnalytics, ErrorAnalytics } from '@forge/cli-shared';
+export declare class RegisterAppTunnelError extends GraphQlMutationError implements ErrorWithAnalytics {
+ private static userErrorCodes;
+ private errorCode?;
+ constructor(message: string, { requestId, code, statusCode }: {
+ requestId: string | undefined;
+ code?: string;
+ statusCode?: number;
+ });
+ getAttributes(): ErrorAnalytics;
+ isUserError(): boolean;
+}
export interface TunnelDefinitions {
faasTunnelUrl?: URL;
customUI?: {
resourceKey: string;