deno.land / x / sheetjs@v0.18.3 / modules / src / iwa.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */import { Ptr, ProtoMessage, parse_shallow, parse_varint49, varint_to_i32 } from './proto';
interface IWAMessage { /** Metadata in .TSP.MessageInfo */ meta: ProtoMessage; data: Uint8Array;}interface IWAArchiveInfo { id?: number; messages?: IWAMessage[];}export { IWAMessage, IWAArchiveInfo };
function parse_iwa(buf: Uint8Array): IWAArchiveInfo[] { var out: IWAArchiveInfo[] = [], ptr: Ptr = [0]; while(ptr[0] < buf.length) { /* .TSP.ArchiveInfo */ var len = parse_varint49(buf, ptr); var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len)); ptr[0] += len;
var res: IWAArchiveInfo = { id: varint_to_i32(ai[1][0].data), messages: [] }; ai[2].forEach(b => { var mi = parse_shallow(b.data); var fl = varint_to_i32(mi[3][0].data); res.messages.push({ meta: mi, data: buf.slice(ptr[0], ptr[0] + fl) }); ptr[0] += fl; }); out.push(res); } return out;}export { parse_iwa };
sheetjs

Version Info

Tagged at
2 years ago