@forge/bridge 2.6.0-next.0 → 2.6.0-next.1
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 +6 -0
- package/out/fetch/fetch.d.ts.map +1 -1
- package/out/fetch/fetch.js +7 -11
- package/out/types.d.ts +5 -1
- package/out/types.d.ts.map +1 -1
- package/out/utils/blobParser.d.ts +3 -0
- package/out/utils/blobParser.d.ts.map +1 -0
- package/out/utils/blobParser.js +28 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/out/fetch/fetch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/fetch/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/fetch/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqD1C,eAAO,MAAM,eAAe,eAAgB,WAAW,oBAAoB,CAAC;kCAyB1C,MAAM,iBAAiB,WAAW,KAAG,QAAQ,QAAQ,CAAC;4BAG5D,MAAM,iBAAiB,WAAW,KAAG,QAAQ,QAAQ,CAAC;CAGjF,CAAC"}
|
package/out/fetch/fetch.js
CHANGED
|
@@ -2,19 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.productFetchApi = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
6
|
-
const reader = new FileReader();
|
|
7
|
-
reader.readAsDataURL(file);
|
|
8
|
-
reader.onload = () => resolve(reader.result);
|
|
9
|
-
reader.onerror = (error) => reject(error);
|
|
10
|
-
});
|
|
5
|
+
const blobParser_1 = require("../utils/blobParser");
|
|
11
6
|
const parseFormData = (form) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
7
|
const parsed = {};
|
|
13
8
|
for (const [key, value] of form.entries()) {
|
|
14
9
|
if (key === 'file') {
|
|
15
10
|
const fileName = value.name;
|
|
16
11
|
const fileType = value.type;
|
|
17
|
-
parsed['file'] = yield
|
|
12
|
+
parsed['file'] = yield (0, blobParser_1.blobToBase64)(value);
|
|
18
13
|
parsed['__fileName'] = fileName;
|
|
19
14
|
parsed['__fileType'] = fileType;
|
|
20
15
|
}
|
|
@@ -24,7 +19,7 @@ const parseFormData = (form) => tslib_1.__awaiter(void 0, void 0, void 0, functi
|
|
|
24
19
|
}
|
|
25
20
|
return JSON.stringify(parsed);
|
|
26
21
|
});
|
|
27
|
-
const
|
|
22
|
+
const parseRequest = (init) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
28
23
|
const isFormData = (init === null || init === void 0 ? void 0 : init.body) instanceof FormData ? true : false;
|
|
29
24
|
const requestBody = isFormData ? yield parseFormData(init === null || init === void 0 ? void 0 : init.body) : init === null || init === void 0 ? void 0 : init.body;
|
|
30
25
|
const req = new Request('', { body: requestBody, method: init === null || init === void 0 ? void 0 : init.method, headers: init === null || init === void 0 ? void 0 : init.headers });
|
|
@@ -38,7 +33,7 @@ const parseBodyAndHeaders = (init) => tslib_1.__awaiter(void 0, void 0, void 0,
|
|
|
38
33
|
});
|
|
39
34
|
const productFetchApi = (callBridge) => {
|
|
40
35
|
const fetch = (product, restPath, init) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
-
const { body: requestBody, headers: requestHeaders, isMultipartFormData } = yield
|
|
36
|
+
const { body: requestBody, headers: requestHeaders, isMultipartFormData } = yield parseRequest(init);
|
|
42
37
|
if (!requestHeaders.has('X-Atlassian-Token')) {
|
|
43
38
|
requestHeaders.set('X-Atlassian-Token', 'no-check');
|
|
44
39
|
}
|
|
@@ -48,8 +43,9 @@ const productFetchApi = (callBridge) => {
|
|
|
48
43
|
fetchRequestInit: Object.assign(Object.assign({}, init), { body: requestBody, headers: [...requestHeaders.entries()] }),
|
|
49
44
|
isMultipartFormData
|
|
50
45
|
};
|
|
51
|
-
const { body, headers, statusText, status } = yield callBridge('fetchProduct', fetchPayload);
|
|
52
|
-
|
|
46
|
+
const { body, headers, statusText, status, isAttachment } = yield callBridge('fetchProduct', fetchPayload);
|
|
47
|
+
const responseBody = isAttachment ? (0, blobParser_1.base64ToBlob)(body, headers['content-type']) : body;
|
|
48
|
+
return new Response(responseBody || null, { headers, status, statusText });
|
|
53
49
|
});
|
|
54
50
|
return {
|
|
55
51
|
requestConfluence: (restPath, fetchOptions) => fetch('confluence', restPath, fetchOptions),
|
package/out/types.d.ts
CHANGED
|
@@ -4,7 +4,11 @@ export declare type InvokePayload = {
|
|
|
4
4
|
export declare type InvokeResponse = Record<string, any> | void;
|
|
5
5
|
export declare type ProductFetchResponse = {
|
|
6
6
|
body?: string;
|
|
7
|
-
|
|
7
|
+
headers: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
isAttachment?: boolean;
|
|
11
|
+
} & Pick<ResponseInit, 'status' | 'statusText'>;
|
|
8
12
|
export interface FullContext {
|
|
9
13
|
accountId?: string;
|
|
10
14
|
cloudId?: string;
|
package/out/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,GAAG;KACzB,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG;CAC9B,CAAC;AAEF,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AAExD,oBAAY,oBAAoB,GAAG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,GAAG;KACzB,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG;CAC9B,CAAC;AAEF,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AAExD,oBAAY,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,UAAU,aAAa;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oBAAY,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobParser.d.ts","sourceRoot":"","sources":["../../src/utils/blobParser.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,cAAe,MAAM,GAAG,SAAS,YAAY,MAAM,KAAG,IAAI,GAAG,IAgBrF,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,IAAI,KAAG,QAAQ,MAAM,CAUvD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.blobToBase64 = exports.base64ToBlob = void 0;
|
|
4
|
+
const base64ToBlob = (b64string, mimeType) => {
|
|
5
|
+
if (!b64string) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const base64Data = b64string.includes(';base64') ? b64string.split(',')[1] : b64string;
|
|
9
|
+
const byteCharacters = atob(base64Data);
|
|
10
|
+
const byteNumbers = new Array(byteCharacters.length);
|
|
11
|
+
for (let i = 0; i < byteCharacters.length; i++) {
|
|
12
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
13
|
+
}
|
|
14
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
15
|
+
return new Blob([byteArray], { type: mimeType });
|
|
16
|
+
};
|
|
17
|
+
exports.base64ToBlob = base64ToBlob;
|
|
18
|
+
const blobToBase64 = (blob) => {
|
|
19
|
+
return new Promise((resolve, reject) => {
|
|
20
|
+
const reader = new FileReader();
|
|
21
|
+
reader.onloadend = () => {
|
|
22
|
+
resolve(reader.result);
|
|
23
|
+
};
|
|
24
|
+
reader.onerror = reject;
|
|
25
|
+
reader.readAsDataURL(blob);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
exports.blobToBase64 = blobToBase64;
|