Skip to content

Commit 4993bf6

Browse files
vonernueEdamAme-x
andauthored
testing: fix obs/uploadObjTalk and fix CI (#89)
* fix(obs/uploadObjTalk): fix request headers and parameters for uploadObjTalk * fix: ci type error * fix: ci type error * Update mod.ts --------- Co-authored-by: EdamAmex <121654029+EdamAme-x@users.noreply.github.com>
1 parent bfe7087 commit 4993bf6

3 files changed

Lines changed: 16 additions & 6 deletions

File tree

packages/linejs/base/e2ee/mod.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,11 @@ export class E2EE {
10501050
nonce: Buffer,
10511051
data: Buffer,
10521052
): Promise<Buffer> {
1053+
// Convert ArrayBufferLike to ArrayBuffer
1054+
const nonceArrayBuffer = nonce.buffer.slice(nonce.byteOffset, nonce.byteOffset + nonce.byteLength);
1055+
const aesKeyArrayBuffer = aesKey.buffer.slice(aesKey.byteOffset, aesKey.byteOffset + aesKey.byteLength);
1056+
const dataArrayBuffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
1057+
10531058
return Buffer.from(
10541059
await globalThis.crypto.subtle.encrypt(
10551060
{
@@ -1058,15 +1063,14 @@ export class E2EE {
10581063
counter: nonce,
10591064
length: 32,
10601065
},
1061-
// @ts-expect-error: will fix cuz typescript version change
10621066
await globalThis.crypto.subtle.importKey(
10631067
"raw",
1064-
aesKey,
1068+
new Uint8Array(aesKeyArrayBuffer as ArrayBuffer),
10651069
"AES-CTR",
10661070
false,
10671071
["encrypt"],
10681072
),
1069-
data,
1073+
new Uint8Array(dataArrayBuffer as ArrayBuffer),
10701074
),
10711075
);
10721076
}

packages/linejs/base/obs/mod.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ export class LineObs {
203203
return await this.uploadObjectForService({
204204
data,
205205
oType: type,
206-
obsPath: toType + "/m/" + (oid || "reqseq"),
206+
obsPath: `${toType}/m/${oid ?? "reqseq"}`,
207207
filename: param.name,
208208
params: param,
209209
});
@@ -243,13 +243,13 @@ export class LineObs {
243243
};
244244

245245
params = { ...baseParams, ...(params || {}) };
246-
246+
247247
if (!data || data.size === 0) {
248248
throw new InternalError("ObsError", "No data to send.");
249249
}
250250
let headers: Record<string, string> = this.client.request
251251
.getHeader("POST");
252-
headers["Content-Type"] = "application/octet-stream";
252+
headers["content-type"] = "application/octet-stream";
253253
headers["X-Obs-Params"] = Buffer.from(JSON.stringify(params)).toString(
254254
"base64",
255255
);
@@ -420,6 +420,11 @@ export class LineObs {
420420
obsPath: "talk/" + contentMetadata.SID,
421421
addHeaders: { "X-Talk-Meta": talkMeta },
422422
});
423+
const decryptedBuffer = await this.client.e2ee.decryptByKeyMaterial(
424+
Buffer.from(await data.arrayBuffer()),
425+
keyMaterial,
426+
);
427+
const decryptedArrayBuffer = decryptedBuffer.buffer.slice(decryptedBuffer.byteOffset, decryptedBuffer.byteOffset + decryptedBuffer.byteLength);
423428
const fileData = new File([
424429
// @ts-expect-error: will fix cuz typescript version change
425430
await this.client.e2ee.decryptByKeyMaterial(

packages/linejs/base/request/mod.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ export class RequestClient {
143143
body: Trequest,
144144
});
145145

146+
const requestArrayBuffer = Trequest.buffer.slice(Trequest.byteOffset, Trequest.byteOffset + Trequest.byteLength);
146147
const response = await this.client.fetch(
147148
`https://${this.endpoint}${path}`,
148149
{

0 commit comments

Comments
 (0)