wechaty-puppet-matrix 0.0.54 → 0.0.55

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.
Files changed (57) hide show
  1. package/dist/cjs/src/matrix/messages/message-image.d.ts +8 -0
  2. package/dist/cjs/src/matrix/messages/message-image.d.ts.map +1 -1
  3. package/dist/cjs/src/matrix/messages/message-image.js +38 -2
  4. package/dist/cjs/src/matrix/messages/message-image.spec.d.ts +3 -0
  5. package/dist/cjs/src/matrix/messages/message-image.spec.d.ts.map +1 -0
  6. package/dist/cjs/src/matrix/messages/message-image.spec.js +66 -0
  7. package/dist/cjs/src/matrix/messages/message-video.d.ts +6 -0
  8. package/dist/cjs/src/matrix/messages/message-video.d.ts.map +1 -1
  9. package/dist/cjs/src/matrix/messages/message-video.js +20 -0
  10. package/dist/cjs/src/matrix/messages/message-video.spec.d.ts +3 -0
  11. package/dist/cjs/src/matrix/messages/message-video.spec.d.ts.map +1 -0
  12. package/dist/cjs/src/matrix/messages/message-video.spec.js +27 -0
  13. package/dist/cjs/src/matrix/service/request.d.ts +9 -0
  14. package/dist/cjs/src/matrix/service/request.d.ts.map +1 -1
  15. package/dist/cjs/src/matrix/service/request.js +56 -32
  16. package/dist/cjs/src/matrix/utils/file-type.d.ts +4 -0
  17. package/dist/cjs/src/matrix/utils/file-type.d.ts.map +1 -0
  18. package/dist/cjs/src/matrix/utils/file-type.js +55 -0
  19. package/dist/cjs/src/matrix/utils/file-type.spec.d.ts +3 -0
  20. package/dist/cjs/src/matrix/utils/file-type.spec.d.ts.map +1 -0
  21. package/dist/cjs/src/matrix/utils/file-type.spec.js +25 -0
  22. package/dist/cjs/src/puppet-matrix.d.ts +1 -0
  23. package/dist/cjs/src/puppet-matrix.d.ts.map +1 -1
  24. package/dist/cjs/src/puppet-matrix.js +16 -1
  25. package/dist/esm/src/matrix/messages/message-image.d.ts +8 -0
  26. package/dist/esm/src/matrix/messages/message-image.d.ts.map +1 -1
  27. package/dist/esm/src/matrix/messages/message-image.js +37 -2
  28. package/dist/esm/src/matrix/messages/message-image.spec.d.ts +3 -0
  29. package/dist/esm/src/matrix/messages/message-image.spec.d.ts.map +1 -0
  30. package/dist/esm/src/matrix/messages/message-image.spec.js +64 -0
  31. package/dist/esm/src/matrix/messages/message-video.d.ts +6 -0
  32. package/dist/esm/src/matrix/messages/message-video.d.ts.map +1 -1
  33. package/dist/esm/src/matrix/messages/message-video.js +19 -0
  34. package/dist/esm/src/matrix/messages/message-video.spec.d.ts +3 -0
  35. package/dist/esm/src/matrix/messages/message-video.spec.d.ts.map +1 -0
  36. package/dist/esm/src/matrix/messages/message-video.spec.js +25 -0
  37. package/dist/esm/src/matrix/service/request.d.ts +9 -0
  38. package/dist/esm/src/matrix/service/request.d.ts.map +1 -1
  39. package/dist/esm/src/matrix/service/request.js +55 -32
  40. package/dist/esm/src/matrix/utils/file-type.d.ts +4 -0
  41. package/dist/esm/src/matrix/utils/file-type.d.ts.map +1 -0
  42. package/dist/esm/src/matrix/utils/file-type.js +47 -0
  43. package/dist/esm/src/matrix/utils/file-type.spec.d.ts +3 -0
  44. package/dist/esm/src/matrix/utils/file-type.spec.d.ts.map +1 -0
  45. package/dist/esm/src/matrix/utils/file-type.spec.js +23 -0
  46. package/dist/esm/src/puppet-matrix.d.ts +1 -0
  47. package/dist/esm/src/puppet-matrix.d.ts.map +1 -1
  48. package/dist/esm/src/puppet-matrix.js +16 -1
  49. package/package.json +1 -1
  50. package/src/matrix/messages/message-image.spec.ts +107 -0
  51. package/src/matrix/messages/message-image.ts +63 -2
  52. package/src/matrix/messages/message-video.spec.ts +37 -0
  53. package/src/matrix/messages/message-video.ts +28 -1
  54. package/src/matrix/service/request.ts +85 -32
  55. package/src/matrix/utils/file-type.spec.ts +29 -0
  56. package/src/matrix/utils/file-type.ts +59 -0
  57. package/src/puppet-matrix.ts +20 -1
