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.
Files changed (134) hide show
  1. dist/default_config.json +68 -0
  2. dist/llonebot.js +48348 -0
  3. dist/llonebot.js.map +1 -0
  4. dist/node_modules/@borewit/text-codec/LICENSE.txt +9 -0
  5. dist/node_modules/@borewit/text-codec/README.md +76 -0
  6. dist/node_modules/@borewit/text-codec/lib/index.d.ts +8 -0
  7. dist/node_modules/@borewit/text-codec/lib/index.js +161 -0
  8. dist/node_modules/@borewit/text-codec/package.json +68 -0
  9. dist/node_modules/@minatojs/sql.js/LICENSE +44 -0
  10. dist/node_modules/@minatojs/sql.js/README.md +357 -0
  11. dist/node_modules/@minatojs/sql.js/dist/sql-wasm.d.ts +316 -0
  12. dist/node_modules/@minatojs/sql.js/dist/sql-wasm.js +225 -0
  13. dist/node_modules/@minatojs/sql.js/dist/sql-wasm.wasm +0 -0
  14. dist/node_modules/@minatojs/sql.js/package.json +58 -0
  15. dist/node_modules/@tokenizer/inflate/LICENSE +15 -0
  16. dist/node_modules/@tokenizer/inflate/README.md +114 -0
  17. dist/node_modules/@tokenizer/inflate/lib/GzipHandler.d.ts +6 -0
  18. dist/node_modules/@tokenizer/inflate/lib/GzipHandler.js +19 -0
  19. dist/node_modules/@tokenizer/inflate/lib/ZipHandler.d.ts +26 -0
  20. dist/node_modules/@tokenizer/inflate/lib/ZipHandler.js +233 -0
  21. dist/node_modules/@tokenizer/inflate/lib/ZipToken.d.ts +94 -0
  22. dist/node_modules/@tokenizer/inflate/lib/ZipToken.js +117 -0
  23. dist/node_modules/@tokenizer/inflate/lib/index.d.ts +3 -0
  24. dist/node_modules/@tokenizer/inflate/lib/index.js +2 -0
  25. dist/node_modules/@tokenizer/inflate/package.json +76 -0
  26. dist/node_modules/@tokenizer/token/README.md +19 -0
  27. dist/node_modules/@tokenizer/token/index.d.ts +30 -0
  28. dist/node_modules/@tokenizer/token/package.json +33 -0
  29. dist/node_modules/debug/LICENSE +20 -0
  30. dist/node_modules/debug/README.md +481 -0
  31. dist/node_modules/debug/package.json +64 -0
  32. dist/node_modules/debug/src/browser.js +272 -0
  33. dist/node_modules/debug/src/common.js +292 -0
  34. dist/node_modules/debug/src/index.js +10 -0
  35. dist/node_modules/debug/src/node.js +263 -0
  36. dist/node_modules/file-type/core.d.ts +253 -0
  37. dist/node_modules/file-type/core.js +1899 -0
  38. dist/node_modules/file-type/index.d.ts +98 -0
  39. dist/node_modules/file-type/index.js +86 -0
  40. dist/node_modules/file-type/license +9 -0
  41. dist/node_modules/file-type/package.json +288 -0
  42. dist/node_modules/file-type/readme.md +674 -0
  43. dist/node_modules/file-type/supported.js +356 -0
  44. dist/node_modules/file-type/util.js +60 -0
  45. dist/node_modules/ieee754/LICENSE +11 -0
  46. dist/node_modules/ieee754/README.md +51 -0
  47. dist/node_modules/ieee754/index.d.ts +10 -0
  48. dist/node_modules/ieee754/index.js +85 -0
  49. dist/node_modules/ieee754/package.json +52 -0
  50. dist/node_modules/ms/index.js +162 -0
  51. dist/node_modules/ms/license.md +21 -0
  52. dist/node_modules/ms/package.json +38 -0
  53. dist/node_modules/ms/readme.md +59 -0
  54. dist/node_modules/silk-wasm/LICENSE +21 -0
  55. dist/node_modules/silk-wasm/README.md +85 -0
  56. dist/node_modules/silk-wasm/lib/index.cjs +16 -0
  57. dist/node_modules/silk-wasm/lib/index.d.ts +70 -0
  58. dist/node_modules/silk-wasm/lib/index.mjs +16 -0
  59. dist/node_modules/silk-wasm/lib/silk.wasm +0 -0
  60. dist/node_modules/silk-wasm/lib/utils.d.ts +4 -0
  61. dist/node_modules/silk-wasm/package.json +39 -0
  62. dist/node_modules/strtok3/LICENSE.txt +21 -0
  63. dist/node_modules/strtok3/README.md +399 -0
  64. dist/node_modules/strtok3/lib/AbstractTokenizer.d.ts +76 -0
  65. dist/node_modules/strtok3/lib/AbstractTokenizer.js +108 -0
  66. dist/node_modules/strtok3/lib/BlobTokenizer.d.ts +29 -0
  67. dist/node_modules/strtok3/lib/BlobTokenizer.js +53 -0
  68. dist/node_modules/strtok3/lib/BufferTokenizer.d.ts +29 -0
  69. dist/node_modules/strtok3/lib/BufferTokenizer.js +52 -0
  70. dist/node_modules/strtok3/lib/FileTokenizer.d.ts +37 -0
  71. dist/node_modules/strtok3/lib/FileTokenizer.js +61 -0
  72. dist/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +31 -0
  73. dist/node_modules/strtok3/lib/ReadStreamTokenizer.js +102 -0
  74. dist/node_modules/strtok3/lib/core.d.ts +40 -0
  75. dist/node_modules/strtok3/lib/core.js +62 -0
  76. dist/node_modules/strtok3/lib/index.d.ts +16 -0
  77. dist/node_modules/strtok3/lib/index.js +22 -0
  78. dist/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +54 -0
  79. dist/node_modules/strtok3/lib/stream/AbstractStreamReader.js +71 -0
  80. dist/node_modules/strtok3/lib/stream/Deferred.d.ts +6 -0
  81. dist/node_modules/strtok3/lib/stream/Deferred.js +10 -0
  82. dist/node_modules/strtok3/lib/stream/Errors.d.ts +10 -0
  83. dist/node_modules/strtok3/lib/stream/Errors.js +16 -0
  84. dist/node_modules/strtok3/lib/stream/StreamReader.d.ts +29 -0
  85. dist/node_modules/strtok3/lib/stream/StreamReader.js +83 -0
  86. dist/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +14 -0
  87. dist/node_modules/strtok3/lib/stream/WebStreamByobReader.js +27 -0
  88. dist/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +19 -0
  89. dist/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +62 -0
  90. dist/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +14 -0
  91. dist/node_modules/strtok3/lib/stream/WebStreamReader.js +13 -0
  92. dist/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +5 -0
  93. dist/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +19 -0
  94. dist/node_modules/strtok3/lib/stream/index.d.ts +6 -0
  95. dist/node_modules/strtok3/lib/stream/index.js +5 -0
  96. dist/node_modules/strtok3/lib/types.d.ts +139 -0
  97. dist/node_modules/strtok3/lib/types.js +1 -0
  98. dist/node_modules/strtok3/package.json +94 -0
  99. dist/node_modules/token-types/LICENSE.txt +9 -0
  100. dist/node_modules/token-types/README.md +120 -0
  101. dist/node_modules/token-types/lib/index.d.ts +135 -0
  102. dist/node_modules/token-types/lib/index.js +401 -0
  103. dist/node_modules/token-types/package.json +81 -0
  104. dist/node_modules/uint8array-extras/index.d.ts +312 -0
  105. dist/node_modules/uint8array-extras/index.js +321 -0
  106. dist/node_modules/uint8array-extras/license +9 -0
  107. dist/node_modules/uint8array-extras/package.json +54 -0
  108. dist/node_modules/uint8array-extras/readme.md +301 -0
  109. dist/node_modules/ws/LICENSE +20 -0
  110. dist/node_modules/ws/README.md +548 -0
  111. dist/node_modules/ws/browser.js +8 -0
  112. dist/node_modules/ws/index.js +13 -0
  113. dist/node_modules/ws/lib/buffer-util.js +131 -0
  114. dist/node_modules/ws/lib/constants.js +18 -0
  115. dist/node_modules/ws/lib/event-target.js +292 -0
  116. dist/node_modules/ws/lib/extension.js +203 -0
  117. dist/node_modules/ws/lib/limiter.js +55 -0
  118. dist/node_modules/ws/lib/permessage-deflate.js +528 -0
  119. dist/node_modules/ws/lib/receiver.js +706 -0
  120. dist/node_modules/ws/lib/sender.js +602 -0
  121. dist/node_modules/ws/lib/stream.js +161 -0
  122. dist/node_modules/ws/lib/subprotocol.js +62 -0
  123. dist/node_modules/ws/lib/validation.js +152 -0
  124. dist/node_modules/ws/lib/websocket-server.js +550 -0
  125. dist/node_modules/ws/lib/websocket.js +1388 -0
  126. dist/node_modules/ws/package.json +69 -0
  127. dist/node_modules/ws/wrapper.mjs +8 -0
  128. dist/package.json +1 -0
  129. dist/webui/assets/index-B9vGhdCO.js +256 -0
  130. dist/webui/assets/index-DaqFU7JR.css +1 -0
  131. dist/webui/index.html +13 -0
  132. dist/webui/logo.jpg +0 -0
  133. dist//344/275/277/347/224/250/350/257/264/346/230/216.txt +11 -0
  134. dist//346/233/264/346/226/260/346/227/245/345/277/227.txt +399 -0
@@ -0,0 +1,120 @@
1
+ [![Node.js CI](https://github.com/Borewit/token-types/actions/workflows/nodejs-ci.yml/badge.svg?branch=master)](https://github.com/Borewit/token-types/actions/workflows/nodejs-ci.yml?query=branch%3Amaster)
2
+ [![NPM version](https://badge.fury.io/js/token-types.svg)](https://npmjs.org/package/token-types)
3
+ [![npm downloads](http://img.shields.io/npm/dm/token-types.svg)](https://npmcharts.com/compare/token-types,strtok3?start=1200&interval=30)
4
+ [![coveralls](https://coveralls.io/repos/github/Borewit/token-types/badge.svg?branch=master)](https://coveralls.io/github/Borewit/token-types?branch=master)
5
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/4723ce4613fc49cda8db5eed29f18834)](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
+ [![DeepScan grade](https://deepscan.io/api/teams/5165/projects/6940/branches/61852/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=5165&pid=6940&bid=61852)
7
+ [![Known Vulnerabilities](https://snyk.io/test/github/Borewit/token-types/badge.svg?targetFile=package.json)](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
+ }