@forge/cli-shared 9.3.1-next.2 → 9.3.1-next.2-experimental-9595c20
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.
- package/CHANGELOG.md +13 -0
- package/out/apps/template-module.d.ts.map +1 -1
- package/out/apps/template-module.js +4 -5
- package/out/apps/template.d.ts.map +1 -1
- package/out/apps/template.js +4 -10
- package/out/graphql/graphql-types.d.ts +143 -0
- package/out/graphql/graphql-types.d.ts.map +1 -1
- package/out/graphql/graphql-types.js +87 -45
- package/out/graphql/minimal-graphql-runner.d.ts +1 -2
- package/out/graphql/minimal-graphql-runner.d.ts.map +1 -1
- package/out/http-client/feedback-post-client.d.ts +0 -1
- package/out/http-client/feedback-post-client.d.ts.map +1 -1
- package/out/http-client/feedback-post-client.js +1 -3
- package/out/http-client/file-uploader.d.ts.map +1 -1
- package/out/http-client/file-uploader.js +8 -7
- package/out/http-client/global-edge-http-client.d.ts +0 -1
- package/out/http-client/global-edge-http-client.d.ts.map +1 -1
- package/out/http-client/index.d.ts +1 -0
- package/out/http-client/index.d.ts.map +1 -1
- package/out/http-client/index.js +1 -0
- package/out/http-client/node-request.d.ts +10 -0
- package/out/http-client/node-request.d.ts.map +1 -0
- package/out/http-client/node-request.js +57 -0
- package/out/http-client/trace.d.ts +3 -2
- package/out/http-client/trace.d.ts.map +1 -1
- package/out/service/statsig-service.d.ts.map +1 -1
- package/out/service/statsig-service.js +2 -4
- package/out/shared/error-handling.d.ts.map +1 -1
- package/out/shared/error-handling.js +30 -4
- package/package.json +2 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-graphql-runner.d.ts","sourceRoot":"","sources":["../../src/graphql/minimal-graphql-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"minimal-graphql-runner.d.ts","sourceRoot":"","sources":["../../src/graphql/minimal-graphql-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAqD,MAAM,UAAU,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAuB,SAAS,EAAE,MAAM,WAAW,CAAC;AAItE,OAAO,EAAE,iCAAiC,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE/F,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D,eAAO,MAAM,cAAc,EAAE,kBAM5B,CAAC;AACF,qBAAa,0BAA2B,SAAQ,SAAS;CAAG;AAM5D,qBAAa,0BAA2B,SAAQ,SAAS;;CAIxD;AAED,qBAAa,uBAAwB,SAAQ,SAAS;;CAIrD;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAMtD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGpB,SAAS,EAAE,OAAO,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,YAAY,EAAE;IASxB,OAAO,QAAO,MAAM,GAAG,SAAS,CAE9B;IAEF,aAAa,QAAO,MAAM,GAAG,SAAS,CAEpC;IAEF,YAAY,QAAO,MAAM,GAAG,SAAS,CAEnC;IAEK,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;CAG1C;AAED,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAEtD,qBAAa,oBAAqB,YAAW,aAAa;IAEtD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,GAAG,SAAS;IAGxC,GAAG,CAAC,UAAU,SAAS,SAAS,EAAE,SAAS,EAAE,WAAW,GAAG,iCAAiC,EACvG,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU;;kBAMD,SAAS;oBACD,WAAW,GAAG,SAAS;;cAIrC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB;IAMpF,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;YAYvF,cAAc;IAQ5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;YAIV,4BAA4B;IA6C1C,OAAO,CAAC,YAAY;CAarB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-post-client.d.ts","sourceRoot":"","sources":["../../src/http-client/feedback-post-client.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"feedback-post-client.d.ts","sourceRoot":"","sources":["../../src/http-client/feedback-post-client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzD;AAqBD,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,QAAQ,CAAC,yBAAyB,oHACiF;IAEtG,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;CASrE"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HttpsFeedbackPostClient = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
6
4
|
const prepareRequestBody = (feedback) => {
|
|
7
5
|
return {
|
|
8
6
|
fields: [
|
|
@@ -24,7 +22,7 @@ const prepareRequestBody = (feedback) => {
|
|
|
24
22
|
class HttpsFeedbackPostClient {
|
|
25
23
|
forgeFeedbackCollectorUrl = 'https://jsd-widget.atlassian.com/api/embeddable/b8a921af-5e55-4b6f-a219-590251ab908f/request?requestTypeId=326';
|
|
26
24
|
async sendFeedback(feedback) {
|
|
27
|
-
return (
|
|
25
|
+
return fetch(this.forgeFeedbackCollectorUrl, {
|
|
28
26
|
method: 'POST',
|
|
29
27
|
headers: {
|
|
30
28
|
'Content-Type': 'application/json'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader.d.ts","sourceRoot":"","sources":["../../src/http-client/file-uploader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-uploader.d.ts","sourceRoot":"","sources":["../../src/http-client/file-uploader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG;AACnD,qBAAa,uBAAwB,SAAQ,KAAK;CAAG;AACrD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAkBD,qBAAa,gBAAiB,YAAW,YAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAE5C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkB1E"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HttpFileUploader = exports.UploadFileEmptyError = exports.UploadFileNotFoundError = exports.CannotUploadFileError = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
6
4
|
const ui_1 = require("../ui");
|
|
5
|
+
const node_request_1 = require("./node-request");
|
|
7
6
|
class CannotUploadFileError extends Error {
|
|
8
7
|
}
|
|
9
8
|
exports.CannotUploadFileError = CannotUploadFileError;
|
|
@@ -35,12 +34,14 @@ class HttpFileUploader {
|
|
|
35
34
|
async uploadFromPath(url, filePath) {
|
|
36
35
|
const fileContents = this.fileSystem.readBinaryFile(filePath);
|
|
37
36
|
const validFileContents = validateFileContents(filePath, fileContents);
|
|
38
|
-
const
|
|
37
|
+
const headers = {
|
|
38
|
+
'Content-Type': 'application/zip',
|
|
39
|
+
'Content-Length': validFileContents.length.toString()
|
|
40
|
+
};
|
|
41
|
+
const response = await (0, node_request_1.sendWithNodeRequest)({
|
|
39
42
|
method: 'PUT',
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
'Content-Length': validFileContents.length.toString()
|
|
43
|
-
},
|
|
43
|
+
url,
|
|
44
|
+
headers,
|
|
44
45
|
body: validFileContents
|
|
45
46
|
});
|
|
46
47
|
await checkResponse(response);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-edge-http-client.d.ts","sourceRoot":"","sources":["../../src/http-client/global-edge-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"global-edge-http-client.d.ts","sourceRoot":"","sources":["../../src/http-client/global-edge-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,GAAG,EAAE,GAAG;CAGrB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,GAAG,EAAE,GAAG;CAGrB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,qBAAa,oBAAqB,YAAW,gBAAgB;IAC/C,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,KAAK;IAEzB,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnD,OAAO,CAAC,QAAQ;CAIjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http-client/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http-client/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
|
package/out/http-client/index.js
CHANGED
|
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./file-uploader"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./global-edge-http-client"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./feedback-post-client"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./node-request"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./trace"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import http from 'http';
|
|
2
|
+
export declare const toHeaders: (rawHeaders: http.IncomingHttpHeaders) => Headers;
|
|
3
|
+
export declare const sendWithNodeRequest: ({ method, url, headers, body, timeoutMs }: {
|
|
4
|
+
method: string;
|
|
5
|
+
url: string;
|
|
6
|
+
headers?: Record<string, string>;
|
|
7
|
+
body?: Buffer | Uint8Array | string;
|
|
8
|
+
timeoutMs?: number;
|
|
9
|
+
}) => Promise<Response>;
|
|
10
|
+
//# sourceMappingURL=node-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-request.d.ts","sourceRoot":"","sources":["../../src/http-client/node-request.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,eAAO,MAAM,SAAS,GAAI,YAAY,IAAI,CAAC,mBAAmB,KAAG,OAYhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,2CAMjC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KAAG,OAAO,CAAC,QAAQ,CAsCnB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendWithNodeRequest = exports.toHeaders = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const http_1 = tslib_1.__importDefault(require("http"));
|
|
6
|
+
const https_1 = tslib_1.__importDefault(require("https"));
|
|
7
|
+
const url_1 = require("url");
|
|
8
|
+
const DEFAULT_HTTP_ERROR_STATUS = 500;
|
|
9
|
+
const DEFAULT_NODE_REQUEST_TIMEOUT_MS = 30_000;
|
|
10
|
+
const NO_BODY_STATUS_CODES = new Set([204, 205, 304]);
|
|
11
|
+
const toHeaders = (rawHeaders) => {
|
|
12
|
+
const headers = new Headers();
|
|
13
|
+
Object.entries(rawHeaders).forEach(([key, value]) => {
|
|
14
|
+
if (Array.isArray(value)) {
|
|
15
|
+
value.forEach((headerValue) => headers.append(key, headerValue));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'string') {
|
|
19
|
+
headers.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return headers;
|
|
23
|
+
};
|
|
24
|
+
exports.toHeaders = toHeaders;
|
|
25
|
+
const sendWithNodeRequest = ({ method, url, headers, body, timeoutMs = DEFAULT_NODE_REQUEST_TIMEOUT_MS }) => {
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
const parsedUrl = new url_1.URL(url);
|
|
28
|
+
const transport = parsedUrl.protocol === 'https:' ? https_1.default : http_1.default;
|
|
29
|
+
const request = transport.request(parsedUrl, {
|
|
30
|
+
method,
|
|
31
|
+
headers
|
|
32
|
+
}, (response) => {
|
|
33
|
+
const chunks = [];
|
|
34
|
+
response.on('data', (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
|
|
35
|
+
response.on('error', reject);
|
|
36
|
+
response.on('end', () => {
|
|
37
|
+
const responseBody = Buffer.concat(chunks).toString('utf8');
|
|
38
|
+
const status = response.statusCode ?? DEFAULT_HTTP_ERROR_STATUS;
|
|
39
|
+
const body = NO_BODY_STATUS_CODES.has(status) ? undefined : responseBody;
|
|
40
|
+
resolve(new Response(body, {
|
|
41
|
+
status,
|
|
42
|
+
statusText: response.statusMessage,
|
|
43
|
+
headers: (0, exports.toHeaders)(response.headers)
|
|
44
|
+
}));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
request.setTimeout(timeoutMs, () => {
|
|
48
|
+
request.destroy(new Error(`Request timed out after ${timeoutMs}ms`));
|
|
49
|
+
});
|
|
50
|
+
request.on('error', reject);
|
|
51
|
+
if (body !== undefined) {
|
|
52
|
+
request.write(body);
|
|
53
|
+
}
|
|
54
|
+
request.end();
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
exports.sendWithNodeRequest = sendWithNodeRequest;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function getAtlassianTraceId(headers:
|
|
1
|
+
type HeadersWithGet = Pick<Headers, 'get'>;
|
|
2
|
+
export declare function getAtlassianTraceId(headers: HeadersWithGet): string | undefined;
|
|
3
|
+
export {};
|
|
3
4
|
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/http-client/trace.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/http-client/trace.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAE3C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAE/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsig-service.d.ts","sourceRoot":"","sources":["../../src/service/statsig-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"statsig-service.d.ts","sourceRoot":"","sources":["../../src/service/statsig-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StatsigService = exports.StatsigReader = void 0;
|
|
4
4
|
exports.cacheStatsigResult = cacheStatsigResult;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
7
5
|
const index_1 = require("../index");
|
|
8
6
|
class StatsigReader {
|
|
9
7
|
async testForgeCliTestGate() {
|
|
@@ -131,7 +129,7 @@ class StatsigService extends StatsigReader {
|
|
|
131
129
|
const baseURL = this.getEnvironmentFn(BASE_FEATURE_FLAG_SERVICE_URL);
|
|
132
130
|
const apiKey = this.getEnvironmentFn(STATSIG_API_KEYS);
|
|
133
131
|
const context = await this.context();
|
|
134
|
-
const response = await (
|
|
132
|
+
const response = await fetch(`${baseURL}/frontend/gates`, {
|
|
135
133
|
headers: {
|
|
136
134
|
'x-api-key': apiKey,
|
|
137
135
|
'Content-Type': 'application/json'
|
|
@@ -163,7 +161,7 @@ class StatsigService extends StatsigReader {
|
|
|
163
161
|
const baseURL = this.getEnvironmentFn(BASE_FEATURE_FLAG_SERVICE_URL);
|
|
164
162
|
const apiKey = this.getEnvironmentFn(STATSIG_API_KEYS);
|
|
165
163
|
const context = await this.context();
|
|
166
|
-
const response = await (
|
|
164
|
+
const response = await fetch(`${baseURL}/configurations`, {
|
|
167
165
|
headers: {
|
|
168
166
|
'x-api-key': apiKey,
|
|
169
167
|
'Content-Type': 'application/json'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/shared/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAK/B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG;IACrF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAKF,MAAM,WAAW,kBAAkB;IACjC,aAAa,IAAI,cAAc,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/shared/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAK/B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG;IACrF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAKF,MAAM,WAAW,kBAAkB;IACjC,aAAa,IAAI,cAAc,CAAC;CACjC;AA8CD,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAW3C;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,GAAG,cAAc,CAOzD;AAED,qBAAa,SAAU,SAAQ,KAAM,YAAW,kBAAkB;IAE9D,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;gBAA9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,MAAM;IAKX,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;CAG7D;AAUD,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,EACd,OAAO,KAAK,EACZ,OAAO,MAAM,GAAG,IAAI,EACpB,wBAAwB,qBAAqB,KAC5C,OAAO,CAAC,KAAK,CAmCf,CAAC;AAOF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAK1C,CAAC;AASF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,KAAK,CAIrG;AAMD,eAAO,MAAM,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,KAIhE,CAAC;AAEF,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,cAAe,SAAQ,SAAS;CAAG;AAEhD,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,qBAAa,uBAAwB,SAAQ,SAAS;CAAG;AAEzD,qBAAa,aAAc,SAAQ,SAAS;IAGxC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAD3B,OAAO,CAAC,EAAE,MAAM,EACC,UAAU,GAAE,OAAe;IAKvC,WAAW;CAGnB;AAUD,qBAAa,wBAAyB,SAAQ,SAAS;gBAMzC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAUD,qBAAa,mBAAoB,SAAQ,SAAS;gBAMpC,OAAO,CAAC,EAAE,MAAM;CAG7B"}
|
|
@@ -11,14 +11,40 @@ const assistant_cli_1 = require("./assistant-cli");
|
|
|
11
11
|
function isErrorWithAnalytics(e) {
|
|
12
12
|
return e.getAttributes !== undefined;
|
|
13
13
|
}
|
|
14
|
+
const NETWORK_CONNECTIVITY_ERROR_CODES = new Set([
|
|
15
|
+
'ENOTFOUND',
|
|
16
|
+
'ECONNRESET',
|
|
17
|
+
'ECONNREFUSED',
|
|
18
|
+
'ECONNABORTED',
|
|
19
|
+
'ENETUNREACH',
|
|
20
|
+
'EHOSTUNREACH',
|
|
21
|
+
'EAI_AGAIN',
|
|
22
|
+
'ETIMEDOUT',
|
|
23
|
+
'UND_ERR_CONNECT_TIMEOUT',
|
|
24
|
+
'UND_ERR_HEADERS_TIMEOUT',
|
|
25
|
+
'UND_ERR_SOCKET'
|
|
26
|
+
]);
|
|
27
|
+
function isLikelyNetworkError(e) {
|
|
28
|
+
if (!(e instanceof Error)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (e instanceof TypeError && e.message === 'fetch failed') {
|
|
32
|
+
const causeCode = e.cause && typeof e.cause === 'object' && typeof e.cause.code === 'string'
|
|
33
|
+
? e.cause.code
|
|
34
|
+
: undefined;
|
|
35
|
+
return causeCode ? NETWORK_CONNECTIVITY_ERROR_CODES.has(causeCode) : false;
|
|
36
|
+
}
|
|
37
|
+
if (e.constructor?.name === 'FetchError' && e.type === 'system') {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
14
42
|
function isUserError(e) {
|
|
15
43
|
if (isErrorWithAnalytics(e)) {
|
|
16
44
|
return e.getAttributes().isUserError ?? false;
|
|
17
45
|
}
|
|
18
|
-
if (e
|
|
19
|
-
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
46
|
+
if (isLikelyNetworkError(e)) {
|
|
47
|
+
return true;
|
|
22
48
|
}
|
|
23
49
|
return false;
|
|
24
50
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/cli-shared",
|
|
3
|
-
"version": "9.3.1-next.2",
|
|
3
|
+
"version": "9.3.1-next.2-experimental-9595c20",
|
|
4
4
|
"description": "Common functionality for Forge CLI",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"generate-graphql-types": "graphql-codegen --config src/graphql/codegen.yml"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@forge/manifest": "13.3.1-next.0",
|
|
15
|
+
"@forge/manifest": "13.3.1-next.0-experimental-9595c20",
|
|
16
16
|
"@forge/util": "3.0.0",
|
|
17
17
|
"@forge/i18n": "1.0.0",
|
|
18
18
|
"@sentry/node": "7.106.0",
|
|
@@ -39,7 +39,6 @@
|
|
|
39
39
|
"inquirer-autocomplete-prompt": "^2.0.1",
|
|
40
40
|
"io-ts": "^2.2.22",
|
|
41
41
|
"keytar": "^7.9.0",
|
|
42
|
-
"node-fetch": "2.7.0",
|
|
43
42
|
"ora": "^5.4.1",
|
|
44
43
|
"recursive-readdir": "^2.2.3",
|
|
45
44
|
"semver": "^7.6.0",
|
|
@@ -66,7 +65,6 @@
|
|
|
66
65
|
"@types/inquirer-autocomplete-prompt": "^1.3.5",
|
|
67
66
|
"@types/jest": "^29.5.14",
|
|
68
67
|
"@types/node": "20.19.1",
|
|
69
|
-
"@types/node-fetch": "^2.6.12",
|
|
70
68
|
"@types/recursive-readdir": "^2.2.4",
|
|
71
69
|
"@types/tmp": "^0.2.6",
|
|
72
70
|
"jest-matcher-specific-error": "^1.0.0",
|