llonebot-dist 6.6.4
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.
- dist/default_config.json +68 -0
- dist/llonebot.js +48348 -0
- dist/llonebot.js.map +1 -0
- dist/node_modules/@borewit/text-codec/LICENSE.txt +9 -0
- dist/node_modules/@borewit/text-codec/README.md +76 -0
- dist/node_modules/@borewit/text-codec/lib/index.d.ts +8 -0
- dist/node_modules/@borewit/text-codec/lib/index.js +161 -0
- dist/node_modules/@borewit/text-codec/package.json +68 -0
- dist/node_modules/@minatojs/sql.js/LICENSE +44 -0
- dist/node_modules/@minatojs/sql.js/README.md +357 -0
- dist/node_modules/@minatojs/sql.js/dist/sql-wasm.d.ts +316 -0
- dist/node_modules/@minatojs/sql.js/dist/sql-wasm.js +225 -0
- dist/node_modules/@minatojs/sql.js/dist/sql-wasm.wasm +0 -0
- dist/node_modules/@minatojs/sql.js/package.json +58 -0
- dist/node_modules/@tokenizer/inflate/LICENSE +15 -0
- dist/node_modules/@tokenizer/inflate/README.md +114 -0
- dist/node_modules/@tokenizer/inflate/lib/GzipHandler.d.ts +6 -0
- dist/node_modules/@tokenizer/inflate/lib/GzipHandler.js +19 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipHandler.d.ts +26 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipHandler.js +233 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipToken.d.ts +94 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipToken.js +117 -0
- dist/node_modules/@tokenizer/inflate/lib/index.d.ts +3 -0
- dist/node_modules/@tokenizer/inflate/lib/index.js +2 -0
- dist/node_modules/@tokenizer/inflate/package.json +76 -0
- dist/node_modules/@tokenizer/token/README.md +19 -0
- dist/node_modules/@tokenizer/token/index.d.ts +30 -0
- dist/node_modules/@tokenizer/token/package.json +33 -0
- dist/node_modules/debug/LICENSE +20 -0
- dist/node_modules/debug/README.md +481 -0
- dist/node_modules/debug/package.json +64 -0
- dist/node_modules/debug/src/browser.js +272 -0
- dist/node_modules/debug/src/common.js +292 -0
- dist/node_modules/debug/src/index.js +10 -0
- dist/node_modules/debug/src/node.js +263 -0
- dist/node_modules/file-type/core.d.ts +253 -0
- dist/node_modules/file-type/core.js +1899 -0
- dist/node_modules/file-type/index.d.ts +98 -0
- dist/node_modules/file-type/index.js +86 -0
- dist/node_modules/file-type/license +9 -0
- dist/node_modules/file-type/package.json +288 -0
- dist/node_modules/file-type/readme.md +674 -0
- dist/node_modules/file-type/supported.js +356 -0
- dist/node_modules/file-type/util.js +60 -0
- dist/node_modules/ieee754/LICENSE +11 -0
- dist/node_modules/ieee754/README.md +51 -0
- dist/node_modules/ieee754/index.d.ts +10 -0
- dist/node_modules/ieee754/index.js +85 -0
- dist/node_modules/ieee754/package.json +52 -0
- dist/node_modules/ms/index.js +162 -0
- dist/node_modules/ms/license.md +21 -0
- dist/node_modules/ms/package.json +38 -0
- dist/node_modules/ms/readme.md +59 -0
- dist/node_modules/silk-wasm/LICENSE +21 -0
- dist/node_modules/silk-wasm/README.md +85 -0
- dist/node_modules/silk-wasm/lib/index.cjs +16 -0
- dist/node_modules/silk-wasm/lib/index.d.ts +70 -0
- dist/node_modules/silk-wasm/lib/index.mjs +16 -0
- dist/node_modules/silk-wasm/lib/silk.wasm +0 -0
- dist/node_modules/silk-wasm/lib/utils.d.ts +4 -0
- dist/node_modules/silk-wasm/package.json +39 -0
- dist/node_modules/strtok3/LICENSE.txt +21 -0
- dist/node_modules/strtok3/README.md +399 -0
- dist/node_modules/strtok3/lib/AbstractTokenizer.d.ts +76 -0
- dist/node_modules/strtok3/lib/AbstractTokenizer.js +108 -0
- dist/node_modules/strtok3/lib/BlobTokenizer.d.ts +29 -0
- dist/node_modules/strtok3/lib/BlobTokenizer.js +53 -0
- dist/node_modules/strtok3/lib/BufferTokenizer.d.ts +29 -0
- dist/node_modules/strtok3/lib/BufferTokenizer.js +52 -0
- dist/node_modules/strtok3/lib/FileTokenizer.d.ts +37 -0
- dist/node_modules/strtok3/lib/FileTokenizer.js +61 -0
- dist/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +31 -0
- dist/node_modules/strtok3/lib/ReadStreamTokenizer.js +102 -0
- dist/node_modules/strtok3/lib/core.d.ts +40 -0
- dist/node_modules/strtok3/lib/core.js +62 -0
- dist/node_modules/strtok3/lib/index.d.ts +16 -0
- dist/node_modules/strtok3/lib/index.js +22 -0
- dist/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +54 -0
- dist/node_modules/strtok3/lib/stream/AbstractStreamReader.js +71 -0
- dist/node_modules/strtok3/lib/stream/Deferred.d.ts +6 -0
- dist/node_modules/strtok3/lib/stream/Deferred.js +10 -0
- dist/node_modules/strtok3/lib/stream/Errors.d.ts +10 -0
- dist/node_modules/strtok3/lib/stream/Errors.js +16 -0
- dist/node_modules/strtok3/lib/stream/StreamReader.d.ts +29 -0
- dist/node_modules/strtok3/lib/stream/StreamReader.js +83 -0
- dist/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +14 -0
- dist/node_modules/strtok3/lib/stream/WebStreamByobReader.js +27 -0
- dist/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +19 -0
- dist/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +62 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +14 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReader.js +13 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +5 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +19 -0
- dist/node_modules/strtok3/lib/stream/index.d.ts +6 -0
- dist/node_modules/strtok3/lib/stream/index.js +5 -0
- dist/node_modules/strtok3/lib/types.d.ts +139 -0
- dist/node_modules/strtok3/lib/types.js +1 -0
- dist/node_modules/strtok3/package.json +94 -0
- dist/node_modules/token-types/LICENSE.txt +9 -0
- dist/node_modules/token-types/README.md +120 -0
- dist/node_modules/token-types/lib/index.d.ts +135 -0
- dist/node_modules/token-types/lib/index.js +401 -0
- dist/node_modules/token-types/package.json +81 -0
- dist/node_modules/uint8array-extras/index.d.ts +312 -0
- dist/node_modules/uint8array-extras/index.js +321 -0
- dist/node_modules/uint8array-extras/license +9 -0
- dist/node_modules/uint8array-extras/package.json +54 -0
- dist/node_modules/uint8array-extras/readme.md +301 -0
- dist/node_modules/ws/LICENSE +20 -0
- dist/node_modules/ws/README.md +548 -0
- dist/node_modules/ws/browser.js +8 -0
- dist/node_modules/ws/index.js +13 -0
- dist/node_modules/ws/lib/buffer-util.js +131 -0
- dist/node_modules/ws/lib/constants.js +18 -0
- dist/node_modules/ws/lib/event-target.js +292 -0
- dist/node_modules/ws/lib/extension.js +203 -0
- dist/node_modules/ws/lib/limiter.js +55 -0
- dist/node_modules/ws/lib/permessage-deflate.js +528 -0
- dist/node_modules/ws/lib/receiver.js +706 -0
- dist/node_modules/ws/lib/sender.js +602 -0
- dist/node_modules/ws/lib/stream.js +161 -0
- dist/node_modules/ws/lib/subprotocol.js +62 -0
- dist/node_modules/ws/lib/validation.js +152 -0
- dist/node_modules/ws/lib/websocket-server.js +550 -0
- dist/node_modules/ws/lib/websocket.js +1388 -0
- dist/node_modules/ws/package.json +69 -0
- dist/node_modules/ws/wrapper.mjs +8 -0
- dist/package.json +1 -0
- dist/webui/assets/index-B9vGhdCO.js +256 -0
- dist/webui/assets/index-DaqFU7JR.css +1 -0
- dist/webui/index.html +13 -0
- dist/webui/logo.jpg +0 -0
- dist//344/275/277/347/224/250/350/257/264/346/230/216.txt +11 -0
- dist//346/233/264/346/226/260/346/227/245/345/277/227.txt +399 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
[](https://github.com/Borewit/token-types/actions/workflows/nodejs-ci.yml?query=branch%3Amaster)
|
|
2
|
+
[](https://npmjs.org/package/token-types)
|
|
3
|
+
[](https://npmcharts.com/compare/token-types,strtok3?start=1200&interval=30)
|
|
4
|
+
[](https://coveralls.io/github/Borewit/token-types?branch=master)
|
|
5
|
+
[](https://www.codacy.com/app/Borewit/token-types?utm_source=github.com&utm_medium=referral&utm_content=Borewit/token-types&utm_campaign=Badge_Grade)
|
|
6
|
+
[](https://deepscan.io/dashboard#view=project&tid=5165&pid=6940&bid=61852)
|
|
7
|
+
[](https://snyk.io/test/github/Borewit/token-types?targetFile=package.json)
|
|
8
|
+
|
|
9
|
+
# token-types
|
|
10
|
+
|
|
11
|
+
A primitive token library used to read and write from a `Uint8Array`.
|
|
12
|
+
Although it is possible to use this module directly, it is primarily designed to be used with [strtok3 tokenizer](https://github.com/Borewit/strtok3).
|
|
13
|
+
|
|
14
|
+
## Compatibility
|
|
15
|
+
|
|
16
|
+
Module: version 5 migrated from [CommonJS](https://en.wikipedia.org/wiki/CommonJS) to [pure ECMAScript Module (ESM)](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
|
|
17
|
+
JavaScript is compliant with [ECMAScript 2019 (ES10)](https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_%E2%80%93_ECMAScript_2019).
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
npm install --save token-types
|
|
23
|
+
```
|
|
24
|
+
Usually in combination with [strtok3](https://github.com/Borewit/strtok3):
|
|
25
|
+
```sh
|
|
26
|
+
npm install --save strtok3
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Using TypeScript you should also install [@tokenizer/token](https://github.com/Borewit/tokenizer-token) as a development
|
|
30
|
+
dependency:
|
|
31
|
+
|
|
32
|
+
```shell
|
|
33
|
+
npm install --save-dev @tokenizer/token
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Example
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import * as strtok3 from 'strtok3';
|
|
41
|
+
import * as token from 'token-types';
|
|
42
|
+
|
|
43
|
+
(async () => {
|
|
44
|
+
|
|
45
|
+
const tokenizer = await strtok3.fromFile("somefile.bin");
|
|
46
|
+
try {
|
|
47
|
+
const myNumber = await tokenizer.readToken(token.Float32_BE);
|
|
48
|
+
console.log(`My number: ${myNumber}`);
|
|
49
|
+
} finally {
|
|
50
|
+
tokenizer.close(); // Close the file
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Tokens
|
|
56
|
+
|
|
57
|
+
### Numeric tokens
|
|
58
|
+
|
|
59
|
+
`token-types` supports a wide variety of numeric tokens out of the box:
|
|
60
|
+
|
|
61
|
+
| Token | Number | Bits | Endianness |
|
|
62
|
+
|---------------|------------------|------|----------------|
|
|
63
|
+
| `UINT8` | Unsigned integer | 8 | n/a |
|
|
64
|
+
| `UINT16_BE` | Unsigned integer | 16 | big endian |
|
|
65
|
+
| `UINT16_LE` | Unsigned integer | 16 | little endian |
|
|
66
|
+
| `UINT24_BE` | Unsigned integer | 24 | big endian |
|
|
67
|
+
| `UINT24_LE` | Unsigned integer | 24 | little endian |
|
|
68
|
+
| `UINT32_BE` | Unsigned integer | 32 | big endian |
|
|
69
|
+
| `UINT32_LE` | Unsigned integer | 32 | little endian |
|
|
70
|
+
| `UINT64_BE` | Unsigned integer | 64 | big endian |
|
|
71
|
+
| `UINT64_LE`* | Unsigned integer | 64 | little endian |
|
|
72
|
+
| `INT8` | Signed integer | 8 | n/a |
|
|
73
|
+
| `INT16_BE` | Signed integer | 16 | big endian |
|
|
74
|
+
| `INT16_LE` | Signed integer | 16 | little endian |
|
|
75
|
+
| `INT24_BE` | Signed integer | 24 | big endian |
|
|
76
|
+
| `INT24_LE` | Signed integer | 24 | little endian |
|
|
77
|
+
| `INT32_BE` | Signed integer | 32 | big endian |
|
|
78
|
+
| `INT32_LE` | Signed integer | 32 | little endian |
|
|
79
|
+
| `INT64_BE` | Signed integer | 64 | big endian |
|
|
80
|
+
| `INT64_LE`* | Signed integer | 64 | little endian |
|
|
81
|
+
| `Float16_BE` | IEEE 754 float | 16 | big endian |
|
|
82
|
+
| `Float16_LE` | IEEE 754 float | 16 | little endian |
|
|
83
|
+
| `Float32_BE` | IEEE 754 float | 32 | big endian |
|
|
84
|
+
| `Float32_LE` | IEEE 754 float | 32 | little endian |
|
|
85
|
+
| `Float64_BE` | IEEE 754 float | 64 | big endian |
|
|
86
|
+
| `Float64_LE` | IEEE 754 float | 64 | little endian |
|
|
87
|
+
| `Float80_BE`* | IEEE 754 float | 80 | big endian |
|
|
88
|
+
| `Float80_LE`* | IEEE 754 float | 80 | little endian |
|
|
89
|
+
|
|
90
|
+
(*) The tokens exceed the JavaScript IEEE 754 64-bit Floating Point precision, decoding and encoding is best effort based.
|
|
91
|
+
|
|
92
|
+
### String tokens
|
|
93
|
+
|
|
94
|
+
StringType decoding is using [@borewit/text-codec](https://github.com/Borewit/text-codec).
|
|
95
|
+
|
|
96
|
+
### Custom tokens
|
|
97
|
+
|
|
98
|
+
Custom tokens can be added, suitable for reading binary files or network messages:
|
|
99
|
+
```js
|
|
100
|
+
ExtendedHeader = {
|
|
101
|
+
len: 10,
|
|
102
|
+
|
|
103
|
+
get: (buf, off) => {
|
|
104
|
+
return {
|
|
105
|
+
// Extended header size
|
|
106
|
+
size: Token.UINT32_BE.get(buf, off),
|
|
107
|
+
// Extended Flags
|
|
108
|
+
extendedFlags: Token.UINT16_BE.get(buf, off + 4),
|
|
109
|
+
// Size of padding
|
|
110
|
+
sizeOfPadding: Token.UINT32_BE.get(buf, off + 6),
|
|
111
|
+
// CRC data present
|
|
112
|
+
crcDataPresent: common.strtokBITSET.get(buf, off + 4, 31)
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Licence
|
|
119
|
+
|
|
120
|
+
This project is licensed under the [MIT License](LICENSE.txt). Feel free to use, modify, and distribute as needed.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { IToken, IGetToken } from '@tokenizer/token';
|
|
2
|
+
export declare const UINT8: IToken<number>;
|
|
3
|
+
/**
|
|
4
|
+
* 16-bit unsigned integer, Little Endian byte order
|
|
5
|
+
*/
|
|
6
|
+
export declare const UINT16_LE: IToken<number>;
|
|
7
|
+
/**
|
|
8
|
+
* 16-bit unsigned integer, Big Endian byte order
|
|
9
|
+
*/
|
|
10
|
+
export declare const UINT16_BE: IToken<number>;
|
|
11
|
+
/**
|
|
12
|
+
* 24-bit unsigned integer, Little Endian byte order
|
|
13
|
+
*/
|
|
14
|
+
export declare const UINT24_LE: IToken<number>;
|
|
15
|
+
/**
|
|
16
|
+
* 24-bit unsigned integer, Big Endian byte order
|
|
17
|
+
*/
|
|
18
|
+
export declare const UINT24_BE: IToken<number>;
|
|
19
|
+
/**
|
|
20
|
+
* 32-bit unsigned integer, Little Endian byte order
|
|
21
|
+
*/
|
|
22
|
+
export declare const UINT32_LE: IToken<number>;
|
|
23
|
+
/**
|
|
24
|
+
* 32-bit unsigned integer, Big Endian byte order
|
|
25
|
+
*/
|
|
26
|
+
export declare const UINT32_BE: IToken<number>;
|
|
27
|
+
/**
|
|
28
|
+
* 8-bit signed integer
|
|
29
|
+
*/
|
|
30
|
+
export declare const INT8: IToken<number>;
|
|
31
|
+
/**
|
|
32
|
+
* 16-bit signed integer, Big Endian byte order
|
|
33
|
+
*/
|
|
34
|
+
export declare const INT16_BE: IToken<number>;
|
|
35
|
+
/**
|
|
36
|
+
* 16-bit signed integer, Little Endian byte order
|
|
37
|
+
*/
|
|
38
|
+
export declare const INT16_LE: IToken<number>;
|
|
39
|
+
/**
|
|
40
|
+
* 24-bit signed integer, Little Endian byte order
|
|
41
|
+
*/
|
|
42
|
+
export declare const INT24_LE: IToken<number>;
|
|
43
|
+
/**
|
|
44
|
+
* 24-bit signed integer, Big Endian byte order
|
|
45
|
+
*/
|
|
46
|
+
export declare const INT24_BE: IToken<number>;
|
|
47
|
+
/**
|
|
48
|
+
* 32-bit signed integer, Big Endian byte order
|
|
49
|
+
*/
|
|
50
|
+
export declare const INT32_BE: IToken<number>;
|
|
51
|
+
/**
|
|
52
|
+
* 32-bit signed integer, Big Endian byte order
|
|
53
|
+
*/
|
|
54
|
+
export declare const INT32_LE: IToken<number>;
|
|
55
|
+
/**
|
|
56
|
+
* 64-bit unsigned integer, Little Endian byte order
|
|
57
|
+
*/
|
|
58
|
+
export declare const UINT64_LE: IToken<bigint>;
|
|
59
|
+
/**
|
|
60
|
+
* 64-bit signed integer, Little Endian byte order
|
|
61
|
+
*/
|
|
62
|
+
export declare const INT64_LE: IToken<bigint>;
|
|
63
|
+
/**
|
|
64
|
+
* 64-bit unsigned integer, Big Endian byte order
|
|
65
|
+
*/
|
|
66
|
+
export declare const UINT64_BE: IToken<bigint>;
|
|
67
|
+
/**
|
|
68
|
+
* 64-bit signed integer, Big Endian byte order
|
|
69
|
+
*/
|
|
70
|
+
export declare const INT64_BE: IToken<bigint>;
|
|
71
|
+
/**
|
|
72
|
+
* IEEE 754 16-bit (half precision) float, big endian
|
|
73
|
+
*/
|
|
74
|
+
export declare const Float16_BE: IToken<number>;
|
|
75
|
+
/**
|
|
76
|
+
* IEEE 754 16-bit (half precision) float, little endian
|
|
77
|
+
*/
|
|
78
|
+
export declare const Float16_LE: IToken<number>;
|
|
79
|
+
/**
|
|
80
|
+
* IEEE 754 32-bit (single precision) float, big endian
|
|
81
|
+
*/
|
|
82
|
+
export declare const Float32_BE: IToken<number>;
|
|
83
|
+
/**
|
|
84
|
+
* IEEE 754 32-bit (single precision) float, little endian
|
|
85
|
+
*/
|
|
86
|
+
export declare const Float32_LE: IToken<number>;
|
|
87
|
+
/**
|
|
88
|
+
* IEEE 754 64-bit (double precision) float, big endian
|
|
89
|
+
*/
|
|
90
|
+
export declare const Float64_BE: IToken<number>;
|
|
91
|
+
/**
|
|
92
|
+
* IEEE 754 64-bit (double precision) float, little endian
|
|
93
|
+
*/
|
|
94
|
+
export declare const Float64_LE: IToken<number>;
|
|
95
|
+
/**
|
|
96
|
+
* IEEE 754 80-bit (extended precision) float, big endian
|
|
97
|
+
*/
|
|
98
|
+
export declare const Float80_BE: IToken<number>;
|
|
99
|
+
/**
|
|
100
|
+
* IEEE 754 80-bit (extended precision) float, little endian
|
|
101
|
+
*/
|
|
102
|
+
export declare const Float80_LE: IToken<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Ignore a given number of bytes
|
|
105
|
+
*/
|
|
106
|
+
export declare class IgnoreType implements IGetToken<void> {
|
|
107
|
+
len: number;
|
|
108
|
+
/**
|
|
109
|
+
* @param len number of bytes to ignore
|
|
110
|
+
*/
|
|
111
|
+
constructor(len: number);
|
|
112
|
+
get(_array: Uint8Array, _off: number): void;
|
|
113
|
+
}
|
|
114
|
+
export declare class Uint8ArrayType implements IGetToken<Uint8Array> {
|
|
115
|
+
len: number;
|
|
116
|
+
constructor(len: number);
|
|
117
|
+
get(array: Uint8Array, offset: number): Uint8Array;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Consume a fixed number of bytes from the stream and return a string with a specified encoding.
|
|
121
|
+
* Supports all encodings supported by TextDecoder, plus 'windows-1252'.
|
|
122
|
+
*/
|
|
123
|
+
export declare class StringType implements IGetToken<string> {
|
|
124
|
+
len: number;
|
|
125
|
+
private encoding?;
|
|
126
|
+
constructor(len: number, encoding?: string);
|
|
127
|
+
get(data: Uint8Array, offset?: number): string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* ANSI Latin 1 String using Windows-1252 (Code Page 1252)
|
|
131
|
+
* Windows-1252 is a superset of ISO 8859-1 / Latin-1.
|
|
132
|
+
*/
|
|
133
|
+
export declare class AnsiStringType extends StringType {
|
|
134
|
+
constructor(len: number);
|
|
135
|
+
}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
import * as ieee754 from 'ieee754';
|
|
2
|
+
import { textDecode } from "@borewit/text-codec";
|
|
3
|
+
// Primitive types
|
|
4
|
+
function dv(array) {
|
|
5
|
+
return new DataView(array.buffer, array.byteOffset);
|
|
6
|
+
}
|
|
7
|
+
/*
|
|
8
|
+
* 8-bit unsigned integer
|
|
9
|
+
*/
|
|
10
|
+
export const UINT8 = {
|
|
11
|
+
len: 1,
|
|
12
|
+
get(array, offset) {
|
|
13
|
+
return dv(array).getUint8(offset);
|
|
14
|
+
},
|
|
15
|
+
put(array, offset, value) {
|
|
16
|
+
dv(array).setUint8(offset, value);
|
|
17
|
+
return offset + 1;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* 16-bit unsigned integer, Little Endian byte order
|
|
22
|
+
*/
|
|
23
|
+
export const UINT16_LE = {
|
|
24
|
+
len: 2,
|
|
25
|
+
get(array, offset) {
|
|
26
|
+
return dv(array).getUint16(offset, true);
|
|
27
|
+
},
|
|
28
|
+
put(array, offset, value) {
|
|
29
|
+
dv(array).setUint16(offset, value, true);
|
|
30
|
+
return offset + 2;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* 16-bit unsigned integer, Big Endian byte order
|
|
35
|
+
*/
|
|
36
|
+
export const UINT16_BE = {
|
|
37
|
+
len: 2,
|
|
38
|
+
get(array, offset) {
|
|
39
|
+
return dv(array).getUint16(offset);
|
|
40
|
+
},
|
|
41
|
+
put(array, offset, value) {
|
|
42
|
+
dv(array).setUint16(offset, value);
|
|
43
|
+
return offset + 2;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* 24-bit unsigned integer, Little Endian byte order
|
|
48
|
+
*/
|
|
49
|
+
export const UINT24_LE = {
|
|
50
|
+
len: 3,
|
|
51
|
+
get(array, offset) {
|
|
52
|
+
const dataView = dv(array);
|
|
53
|
+
return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);
|
|
54
|
+
},
|
|
55
|
+
put(array, offset, value) {
|
|
56
|
+
const dataView = dv(array);
|
|
57
|
+
dataView.setUint8(offset, value & 0xff);
|
|
58
|
+
dataView.setUint16(offset + 1, value >> 8, true);
|
|
59
|
+
return offset + 3;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* 24-bit unsigned integer, Big Endian byte order
|
|
64
|
+
*/
|
|
65
|
+
export const UINT24_BE = {
|
|
66
|
+
len: 3,
|
|
67
|
+
get(array, offset) {
|
|
68
|
+
const dataView = dv(array);
|
|
69
|
+
return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);
|
|
70
|
+
},
|
|
71
|
+
put(array, offset, value) {
|
|
72
|
+
const dataView = dv(array);
|
|
73
|
+
dataView.setUint16(offset, value >> 8);
|
|
74
|
+
dataView.setUint8(offset + 2, value & 0xff);
|
|
75
|
+
return offset + 3;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* 32-bit unsigned integer, Little Endian byte order
|
|
80
|
+
*/
|
|
81
|
+
export const UINT32_LE = {
|
|
82
|
+
len: 4,
|
|
83
|
+
get(array, offset) {
|
|
84
|
+
return dv(array).getUint32(offset, true);
|
|
85
|
+
},
|
|
86
|
+
put(array, offset, value) {
|
|
87
|
+
dv(array).setUint32(offset, value, true);
|
|
88
|
+
return offset + 4;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* 32-bit unsigned integer, Big Endian byte order
|
|
93
|
+
*/
|
|
94
|
+
export const UINT32_BE = {
|
|
95
|
+
len: 4,
|
|
96
|
+
get(array, offset) {
|
|
97
|
+
return dv(array).getUint32(offset);
|
|
98
|
+
},
|
|
99
|
+
put(array, offset, value) {
|
|
100
|
+
dv(array).setUint32(offset, value);
|
|
101
|
+
return offset + 4;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* 8-bit signed integer
|
|
106
|
+
*/
|
|
107
|
+
export const INT8 = {
|
|
108
|
+
len: 1,
|
|
109
|
+
get(array, offset) {
|
|
110
|
+
return dv(array).getInt8(offset);
|
|
111
|
+
},
|
|
112
|
+
put(array, offset, value) {
|
|
113
|
+
dv(array).setInt8(offset, value);
|
|
114
|
+
return offset + 1;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* 16-bit signed integer, Big Endian byte order
|
|
119
|
+
*/
|
|
120
|
+
export const INT16_BE = {
|
|
121
|
+
len: 2,
|
|
122
|
+
get(array, offset) {
|
|
123
|
+
return dv(array).getInt16(offset);
|
|
124
|
+
},
|
|
125
|
+
put(array, offset, value) {
|
|
126
|
+
dv(array).setInt16(offset, value);
|
|
127
|
+
return offset + 2;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* 16-bit signed integer, Little Endian byte order
|
|
132
|
+
*/
|
|
133
|
+
export const INT16_LE = {
|
|
134
|
+
len: 2,
|
|
135
|
+
get(array, offset) {
|
|
136
|
+
return dv(array).getInt16(offset, true);
|
|
137
|
+
},
|
|
138
|
+
put(array, offset, value) {
|
|
139
|
+
dv(array).setInt16(offset, value, true);
|
|
140
|
+
return offset + 2;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* 24-bit signed integer, Little Endian byte order
|
|
145
|
+
*/
|
|
146
|
+
export const INT24_LE = {
|
|
147
|
+
len: 3,
|
|
148
|
+
get(array, offset) {
|
|
149
|
+
const unsigned = UINT24_LE.get(array, offset);
|
|
150
|
+
return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;
|
|
151
|
+
},
|
|
152
|
+
put(array, offset, value) {
|
|
153
|
+
const dataView = dv(array);
|
|
154
|
+
dataView.setUint8(offset, value & 0xff);
|
|
155
|
+
dataView.setUint16(offset + 1, value >> 8, true);
|
|
156
|
+
return offset + 3;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* 24-bit signed integer, Big Endian byte order
|
|
161
|
+
*/
|
|
162
|
+
export const INT24_BE = {
|
|
163
|
+
len: 3,
|
|
164
|
+
get(array, offset) {
|
|
165
|
+
const unsigned = UINT24_BE.get(array, offset);
|
|
166
|
+
return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;
|
|
167
|
+
},
|
|
168
|
+
put(array, offset, value) {
|
|
169
|
+
const dataView = dv(array);
|
|
170
|
+
dataView.setUint16(offset, value >> 8);
|
|
171
|
+
dataView.setUint8(offset + 2, value & 0xff);
|
|
172
|
+
return offset + 3;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* 32-bit signed integer, Big Endian byte order
|
|
177
|
+
*/
|
|
178
|
+
export const INT32_BE = {
|
|
179
|
+
len: 4,
|
|
180
|
+
get(array, offset) {
|
|
181
|
+
return dv(array).getInt32(offset);
|
|
182
|
+
},
|
|
183
|
+
put(array, offset, value) {
|
|
184
|
+
dv(array).setInt32(offset, value);
|
|
185
|
+
return offset + 4;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* 32-bit signed integer, Big Endian byte order
|
|
190
|
+
*/
|
|
191
|
+
export const INT32_LE = {
|
|
192
|
+
len: 4,
|
|
193
|
+
get(array, offset) {
|
|
194
|
+
return dv(array).getInt32(offset, true);
|
|
195
|
+
},
|
|
196
|
+
put(array, offset, value) {
|
|
197
|
+
dv(array).setInt32(offset, value, true);
|
|
198
|
+
return offset + 4;
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* 64-bit unsigned integer, Little Endian byte order
|
|
203
|
+
*/
|
|
204
|
+
export const UINT64_LE = {
|
|
205
|
+
len: 8,
|
|
206
|
+
get(array, offset) {
|
|
207
|
+
return dv(array).getBigUint64(offset, true);
|
|
208
|
+
},
|
|
209
|
+
put(array, offset, value) {
|
|
210
|
+
dv(array).setBigUint64(offset, value, true);
|
|
211
|
+
return offset + 8;
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* 64-bit signed integer, Little Endian byte order
|
|
216
|
+
*/
|
|
217
|
+
export const INT64_LE = {
|
|
218
|
+
len: 8,
|
|
219
|
+
get(array, offset) {
|
|
220
|
+
return dv(array).getBigInt64(offset, true);
|
|
221
|
+
},
|
|
222
|
+
put(array, offset, value) {
|
|
223
|
+
dv(array).setBigInt64(offset, value, true);
|
|
224
|
+
return offset + 8;
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* 64-bit unsigned integer, Big Endian byte order
|
|
229
|
+
*/
|
|
230
|
+
export const UINT64_BE = {
|
|
231
|
+
len: 8,
|
|
232
|
+
get(array, offset) {
|
|
233
|
+
return dv(array).getBigUint64(offset);
|
|
234
|
+
},
|
|
235
|
+
put(array, offset, value) {
|
|
236
|
+
dv(array).setBigUint64(offset, value);
|
|
237
|
+
return offset + 8;
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* 64-bit signed integer, Big Endian byte order
|
|
242
|
+
*/
|
|
243
|
+
export const INT64_BE = {
|
|
244
|
+
len: 8,
|
|
245
|
+
get(array, offset) {
|
|
246
|
+
return dv(array).getBigInt64(offset);
|
|
247
|
+
},
|
|
248
|
+
put(array, offset, value) {
|
|
249
|
+
dv(array).setBigInt64(offset, value);
|
|
250
|
+
return offset + 8;
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* IEEE 754 16-bit (half precision) float, big endian
|
|
255
|
+
*/
|
|
256
|
+
export const Float16_BE = {
|
|
257
|
+
len: 2,
|
|
258
|
+
get(dataView, offset) {
|
|
259
|
+
return ieee754.read(dataView, offset, false, 10, this.len);
|
|
260
|
+
},
|
|
261
|
+
put(dataView, offset, value) {
|
|
262
|
+
ieee754.write(dataView, value, offset, false, 10, this.len);
|
|
263
|
+
return offset + this.len;
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* IEEE 754 16-bit (half precision) float, little endian
|
|
268
|
+
*/
|
|
269
|
+
export const Float16_LE = {
|
|
270
|
+
len: 2,
|
|
271
|
+
get(array, offset) {
|
|
272
|
+
return ieee754.read(array, offset, true, 10, this.len);
|
|
273
|
+
},
|
|
274
|
+
put(array, offset, value) {
|
|
275
|
+
ieee754.write(array, value, offset, true, 10, this.len);
|
|
276
|
+
return offset + this.len;
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* IEEE 754 32-bit (single precision) float, big endian
|
|
281
|
+
*/
|
|
282
|
+
export const Float32_BE = {
|
|
283
|
+
len: 4,
|
|
284
|
+
get(array, offset) {
|
|
285
|
+
return dv(array).getFloat32(offset);
|
|
286
|
+
},
|
|
287
|
+
put(array, offset, value) {
|
|
288
|
+
dv(array).setFloat32(offset, value);
|
|
289
|
+
return offset + 4;
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* IEEE 754 32-bit (single precision) float, little endian
|
|
294
|
+
*/
|
|
295
|
+
export const Float32_LE = {
|
|
296
|
+
len: 4,
|
|
297
|
+
get(array, offset) {
|
|
298
|
+
return dv(array).getFloat32(offset, true);
|
|
299
|
+
},
|
|
300
|
+
put(array, offset, value) {
|
|
301
|
+
dv(array).setFloat32(offset, value, true);
|
|
302
|
+
return offset + 4;
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
/**
|
|
306
|
+
* IEEE 754 64-bit (double precision) float, big endian
|
|
307
|
+
*/
|
|
308
|
+
export const Float64_BE = {
|
|
309
|
+
len: 8,
|
|
310
|
+
get(array, offset) {
|
|
311
|
+
return dv(array).getFloat64(offset);
|
|
312
|
+
},
|
|
313
|
+
put(array, offset, value) {
|
|
314
|
+
dv(array).setFloat64(offset, value);
|
|
315
|
+
return offset + 8;
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* IEEE 754 64-bit (double precision) float, little endian
|
|
320
|
+
*/
|
|
321
|
+
export const Float64_LE = {
|
|
322
|
+
len: 8,
|
|
323
|
+
get(array, offset) {
|
|
324
|
+
return dv(array).getFloat64(offset, true);
|
|
325
|
+
},
|
|
326
|
+
put(array, offset, value) {
|
|
327
|
+
dv(array).setFloat64(offset, value, true);
|
|
328
|
+
return offset + 8;
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
/**
|
|
332
|
+
* IEEE 754 80-bit (extended precision) float, big endian
|
|
333
|
+
*/
|
|
334
|
+
export const Float80_BE = {
|
|
335
|
+
len: 10,
|
|
336
|
+
get(array, offset) {
|
|
337
|
+
return ieee754.read(array, offset, false, 63, this.len);
|
|
338
|
+
},
|
|
339
|
+
put(array, offset, value) {
|
|
340
|
+
ieee754.write(array, value, offset, false, 63, this.len);
|
|
341
|
+
return offset + this.len;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
/**
|
|
345
|
+
* IEEE 754 80-bit (extended precision) float, little endian
|
|
346
|
+
*/
|
|
347
|
+
export const Float80_LE = {
|
|
348
|
+
len: 10,
|
|
349
|
+
get(array, offset) {
|
|
350
|
+
return ieee754.read(array, offset, true, 63, this.len);
|
|
351
|
+
},
|
|
352
|
+
put(array, offset, value) {
|
|
353
|
+
ieee754.write(array, value, offset, true, 63, this.len);
|
|
354
|
+
return offset + this.len;
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
/**
|
|
358
|
+
* Ignore a given number of bytes
|
|
359
|
+
*/
|
|
360
|
+
export class IgnoreType {
|
|
361
|
+
/**
|
|
362
|
+
* @param len number of bytes to ignore
|
|
363
|
+
*/
|
|
364
|
+
constructor(len) {
|
|
365
|
+
this.len = len;
|
|
366
|
+
}
|
|
367
|
+
// ToDo: don't read, but skip data
|
|
368
|
+
get(_array, _off) {
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
export class Uint8ArrayType {
|
|
372
|
+
constructor(len) {
|
|
373
|
+
this.len = len;
|
|
374
|
+
}
|
|
375
|
+
get(array, offset) {
|
|
376
|
+
return array.subarray(offset, offset + this.len);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Consume a fixed number of bytes from the stream and return a string with a specified encoding.
|
|
381
|
+
* Supports all encodings supported by TextDecoder, plus 'windows-1252'.
|
|
382
|
+
*/
|
|
383
|
+
export class StringType {
|
|
384
|
+
constructor(len, encoding) {
|
|
385
|
+
this.len = len;
|
|
386
|
+
this.encoding = encoding;
|
|
387
|
+
}
|
|
388
|
+
get(data, offset = 0) {
|
|
389
|
+
const bytes = data.subarray(offset, offset + this.len);
|
|
390
|
+
return textDecode(bytes, this.encoding);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* ANSI Latin 1 String using Windows-1252 (Code Page 1252)
|
|
395
|
+
* Windows-1252 is a superset of ISO 8859-1 / Latin-1.
|
|
396
|
+
*/
|
|
397
|
+
export class AnsiStringType extends StringType {
|
|
398
|
+
constructor(len) {
|
|
399
|
+
super(len, 'windows-1252');
|
|
400
|
+
}
|
|
401
|
+
}
|