@@ -1 +1 @@
1
- {"version":3,"file":"puppet-matrix.d.ts","sourceRoot":"","sources":["../../../src/puppet-matrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puppet-matrix.d.ts","sourceRoot":"","sources":["../../../src/puppet-matrix.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ const types_js_1 = require("./matrix/types.js");
44
44
  const request_js_1 = __importDefault(require("./matrix/service/request.js"));
45
45
  const date_fns_1 = require("date-fns");
46
46
  const index_js_1 = require("./matrix/utils/index.js");
47
+ const file_type_js_1 = require("./matrix/utils/file-type.js");
47
48
  const path_1 = __importDefault(require("path"));
48
49
  const cache_manager_js_1 = require("./matrix/cache-manager.js");
49
50
  const is_type_js_1 = require("./matrix/utils/is-type.js");
@@ -1496,7 +1497,21 @@ class PuppetMatrix extends PUPPET.Puppet {
1496
1497
  wechaty_puppet_1.log.error(`Can not get file for message: ${messageId}`);
1497
1498
  }
1498
1499
  const url = imageInfo.is_ww ? await this._client?.downloadWWMedia(imageInfo, 1) : await this._client?.downloadImage(imageInfo);
1499
- return this._fileBoxFromUrl(url, messageId);
1500
+ return this._fileBoxFromUrl(url, messageId, url ? await this._imageNameByHead(url) : undefined);
1501
+ }
1502
+ async _imageNameByHead(url) {
1503
+ const head = await (0, file_type_js_1.fetchRemoteHead)(url);
1504
+ const ext = head && (0, file_type_js_1.detectImageExt)(head);
1505
+ if (!ext) {
1506
+ return undefined;
1507
+ }
1508
+ let rawName = 'image';
1509
+ try {
1510
+ rawName = decodeURIComponent(new URL(url).pathname.split('/').pop() || rawName);
1511
+ }
1512
+ catch {
1513
+ }
1514
+ return (0, file_type_js_1.replaceExt)(rawName, ext);
1500
1515
  }
1501
1516
  async _getMessageAudioFileBox(messageId, messagePayload) {
1502
1517
  const audioInfo = await (0, message_audio_js_1.parseAudioMessagePayload)(messagePayload);
@@ -18,6 +18,8 @@ export interface ImageXmlSchema {
18
18
  length: string;
19
19
  cdnbigimgurl: string;
20
20
  hdlength: string;
21
+ hevc_mid_size?: string;
22
+ cdnmidimgurl_size?: string;
21
23
  md5: string;
22
24
  tpurl?: string;
23
25
  tpauthkey?: string;
@@ -25,6 +27,10 @@ export interface ImageXmlSchema {
25
27
  };
26
28
  };
27
29
  }
30
+ export interface ImageFileCandidate {
31
+ file_id: string;
32
+ file_size: string;
33
+ }
28
34
  export interface ImageMessagePayload {
29
35
  aes_key: string;
30
36
  auth_key: string;
@@ -32,6 +38,8 @@ export interface ImageMessagePayload {
32
38
  file_size: string;
33
39
  file_name: string;
34
40
  is_ww: boolean;
41
+ candidates?: ImageFileCandidate[];
35
42
  }
36
43
  export declare function parseImageMessagePayload(rawPayload: MessagePayload): Promise<ImageMessagePayload>;
44
+ export declare function buildImageCandidates(schema: ImageXmlSchema['msg']['img']['$']): ImageFileCandidate[];
37
45
  //# sourceMappingURL=message-image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-image.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvD,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE;QACD,GAAG,EAAE;YACD,CAAC,EAAE;gBACC,MAAM,EAAE,MAAM,CAAA;gBACd,QAAQ,EAAE,MAAM,CAAA;gBAChB,cAAc,EAAE,MAAM,CAAA;gBACtB,WAAW,EAAE,MAAM,CAAA;gBACnB,cAAc,EAAE,MAAM,CAAA;gBACtB,cAAc,EAAE,MAAM,CAAA;gBACtB,aAAa,EAAE,MAAM,CAAA;gBACrB,YAAY,EAAE,MAAM,CAAA;gBACpB,WAAW,EAAE,MAAM,CAAA;gBACnB,WAAW,EAAE,MAAM,CAAA;gBACnB,UAAU,EAAE,MAAM,CAAA;gBAClB,YAAY,EAAE,MAAM,CAAA;gBACpB,MAAM,EAAE,MAAM,CAAA;gBACd,YAAY,EAAE,MAAM,CAAA;gBACpB,QAAQ,EAAE,MAAM,CAAA;gBAChB,GAAG,EAAE,MAAM,CAAA;gBACX,KAAK,CAAC,EAAE,MAAM,CAAA;gBACd,SAAS,CAAC,EAAE,MAAM,CAAA;aACrB,CAAA;SACJ,CAAA;KACJ,CAAA;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,wBAAwB,CAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAYxG"}
1
+ {"version":3,"file":"message-image.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvD,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE;QACD,GAAG,EAAE;YACD,CAAC,EAAE;gBACC,MAAM,EAAE,MAAM,CAAA;gBACd,QAAQ,EAAE,MAAM,CAAA;gBAChB,cAAc,EAAE,MAAM,CAAA;gBACtB,WAAW,EAAE,MAAM,CAAA;gBACnB,cAAc,EAAE,MAAM,CAAA;gBACtB,cAAc,EAAE,MAAM,CAAA;gBACtB,aAAa,EAAE,MAAM,CAAA;gBACrB,YAAY,EAAE,MAAM,CAAA;gBACpB,WAAW,EAAE,MAAM,CAAA;gBACnB,WAAW,EAAE,MAAM,CAAA;gBACnB,UAAU,EAAE,MAAM,CAAA;gBAClB,YAAY,EAAE,MAAM,CAAA;gBACpB,MAAM,EAAE,MAAM,CAAA;gBACd,YAAY,EAAE,MAAM,CAAA;gBACpB,QAAQ,EAAE,MAAM,CAAA;gBAEhB,aAAa,CAAC,EAAE,MAAM,CAAA;gBACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;gBAC1B,GAAG,EAAE,MAAM,CAAA;gBACX,KAAK,CAAC,EAAE,MAAM,CAAA;gBACd,SAAS,CAAC,EAAE,MAAM,CAAA;aACrB,CAAA;SACJ,CAAA;KACJ,CAAA;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IAKf,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED,wBAAsB,wBAAwB,CAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgBxG;AAYD,wBAAgB,oBAAoB,CAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,kBAAkB,EAAE,CAgCrG"}
@@ -2,12 +2,47 @@ import { xmlToJson } from '../utils/xml-to-json.js';
2
2
  export async function parseImageMessagePayload(rawPayload) {
3
3
  const imageXml = await xmlToJson(rawPayload.msg);
4
4
  const schema = imageXml.msg.img.$;
5
+ const candidates = buildImageCandidates(schema);
6
+ const primary = candidates[0] || { file_id: schema.cdnmidimgurl || schema.tpurl || '', file_size: schema.length };
5
7
  return {
6
8
  is_ww: !!schema.tpurl,
7
9
  aes_key: schema.aeskey,
8
10
  auth_key: schema.tpauthkey || '',
9
- file_id: schema.cdnmidimgurl || schema.tpurl || '',
10
- file_size: schema.length,
11
+ file_id: primary.file_id,
12
+ file_size: primary.file_size,
11
13
  file_name: '',
14
+ candidates: candidates.length ? candidates : [primary],
12
15
  };
13
16
  }
17
+ const isPositiveSize = (size) => !!size && Number(size) > 0;
18
+ export function buildImageCandidates(schema) {
19
+ if (schema.tpurl) {
20
+ return [{ file_id: schema.cdnmidimgurl || schema.tpurl, file_size: schema.length }];
21
+ }
22
+ const midUrl = schema.cdnmidimgurl;
23
+ const bigUrl = schema.cdnbigimgurl;
24
+ const list = [
25
+ [midUrl, schema.cdnmidimgurl_size],
26
+ [midUrl, schema.hevc_mid_size],
27
+ ];
28
+ if (isPositiveSize(schema.hdlength)) {
29
+ list.push([midUrl, schema.length], [bigUrl, schema.hdlength]);
30
+ }
31
+ else {
32
+ list.push([bigUrl, schema.length], [midUrl, schema.length]);
33
+ }
34
+ const seen = new Set();
35
+ const candidates = [];
36
+ for (const [fileId, fileSize] of list) {
37
+ if (!fileId || !isPositiveSize(fileSize)) {
38
+ continue;
39
+ }
40
+ const key = `${fileId}|${fileSize}`;
41
+ if (seen.has(key)) {
42
+ continue;
43
+ }
44
+ seen.add(key);
45
+ candidates.push({ file_id: fileId, file_size: fileSize });
46
+ }
47
+ return candidates;
48
+ }
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ export {};
3
+ //# sourceMappingURL=message-image.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-image.spec.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-image.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ import { test } from 'tstest';
3
+ import { parseImageMessagePayload } from './message-image.js';
4
+ const buildPayload = (imgAttrs) => ({
5
+ msg: `<?xml version="1.0"?>\n<msg>\n\t<img ${imgAttrs}>\n\t</img>\n</msg>\n`,
6
+ });
7
+ test('parseImageMessagePayload uses hevc_mid_size when downloading mid image', async (t) => {
8
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" length="157626" md5="md5" hevc_mid_size="53274"'));
9
+ t.equal(payload.file_id, 'mid-url', 'should use mid image url');
10
+ t.equal(payload.file_size, '53274', 'size should match the mid image, not the origin length');
11
+ t.equal(payload.is_ww, false, 'should not be ww image');
12
+ });
13
+ test('parseImageMessagePayload prefers cdnmidimgurl_size', async (t) => {
14
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" length="157626" hevc_mid_size="53274" cdnmidimgurl_size="60000"'));
15
+ t.equal(payload.file_size, '60000', 'cdnmidimgurl_size should win');
16
+ });
17
+ test('parseImageMessagePayload falls back to length for legacy xml', async (t) => {
18
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" length="12345" hevc_mid_size="0"'));
19
+ t.equal(payload.file_size, '12345', 'length should be used when no mid size is available');
20
+ });
21
+ test('parseImageMessagePayload falls back to length when mid size attrs are absent', async (t) => {
22
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" length="12345" md5="md5"'));
23
+ t.equal(payload.file_size, '12345', 'length should be used when hevc_mid_size is missing');
24
+ });
25
+ test('parseImageMessagePayload uses big image url when mid size is missing', async (t) => {
26
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" cdnbigimgurl="big-url" length="157626"'));
27
+ t.equal(payload.file_id, 'big-url', 'should switch to origin image url');
28
+ t.equal(payload.file_size, '157626', 'size should be origin length');
29
+ });
30
+ test('parseImageMessagePayload keeps mid url for legacy xml with hdlength', async (t) => {
31
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" cdnbigimgurl="big-url" length="12345" hdlength="99999"'));
32
+ t.equal(payload.file_id, 'mid-url', 'legacy xml should still use mid url');
33
+ t.equal(payload.file_size, '12345', 'legacy length is mid image size');
34
+ });
35
+ test('parseImageMessagePayload keeps length for ww image', async (t) => {
36
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" tpurl="tp-url" tpauthkey="auth" length="888" hevc_mid_size="111"'));
37
+ t.equal(payload.is_ww, true, 'should be ww image');
38
+ t.equal(payload.file_id, 'tp-url', 'should use tpurl');
39
+ t.equal(payload.file_size, '888', 'ww image should keep length');
40
+ });
41
+ test('parseImageMessagePayload builds fallback candidates for new xml', async (t) => {
42
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" cdnbigimgurl="big-url" length="157626" hevc_mid_size="53274"'));
43
+ t.same(payload.candidates, [
44
+ { file_id: 'mid-url', file_size: '53274' },
45
+ { file_id: 'big-url', file_size: '157626' },
46
+ { file_id: 'mid-url', file_size: '157626' },
47
+ ], 'should try mid size first, then origin, then legacy combination');
48
+ t.equal(payload.file_id, payload.candidates?.[0]?.file_id, 'file_id should be first candidate');
49
+ t.equal(payload.file_size, payload.candidates?.[0]?.file_size, 'file_size should be first candidate');
50
+ });
51
+ test('parseImageMessagePayload builds fallback candidates for legacy xml', async (t) => {
52
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" cdnbigimgurl="big-url" length="12345" hdlength="99999"'));
53
+ t.same(payload.candidates, [
54
+ { file_id: 'mid-url', file_size: '12345' },
55
+ { file_id: 'big-url', file_size: '99999' },
56
+ ], 'legacy xml should try mid + length, then big + hdlength');
57
+ });
58
+ test('parseImageMessagePayload dedupes candidates', async (t) => {
59
+ const payload = await parseImageMessagePayload(buildPayload('aeskey="key" cdnmidimgurl="mid-url" length="157626" hevc_mid_size="53274" cdnmidimgurl_size="53274"'));
60
+ t.same(payload.candidates, [
61
+ { file_id: 'mid-url', file_size: '53274' },
62
+ { file_id: 'mid-url', file_size: '157626' },
63
+ ], 'same url + size should only appear once');
64
+ });
@@ -48,6 +48,12 @@ export interface VideoMessagePayload {
48
48
  thumb_width: string;
49
49
  thumb_height: string;
50
50
  file_name: '';
51
+ candidates?: Array<{
52
+ file_id: string;
53
+ file_size: string;
54
+ aes_key?: string;
55
+ }>;
51
56
  }
52
57
  export declare function parseVideoMessagePayload(rawPayload: MessagePayload): Promise<VideoMessagePayload>;
58
+ export declare function buildVideoCandidates(schema: VideoXmlSchema['msg']['videomsg']['$']): VideoMessagePayload['candidates'];
53
59
  //# sourceMappingURL=message-video.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-video.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QACD,QAAQ,EAAE;YACN,CAAC,EAAE;gBACC,MAAM,EAAE,MAAM,CAAA;gBACd,WAAW,EAAE,MAAM,CAAA;gBACnB,cAAc,EAAE,MAAM,CAAA;gBACtB,WAAW,EAAE,MAAM,CAAA;gBACnB,MAAM,EAAE,MAAM,CAAA;gBACd,UAAU,EAAE,MAAM,CAAA;gBAClB,cAAc,EAAE,MAAM,CAAA;gBACtB,aAAa,EAAE,MAAM,CAAA;gBACrB,cAAc,EAAE,MAAM,CAAA;gBACtB,YAAY,EAAE,MAAM,CAAA;gBACpB,GAAG,EAAE,MAAM,CAAA;gBACX,MAAM,EAAE,MAAM,CAAA;gBACd,aAAa,EAAE,MAAM,CAAA;gBACrB,MAAM,EAAE,MAAM,CAAA;gBACd,SAAS,EAAE,MAAM,CAAA;gBACjB,cAAc,EAAE,MAAM,CAAA;gBACtB,iBAAiB,EAAE,MAAM,CAAA;gBACzB,iBAAiB,EAAE,MAAM,CAAA;gBACzB,eAAe,EAAE,MAAM,CAAA;gBACvB,IAAI,EAAE,MAAM,CAAA;gBACZ,UAAU,CAAC,EAAE,MAAM,CAAA;gBACnB,SAAS,CAAC,EAAE,MAAM,CAAA;gBAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;gBACjB,aAAa,CAAC,EAAE,MAAM,CAAA;gBACtB,YAAY,CAAC,EAAE,MAAM,CAAA;gBACrB,aAAa,CAAC,EAAE,MAAM,CAAA;gBACtB,aAAa,CAAC,EAAE,MAAM,CAAA;aACzB,CAAA;SACJ,CAAA;KACJ,CAAA;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,EAAE,CAAA;CACd;AAED,wBAAsB,wBAAwB,CAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkBxG"}
1
+ {"version":3,"file":"message-video.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGvD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QACD,QAAQ,EAAE;YACN,CAAC,EAAE;gBACC,MAAM,EAAE,MAAM,CAAA;gBACd,WAAW,EAAE,MAAM,CAAA;gBACnB,cAAc,EAAE,MAAM,CAAA;gBACtB,WAAW,EAAE,MAAM,CAAA;gBACnB,MAAM,EAAE,MAAM,CAAA;gBACd,UAAU,EAAE,MAAM,CAAA;gBAClB,cAAc,EAAE,MAAM,CAAA;gBACtB,aAAa,EAAE,MAAM,CAAA;gBACrB,cAAc,EAAE,MAAM,CAAA;gBACtB,YAAY,EAAE,MAAM,CAAA;gBACpB,GAAG,EAAE,MAAM,CAAA;gBACX,MAAM,EAAE,MAAM,CAAA;gBACd,aAAa,EAAE,MAAM,CAAA;gBACrB,MAAM,EAAE,MAAM,CAAA;gBACd,SAAS,EAAE,MAAM,CAAA;gBACjB,cAAc,EAAE,MAAM,CAAA;gBACtB,iBAAiB,EAAE,MAAM,CAAA;gBACzB,iBAAiB,EAAE,MAAM,CAAA;gBACzB,eAAe,EAAE,MAAM,CAAA;gBACvB,IAAI,EAAE,MAAM,CAAA;gBACZ,UAAU,CAAC,EAAE,MAAM,CAAA;gBACnB,SAAS,CAAC,EAAE,MAAM,CAAA;gBAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;gBACjB,aAAa,CAAC,EAAE,MAAM,CAAA;gBACtB,YAAY,CAAC,EAAE,MAAM,CAAA;gBACrB,aAAa,CAAC,EAAE,MAAM,CAAA;gBACtB,aAAa,CAAC,EAAE,MAAM,CAAA;aACzB,CAAA;SACJ,CAAA;KACJ,CAAA;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,EAAE,CAAC;IAMd,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E;AAID,wBAAsB,wBAAwB,CAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmBxG;AAED,wBAAgB,oBAAoB,CAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAgBvH"}
@@ -1,4 +1,5 @@
1
1
  import { xmlToJson } from '../utils/xml-to-json.js';
2
+ const isPositiveSize = (size) => !!size && Number(size) > 0;
2
3
  export async function parseVideoMessagePayload(rawPayload) {
3
4
  const videoXml = await xmlToJson(rawPayload.msg);
4
5
  const videoSchema = videoXml.msg.videomsg.$;
@@ -15,5 +16,23 @@ export async function parseVideoMessagePayload(rawPayload) {
15
16
  thumb_width: videoSchema.cdnthumbwidth || videoSchema.tpthumbwidth || '',
16
17
  thumb_height: videoSchema.cdnthumbheight || videoSchema.tpthumbheight || '',
17
18
  file_name: '',
19
+ candidates: buildVideoCandidates(videoSchema),
18
20
  };
19
21
  }
22
+ export function buildVideoCandidates(schema) {
23
+ if (schema.tpvideourl) {
24
+ return undefined;
25
+ }
26
+ const candidates = [];
27
+ if (schema.cdnvideourl && isPositiveSize(schema.length)) {
28
+ candidates.push({ file_id: schema.cdnvideourl, file_size: schema.length });
29
+ }
30
+ if (schema.cdnrawvideourl && isPositiveSize(schema.rawlength)) {
31
+ candidates.push({
32
+ file_id: schema.cdnrawvideourl,
33
+ file_size: schema.rawlength,
34
+ aes_key: schema.cdnrawvideoaeskey || schema.aeskey,
35
+ });
36
+ }
37
+ return candidates.length ? candidates : undefined;
38
+ }
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ export {};
3
+ //# sourceMappingURL=message-video.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-video.spec.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/messages/message-video.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ import { test } from 'tstest';
3
+ import { parseVideoMessagePayload } from './message-video.js';
4
+ import { parseSizeMismatch } from '../service/request.js';
5
+ const buildPayload = (attrs) => ({
6
+ msg: `<?xml version="1.0"?>\n<msg>\n\t<videomsg ${attrs} />\n</msg>\n`,
7
+ });
8
+ test('parseVideoMessagePayload adds raw video as fallback candidate', async (t) => {
9
+ const payload = await parseVideoMessagePayload(buildPayload('aeskey="key" cdnvideourl="video-url" length="766838" playlength="5" rawlength="769445" cdnrawvideourl="raw-url" cdnrawvideoaeskey="raw-key"'));
10
+ t.equal(payload.file_id, 'video-url', 'primary file_id unchanged');
11
+ t.equal(payload.file_size, '766838', 'primary file_size unchanged');
12
+ t.same(payload.candidates, [
13
+ { file_id: 'video-url', file_size: '766838' },
14
+ { file_id: 'raw-url', file_size: '769445', aes_key: 'raw-key' },
15
+ ], 'raw video should be second candidate with its own aes key');
16
+ });
17
+ test('parseVideoMessagePayload skips empty raw video', async (t) => {
18
+ const payload = await parseVideoMessagePayload(buildPayload('aeskey="key" cdnvideourl="video-url" length="766838" playlength="5" rawlength="0" cdnrawvideourl="" cdnrawvideoaeskey=""'));
19
+ t.same(payload.candidates, [{ file_id: 'video-url', file_size: '766838' }], 'only cdn video candidate');
20
+ });
21
+ test('parseSizeMismatch extracts actual size from backend error', async (t) => {
22
+ t.equal(parseSizeMismatch('download plaintext size differs: expected 766838, got 1228708'), '1228708', 'should return actual size');
23
+ t.equal(parseSizeMismatch('timeout'), undefined, 'other errors return undefined');
24
+ t.equal(parseSizeMismatch(undefined), undefined, 'undefined returns undefined');
25
+ });
@@ -137,13 +137,20 @@ export interface BaseEvent {
137
137
  name?: string;
138
138
  robotInfo?: ContactPayload;
139
139
  }
140
+ export interface CdnDownloadCandidate {
141
+ file_id: string;
142
+ file_size: string | number;
143
+ aes_key?: string;
144
+ }
140
145
  export interface ImageMessagePayload {
141
146
  aes_key: string;
142
147
  auth_key: string;
143
148
  file_id: string;
144
149
  file_size?: string | number;
145
150
  file_name?: string;
151
+ candidates?: CdnDownloadCandidate[];
146
152
  }
153
+ export declare function parseSizeMismatch(errmsg?: string): string | undefined;
147
154
  export interface SnsImageMessagePayload {
148
155
  errcode: number;
149
156
  file_key: string;
@@ -185,6 +192,7 @@ export interface VideoMessagePayload {
185
192
  thumb_width: string;
186
193
  thumb_height: string;
187
194
  file_name: '';
195
+ candidates?: CdnDownloadCandidate[];
188
196
  }
189
197
  export declare enum FriendshipType {
190
198
  Unknown = 0,
@@ -344,6 +352,7 @@ declare class Client extends EventEmitter {
344
352
  sendAtText(contactId: string, msg: string, atList: string[], selfId: string | undefined): Promise<MessagePayload | void>;
345
353
  uploadFile(url: string, type: number): Promise<any>;
346
354
  private retryDownload;
355
+ private cdnDownloadWithFallback;
347
356
  downloadImage(imageInfo: ImageMessagePayload): Promise<any>;
348
357
  downloadWWMedia(imageInfo: ImageMessagePayload, type: number): Promise<any>;
349
358
  downloadFile(imageInfo: ImageMessagePayload): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAwC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,oBAAY,cAAc;IACxB,KAAK,OAAO;IACZ,iBAAiB,OAAO;IACxB,SAAS,OAAO;IAChB,UAAU,OAAO;IACjB,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,cAAc,OAAO;IACrB,WAAW,OAAO;IAClB,iBAAiB,OAAO;IACxB,MAAM,OAAO;IACb,iBAAiB,OAAO;IACxB,SAAS,OAAO;IAChB,SAAS,OAAO;IAChB,OAAO,OAAO;IACd,QAAQ,OAAO;IACf,SAAS,OAAO;IAChB,WAAW,OAAO;IAClB,aAAa,OAAO;IACpB,gBAAgB,OAAO;IACvB,aAAa,OAAO;IACpB,aAAa,OAAO;IACpB,2BAA2B,OAAO;IAClC,2BAA2B,OAAO;IAClC,4BAA4B,OAAO;IACnC,4BAA4B,OAAO;IACnC,mCAAmC,OAAO;CAC3C;AAKD,aAAK,aAAa;IAChB,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAKD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,cAAc;IAI7B,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,MAAM,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,QAAQ,EAAE,MAAM,CAAC;IAIjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,GAAG,EAAE,aAAa,CAAC;IAInB,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,IAAI,EAAE,MAAM,CAAC;IAIb,KAAK,EAAE,MAAM,CAAC;IAId,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAI9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAIvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAKD,aAAK,MAAM;IACT,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAKD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,aAAa,GACb,YAAY,CAAC;AAIjB,oBAAY,iBAAiB;IAC3B,IAAI,IAAI;IACR,KAAK,IAAI;IACT,KAAK,KAAK;IACV,SAAS,KAAK;IACd,iBAAiB,KAAK;IACtB,SAAS,KAAK;IACd,KAAK,KAAK;IACV,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,GAAG,KAAK;IACR,OAAO,KAAK;IACZ,YAAY,KAAK;IACjB,UAAU,KAAK;IACf,UAAU,KAAK;IACf,UAAU,KAAK;IACf,mBAAmB,KAAK;IACxB,QAAQ,OAAO;IACf,WAAW,OAAO;IAClB,WAAW,OAAO;IAClB,WAAW,OAAO;IAClB,IAAI,OAAO;IACX,SAAS,OAAO;IAChB,GAAG,QAAQ;IACX,WAAW,QAAQ;CACpB;AAKD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,EAAE,CAAC;CACf;AAED,oBAAY,cAAc;IACxB,OAAO,IAAI;IACX,OAAO,IAAA;IACP,OAAO,IAAA;IACP,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AACD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AACD,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAoQD,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxC,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7C,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,cAAM,MAAO,SAAQ,YAAY;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,cAAc,CAAC,CAAK;IAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAK;IAClC,OAAO,CAAC,qBAAqB,CAAC,CAAK;IACnC,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,GAAG,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,eAAe,CAA0C;IAGxD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO;IAC/C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO;IAChD,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAC/C,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO;IAC5D,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;IACrD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;IACnD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAC5C,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAC3D,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO;IACnE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO;IAC5C,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO;IAC7C,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;WAMnC,MAAM,CAAE,OAAO,EAAE,mBAAmB;IAMxD,OAAO;IAaD,OAAO;IAeP,YAAY;IA0BlB,eAAe;IAOT,UAAU;IAeV,oBAAoB,IAAK,OAAO,CAAC,IAAI,CAAC;IA2EtC,UAAU,CAAE,SAAS,EAAE,GAAG;IAmJhC,eAAe,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAOnC,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IA2CjD,aAAa,CAAE,GAAG,EAAE,OAAO;IAWrB,QAAQ,CAAE,IAAI,EAAE,GAAG;IA2CZ,UAAU,IAAK,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAkBzB,QAAQ,IAAK,OAAO,CAAC,WAAW,CAAC;IA8BjC,SAAS,IAAK,OAAO,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,GAAG,MAAM,CAAC;IAsDL,eAAe,IAAK,OAAO,CAAC;QACvC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,GAAG,CAAA;KACnB,GAAG,IAAI,CAAC;IA+BI,eAAe,IAAK,OAAO,CAAC;QACvC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IAmBI,cAAc,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3D,eAAe,IAAK,OAAO,CAAC,GAAG,CAAC;IAUhC,WAAW,CAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC;IA2CrE,aAAa,IAAK,OAAO,CAAC,MAAM,CAAC;IAgBjC,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAexB,aAAa,CACxB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,cAAc,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC;IAkF5C,mBAAmB,CAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC;IAmG5C,WAAW,CAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCtD,cAAc,CACzB,IAAI,GAAE,MAAU,EAChB,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAsCH,oBAAoB,CAC/B,IAAI,GAAE,MAAU,EAChB,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAyCH,YAAY,CACvB,IAAI,GAAE,MAAU,EAChB,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAoCH,qBAAqB,CAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;IA2CrC,aAAa,CACxB,IAAI,GAAE,MAAU,EAChB,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAyCH,QAAQ,CACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAiCpB,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAgCpB,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YAUnD,aAAa;IAoBd,aAAa,CAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB5D,eAAe,CAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0B5E,YAAY,CAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAqB3D,aAAa,CACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,mBAAmB,EAC9B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC;IAoBF,eAAe,IAAK,OAAO,CAAC,GAAG,CAAC;IAIhC,eAAe,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9E,gBAAgB,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/E,aAAa,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAO7C,WAAW,CAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAuD/E,aAAa,CAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAqB5D,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAsCpB,SAAS,CACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAuCpB,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAuCpB,aAAa,CACxB,EACE,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,GACT,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,EACD,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAoCpB,eAAe,CAC1B,EACE,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE,GAAG,EACN,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA8CpB,OAAO,CAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAiCpB,iBAAiB,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAmBH,eAAe,CAAE,EAC5B,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;QACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBJ,cAAc,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAwCzD,aAAa,CACxB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,IAAI,CAAC;IAwBH,aAAa,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchD,eAAe,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAcH,SAAS,CAAE,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BnE,YAAY,CACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC,IAAI,CAAC;IAcH,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxC,eAAe,CAC1B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA6BpB,gBAAgB,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAsBH,cAAc,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAwBpE,cAAc,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAuBpE,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAkCnD,UAAU,CAAE,OAAO,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBnD,YAAY,CAAE,QAAQ,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwBtD,cAAc,CAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,GAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2BlF,eAAe,CAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAqB5G;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/service/request.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,10 @@ export var WechatMessageType;
97
97
  WechatMessageType[WechatMessageType["Sys"] = 10000] = "Sys";
98
98
  WechatMessageType[WechatMessageType["SysTemplate"] = 10002] = "SysTemplate";
99
99
  })(WechatMessageType || (WechatMessageType = {}));
100
+ export function parseSizeMismatch(errmsg) {
101
+ const match = typeof errmsg === 'string' ? errmsg.match(/size differs: expected \d+, got (\d+)/) : null;
102
+ return match && Number(match[1]) > 0 ? match[1] : undefined;
103
+ }
100
104
  export var FriendshipType;
101
105
  (function (FriendshipType) {
102
106
  FriendshipType[FriendshipType["Unknown"] = 0] = "Unknown";
@@ -1349,8 +1353,7 @@ class Client extends EventEmitter {
1349
1353
  },
1350
1354
  });
1351
1355
  }
1352
- async retryDownload(fn) {
1353
- const maxRetries = 5;
1356
+ async retryDownload(fn, maxRetries = 5) {
1354
1357
  const delayMs = 5000;
1355
1358
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
1356
1359
  try {
@@ -1359,6 +1362,9 @@ class Client extends EventEmitter {
1359
1362
  return res;
1360
1363
  }
1361
1364
  log.warn(PRE, 'download attempt %d/%d failed (no url in response): %s', attempt, maxRetries, JSON.stringify(res));
1365
+ if (parseSizeMismatch(res?.errmsg)) {
1366
+ return res;
1367
+ }
1362
1368
  }
1363
1369
  catch (e) {
1364
1370
  log.warn(PRE, 'download attempt %d/%d error: %s', attempt, maxRetries, e);
@@ -1369,21 +1375,51 @@ class Client extends EventEmitter {
1369
1375
  }
1370
1376
  return null;
1371
1377
  }
1378
+ async cdnDownloadWithFallback(label, baseParams, candidates) {
1379
+ const queue = [...candidates];
1380
+ const tried = new Set();
1381
+ const retriesPerCandidate = candidates.length > 1 ? 2 : 5;
1382
+ while (queue.length) {
1383
+ const candidate = queue.shift();
1384
+ const key = `${candidate.file_id}|${candidate.file_size}|${candidate.aes_key || ''}`;
1385
+ if (!candidate.file_id || tried.has(key)) {
1386
+ continue;
1387
+ }
1388
+ tried.add(key);
1389
+ const params = {
1390
+ ...baseParams,
1391
+ file_id: candidate.file_id,
1392
+ file_size: candidate.file_size,
1393
+ ...(candidate.aes_key ? { aes_key: candidate.aes_key } : {}),
1394
+ };
1395
+ const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }), retriesPerCandidate);
1396
+ if (res?.url) {
1397
+ if (tried.size > 1) {
1398
+ log.info(PRE, '%s succeeded with fallback, file_size: %s', label, candidate.file_size);
1399
+ }
1400
+ return encodeURI(res.url) || '';
1401
+ }
1402
+ const actualSize = parseSizeMismatch(res?.errmsg);
1403
+ if (actualSize) {
1404
+ log.warn(PRE, '%s size mismatch (xml %s, actual %s), retry with actual size', label, candidate.file_size, actualSize);
1405
+ queue.unshift({ ...candidate, file_size: actualSize });
1406
+ continue;
1407
+ }
1408
+ log.warn(PRE, '%s candidate failed, params: %s', label, JSON.stringify(params));
1409
+ }
1410
+ log.error(PRE, '%s failed for all candidates: %s', label, JSON.stringify(candidates));
1411
+ return '';
1412
+ }
1372
1413
  async downloadImage(imageInfo) {
1373
- const params = {
1414
+ const candidates = imageInfo.candidates?.length
1415
+ ? imageInfo.candidates
1416
+ : [{ file_id: imageInfo.file_id, file_size: imageInfo.file_size || '' }];
1417
+ return this.cdnDownloadWithFallback('downloadImage', {
1374
1418
  log_response: true,
1375
1419
  file_type: 2,
1376
- file_id: imageInfo.file_id,
1377
1420
  aes_key: imageInfo.aes_key,
1378
- file_size: imageInfo.file_size,
1379
1421
  file_name: `/微信图片_${format(new Date(), 'yyyyMMddHHmmss')}.png`,
1380
- };
1381
- const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1382
- if (res?.url) {
1383
- return encodeURI(res.url) || '';
1384
- }
1385
- log.error(PRE, 'downloadImage failed after %d retries, params: %s', 5, JSON.stringify(params));
1386
- return '';
1422
+ }, candidates);
1387
1423
  }
1388
1424
  async downloadWWMedia(imageInfo, type) {
1389
1425
  const typeNameMap = {
@@ -1407,20 +1443,12 @@ class Client extends EventEmitter {
1407
1443
  return '';
1408
1444
  }
1409
1445
  async downloadFile(imageInfo) {
1410
- const params = {
1446
+ return this.cdnDownloadWithFallback('downloadFile', {
1411
1447
  log_response: true,
1412
1448
  file_type: 5,
1413
- file_id: imageInfo.file_id.replace('@cdn_', ''),
1414
1449
  aes_key: imageInfo.aes_key,
1415
- file_size: imageInfo.file_size,
1416
1450
  file_name: '/' + sanitizeFilename(imageInfo.file_name),
1417
- };
1418
- const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1419
- if (res?.url) {
1420
- return encodeURI(res.url) || '';
1421
- }
1422
- log.error(PRE, 'downloadFile failed after %d retries, params: %s', 5, JSON.stringify(params));
1423
- return '';
1451
+ }, [{ file_id: imageInfo.file_id.replace('@cdn_', ''), file_size: imageInfo.file_size || '' }]);
1424
1452
  }
1425
1453
  async downloadAudio(msgId, voiceInfo, roomId) {
1426
1454
  const params = {
@@ -1498,19 +1526,14 @@ class Client extends EventEmitter {
1498
1526
  return '';
1499
1527
  }
1500
1528
  async downloadVideo(videoInfo) {
1501
- const params = {
1529
+ const candidates = videoInfo.candidates?.length
1530
+ ? videoInfo.candidates
1531
+ : [{ file_id: videoInfo.file_id, file_size: videoInfo.file_size }];
1532
+ return this.cdnDownloadWithFallback('downloadVideo', {
1502
1533
  file_type: 4,
1503
- file_id: videoInfo.file_id,
1504
1534
  aes_key: videoInfo.aes_key,
1505
- file_size: videoInfo.file_size,
1506
1535
  file_name: `/微信视频_${format(new Date(), 'yyyyMMddHHmmss')}.mp4`,
1507
- };
1508
- const res = await this.retryDownload(() => this.postData({ path: '/cloud/cdn_download', data: params }));
1509
- if (res?.url) {
1510
- return encodeURI(res.url) || '';
1511
- }
1512
- log.error(PRE, 'downloadVideo failed after %d retries, params: %s', 5, JSON.stringify(params));
1513
- return '';
1536
+ }, candidates);
1514
1537
  }
1515
1538
  async sendUrlImg(contactId, url, selfId) {
1516
1539
  try {
@@ -0,0 +1,4 @@
1
+ export declare function detectImageExt(head: Buffer): string | undefined;
2
+ export declare function fetchRemoteHead(url: string, bytes?: number, timeoutMs?: number): Promise<Buffer | undefined>;
3
+ export declare function replaceExt(fileName: string, ext: string): string;
4
+ //# sourceMappingURL=file-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-type.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/utils/file-type.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0BhE;AAKD,wBAAsB,eAAe,CAAE,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAa7G;AAKD,wBAAgB,UAAU,CAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjE"}
@@ -0,0 +1,47 @@
1
+ import axios from 'axios';
2
+ export function detectImageExt(head) {
3
+ if (head.length >= 3 && head[0] === 0xff && head[1] === 0xd8 && head[2] === 0xff) {
4
+ return 'jpg';
5
+ }
6
+ if (head.length >= 8 && head.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))) {
7
+ return 'png';
8
+ }
9
+ if (head.length >= 6 && ['GIF87a', 'GIF89a'].includes(head.subarray(0, 6).toString('ascii'))) {
10
+ return 'gif';
11
+ }
12
+ if (head.length >= 12 && head.subarray(0, 4).toString('ascii') === 'RIFF' && head.subarray(8, 12).toString('ascii') === 'WEBP') {
13
+ return 'webp';
14
+ }
15
+ if (head.length >= 2 && head[0] === 0x42 && head[1] === 0x4d) {
16
+ return 'bmp';
17
+ }
18
+ if (head.length >= 12 && head.subarray(4, 8).toString('ascii') === 'ftyp') {
19
+ const brand = head.subarray(8, 12).toString('ascii');
20
+ if (['heic', 'heix', 'hevc', 'hevx', 'mif1', 'msf1'].includes(brand)) {
21
+ return 'heic';
22
+ }
23
+ if (['avif', 'avis'].includes(brand)) {
24
+ return 'avif';
25
+ }
26
+ }
27
+ return undefined;
28
+ }
29
+ export async function fetchRemoteHead(url, bytes = 32, timeoutMs = 5000) {
30
+ try {
31
+ const res = await axios.get(url, {
32
+ headers: { Range: `bytes=0-${bytes - 1}` },
33
+ responseType: 'arraybuffer',
34
+ timeout: timeoutMs,
35
+ maxContentLength: 50 * 1024 * 1024,
36
+ });
37
+ return Buffer.from(res.data).subarray(0, bytes);
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ export function replaceExt(fileName, ext) {
44
+ const dot = fileName.lastIndexOf('.');
45
+ const base = dot > 0 ? fileName.slice(0, dot) : fileName;
46
+ return `${base}.${ext}`;
47
+ }
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node -r ts-node/register
2
+ export {};
3
+ //# sourceMappingURL=file-type.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-type.spec.d.ts","sourceRoot":"","sources":["../../../../../src/matrix/utils/file-type.spec.ts"],"names":[],"mappings":""}