@burdenoff/vibe-agent 1.3.2 → 2.1.0

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 (164) hide show
  1. package/dist/app-31chs2a1.js +17180 -0
  2. package/dist/app-31chs2a1.js.map +170 -0
  3. package/dist/chunk-pm1hna8x-473akrq0.js +16826 -0
  4. package/dist/chunk-pm1hna8x-473akrq0.js.map +11 -0
  5. package/dist/cli.js +4686 -1146
  6. package/dist/cli.js.map +51 -1
  7. package/dist/highlights-eq9cgrbb.scm +604 -0
  8. package/dist/highlights-ghv9g403.scm +205 -0
  9. package/dist/highlights-hk7bwhj4.scm +284 -0
  10. package/dist/highlights-r812a2qc.scm +150 -0
  11. package/dist/highlights-x6tmsnaa.scm +115 -0
  12. package/dist/index-5xngv42g.js +2546 -0
  13. package/dist/index-5xngv42g.js.map +26 -0
  14. package/dist/index-6aq4nc58.js +11429 -0
  15. package/dist/index-6aq4nc58.js.map +21 -0
  16. package/dist/index-ac2ebaf8.js +4 -0
  17. package/dist/index-ac2ebaf8.js.map +9 -0
  18. package/dist/index-g8dczzvv.js +33 -0
  19. package/dist/index-g8dczzvv.js.map +9 -0
  20. package/dist/index-gmz54dkc.js +28402 -0
  21. package/dist/index-gmz54dkc.js.map +11 -0
  22. package/dist/index-t06ktmx9.js +216 -0
  23. package/dist/index-t06ktmx9.js.map +11 -0
  24. package/dist/index.js +69 -87
  25. package/dist/index.js.map +10 -1
  26. package/dist/injections-73j83es3.scm +27 -0
  27. package/dist/package-0158fp3w.js +136 -0
  28. package/dist/package-0158fp3w.js.map +9 -0
  29. package/dist/plugin-system-bg1pzjj9.js +453 -0
  30. package/dist/plugin-system-bg1pzjj9.js.map +11 -0
  31. package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  32. package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
  33. package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  34. package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  35. package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
  36. package/package.json +33 -44
  37. package/dist/app.d.ts +0 -15
  38. package/dist/app.d.ts.map +0 -1
  39. package/dist/app.js +0 -600
  40. package/dist/app.js.map +0 -1
  41. package/dist/cli.d.ts +0 -3
  42. package/dist/cli.d.ts.map +0 -1
  43. package/dist/db/schema.d.ts +0 -121
  44. package/dist/db/schema.d.ts.map +0 -1
  45. package/dist/db/schema.js +0 -473
  46. package/dist/db/schema.js.map +0 -1
  47. package/dist/index.d.ts +0 -2
  48. package/dist/index.d.ts.map +0 -1
  49. package/dist/middleware/ModuleAuth.d.ts +0 -61
  50. package/dist/middleware/ModuleAuth.d.ts.map +0 -1
  51. package/dist/middleware/ModuleAuth.js +0 -223
  52. package/dist/middleware/ModuleAuth.js.map +0 -1
  53. package/dist/middleware/auth.d.ts +0 -3
  54. package/dist/middleware/auth.d.ts.map +0 -1
  55. package/dist/middleware/auth.js +0 -11
  56. package/dist/middleware/auth.js.map +0 -1
  57. package/dist/migrations/remove-notes-prompts.d.ts +0 -13
  58. package/dist/migrations/remove-notes-prompts.d.ts.map +0 -1
  59. package/dist/migrations/remove-notes-prompts.js +0 -148
  60. package/dist/migrations/remove-notes-prompts.js.map +0 -1
  61. package/dist/routes/bookmarks.d.ts +0 -3
  62. package/dist/routes/bookmarks.d.ts.map +0 -1
  63. package/dist/routes/bookmarks.js +0 -195
  64. package/dist/routes/bookmarks.js.map +0 -1
  65. package/dist/routes/config.d.ts +0 -3
  66. package/dist/routes/config.d.ts.map +0 -1
  67. package/dist/routes/config.js +0 -106
  68. package/dist/routes/config.js.map +0 -1
  69. package/dist/routes/files.d.ts +0 -3
  70. package/dist/routes/files.d.ts.map +0 -1
  71. package/dist/routes/files.js +0 -313
  72. package/dist/routes/files.js.map +0 -1
  73. package/dist/routes/git.d.ts +0 -3
  74. package/dist/routes/git.d.ts.map +0 -1
  75. package/dist/routes/git.js +0 -427
  76. package/dist/routes/git.js.map +0 -1
  77. package/dist/routes/logs.d.ts +0 -9
  78. package/dist/routes/logs.d.ts.map +0 -1
  79. package/dist/routes/logs.js +0 -107
  80. package/dist/routes/logs.js.map +0 -1
  81. package/dist/routes/moduleRegistry.d.ts +0 -41
  82. package/dist/routes/moduleRegistry.d.ts.map +0 -1
  83. package/dist/routes/moduleRegistry.js +0 -356
  84. package/dist/routes/moduleRegistry.js.map +0 -1
  85. package/dist/routes/notifications.d.ts +0 -3
  86. package/dist/routes/notifications.d.ts.map +0 -1
  87. package/dist/routes/notifications.js +0 -255
  88. package/dist/routes/notifications.js.map +0 -1
  89. package/dist/routes/plugin-state.d.ts +0 -19
  90. package/dist/routes/plugin-state.d.ts.map +0 -1
  91. package/dist/routes/plugin-state.js +0 -139
  92. package/dist/routes/plugin-state.js.map +0 -1
  93. package/dist/routes/plugins.d.ts +0 -3
  94. package/dist/routes/plugins.d.ts.map +0 -1
  95. package/dist/routes/plugins.js +0 -118
  96. package/dist/routes/plugins.js.map +0 -1
  97. package/dist/routes/projects.d.ts +0 -3
  98. package/dist/routes/projects.d.ts.map +0 -1
  99. package/dist/routes/projects.js +0 -456
  100. package/dist/routes/projects.js.map +0 -1
  101. package/dist/routes/tasks.d.ts +0 -3
  102. package/dist/routes/tasks.d.ts.map +0 -1
  103. package/dist/routes/tasks.js +0 -187
  104. package/dist/routes/tasks.js.map +0 -1
  105. package/dist/routes/tmux.d.ts +0 -3
  106. package/dist/routes/tmux.d.ts.map +0 -1
  107. package/dist/routes/tmux.js +0 -1287
  108. package/dist/routes/tmux.js.map +0 -1
  109. package/dist/routes/tunnel.d.ts +0 -25
  110. package/dist/routes/tunnel.d.ts.map +0 -1
  111. package/dist/routes/tunnel.js +0 -498
  112. package/dist/routes/tunnel.js.map +0 -1
  113. package/dist/services/ModulePermissions.d.ts +0 -100
  114. package/dist/services/ModulePermissions.d.ts.map +0 -1
  115. package/dist/services/ModulePermissions.js +0 -322
  116. package/dist/services/ModulePermissions.js.map +0 -1
  117. package/dist/services/ModuleRegistryService.d.ts +0 -152
  118. package/dist/services/ModuleRegistryService.d.ts.map +0 -1
  119. package/dist/services/ModuleRegistryService.js +0 -547
  120. package/dist/services/ModuleRegistryService.js.map +0 -1
  121. package/dist/services/agent.service.d.ts +0 -19
  122. package/dist/services/agent.service.d.ts.map +0 -1
  123. package/dist/services/agent.service.js +0 -91
  124. package/dist/services/agent.service.js.map +0 -1
  125. package/dist/services/bootstrap.d.ts +0 -22
  126. package/dist/services/bootstrap.d.ts.map +0 -1
  127. package/dist/services/bootstrap.js +0 -283
  128. package/dist/services/bootstrap.js.map +0 -1
  129. package/dist/services/completion.d.ts +0 -46
  130. package/dist/services/completion.d.ts.map +0 -1
  131. package/dist/services/completion.js +0 -317
  132. package/dist/services/completion.js.map +0 -1
  133. package/dist/services/gateway-client.d.ts +0 -61
  134. package/dist/services/gateway-client.d.ts.map +0 -1
  135. package/dist/services/gateway-client.js +0 -147
  136. package/dist/services/gateway-client.js.map +0 -1
  137. package/dist/services/logger.d.ts +0 -61
  138. package/dist/services/logger.d.ts.map +0 -1
  139. package/dist/services/logger.js +0 -223
  140. package/dist/services/logger.js.map +0 -1
  141. package/dist/services/plugin-manager.d.ts +0 -105
  142. package/dist/services/plugin-manager.d.ts.map +0 -1
  143. package/dist/services/plugin-manager.js +0 -250
  144. package/dist/services/plugin-manager.js.map +0 -1
  145. package/dist/services/plugin-state-backend.d.ts +0 -22
  146. package/dist/services/plugin-state-backend.d.ts.map +0 -1
  147. package/dist/services/plugin-state-backend.js +0 -103
  148. package/dist/services/plugin-state-backend.js.map +0 -1
  149. package/dist/services/plugin-state-external.d.ts +0 -36
  150. package/dist/services/plugin-state-external.d.ts.map +0 -1
  151. package/dist/services/plugin-state-external.js +0 -144
  152. package/dist/services/plugin-state-external.js.map +0 -1
  153. package/dist/services/plugin-state-router.d.ts +0 -40
  154. package/dist/services/plugin-state-router.d.ts.map +0 -1
  155. package/dist/services/plugin-state-router.js +0 -82
  156. package/dist/services/plugin-state-router.js.map +0 -1
  157. package/dist/services/port-utils.d.ts +0 -11
  158. package/dist/services/port-utils.d.ts.map +0 -1
  159. package/dist/services/port-utils.js +0 -39
  160. package/dist/services/port-utils.js.map +0 -1
  161. package/dist/services/service-manager.d.ts +0 -50
  162. package/dist/services/service-manager.d.ts.map +0 -1
  163. package/dist/services/service-manager.js +0 -389
  164. package/dist/services/service-manager.js.map +0 -1
@@ -0,0 +1,2546 @@
1
+ // @bun
2
+ import {
3
+ __commonJS,
4
+ __require
5
+ } from "./index-g8dczzvv.js";
6
+
7
+ // node_modules/strtok3/lib/FsPromise.js
8
+ var require_FsPromise = __commonJS((exports) => {
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.readFile = exports.writeFileSync = exports.writeFile = exports.read = exports.open = exports.close = exports.stat = exports.createReadStream = exports.pathExists = undefined;
11
+ var fs = __require("fs");
12
+ exports.pathExists = fs.existsSync;
13
+ exports.createReadStream = fs.createReadStream;
14
+ async function stat(path) {
15
+ return new Promise((resolve2, reject2) => {
16
+ fs.stat(path, (err, stats) => {
17
+ if (err)
18
+ reject2(err);
19
+ else
20
+ resolve2(stats);
21
+ });
22
+ });
23
+ }
24
+ exports.stat = stat;
25
+ async function close(fd) {
26
+ return new Promise((resolve2, reject2) => {
27
+ fs.close(fd, (err) => {
28
+ if (err)
29
+ reject2(err);
30
+ else
31
+ resolve2();
32
+ });
33
+ });
34
+ }
35
+ exports.close = close;
36
+ async function open(path, mode) {
37
+ return new Promise((resolve2, reject2) => {
38
+ fs.open(path, mode, (err, fd) => {
39
+ if (err)
40
+ reject2(err);
41
+ else
42
+ resolve2(fd);
43
+ });
44
+ });
45
+ }
46
+ exports.open = open;
47
+ async function read(fd, buffer, offset, length, position) {
48
+ return new Promise((resolve2, reject2) => {
49
+ fs.read(fd, buffer, offset, length, position, (err, bytesRead, _buffer) => {
50
+ if (err)
51
+ reject2(err);
52
+ else
53
+ resolve2({ bytesRead, buffer: _buffer });
54
+ });
55
+ });
56
+ }
57
+ exports.read = read;
58
+ async function writeFile(path, data) {
59
+ return new Promise((resolve2, reject2) => {
60
+ fs.writeFile(path, data, (err) => {
61
+ if (err)
62
+ reject2(err);
63
+ else
64
+ resolve2();
65
+ });
66
+ });
67
+ }
68
+ exports.writeFile = writeFile;
69
+ function writeFileSync(path, data) {
70
+ fs.writeFileSync(path, data);
71
+ }
72
+ exports.writeFileSync = writeFileSync;
73
+ async function readFile(path) {
74
+ return new Promise((resolve2, reject2) => {
75
+ fs.readFile(path, (err, buffer) => {
76
+ if (err)
77
+ reject2(err);
78
+ else
79
+ resolve2(buffer);
80
+ });
81
+ });
82
+ }
83
+ exports.readFile = readFile;
84
+ });
85
+
86
+ // node_modules/peek-readable/lib/EndOfFileStream.js
87
+ var require_EndOfFileStream = __commonJS((exports) => {
88
+ Object.defineProperty(exports, "__esModule", { value: true });
89
+ exports.EndOfStreamError = exports.defaultMessages = undefined;
90
+ exports.defaultMessages = "End-Of-Stream";
91
+
92
+ class EndOfStreamError extends Error {
93
+ constructor() {
94
+ super(exports.defaultMessages);
95
+ }
96
+ }
97
+ exports.EndOfStreamError = EndOfStreamError;
98
+ });
99
+
100
+ // node_modules/peek-readable/lib/Deferred.js
101
+ var require_Deferred = __commonJS((exports) => {
102
+ Object.defineProperty(exports, "__esModule", { value: true });
103
+ exports.Deferred = undefined;
104
+
105
+ class Deferred {
106
+ constructor() {
107
+ this.resolve = () => null;
108
+ this.reject = () => null;
109
+ this.promise = new Promise((resolve2, reject2) => {
110
+ this.reject = reject2;
111
+ this.resolve = resolve2;
112
+ });
113
+ }
114
+ }
115
+ exports.Deferred = Deferred;
116
+ });
117
+
118
+ // node_modules/peek-readable/lib/StreamReader.js
119
+ var require_StreamReader = __commonJS((exports) => {
120
+ Object.defineProperty(exports, "__esModule", { value: true });
121
+ exports.StreamReader = exports.EndOfStreamError = undefined;
122
+ var EndOfFileStream_1 = require_EndOfFileStream();
123
+ var Deferred_1 = require_Deferred();
124
+ var EndOfFileStream_2 = require_EndOfFileStream();
125
+ Object.defineProperty(exports, "EndOfStreamError", { enumerable: true, get: function() {
126
+ return EndOfFileStream_2.EndOfStreamError;
127
+ } });
128
+ var maxStreamReadSize = 1 * 1024 * 1024;
129
+
130
+ class StreamReader {
131
+ constructor(s) {
132
+ this.s = s;
133
+ this.deferred = null;
134
+ this.endOfStream = false;
135
+ this.peekQueue = [];
136
+ if (!s.read || !s.once) {
137
+ throw new Error("Expected an instance of stream.Readable");
138
+ }
139
+ this.s.once("end", () => this.reject(new EndOfFileStream_1.EndOfStreamError));
140
+ this.s.once("error", (err) => this.reject(err));
141
+ this.s.once("close", () => this.reject(new Error("Stream closed")));
142
+ }
143
+ async peek(uint8Array, offset, length) {
144
+ const bytesRead = await this.read(uint8Array, offset, length);
145
+ this.peekQueue.push(uint8Array.subarray(offset, offset + bytesRead));
146
+ return bytesRead;
147
+ }
148
+ async read(buffer, offset, length) {
149
+ if (length === 0) {
150
+ return 0;
151
+ }
152
+ if (this.peekQueue.length === 0 && this.endOfStream) {
153
+ throw new EndOfFileStream_1.EndOfStreamError;
154
+ }
155
+ let remaining = length;
156
+ let bytesRead = 0;
157
+ while (this.peekQueue.length > 0 && remaining > 0) {
158
+ const peekData = this.peekQueue.pop();
159
+ if (!peekData)
160
+ throw new Error("peekData should be defined");
161
+ const lenCopy = Math.min(peekData.length, remaining);
162
+ buffer.set(peekData.subarray(0, lenCopy), offset + bytesRead);
163
+ bytesRead += lenCopy;
164
+ remaining -= lenCopy;
165
+ if (lenCopy < peekData.length) {
166
+ this.peekQueue.push(peekData.subarray(lenCopy));
167
+ }
168
+ }
169
+ while (remaining > 0 && !this.endOfStream) {
170
+ const reqLen = Math.min(remaining, maxStreamReadSize);
171
+ const chunkLen = await this.readFromStream(buffer, offset + bytesRead, reqLen);
172
+ bytesRead += chunkLen;
173
+ if (chunkLen < reqLen)
174
+ break;
175
+ remaining -= chunkLen;
176
+ }
177
+ return bytesRead;
178
+ }
179
+ async readFromStream(buffer, offset, length) {
180
+ const readBuffer = this.s.read(length);
181
+ if (readBuffer) {
182
+ buffer.set(readBuffer, offset);
183
+ return readBuffer.length;
184
+ } else {
185
+ const request = {
186
+ buffer,
187
+ offset,
188
+ length,
189
+ deferred: new Deferred_1.Deferred
190
+ };
191
+ this.deferred = request.deferred;
192
+ this.s.once("readable", () => {
193
+ this.readDeferred(request);
194
+ });
195
+ return request.deferred.promise;
196
+ }
197
+ }
198
+ readDeferred(request) {
199
+ const readBuffer = this.s.read(request.length);
200
+ if (readBuffer) {
201
+ request.buffer.set(readBuffer, request.offset);
202
+ request.deferred.resolve(readBuffer.length);
203
+ this.deferred = null;
204
+ } else {
205
+ this.s.once("readable", () => {
206
+ this.readDeferred(request);
207
+ });
208
+ }
209
+ }
210
+ reject(err) {
211
+ this.endOfStream = true;
212
+ if (this.deferred) {
213
+ this.deferred.reject(err);
214
+ this.deferred = null;
215
+ }
216
+ }
217
+ }
218
+ exports.StreamReader = StreamReader;
219
+ });
220
+
221
+ // node_modules/peek-readable/lib/index.js
222
+ var require_lib = __commonJS((exports) => {
223
+ Object.defineProperty(exports, "__esModule", { value: true });
224
+ exports.StreamReader = exports.EndOfStreamError = undefined;
225
+ var EndOfFileStream_1 = require_EndOfFileStream();
226
+ Object.defineProperty(exports, "EndOfStreamError", { enumerable: true, get: function() {
227
+ return EndOfFileStream_1.EndOfStreamError;
228
+ } });
229
+ var StreamReader_1 = require_StreamReader();
230
+ Object.defineProperty(exports, "StreamReader", { enumerable: true, get: function() {
231
+ return StreamReader_1.StreamReader;
232
+ } });
233
+ });
234
+
235
+ // node_modules/strtok3/lib/AbstractTokenizer.js
236
+ var require_AbstractTokenizer = __commonJS((exports) => {
237
+ Object.defineProperty(exports, "__esModule", { value: true });
238
+ exports.AbstractTokenizer = undefined;
239
+ var peek_readable_1 = require_lib();
240
+
241
+ class AbstractTokenizer {
242
+ constructor(fileInfo) {
243
+ this.position = 0;
244
+ this.numBuffer = new Uint8Array(8);
245
+ this.fileInfo = fileInfo ? fileInfo : {};
246
+ }
247
+ async readToken(token, position = this.position) {
248
+ const uint8Array = Buffer.alloc(token.len);
249
+ const len = await this.readBuffer(uint8Array, { position });
250
+ if (len < token.len)
251
+ throw new peek_readable_1.EndOfStreamError;
252
+ return token.get(uint8Array, 0);
253
+ }
254
+ async peekToken(token, position = this.position) {
255
+ const uint8Array = Buffer.alloc(token.len);
256
+ const len = await this.peekBuffer(uint8Array, { position });
257
+ if (len < token.len)
258
+ throw new peek_readable_1.EndOfStreamError;
259
+ return token.get(uint8Array, 0);
260
+ }
261
+ async readNumber(token) {
262
+ const len = await this.readBuffer(this.numBuffer, { length: token.len });
263
+ if (len < token.len)
264
+ throw new peek_readable_1.EndOfStreamError;
265
+ return token.get(this.numBuffer, 0);
266
+ }
267
+ async peekNumber(token) {
268
+ const len = await this.peekBuffer(this.numBuffer, { length: token.len });
269
+ if (len < token.len)
270
+ throw new peek_readable_1.EndOfStreamError;
271
+ return token.get(this.numBuffer, 0);
272
+ }
273
+ async ignore(length) {
274
+ if (this.fileInfo.size !== undefined) {
275
+ const bytesLeft = this.fileInfo.size - this.position;
276
+ if (length > bytesLeft) {
277
+ this.position += bytesLeft;
278
+ return bytesLeft;
279
+ }
280
+ }
281
+ this.position += length;
282
+ return length;
283
+ }
284
+ async close() {}
285
+ normalizeOptions(uint8Array, options) {
286
+ if (options && options.position !== undefined && options.position < this.position) {
287
+ throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
288
+ }
289
+ if (options) {
290
+ return {
291
+ mayBeLess: options.mayBeLess === true,
292
+ offset: options.offset ? options.offset : 0,
293
+ length: options.length ? options.length : uint8Array.length - (options.offset ? options.offset : 0),
294
+ position: options.position ? options.position : this.position
295
+ };
296
+ }
297
+ return {
298
+ mayBeLess: false,
299
+ offset: 0,
300
+ length: uint8Array.length,
301
+ position: this.position
302
+ };
303
+ }
304
+ }
305
+ exports.AbstractTokenizer = AbstractTokenizer;
306
+ });
307
+
308
+ // node_modules/strtok3/lib/ReadStreamTokenizer.js
309
+ var require_ReadStreamTokenizer = __commonJS((exports) => {
310
+ Object.defineProperty(exports, "__esModule", { value: true });
311
+ exports.ReadStreamTokenizer = undefined;
312
+ var AbstractTokenizer_1 = require_AbstractTokenizer();
313
+ var peek_readable_1 = require_lib();
314
+ var maxBufferSize = 256000;
315
+
316
+ class ReadStreamTokenizer extends AbstractTokenizer_1.AbstractTokenizer {
317
+ constructor(stream2, fileInfo) {
318
+ super(fileInfo);
319
+ this.streamReader = new peek_readable_1.StreamReader(stream2);
320
+ }
321
+ async getFileInfo() {
322
+ return this.fileInfo;
323
+ }
324
+ async readBuffer(uint8Array, options) {
325
+ const normOptions = this.normalizeOptions(uint8Array, options);
326
+ const skipBytes = normOptions.position - this.position;
327
+ if (skipBytes > 0) {
328
+ await this.ignore(skipBytes);
329
+ return this.readBuffer(uint8Array, options);
330
+ } else if (skipBytes < 0) {
331
+ throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
332
+ }
333
+ if (normOptions.length === 0) {
334
+ return 0;
335
+ }
336
+ const bytesRead = await this.streamReader.read(uint8Array, normOptions.offset, normOptions.length);
337
+ this.position += bytesRead;
338
+ if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {
339
+ throw new peek_readable_1.EndOfStreamError;
340
+ }
341
+ return bytesRead;
342
+ }
343
+ async peekBuffer(uint8Array, options) {
344
+ const normOptions = this.normalizeOptions(uint8Array, options);
345
+ let bytesRead = 0;
346
+ if (normOptions.position) {
347
+ const skipBytes = normOptions.position - this.position;
348
+ if (skipBytes > 0) {
349
+ const skipBuffer = new Uint8Array(normOptions.length + skipBytes);
350
+ bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });
351
+ uint8Array.set(skipBuffer.subarray(skipBytes), normOptions.offset);
352
+ return bytesRead - skipBytes;
353
+ } else if (skipBytes < 0) {
354
+ throw new Error("Cannot peek from a negative offset in a stream");
355
+ }
356
+ }
357
+ if (normOptions.length > 0) {
358
+ try {
359
+ bytesRead = await this.streamReader.peek(uint8Array, normOptions.offset, normOptions.length);
360
+ } catch (err) {
361
+ if (options && options.mayBeLess && err instanceof peek_readable_1.EndOfStreamError) {
362
+ return 0;
363
+ }
364
+ throw err;
365
+ }
366
+ if (!normOptions.mayBeLess && bytesRead < normOptions.length) {
367
+ throw new peek_readable_1.EndOfStreamError;
368
+ }
369
+ }
370
+ return bytesRead;
371
+ }
372
+ async ignore(length) {
373
+ const bufSize = Math.min(maxBufferSize, length);
374
+ const buf = new Uint8Array(bufSize);
375
+ let totBytesRead = 0;
376
+ while (totBytesRead < length) {
377
+ const remaining = length - totBytesRead;
378
+ const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });
379
+ if (bytesRead < 0) {
380
+ return bytesRead;
381
+ }
382
+ totBytesRead += bytesRead;
383
+ }
384
+ return totBytesRead;
385
+ }
386
+ }
387
+ exports.ReadStreamTokenizer = ReadStreamTokenizer;
388
+ });
389
+
390
+ // node_modules/strtok3/lib/BufferTokenizer.js
391
+ var require_BufferTokenizer = __commonJS((exports) => {
392
+ Object.defineProperty(exports, "__esModule", { value: true });
393
+ exports.BufferTokenizer = undefined;
394
+ var peek_readable_1 = require_lib();
395
+ var AbstractTokenizer_1 = require_AbstractTokenizer();
396
+
397
+ class BufferTokenizer extends AbstractTokenizer_1.AbstractTokenizer {
398
+ constructor(uint8Array, fileInfo) {
399
+ super(fileInfo);
400
+ this.uint8Array = uint8Array;
401
+ this.fileInfo.size = this.fileInfo.size ? this.fileInfo.size : uint8Array.length;
402
+ }
403
+ async readBuffer(uint8Array, options) {
404
+ if (options && options.position) {
405
+ if (options.position < this.position) {
406
+ throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
407
+ }
408
+ this.position = options.position;
409
+ }
410
+ const bytesRead = await this.peekBuffer(uint8Array, options);
411
+ this.position += bytesRead;
412
+ return bytesRead;
413
+ }
414
+ async peekBuffer(uint8Array, options) {
415
+ const normOptions = this.normalizeOptions(uint8Array, options);
416
+ const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);
417
+ if (!normOptions.mayBeLess && bytes2read < normOptions.length) {
418
+ throw new peek_readable_1.EndOfStreamError;
419
+ } else {
420
+ uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read), normOptions.offset);
421
+ return bytes2read;
422
+ }
423
+ }
424
+ async close() {}
425
+ }
426
+ exports.BufferTokenizer = BufferTokenizer;
427
+ });
428
+
429
+ // node_modules/strtok3/lib/core.js
430
+ var require_core = __commonJS((exports) => {
431
+ Object.defineProperty(exports, "__esModule", { value: true });
432
+ exports.fromBuffer = exports.fromStream = exports.EndOfStreamError = undefined;
433
+ var ReadStreamTokenizer_1 = require_ReadStreamTokenizer();
434
+ var BufferTokenizer_1 = require_BufferTokenizer();
435
+ var peek_readable_1 = require_lib();
436
+ Object.defineProperty(exports, "EndOfStreamError", { enumerable: true, get: function() {
437
+ return peek_readable_1.EndOfStreamError;
438
+ } });
439
+ function fromStream(stream2, fileInfo) {
440
+ fileInfo = fileInfo ? fileInfo : {};
441
+ return new ReadStreamTokenizer_1.ReadStreamTokenizer(stream2, fileInfo);
442
+ }
443
+ exports.fromStream = fromStream;
444
+ function fromBuffer(uint8Array, fileInfo) {
445
+ return new BufferTokenizer_1.BufferTokenizer(uint8Array, fileInfo);
446
+ }
447
+ exports.fromBuffer = fromBuffer;
448
+ });
449
+
450
+ // node_modules/strtok3/lib/FileTokenizer.js
451
+ var require_FileTokenizer = __commonJS((exports) => {
452
+ Object.defineProperty(exports, "__esModule", { value: true });
453
+ exports.fromFile = exports.FileTokenizer = undefined;
454
+ var AbstractTokenizer_1 = require_AbstractTokenizer();
455
+ var peek_readable_1 = require_lib();
456
+ var fs = require_FsPromise();
457
+
458
+ class FileTokenizer extends AbstractTokenizer_1.AbstractTokenizer {
459
+ constructor(fd, fileInfo) {
460
+ super(fileInfo);
461
+ this.fd = fd;
462
+ }
463
+ async readBuffer(uint8Array, options) {
464
+ const normOptions = this.normalizeOptions(uint8Array, options);
465
+ this.position = normOptions.position;
466
+ const res = await fs.read(this.fd, uint8Array, normOptions.offset, normOptions.length, normOptions.position);
467
+ this.position += res.bytesRead;
468
+ if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {
469
+ throw new peek_readable_1.EndOfStreamError;
470
+ }
471
+ return res.bytesRead;
472
+ }
473
+ async peekBuffer(uint8Array, options) {
474
+ const normOptions = this.normalizeOptions(uint8Array, options);
475
+ const res = await fs.read(this.fd, uint8Array, normOptions.offset, normOptions.length, normOptions.position);
476
+ if (!normOptions.mayBeLess && res.bytesRead < normOptions.length) {
477
+ throw new peek_readable_1.EndOfStreamError;
478
+ }
479
+ return res.bytesRead;
480
+ }
481
+ async close() {
482
+ return fs.close(this.fd);
483
+ }
484
+ }
485
+ exports.FileTokenizer = FileTokenizer;
486
+ async function fromFile(sourceFilePath) {
487
+ const stat = await fs.stat(sourceFilePath);
488
+ if (!stat.isFile) {
489
+ throw new Error(`File not a file: ${sourceFilePath}`);
490
+ }
491
+ const fd = await fs.open(sourceFilePath, "r");
492
+ return new FileTokenizer(fd, { path: sourceFilePath, size: stat.size });
493
+ }
494
+ exports.fromFile = fromFile;
495
+ });
496
+
497
+ // node_modules/strtok3/lib/index.js
498
+ var require_lib2 = __commonJS((exports) => {
499
+ Object.defineProperty(exports, "__esModule", { value: true });
500
+ exports.fromStream = exports.fromBuffer = exports.EndOfStreamError = exports.fromFile = undefined;
501
+ var fs = require_FsPromise();
502
+ var core = require_core();
503
+ var FileTokenizer_1 = require_FileTokenizer();
504
+ Object.defineProperty(exports, "fromFile", { enumerable: true, get: function() {
505
+ return FileTokenizer_1.fromFile;
506
+ } });
507
+ var core_1 = require_core();
508
+ Object.defineProperty(exports, "EndOfStreamError", { enumerable: true, get: function() {
509
+ return core_1.EndOfStreamError;
510
+ } });
511
+ Object.defineProperty(exports, "fromBuffer", { enumerable: true, get: function() {
512
+ return core_1.fromBuffer;
513
+ } });
514
+ async function fromStream(stream2, fileInfo) {
515
+ fileInfo = fileInfo ? fileInfo : {};
516
+ if (stream2.path) {
517
+ const stat = await fs.stat(stream2.path);
518
+ fileInfo.path = stream2.path;
519
+ fileInfo.size = stat.size;
520
+ }
521
+ return core.fromStream(stream2, fileInfo);
522
+ }
523
+ exports.fromStream = fromStream;
524
+ });
525
+
526
+ // node_modules/ieee754/index.js
527
+ var require_ieee754 = __commonJS((exports) => {
528
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
529
+ exports.read = function(buffer, offset, isLE, mLen, nBytes) {
530
+ var e, m;
531
+ var eLen = nBytes * 8 - mLen - 1;
532
+ var eMax = (1 << eLen) - 1;
533
+ var eBias = eMax >> 1;
534
+ var nBits = -7;
535
+ var i = isLE ? nBytes - 1 : 0;
536
+ var d = isLE ? -1 : 1;
537
+ var s = buffer[offset + i];
538
+ i += d;
539
+ e = s & (1 << -nBits) - 1;
540
+ s >>= -nBits;
541
+ nBits += eLen;
542
+ for (;nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
543
+ m = e & (1 << -nBits) - 1;
544
+ e >>= -nBits;
545
+ nBits += mLen;
546
+ for (;nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
547
+ if (e === 0) {
548
+ e = 1 - eBias;
549
+ } else if (e === eMax) {
550
+ return m ? NaN : (s ? -1 : 1) * Infinity;
551
+ } else {
552
+ m = m + Math.pow(2, mLen);
553
+ e = e - eBias;
554
+ }
555
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
556
+ };
557
+ exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {
558
+ var e, m, c;
559
+ var eLen = nBytes * 8 - mLen - 1;
560
+ var eMax = (1 << eLen) - 1;
561
+ var eBias = eMax >> 1;
562
+ var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
563
+ var i = isLE ? 0 : nBytes - 1;
564
+ var d = isLE ? 1 : -1;
565
+ var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
566
+ value = Math.abs(value);
567
+ if (isNaN(value) || value === Infinity) {
568
+ m = isNaN(value) ? 1 : 0;
569
+ e = eMax;
570
+ } else {
571
+ e = Math.floor(Math.log(value) / Math.LN2);
572
+ if (value * (c = Math.pow(2, -e)) < 1) {
573
+ e--;
574
+ c *= 2;
575
+ }
576
+ if (e + eBias >= 1) {
577
+ value += rt / c;
578
+ } else {
579
+ value += rt * Math.pow(2, 1 - eBias);
580
+ }
581
+ if (value * c >= 2) {
582
+ e++;
583
+ c /= 2;
584
+ }
585
+ if (e + eBias >= eMax) {
586
+ m = 0;
587
+ e = eMax;
588
+ } else if (e + eBias >= 1) {
589
+ m = (value * c - 1) * Math.pow(2, mLen);
590
+ e = e + eBias;
591
+ } else {
592
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
593
+ e = 0;
594
+ }
595
+ }
596
+ for (;mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {}
597
+ e = e << mLen | m;
598
+ eLen += mLen;
599
+ for (;eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {}
600
+ buffer[offset + i - d] |= s * 128;
601
+ };
602
+ });
603
+
604
+ // node_modules/token-types/lib/index.js
605
+ var require_lib3 = __commonJS((exports) => {
606
+ Object.defineProperty(exports, "__esModule", { value: true });
607
+ exports.AnsiStringType = exports.StringType = exports.BufferType = exports.Uint8ArrayType = exports.IgnoreType = exports.Float80_LE = exports.Float80_BE = exports.Float64_LE = exports.Float64_BE = exports.Float32_LE = exports.Float32_BE = exports.Float16_LE = exports.Float16_BE = exports.INT64_BE = exports.UINT64_BE = exports.INT64_LE = exports.UINT64_LE = exports.INT32_LE = exports.INT32_BE = exports.INT24_BE = exports.INT24_LE = exports.INT16_LE = exports.INT16_BE = exports.INT8 = exports.UINT32_BE = exports.UINT32_LE = exports.UINT24_BE = exports.UINT24_LE = exports.UINT16_BE = exports.UINT16_LE = exports.UINT8 = undefined;
608
+ var ieee754 = require_ieee754();
609
+ function dv(array) {
610
+ return new DataView(array.buffer, array.byteOffset);
611
+ }
612
+ exports.UINT8 = {
613
+ len: 1,
614
+ get(array, offset) {
615
+ return dv(array).getUint8(offset);
616
+ },
617
+ put(array, offset, value) {
618
+ dv(array).setUint8(offset, value);
619
+ return offset + 1;
620
+ }
621
+ };
622
+ exports.UINT16_LE = {
623
+ len: 2,
624
+ get(array, offset) {
625
+ return dv(array).getUint16(offset, true);
626
+ },
627
+ put(array, offset, value) {
628
+ dv(array).setUint16(offset, value, true);
629
+ return offset + 2;
630
+ }
631
+ };
632
+ exports.UINT16_BE = {
633
+ len: 2,
634
+ get(array, offset) {
635
+ return dv(array).getUint16(offset);
636
+ },
637
+ put(array, offset, value) {
638
+ dv(array).setUint16(offset, value);
639
+ return offset + 2;
640
+ }
641
+ };
642
+ exports.UINT24_LE = {
643
+ len: 3,
644
+ get(array, offset) {
645
+ const dataView = dv(array);
646
+ return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);
647
+ },
648
+ put(array, offset, value) {
649
+ const dataView = dv(array);
650
+ dataView.setUint8(offset, value & 255);
651
+ dataView.setUint16(offset + 1, value >> 8, true);
652
+ return offset + 3;
653
+ }
654
+ };
655
+ exports.UINT24_BE = {
656
+ len: 3,
657
+ get(array, offset) {
658
+ const dataView = dv(array);
659
+ return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);
660
+ },
661
+ put(array, offset, value) {
662
+ const dataView = dv(array);
663
+ dataView.setUint16(offset, value >> 8);
664
+ dataView.setUint8(offset + 2, value & 255);
665
+ return offset + 3;
666
+ }
667
+ };
668
+ exports.UINT32_LE = {
669
+ len: 4,
670
+ get(array, offset) {
671
+ return dv(array).getUint32(offset, true);
672
+ },
673
+ put(array, offset, value) {
674
+ dv(array).setUint32(offset, value, true);
675
+ return offset + 4;
676
+ }
677
+ };
678
+ exports.UINT32_BE = {
679
+ len: 4,
680
+ get(array, offset) {
681
+ return dv(array).getUint32(offset);
682
+ },
683
+ put(array, offset, value) {
684
+ dv(array).setUint32(offset, value);
685
+ return offset + 4;
686
+ }
687
+ };
688
+ exports.INT8 = {
689
+ len: 1,
690
+ get(array, offset) {
691
+ return dv(array).getInt8(offset);
692
+ },
693
+ put(array, offset, value) {
694
+ dv(array).setInt8(offset, value);
695
+ return offset + 1;
696
+ }
697
+ };
698
+ exports.INT16_BE = {
699
+ len: 2,
700
+ get(array, offset) {
701
+ return dv(array).getInt16(offset);
702
+ },
703
+ put(array, offset, value) {
704
+ dv(array).setInt16(offset, value);
705
+ return offset + 2;
706
+ }
707
+ };
708
+ exports.INT16_LE = {
709
+ len: 2,
710
+ get(array, offset) {
711
+ return dv(array).getInt16(offset, true);
712
+ },
713
+ put(array, offset, value) {
714
+ dv(array).setInt16(offset, value, true);
715
+ return offset + 2;
716
+ }
717
+ };
718
+ exports.INT24_LE = {
719
+ len: 3,
720
+ get(array, offset) {
721
+ const unsigned = exports.UINT24_LE.get(array, offset);
722
+ return unsigned > 8388607 ? unsigned - 16777216 : unsigned;
723
+ },
724
+ put(array, offset, value) {
725
+ const dataView = dv(array);
726
+ dataView.setUint8(offset, value & 255);
727
+ dataView.setUint16(offset + 1, value >> 8, true);
728
+ return offset + 3;
729
+ }
730
+ };
731
+ exports.INT24_BE = {
732
+ len: 3,
733
+ get(array, offset) {
734
+ const unsigned = exports.UINT24_BE.get(array, offset);
735
+ return unsigned > 8388607 ? unsigned - 16777216 : unsigned;
736
+ },
737
+ put(array, offset, value) {
738
+ const dataView = dv(array);
739
+ dataView.setUint16(offset, value >> 8);
740
+ dataView.setUint8(offset + 2, value & 255);
741
+ return offset + 3;
742
+ }
743
+ };
744
+ exports.INT32_BE = {
745
+ len: 4,
746
+ get(array, offset) {
747
+ return dv(array).getInt32(offset);
748
+ },
749
+ put(array, offset, value) {
750
+ dv(array).setInt32(offset, value);
751
+ return offset + 4;
752
+ }
753
+ };
754
+ exports.INT32_LE = {
755
+ len: 4,
756
+ get(array, offset) {
757
+ return dv(array).getInt32(offset, true);
758
+ },
759
+ put(array, offset, value) {
760
+ dv(array).setInt32(offset, value, true);
761
+ return offset + 4;
762
+ }
763
+ };
764
+ exports.UINT64_LE = {
765
+ len: 8,
766
+ get(array, offset) {
767
+ return dv(array).getBigUint64(offset, true);
768
+ },
769
+ put(array, offset, value) {
770
+ dv(array).setBigUint64(offset, value, true);
771
+ return offset + 8;
772
+ }
773
+ };
774
+ exports.INT64_LE = {
775
+ len: 8,
776
+ get(array, offset) {
777
+ return dv(array).getBigInt64(offset, true);
778
+ },
779
+ put(array, offset, value) {
780
+ dv(array).setBigInt64(offset, value, true);
781
+ return offset + 8;
782
+ }
783
+ };
784
+ exports.UINT64_BE = {
785
+ len: 8,
786
+ get(array, offset) {
787
+ return dv(array).getBigUint64(offset);
788
+ },
789
+ put(array, offset, value) {
790
+ dv(array).setBigUint64(offset, value);
791
+ return offset + 8;
792
+ }
793
+ };
794
+ exports.INT64_BE = {
795
+ len: 8,
796
+ get(array, offset) {
797
+ return dv(array).getBigInt64(offset);
798
+ },
799
+ put(array, offset, value) {
800
+ dv(array).setBigInt64(offset, value);
801
+ return offset + 8;
802
+ }
803
+ };
804
+ exports.Float16_BE = {
805
+ len: 2,
806
+ get(dataView, offset) {
807
+ return ieee754.read(dataView, offset, false, 10, this.len);
808
+ },
809
+ put(dataView, offset, value) {
810
+ ieee754.write(dataView, value, offset, false, 10, this.len);
811
+ return offset + this.len;
812
+ }
813
+ };
814
+ exports.Float16_LE = {
815
+ len: 2,
816
+ get(array, offset) {
817
+ return ieee754.read(array, offset, true, 10, this.len);
818
+ },
819
+ put(array, offset, value) {
820
+ ieee754.write(array, value, offset, true, 10, this.len);
821
+ return offset + this.len;
822
+ }
823
+ };
824
+ exports.Float32_BE = {
825
+ len: 4,
826
+ get(array, offset) {
827
+ return dv(array).getFloat32(offset);
828
+ },
829
+ put(array, offset, value) {
830
+ dv(array).setFloat32(offset, value);
831
+ return offset + 4;
832
+ }
833
+ };
834
+ exports.Float32_LE = {
835
+ len: 4,
836
+ get(array, offset) {
837
+ return dv(array).getFloat32(offset, true);
838
+ },
839
+ put(array, offset, value) {
840
+ dv(array).setFloat32(offset, value, true);
841
+ return offset + 4;
842
+ }
843
+ };
844
+ exports.Float64_BE = {
845
+ len: 8,
846
+ get(array, offset) {
847
+ return dv(array).getFloat64(offset);
848
+ },
849
+ put(array, offset, value) {
850
+ dv(array).setFloat64(offset, value);
851
+ return offset + 8;
852
+ }
853
+ };
854
+ exports.Float64_LE = {
855
+ len: 8,
856
+ get(array, offset) {
857
+ return dv(array).getFloat64(offset, true);
858
+ },
859
+ put(array, offset, value) {
860
+ dv(array).setFloat64(offset, value, true);
861
+ return offset + 8;
862
+ }
863
+ };
864
+ exports.Float80_BE = {
865
+ len: 10,
866
+ get(array, offset) {
867
+ return ieee754.read(array, offset, false, 63, this.len);
868
+ },
869
+ put(array, offset, value) {
870
+ ieee754.write(array, value, offset, false, 63, this.len);
871
+ return offset + this.len;
872
+ }
873
+ };
874
+ exports.Float80_LE = {
875
+ len: 10,
876
+ get(array, offset) {
877
+ return ieee754.read(array, offset, true, 63, this.len);
878
+ },
879
+ put(array, offset, value) {
880
+ ieee754.write(array, value, offset, true, 63, this.len);
881
+ return offset + this.len;
882
+ }
883
+ };
884
+
885
+ class IgnoreType {
886
+ constructor(len) {
887
+ this.len = len;
888
+ }
889
+ get(array, off) {}
890
+ }
891
+ exports.IgnoreType = IgnoreType;
892
+
893
+ class Uint8ArrayType {
894
+ constructor(len) {
895
+ this.len = len;
896
+ }
897
+ get(array, offset) {
898
+ return array.subarray(offset, offset + this.len);
899
+ }
900
+ }
901
+ exports.Uint8ArrayType = Uint8ArrayType;
902
+
903
+ class BufferType {
904
+ constructor(len) {
905
+ this.len = len;
906
+ }
907
+ get(uint8Array, off) {
908
+ return Buffer.from(uint8Array.subarray(off, off + this.len));
909
+ }
910
+ }
911
+ exports.BufferType = BufferType;
912
+
913
+ class StringType {
914
+ constructor(len, encoding) {
915
+ this.len = len;
916
+ this.encoding = encoding;
917
+ }
918
+ get(uint8Array, offset) {
919
+ return Buffer.from(uint8Array).toString(this.encoding, offset, offset + this.len);
920
+ }
921
+ }
922
+ exports.StringType = StringType;
923
+
924
+ class AnsiStringType {
925
+ constructor(len) {
926
+ this.len = len;
927
+ }
928
+ static decode(buffer, offset, until) {
929
+ let str = "";
930
+ for (let i = offset;i < until; ++i) {
931
+ str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));
932
+ }
933
+ return str;
934
+ }
935
+ static inRange(a, min, max) {
936
+ return min <= a && a <= max;
937
+ }
938
+ static codePointToString(cp) {
939
+ if (cp <= 65535) {
940
+ return String.fromCharCode(cp);
941
+ } else {
942
+ cp -= 65536;
943
+ return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);
944
+ }
945
+ }
946
+ static singleByteDecoder(bite) {
947
+ if (AnsiStringType.inRange(bite, 0, 127)) {
948
+ return bite;
949
+ }
950
+ const codePoint = AnsiStringType.windows1252[bite - 128];
951
+ if (codePoint === null) {
952
+ throw Error("invaliding encoding");
953
+ }
954
+ return codePoint;
955
+ }
956
+ get(buffer, offset = 0) {
957
+ return AnsiStringType.decode(buffer, offset, offset + this.len);
958
+ }
959
+ }
960
+ exports.AnsiStringType = AnsiStringType;
961
+ AnsiStringType.windows1252 = [
962
+ 8364,
963
+ 129,
964
+ 8218,
965
+ 402,
966
+ 8222,
967
+ 8230,
968
+ 8224,
969
+ 8225,
970
+ 710,
971
+ 8240,
972
+ 352,
973
+ 8249,
974
+ 338,
975
+ 141,
976
+ 381,
977
+ 143,
978
+ 144,
979
+ 8216,
980
+ 8217,
981
+ 8220,
982
+ 8221,
983
+ 8226,
984
+ 8211,
985
+ 8212,
986
+ 732,
987
+ 8482,
988
+ 353,
989
+ 8250,
990
+ 339,
991
+ 157,
992
+ 382,
993
+ 376,
994
+ 160,
995
+ 161,
996
+ 162,
997
+ 163,
998
+ 164,
999
+ 165,
1000
+ 166,
1001
+ 167,
1002
+ 168,
1003
+ 169,
1004
+ 170,
1005
+ 171,
1006
+ 172,
1007
+ 173,
1008
+ 174,
1009
+ 175,
1010
+ 176,
1011
+ 177,
1012
+ 178,
1013
+ 179,
1014
+ 180,
1015
+ 181,
1016
+ 182,
1017
+ 183,
1018
+ 184,
1019
+ 185,
1020
+ 186,
1021
+ 187,
1022
+ 188,
1023
+ 189,
1024
+ 190,
1025
+ 191,
1026
+ 192,
1027
+ 193,
1028
+ 194,
1029
+ 195,
1030
+ 196,
1031
+ 197,
1032
+ 198,
1033
+ 199,
1034
+ 200,
1035
+ 201,
1036
+ 202,
1037
+ 203,
1038
+ 204,
1039
+ 205,
1040
+ 206,
1041
+ 207,
1042
+ 208,
1043
+ 209,
1044
+ 210,
1045
+ 211,
1046
+ 212,
1047
+ 213,
1048
+ 214,
1049
+ 215,
1050
+ 216,
1051
+ 217,
1052
+ 218,
1053
+ 219,
1054
+ 220,
1055
+ 221,
1056
+ 222,
1057
+ 223,
1058
+ 224,
1059
+ 225,
1060
+ 226,
1061
+ 227,
1062
+ 228,
1063
+ 229,
1064
+ 230,
1065
+ 231,
1066
+ 232,
1067
+ 233,
1068
+ 234,
1069
+ 235,
1070
+ 236,
1071
+ 237,
1072
+ 238,
1073
+ 239,
1074
+ 240,
1075
+ 241,
1076
+ 242,
1077
+ 243,
1078
+ 244,
1079
+ 245,
1080
+ 246,
1081
+ 247,
1082
+ 248,
1083
+ 249,
1084
+ 250,
1085
+ 251,
1086
+ 252,
1087
+ 253,
1088
+ 254,
1089
+ 255
1090
+ ];
1091
+ });
1092
+
1093
+ // node_modules/file-type/util.js
1094
+ var require_util = __commonJS((exports) => {
1095
+ exports.stringToBytes = (string) => [...string].map((character) => character.charCodeAt(0));
1096
+ exports.tarHeaderChecksumMatches = (buffer, offset = 0) => {
1097
+ const readSum = parseInt(buffer.toString("utf8", 148, 154).replace(/\0.*$/, "").trim(), 8);
1098
+ if (isNaN(readSum)) {
1099
+ return false;
1100
+ }
1101
+ let sum = 8 * 32;
1102
+ for (let i = offset;i < offset + 148; i++) {
1103
+ sum += buffer[i];
1104
+ }
1105
+ for (let i = offset + 156;i < offset + 512; i++) {
1106
+ sum += buffer[i];
1107
+ }
1108
+ return readSum === sum;
1109
+ };
1110
+ exports.uint32SyncSafeToken = {
1111
+ get: (buffer, offset) => {
1112
+ return buffer[offset + 3] & 127 | buffer[offset + 2] << 7 | buffer[offset + 1] << 14 | buffer[offset] << 21;
1113
+ },
1114
+ len: 4
1115
+ };
1116
+ });
1117
+
1118
+ // node_modules/file-type/supported.js
1119
+ var require_supported = __commonJS((exports, module) => {
1120
+ module.exports = {
1121
+ extensions: [
1122
+ "jpg",
1123
+ "png",
1124
+ "apng",
1125
+ "gif",
1126
+ "webp",
1127
+ "flif",
1128
+ "xcf",
1129
+ "cr2",
1130
+ "cr3",
1131
+ "orf",
1132
+ "arw",
1133
+ "dng",
1134
+ "nef",
1135
+ "rw2",
1136
+ "raf",
1137
+ "tif",
1138
+ "bmp",
1139
+ "icns",
1140
+ "jxr",
1141
+ "psd",
1142
+ "indd",
1143
+ "zip",
1144
+ "tar",
1145
+ "rar",
1146
+ "gz",
1147
+ "bz2",
1148
+ "7z",
1149
+ "dmg",
1150
+ "mp4",
1151
+ "mid",
1152
+ "mkv",
1153
+ "webm",
1154
+ "mov",
1155
+ "avi",
1156
+ "mpg",
1157
+ "mp2",
1158
+ "mp3",
1159
+ "m4a",
1160
+ "oga",
1161
+ "ogg",
1162
+ "ogv",
1163
+ "opus",
1164
+ "flac",
1165
+ "wav",
1166
+ "spx",
1167
+ "amr",
1168
+ "pdf",
1169
+ "epub",
1170
+ "exe",
1171
+ "swf",
1172
+ "rtf",
1173
+ "wasm",
1174
+ "woff",
1175
+ "woff2",
1176
+ "eot",
1177
+ "ttf",
1178
+ "otf",
1179
+ "ico",
1180
+ "flv",
1181
+ "ps",
1182
+ "xz",
1183
+ "sqlite",
1184
+ "nes",
1185
+ "crx",
1186
+ "xpi",
1187
+ "cab",
1188
+ "deb",
1189
+ "ar",
1190
+ "rpm",
1191
+ "Z",
1192
+ "lz",
1193
+ "cfb",
1194
+ "mxf",
1195
+ "mts",
1196
+ "blend",
1197
+ "bpg",
1198
+ "docx",
1199
+ "pptx",
1200
+ "xlsx",
1201
+ "3gp",
1202
+ "3g2",
1203
+ "jp2",
1204
+ "jpm",
1205
+ "jpx",
1206
+ "mj2",
1207
+ "aif",
1208
+ "qcp",
1209
+ "odt",
1210
+ "ods",
1211
+ "odp",
1212
+ "xml",
1213
+ "mobi",
1214
+ "heic",
1215
+ "cur",
1216
+ "ktx",
1217
+ "ape",
1218
+ "wv",
1219
+ "dcm",
1220
+ "ics",
1221
+ "glb",
1222
+ "pcap",
1223
+ "dsf",
1224
+ "lnk",
1225
+ "alias",
1226
+ "voc",
1227
+ "ac3",
1228
+ "m4v",
1229
+ "m4p",
1230
+ "m4b",
1231
+ "f4v",
1232
+ "f4p",
1233
+ "f4b",
1234
+ "f4a",
1235
+ "mie",
1236
+ "asf",
1237
+ "ogm",
1238
+ "ogx",
1239
+ "mpc",
1240
+ "arrow",
1241
+ "shp",
1242
+ "aac",
1243
+ "mp1",
1244
+ "it",
1245
+ "s3m",
1246
+ "xm",
1247
+ "ai",
1248
+ "skp",
1249
+ "avif",
1250
+ "eps",
1251
+ "lzh",
1252
+ "pgp",
1253
+ "asar",
1254
+ "stl",
1255
+ "chm",
1256
+ "3mf",
1257
+ "zst",
1258
+ "jxl",
1259
+ "vcf"
1260
+ ],
1261
+ mimeTypes: [
1262
+ "image/jpeg",
1263
+ "image/png",
1264
+ "image/gif",
1265
+ "image/webp",
1266
+ "image/flif",
1267
+ "image/x-xcf",
1268
+ "image/x-canon-cr2",
1269
+ "image/x-canon-cr3",
1270
+ "image/tiff",
1271
+ "image/bmp",
1272
+ "image/vnd.ms-photo",
1273
+ "image/vnd.adobe.photoshop",
1274
+ "application/x-indesign",
1275
+ "application/epub+zip",
1276
+ "application/x-xpinstall",
1277
+ "application/vnd.oasis.opendocument.text",
1278
+ "application/vnd.oasis.opendocument.spreadsheet",
1279
+ "application/vnd.oasis.opendocument.presentation",
1280
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
1281
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
1282
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
1283
+ "application/zip",
1284
+ "application/x-tar",
1285
+ "application/x-rar-compressed",
1286
+ "application/gzip",
1287
+ "application/x-bzip2",
1288
+ "application/x-7z-compressed",
1289
+ "application/x-apple-diskimage",
1290
+ "application/x-apache-arrow",
1291
+ "video/mp4",
1292
+ "audio/midi",
1293
+ "video/x-matroska",
1294
+ "video/webm",
1295
+ "video/quicktime",
1296
+ "video/vnd.avi",
1297
+ "audio/vnd.wave",
1298
+ "audio/qcelp",
1299
+ "audio/x-ms-asf",
1300
+ "video/x-ms-asf",
1301
+ "application/vnd.ms-asf",
1302
+ "video/mpeg",
1303
+ "video/3gpp",
1304
+ "audio/mpeg",
1305
+ "audio/mp4",
1306
+ "audio/opus",
1307
+ "video/ogg",
1308
+ "audio/ogg",
1309
+ "application/ogg",
1310
+ "audio/x-flac",
1311
+ "audio/ape",
1312
+ "audio/wavpack",
1313
+ "audio/amr",
1314
+ "application/pdf",
1315
+ "application/x-msdownload",
1316
+ "application/x-shockwave-flash",
1317
+ "application/rtf",
1318
+ "application/wasm",
1319
+ "font/woff",
1320
+ "font/woff2",
1321
+ "application/vnd.ms-fontobject",
1322
+ "font/ttf",
1323
+ "font/otf",
1324
+ "image/x-icon",
1325
+ "video/x-flv",
1326
+ "application/postscript",
1327
+ "application/eps",
1328
+ "application/x-xz",
1329
+ "application/x-sqlite3",
1330
+ "application/x-nintendo-nes-rom",
1331
+ "application/x-google-chrome-extension",
1332
+ "application/vnd.ms-cab-compressed",
1333
+ "application/x-deb",
1334
+ "application/x-unix-archive",
1335
+ "application/x-rpm",
1336
+ "application/x-compress",
1337
+ "application/x-lzip",
1338
+ "application/x-cfb",
1339
+ "application/x-mie",
1340
+ "application/mxf",
1341
+ "video/mp2t",
1342
+ "application/x-blender",
1343
+ "image/bpg",
1344
+ "image/jp2",
1345
+ "image/jpx",
1346
+ "image/jpm",
1347
+ "image/mj2",
1348
+ "audio/aiff",
1349
+ "application/xml",
1350
+ "application/x-mobipocket-ebook",
1351
+ "image/heif",
1352
+ "image/heif-sequence",
1353
+ "image/heic",
1354
+ "image/heic-sequence",
1355
+ "image/icns",
1356
+ "image/ktx",
1357
+ "application/dicom",
1358
+ "audio/x-musepack",
1359
+ "text/calendar",
1360
+ "text/vcard",
1361
+ "model/gltf-binary",
1362
+ "application/vnd.tcpdump.pcap",
1363
+ "audio/x-dsf",
1364
+ "application/x.ms.shortcut",
1365
+ "application/x.apple.alias",
1366
+ "audio/x-voc",
1367
+ "audio/vnd.dolby.dd-raw",
1368
+ "audio/x-m4a",
1369
+ "image/apng",
1370
+ "image/x-olympus-orf",
1371
+ "image/x-sony-arw",
1372
+ "image/x-adobe-dng",
1373
+ "image/x-nikon-nef",
1374
+ "image/x-panasonic-rw2",
1375
+ "image/x-fujifilm-raf",
1376
+ "video/x-m4v",
1377
+ "video/3gpp2",
1378
+ "application/x-esri-shape",
1379
+ "audio/aac",
1380
+ "audio/x-it",
1381
+ "audio/x-s3m",
1382
+ "audio/x-xm",
1383
+ "video/MP1S",
1384
+ "video/MP2P",
1385
+ "application/vnd.sketchup.skp",
1386
+ "image/avif",
1387
+ "application/x-lzh-compressed",
1388
+ "application/pgp-encrypted",
1389
+ "application/x-asar",
1390
+ "model/stl",
1391
+ "application/vnd.ms-htmlhelp",
1392
+ "model/3mf",
1393
+ "image/jxl",
1394
+ "application/zstd"
1395
+ ]
1396
+ };
1397
+ });
1398
+
1399
+ // node_modules/file-type/core.js
1400
+ var require_core2 = __commonJS((exports, module) => {
1401
+ var Token = require_lib3();
1402
+ var strtok3 = require_core();
1403
+ var {
1404
+ stringToBytes,
1405
+ tarHeaderChecksumMatches,
1406
+ uint32SyncSafeToken
1407
+ } = require_util();
1408
+ var supported = require_supported();
1409
+ var minimumBytes = 4100;
1410
+ async function fromStream(stream3) {
1411
+ const tokenizer = await strtok3.fromStream(stream3);
1412
+ try {
1413
+ return await fromTokenizer(tokenizer);
1414
+ } finally {
1415
+ await tokenizer.close();
1416
+ }
1417
+ }
1418
+ async function fromBuffer(input) {
1419
+ if (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) {
1420
+ throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof input}\``);
1421
+ }
1422
+ const buffer = input instanceof Buffer ? input : Buffer.from(input);
1423
+ if (!(buffer && buffer.length > 1)) {
1424
+ return;
1425
+ }
1426
+ const tokenizer = strtok3.fromBuffer(buffer);
1427
+ return fromTokenizer(tokenizer);
1428
+ }
1429
+ function _check(buffer, headers, options) {
1430
+ options = {
1431
+ offset: 0,
1432
+ ...options
1433
+ };
1434
+ for (const [index, header] of headers.entries()) {
1435
+ if (options.mask) {
1436
+ if (header !== (options.mask[index] & buffer[index + options.offset])) {
1437
+ return false;
1438
+ }
1439
+ } else if (header !== buffer[index + options.offset]) {
1440
+ return false;
1441
+ }
1442
+ }
1443
+ return true;
1444
+ }
1445
+ async function fromTokenizer(tokenizer) {
1446
+ try {
1447
+ return _fromTokenizer(tokenizer);
1448
+ } catch (error) {
1449
+ if (!(error instanceof strtok3.EndOfStreamError)) {
1450
+ throw error;
1451
+ }
1452
+ }
1453
+ }
1454
+ async function _fromTokenizer(tokenizer) {
1455
+ let buffer = Buffer.alloc(minimumBytes);
1456
+ const bytesRead = 12;
1457
+ const check = (header, options) => _check(buffer, header, options);
1458
+ const checkString = (header, options) => check(stringToBytes(header), options);
1459
+ if (!tokenizer.fileInfo.size) {
1460
+ tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;
1461
+ }
1462
+ await tokenizer.peekBuffer(buffer, { length: bytesRead, mayBeLess: true });
1463
+ if (check([66, 77])) {
1464
+ return {
1465
+ ext: "bmp",
1466
+ mime: "image/bmp"
1467
+ };
1468
+ }
1469
+ if (check([11, 119])) {
1470
+ return {
1471
+ ext: "ac3",
1472
+ mime: "audio/vnd.dolby.dd-raw"
1473
+ };
1474
+ }
1475
+ if (check([120, 1])) {
1476
+ return {
1477
+ ext: "dmg",
1478
+ mime: "application/x-apple-diskimage"
1479
+ };
1480
+ }
1481
+ if (check([77, 90])) {
1482
+ return {
1483
+ ext: "exe",
1484
+ mime: "application/x-msdownload"
1485
+ };
1486
+ }
1487
+ if (check([37, 33])) {
1488
+ await tokenizer.peekBuffer(buffer, { length: 24, mayBeLess: true });
1489
+ if (checkString("PS-Adobe-", { offset: 2 }) && checkString(" EPSF-", { offset: 14 })) {
1490
+ return {
1491
+ ext: "eps",
1492
+ mime: "application/eps"
1493
+ };
1494
+ }
1495
+ return {
1496
+ ext: "ps",
1497
+ mime: "application/postscript"
1498
+ };
1499
+ }
1500
+ if (check([31, 160]) || check([31, 157])) {
1501
+ return {
1502
+ ext: "Z",
1503
+ mime: "application/x-compress"
1504
+ };
1505
+ }
1506
+ if (check([255, 216, 255])) {
1507
+ return {
1508
+ ext: "jpg",
1509
+ mime: "image/jpeg"
1510
+ };
1511
+ }
1512
+ if (check([73, 73, 188])) {
1513
+ return {
1514
+ ext: "jxr",
1515
+ mime: "image/vnd.ms-photo"
1516
+ };
1517
+ }
1518
+ if (check([31, 139, 8])) {
1519
+ return {
1520
+ ext: "gz",
1521
+ mime: "application/gzip"
1522
+ };
1523
+ }
1524
+ if (check([66, 90, 104])) {
1525
+ return {
1526
+ ext: "bz2",
1527
+ mime: "application/x-bzip2"
1528
+ };
1529
+ }
1530
+ if (checkString("ID3")) {
1531
+ await tokenizer.ignore(6);
1532
+ const id3HeaderLen = await tokenizer.readToken(uint32SyncSafeToken);
1533
+ if (tokenizer.position + id3HeaderLen > tokenizer.fileInfo.size) {
1534
+ return {
1535
+ ext: "mp3",
1536
+ mime: "audio/mpeg"
1537
+ };
1538
+ }
1539
+ await tokenizer.ignore(id3HeaderLen);
1540
+ return fromTokenizer(tokenizer);
1541
+ }
1542
+ if (checkString("MP+")) {
1543
+ return {
1544
+ ext: "mpc",
1545
+ mime: "audio/x-musepack"
1546
+ };
1547
+ }
1548
+ if ((buffer[0] === 67 || buffer[0] === 70) && check([87, 83], { offset: 1 })) {
1549
+ return {
1550
+ ext: "swf",
1551
+ mime: "application/x-shockwave-flash"
1552
+ };
1553
+ }
1554
+ if (check([71, 73, 70])) {
1555
+ return {
1556
+ ext: "gif",
1557
+ mime: "image/gif"
1558
+ };
1559
+ }
1560
+ if (checkString("FLIF")) {
1561
+ return {
1562
+ ext: "flif",
1563
+ mime: "image/flif"
1564
+ };
1565
+ }
1566
+ if (checkString("8BPS")) {
1567
+ return {
1568
+ ext: "psd",
1569
+ mime: "image/vnd.adobe.photoshop"
1570
+ };
1571
+ }
1572
+ if (checkString("WEBP", { offset: 8 })) {
1573
+ return {
1574
+ ext: "webp",
1575
+ mime: "image/webp"
1576
+ };
1577
+ }
1578
+ if (checkString("MPCK")) {
1579
+ return {
1580
+ ext: "mpc",
1581
+ mime: "audio/x-musepack"
1582
+ };
1583
+ }
1584
+ if (checkString("FORM")) {
1585
+ return {
1586
+ ext: "aif",
1587
+ mime: "audio/aiff"
1588
+ };
1589
+ }
1590
+ if (checkString("icns", { offset: 0 })) {
1591
+ return {
1592
+ ext: "icns",
1593
+ mime: "image/icns"
1594
+ };
1595
+ }
1596
+ if (check([80, 75, 3, 4])) {
1597
+ try {
1598
+ while (tokenizer.position + 30 < tokenizer.fileInfo.size) {
1599
+ await tokenizer.readBuffer(buffer, { length: 30 });
1600
+ const zipHeader = {
1601
+ compressedSize: buffer.readUInt32LE(18),
1602
+ uncompressedSize: buffer.readUInt32LE(22),
1603
+ filenameLength: buffer.readUInt16LE(26),
1604
+ extraFieldLength: buffer.readUInt16LE(28)
1605
+ };
1606
+ zipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, "utf-8"));
1607
+ await tokenizer.ignore(zipHeader.extraFieldLength);
1608
+ if (zipHeader.filename === "META-INF/mozilla.rsa") {
1609
+ return {
1610
+ ext: "xpi",
1611
+ mime: "application/x-xpinstall"
1612
+ };
1613
+ }
1614
+ if (zipHeader.filename.endsWith(".rels") || zipHeader.filename.endsWith(".xml")) {
1615
+ const type = zipHeader.filename.split("/")[0];
1616
+ switch (type) {
1617
+ case "_rels":
1618
+ break;
1619
+ case "word":
1620
+ return {
1621
+ ext: "docx",
1622
+ mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
1623
+ };
1624
+ case "ppt":
1625
+ return {
1626
+ ext: "pptx",
1627
+ mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
1628
+ };
1629
+ case "xl":
1630
+ return {
1631
+ ext: "xlsx",
1632
+ mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
1633
+ };
1634
+ default:
1635
+ break;
1636
+ }
1637
+ }
1638
+ if (zipHeader.filename.startsWith("xl/")) {
1639
+ return {
1640
+ ext: "xlsx",
1641
+ mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
1642
+ };
1643
+ }
1644
+ if (zipHeader.filename.startsWith("3D/") && zipHeader.filename.endsWith(".model")) {
1645
+ return {
1646
+ ext: "3mf",
1647
+ mime: "model/3mf"
1648
+ };
1649
+ }
1650
+ if (zipHeader.filename === "mimetype" && zipHeader.compressedSize === zipHeader.uncompressedSize) {
1651
+ const mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, "utf-8"));
1652
+ switch (mimeType) {
1653
+ case "application/epub+zip":
1654
+ return {
1655
+ ext: "epub",
1656
+ mime: "application/epub+zip"
1657
+ };
1658
+ case "application/vnd.oasis.opendocument.text":
1659
+ return {
1660
+ ext: "odt",
1661
+ mime: "application/vnd.oasis.opendocument.text"
1662
+ };
1663
+ case "application/vnd.oasis.opendocument.spreadsheet":
1664
+ return {
1665
+ ext: "ods",
1666
+ mime: "application/vnd.oasis.opendocument.spreadsheet"
1667
+ };
1668
+ case "application/vnd.oasis.opendocument.presentation":
1669
+ return {
1670
+ ext: "odp",
1671
+ mime: "application/vnd.oasis.opendocument.presentation"
1672
+ };
1673
+ default:
1674
+ }
1675
+ }
1676
+ if (zipHeader.compressedSize === 0) {
1677
+ let nextHeaderIndex = -1;
1678
+ while (nextHeaderIndex < 0 && tokenizer.position < tokenizer.fileInfo.size) {
1679
+ await tokenizer.peekBuffer(buffer, { mayBeLess: true });
1680
+ nextHeaderIndex = buffer.indexOf("504B0304", 0, "hex");
1681
+ await tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : buffer.length);
1682
+ }
1683
+ } else {
1684
+ await tokenizer.ignore(zipHeader.compressedSize);
1685
+ }
1686
+ }
1687
+ } catch (error) {
1688
+ if (!(error instanceof strtok3.EndOfStreamError)) {
1689
+ throw error;
1690
+ }
1691
+ }
1692
+ return {
1693
+ ext: "zip",
1694
+ mime: "application/zip"
1695
+ };
1696
+ }
1697
+ if (checkString("OggS")) {
1698
+ await tokenizer.ignore(28);
1699
+ const type = Buffer.alloc(8);
1700
+ await tokenizer.readBuffer(type);
1701
+ if (_check(type, [79, 112, 117, 115, 72, 101, 97, 100])) {
1702
+ return {
1703
+ ext: "opus",
1704
+ mime: "audio/opus"
1705
+ };
1706
+ }
1707
+ if (_check(type, [128, 116, 104, 101, 111, 114, 97])) {
1708
+ return {
1709
+ ext: "ogv",
1710
+ mime: "video/ogg"
1711
+ };
1712
+ }
1713
+ if (_check(type, [1, 118, 105, 100, 101, 111, 0])) {
1714
+ return {
1715
+ ext: "ogm",
1716
+ mime: "video/ogg"
1717
+ };
1718
+ }
1719
+ if (_check(type, [127, 70, 76, 65, 67])) {
1720
+ return {
1721
+ ext: "oga",
1722
+ mime: "audio/ogg"
1723
+ };
1724
+ }
1725
+ if (_check(type, [83, 112, 101, 101, 120, 32, 32])) {
1726
+ return {
1727
+ ext: "spx",
1728
+ mime: "audio/ogg"
1729
+ };
1730
+ }
1731
+ if (_check(type, [1, 118, 111, 114, 98, 105, 115])) {
1732
+ return {
1733
+ ext: "ogg",
1734
+ mime: "audio/ogg"
1735
+ };
1736
+ }
1737
+ return {
1738
+ ext: "ogx",
1739
+ mime: "application/ogg"
1740
+ };
1741
+ }
1742
+ if (check([80, 75]) && (buffer[2] === 3 || buffer[2] === 5 || buffer[2] === 7) && (buffer[3] === 4 || buffer[3] === 6 || buffer[3] === 8)) {
1743
+ return {
1744
+ ext: "zip",
1745
+ mime: "application/zip"
1746
+ };
1747
+ }
1748
+ if (checkString("ftyp", { offset: 4 }) && (buffer[8] & 96) !== 0) {
1749
+ const brandMajor = buffer.toString("binary", 8, 12).replace("\x00", " ").trim();
1750
+ switch (brandMajor) {
1751
+ case "avif":
1752
+ return { ext: "avif", mime: "image/avif" };
1753
+ case "mif1":
1754
+ return { ext: "heic", mime: "image/heif" };
1755
+ case "msf1":
1756
+ return { ext: "heic", mime: "image/heif-sequence" };
1757
+ case "heic":
1758
+ case "heix":
1759
+ return { ext: "heic", mime: "image/heic" };
1760
+ case "hevc":
1761
+ case "hevx":
1762
+ return { ext: "heic", mime: "image/heic-sequence" };
1763
+ case "qt":
1764
+ return { ext: "mov", mime: "video/quicktime" };
1765
+ case "M4V":
1766
+ case "M4VH":
1767
+ case "M4VP":
1768
+ return { ext: "m4v", mime: "video/x-m4v" };
1769
+ case "M4P":
1770
+ return { ext: "m4p", mime: "video/mp4" };
1771
+ case "M4B":
1772
+ return { ext: "m4b", mime: "audio/mp4" };
1773
+ case "M4A":
1774
+ return { ext: "m4a", mime: "audio/x-m4a" };
1775
+ case "F4V":
1776
+ return { ext: "f4v", mime: "video/mp4" };
1777
+ case "F4P":
1778
+ return { ext: "f4p", mime: "video/mp4" };
1779
+ case "F4A":
1780
+ return { ext: "f4a", mime: "audio/mp4" };
1781
+ case "F4B":
1782
+ return { ext: "f4b", mime: "audio/mp4" };
1783
+ case "crx":
1784
+ return { ext: "cr3", mime: "image/x-canon-cr3" };
1785
+ default:
1786
+ if (brandMajor.startsWith("3g")) {
1787
+ if (brandMajor.startsWith("3g2")) {
1788
+ return { ext: "3g2", mime: "video/3gpp2" };
1789
+ }
1790
+ return { ext: "3gp", mime: "video/3gpp" };
1791
+ }
1792
+ return { ext: "mp4", mime: "video/mp4" };
1793
+ }
1794
+ }
1795
+ if (checkString("MThd")) {
1796
+ return {
1797
+ ext: "mid",
1798
+ mime: "audio/midi"
1799
+ };
1800
+ }
1801
+ if (checkString("wOFF") && (check([0, 1, 0, 0], { offset: 4 }) || checkString("OTTO", { offset: 4 }))) {
1802
+ return {
1803
+ ext: "woff",
1804
+ mime: "font/woff"
1805
+ };
1806
+ }
1807
+ if (checkString("wOF2") && (check([0, 1, 0, 0], { offset: 4 }) || checkString("OTTO", { offset: 4 }))) {
1808
+ return {
1809
+ ext: "woff2",
1810
+ mime: "font/woff2"
1811
+ };
1812
+ }
1813
+ if (check([212, 195, 178, 161]) || check([161, 178, 195, 212])) {
1814
+ return {
1815
+ ext: "pcap",
1816
+ mime: "application/vnd.tcpdump.pcap"
1817
+ };
1818
+ }
1819
+ if (checkString("DSD ")) {
1820
+ return {
1821
+ ext: "dsf",
1822
+ mime: "audio/x-dsf"
1823
+ };
1824
+ }
1825
+ if (checkString("LZIP")) {
1826
+ return {
1827
+ ext: "lz",
1828
+ mime: "application/x-lzip"
1829
+ };
1830
+ }
1831
+ if (checkString("fLaC")) {
1832
+ return {
1833
+ ext: "flac",
1834
+ mime: "audio/x-flac"
1835
+ };
1836
+ }
1837
+ if (check([66, 80, 71, 251])) {
1838
+ return {
1839
+ ext: "bpg",
1840
+ mime: "image/bpg"
1841
+ };
1842
+ }
1843
+ if (checkString("wvpk")) {
1844
+ return {
1845
+ ext: "wv",
1846
+ mime: "audio/wavpack"
1847
+ };
1848
+ }
1849
+ if (checkString("%PDF")) {
1850
+ await tokenizer.ignore(1350);
1851
+ const maxBufferSize = 10 * 1024 * 1024;
1852
+ const buffer2 = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size));
1853
+ await tokenizer.readBuffer(buffer2, { mayBeLess: true });
1854
+ if (buffer2.includes(Buffer.from("AIPrivateData"))) {
1855
+ return {
1856
+ ext: "ai",
1857
+ mime: "application/postscript"
1858
+ };
1859
+ }
1860
+ return {
1861
+ ext: "pdf",
1862
+ mime: "application/pdf"
1863
+ };
1864
+ }
1865
+ if (check([0, 97, 115, 109])) {
1866
+ return {
1867
+ ext: "wasm",
1868
+ mime: "application/wasm"
1869
+ };
1870
+ }
1871
+ if (check([73, 73, 42, 0])) {
1872
+ if (checkString("CR", { offset: 8 })) {
1873
+ return {
1874
+ ext: "cr2",
1875
+ mime: "image/x-canon-cr2"
1876
+ };
1877
+ }
1878
+ if (check([28, 0, 254, 0], { offset: 8 }) || check([31, 0, 11, 0], { offset: 8 })) {
1879
+ return {
1880
+ ext: "nef",
1881
+ mime: "image/x-nikon-nef"
1882
+ };
1883
+ }
1884
+ if (check([8, 0, 0, 0], { offset: 4 }) && (check([45, 0, 254, 0], { offset: 8 }) || check([39, 0, 254, 0], { offset: 8 }))) {
1885
+ return {
1886
+ ext: "dng",
1887
+ mime: "image/x-adobe-dng"
1888
+ };
1889
+ }
1890
+ buffer = Buffer.alloc(24);
1891
+ await tokenizer.peekBuffer(buffer);
1892
+ if ((check([16, 251, 134, 1], { offset: 4 }) || check([8, 0, 0, 0], { offset: 4 })) && check([0, 254, 0, 4, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 1], { offset: 9 })) {
1893
+ return {
1894
+ ext: "arw",
1895
+ mime: "image/x-sony-arw"
1896
+ };
1897
+ }
1898
+ return {
1899
+ ext: "tif",
1900
+ mime: "image/tiff"
1901
+ };
1902
+ }
1903
+ if (check([77, 77, 0, 42])) {
1904
+ return {
1905
+ ext: "tif",
1906
+ mime: "image/tiff"
1907
+ };
1908
+ }
1909
+ if (checkString("MAC ")) {
1910
+ return {
1911
+ ext: "ape",
1912
+ mime: "audio/ape"
1913
+ };
1914
+ }
1915
+ if (check([26, 69, 223, 163])) {
1916
+ async function readField() {
1917
+ const msb = await tokenizer.peekNumber(Token.UINT8);
1918
+ let mask = 128;
1919
+ let ic = 0;
1920
+ while ((msb & mask) === 0 && mask !== 0) {
1921
+ ++ic;
1922
+ mask >>= 1;
1923
+ }
1924
+ const id = Buffer.alloc(ic + 1);
1925
+ await tokenizer.readBuffer(id);
1926
+ return id;
1927
+ }
1928
+ async function readElement() {
1929
+ const id = await readField();
1930
+ const lenField = await readField();
1931
+ lenField[0] ^= 128 >> lenField.length - 1;
1932
+ const nrLen = Math.min(6, lenField.length);
1933
+ return {
1934
+ id: id.readUIntBE(0, id.length),
1935
+ len: lenField.readUIntBE(lenField.length - nrLen, nrLen)
1936
+ };
1937
+ }
1938
+ async function readChildren(level, children) {
1939
+ while (children > 0) {
1940
+ const e = await readElement();
1941
+ if (e.id === 17026) {
1942
+ return tokenizer.readToken(new Token.StringType(e.len, "utf-8"));
1943
+ }
1944
+ await tokenizer.ignore(e.len);
1945
+ --children;
1946
+ }
1947
+ }
1948
+ const re = await readElement();
1949
+ const docType = await readChildren(1, re.len);
1950
+ switch (docType) {
1951
+ case "webm":
1952
+ return {
1953
+ ext: "webm",
1954
+ mime: "video/webm"
1955
+ };
1956
+ case "matroska":
1957
+ return {
1958
+ ext: "mkv",
1959
+ mime: "video/x-matroska"
1960
+ };
1961
+ default:
1962
+ return;
1963
+ }
1964
+ }
1965
+ if (check([82, 73, 70, 70])) {
1966
+ if (check([65, 86, 73], { offset: 8 })) {
1967
+ return {
1968
+ ext: "avi",
1969
+ mime: "video/vnd.avi"
1970
+ };
1971
+ }
1972
+ if (check([87, 65, 86, 69], { offset: 8 })) {
1973
+ return {
1974
+ ext: "wav",
1975
+ mime: "audio/vnd.wave"
1976
+ };
1977
+ }
1978
+ if (check([81, 76, 67, 77], { offset: 8 })) {
1979
+ return {
1980
+ ext: "qcp",
1981
+ mime: "audio/qcelp"
1982
+ };
1983
+ }
1984
+ }
1985
+ if (checkString("SQLi")) {
1986
+ return {
1987
+ ext: "sqlite",
1988
+ mime: "application/x-sqlite3"
1989
+ };
1990
+ }
1991
+ if (check([78, 69, 83, 26])) {
1992
+ return {
1993
+ ext: "nes",
1994
+ mime: "application/x-nintendo-nes-rom"
1995
+ };
1996
+ }
1997
+ if (checkString("Cr24")) {
1998
+ return {
1999
+ ext: "crx",
2000
+ mime: "application/x-google-chrome-extension"
2001
+ };
2002
+ }
2003
+ if (checkString("MSCF") || checkString("ISc(")) {
2004
+ return {
2005
+ ext: "cab",
2006
+ mime: "application/vnd.ms-cab-compressed"
2007
+ };
2008
+ }
2009
+ if (check([237, 171, 238, 219])) {
2010
+ return {
2011
+ ext: "rpm",
2012
+ mime: "application/x-rpm"
2013
+ };
2014
+ }
2015
+ if (check([197, 208, 211, 198])) {
2016
+ return {
2017
+ ext: "eps",
2018
+ mime: "application/eps"
2019
+ };
2020
+ }
2021
+ if (check([40, 181, 47, 253])) {
2022
+ return {
2023
+ ext: "zst",
2024
+ mime: "application/zstd"
2025
+ };
2026
+ }
2027
+ if (check([79, 84, 84, 79, 0])) {
2028
+ return {
2029
+ ext: "otf",
2030
+ mime: "font/otf"
2031
+ };
2032
+ }
2033
+ if (checkString("#!AMR")) {
2034
+ return {
2035
+ ext: "amr",
2036
+ mime: "audio/amr"
2037
+ };
2038
+ }
2039
+ if (checkString("{\\rtf")) {
2040
+ return {
2041
+ ext: "rtf",
2042
+ mime: "application/rtf"
2043
+ };
2044
+ }
2045
+ if (check([70, 76, 86, 1])) {
2046
+ return {
2047
+ ext: "flv",
2048
+ mime: "video/x-flv"
2049
+ };
2050
+ }
2051
+ if (checkString("IMPM")) {
2052
+ return {
2053
+ ext: "it",
2054
+ mime: "audio/x-it"
2055
+ };
2056
+ }
2057
+ if (checkString("-lh0-", { offset: 2 }) || checkString("-lh1-", { offset: 2 }) || checkString("-lh2-", { offset: 2 }) || checkString("-lh3-", { offset: 2 }) || checkString("-lh4-", { offset: 2 }) || checkString("-lh5-", { offset: 2 }) || checkString("-lh6-", { offset: 2 }) || checkString("-lh7-", { offset: 2 }) || checkString("-lzs-", { offset: 2 }) || checkString("-lz4-", { offset: 2 }) || checkString("-lz5-", { offset: 2 }) || checkString("-lhd-", { offset: 2 })) {
2058
+ return {
2059
+ ext: "lzh",
2060
+ mime: "application/x-lzh-compressed"
2061
+ };
2062
+ }
2063
+ if (check([0, 0, 1, 186])) {
2064
+ if (check([33], { offset: 4, mask: [241] })) {
2065
+ return {
2066
+ ext: "mpg",
2067
+ mime: "video/MP1S"
2068
+ };
2069
+ }
2070
+ if (check([68], { offset: 4, mask: [196] })) {
2071
+ return {
2072
+ ext: "mpg",
2073
+ mime: "video/MP2P"
2074
+ };
2075
+ }
2076
+ }
2077
+ if (checkString("ITSF")) {
2078
+ return {
2079
+ ext: "chm",
2080
+ mime: "application/vnd.ms-htmlhelp"
2081
+ };
2082
+ }
2083
+ if (check([253, 55, 122, 88, 90, 0])) {
2084
+ return {
2085
+ ext: "xz",
2086
+ mime: "application/x-xz"
2087
+ };
2088
+ }
2089
+ if (checkString("<?xml ")) {
2090
+ return {
2091
+ ext: "xml",
2092
+ mime: "application/xml"
2093
+ };
2094
+ }
2095
+ if (check([55, 122, 188, 175, 39, 28])) {
2096
+ return {
2097
+ ext: "7z",
2098
+ mime: "application/x-7z-compressed"
2099
+ };
2100
+ }
2101
+ if (check([82, 97, 114, 33, 26, 7]) && (buffer[6] === 0 || buffer[6] === 1)) {
2102
+ return {
2103
+ ext: "rar",
2104
+ mime: "application/x-rar-compressed"
2105
+ };
2106
+ }
2107
+ if (checkString("solid ")) {
2108
+ return {
2109
+ ext: "stl",
2110
+ mime: "model/stl"
2111
+ };
2112
+ }
2113
+ if (checkString("BLENDER")) {
2114
+ return {
2115
+ ext: "blend",
2116
+ mime: "application/x-blender"
2117
+ };
2118
+ }
2119
+ if (checkString("!<arch>")) {
2120
+ await tokenizer.ignore(8);
2121
+ const str = await tokenizer.readToken(new Token.StringType(13, "ascii"));
2122
+ if (str === "debian-binary") {
2123
+ return {
2124
+ ext: "deb",
2125
+ mime: "application/x-deb"
2126
+ };
2127
+ }
2128
+ return {
2129
+ ext: "ar",
2130
+ mime: "application/x-unix-archive"
2131
+ };
2132
+ }
2133
+ if (check([137, 80, 78, 71, 13, 10, 26, 10])) {
2134
+ await tokenizer.ignore(8);
2135
+ async function readChunkHeader() {
2136
+ return {
2137
+ length: await tokenizer.readToken(Token.INT32_BE),
2138
+ type: await tokenizer.readToken(new Token.StringType(4, "binary"))
2139
+ };
2140
+ }
2141
+ do {
2142
+ const chunk = await readChunkHeader();
2143
+ if (chunk.length < 0) {
2144
+ return;
2145
+ }
2146
+ switch (chunk.type) {
2147
+ case "IDAT":
2148
+ return {
2149
+ ext: "png",
2150
+ mime: "image/png"
2151
+ };
2152
+ case "acTL":
2153
+ return {
2154
+ ext: "apng",
2155
+ mime: "image/apng"
2156
+ };
2157
+ default:
2158
+ await tokenizer.ignore(chunk.length + 4);
2159
+ }
2160
+ } while (tokenizer.position + 8 < tokenizer.fileInfo.size);
2161
+ return {
2162
+ ext: "png",
2163
+ mime: "image/png"
2164
+ };
2165
+ }
2166
+ if (check([65, 82, 82, 79, 87, 49, 0, 0])) {
2167
+ return {
2168
+ ext: "arrow",
2169
+ mime: "application/x-apache-arrow"
2170
+ };
2171
+ }
2172
+ if (check([103, 108, 84, 70, 2, 0, 0, 0])) {
2173
+ return {
2174
+ ext: "glb",
2175
+ mime: "model/gltf-binary"
2176
+ };
2177
+ }
2178
+ if (check([102, 114, 101, 101], { offset: 4 }) || check([109, 100, 97, 116], { offset: 4 }) || check([109, 111, 111, 118], { offset: 4 }) || check([119, 105, 100, 101], { offset: 4 })) {
2179
+ return {
2180
+ ext: "mov",
2181
+ mime: "video/quicktime"
2182
+ };
2183
+ }
2184
+ if (check([73, 73, 82, 79, 8, 0, 0, 0, 24])) {
2185
+ return {
2186
+ ext: "orf",
2187
+ mime: "image/x-olympus-orf"
2188
+ };
2189
+ }
2190
+ if (checkString("gimp xcf ")) {
2191
+ return {
2192
+ ext: "xcf",
2193
+ mime: "image/x-xcf"
2194
+ };
2195
+ }
2196
+ if (check([73, 73, 85, 0, 24, 0, 0, 0, 136, 231, 116, 216])) {
2197
+ return {
2198
+ ext: "rw2",
2199
+ mime: "image/x-panasonic-rw2"
2200
+ };
2201
+ }
2202
+ if (check([48, 38, 178, 117, 142, 102, 207, 17, 166, 217])) {
2203
+ async function readHeader() {
2204
+ const guid = Buffer.alloc(16);
2205
+ await tokenizer.readBuffer(guid);
2206
+ return {
2207
+ id: guid,
2208
+ size: Number(await tokenizer.readToken(Token.UINT64_LE))
2209
+ };
2210
+ }
2211
+ await tokenizer.ignore(30);
2212
+ while (tokenizer.position + 24 < tokenizer.fileInfo.size) {
2213
+ const header = await readHeader();
2214
+ let payload = header.size - 24;
2215
+ if (_check(header.id, [145, 7, 220, 183, 183, 169, 207, 17, 142, 230, 0, 192, 12, 32, 83, 101])) {
2216
+ const typeId = Buffer.alloc(16);
2217
+ payload -= await tokenizer.readBuffer(typeId);
2218
+ if (_check(typeId, [64, 158, 105, 248, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) {
2219
+ return {
2220
+ ext: "asf",
2221
+ mime: "audio/x-ms-asf"
2222
+ };
2223
+ }
2224
+ if (_check(typeId, [192, 239, 25, 188, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) {
2225
+ return {
2226
+ ext: "asf",
2227
+ mime: "video/x-ms-asf"
2228
+ };
2229
+ }
2230
+ break;
2231
+ }
2232
+ await tokenizer.ignore(payload);
2233
+ }
2234
+ return {
2235
+ ext: "asf",
2236
+ mime: "application/vnd.ms-asf"
2237
+ };
2238
+ }
2239
+ if (check([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10])) {
2240
+ return {
2241
+ ext: "ktx",
2242
+ mime: "image/ktx"
2243
+ };
2244
+ }
2245
+ if ((check([126, 16, 4]) || check([126, 24, 4])) && check([48, 77, 73, 69], { offset: 4 })) {
2246
+ return {
2247
+ ext: "mie",
2248
+ mime: "application/x-mie"
2249
+ };
2250
+ }
2251
+ if (check([39, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], { offset: 2 })) {
2252
+ return {
2253
+ ext: "shp",
2254
+ mime: "application/x-esri-shape"
2255
+ };
2256
+ }
2257
+ if (check([0, 0, 0, 12, 106, 80, 32, 32, 13, 10, 135, 10])) {
2258
+ await tokenizer.ignore(20);
2259
+ const type = await tokenizer.readToken(new Token.StringType(4, "ascii"));
2260
+ switch (type) {
2261
+ case "jp2 ":
2262
+ return {
2263
+ ext: "jp2",
2264
+ mime: "image/jp2"
2265
+ };
2266
+ case "jpx ":
2267
+ return {
2268
+ ext: "jpx",
2269
+ mime: "image/jpx"
2270
+ };
2271
+ case "jpm ":
2272
+ return {
2273
+ ext: "jpm",
2274
+ mime: "image/jpm"
2275
+ };
2276
+ case "mjp2":
2277
+ return {
2278
+ ext: "mj2",
2279
+ mime: "image/mj2"
2280
+ };
2281
+ default:
2282
+ return;
2283
+ }
2284
+ }
2285
+ if (check([255, 10]) || check([0, 0, 0, 12, 74, 88, 76, 32, 13, 10, 135, 10])) {
2286
+ return {
2287
+ ext: "jxl",
2288
+ mime: "image/jxl"
2289
+ };
2290
+ }
2291
+ if (check([0, 0, 1, 186]) || check([0, 0, 1, 179])) {
2292
+ return {
2293
+ ext: "mpg",
2294
+ mime: "video/mpeg"
2295
+ };
2296
+ }
2297
+ if (check([0, 1, 0, 0, 0])) {
2298
+ return {
2299
+ ext: "ttf",
2300
+ mime: "font/ttf"
2301
+ };
2302
+ }
2303
+ if (check([0, 0, 1, 0])) {
2304
+ return {
2305
+ ext: "ico",
2306
+ mime: "image/x-icon"
2307
+ };
2308
+ }
2309
+ if (check([0, 0, 2, 0])) {
2310
+ return {
2311
+ ext: "cur",
2312
+ mime: "image/x-icon"
2313
+ };
2314
+ }
2315
+ if (check([208, 207, 17, 224, 161, 177, 26, 225])) {
2316
+ return {
2317
+ ext: "cfb",
2318
+ mime: "application/x-cfb"
2319
+ };
2320
+ }
2321
+ await tokenizer.peekBuffer(buffer, { length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true });
2322
+ if (checkString("BEGIN:")) {
2323
+ if (checkString("VCARD", { offset: 6 })) {
2324
+ return {
2325
+ ext: "vcf",
2326
+ mime: "text/vcard"
2327
+ };
2328
+ }
2329
+ if (checkString("VCALENDAR", { offset: 6 })) {
2330
+ return {
2331
+ ext: "ics",
2332
+ mime: "text/calendar"
2333
+ };
2334
+ }
2335
+ }
2336
+ if (checkString("FUJIFILMCCD-RAW")) {
2337
+ return {
2338
+ ext: "raf",
2339
+ mime: "image/x-fujifilm-raf"
2340
+ };
2341
+ }
2342
+ if (checkString("Extended Module:")) {
2343
+ return {
2344
+ ext: "xm",
2345
+ mime: "audio/x-xm"
2346
+ };
2347
+ }
2348
+ if (checkString("Creative Voice File")) {
2349
+ return {
2350
+ ext: "voc",
2351
+ mime: "audio/x-voc"
2352
+ };
2353
+ }
2354
+ if (check([4, 0, 0, 0]) && buffer.length >= 16) {
2355
+ const jsonSize = buffer.readUInt32LE(12);
2356
+ if (jsonSize > 12 && buffer.length >= jsonSize + 16) {
2357
+ try {
2358
+ const header = buffer.slice(16, jsonSize + 16).toString();
2359
+ const json = JSON.parse(header);
2360
+ if (json.files) {
2361
+ return {
2362
+ ext: "asar",
2363
+ mime: "application/x-asar"
2364
+ };
2365
+ }
2366
+ } catch (_) {}
2367
+ }
2368
+ }
2369
+ if (check([6, 14, 43, 52, 2, 5, 1, 1, 13, 1, 2, 1, 1, 2])) {
2370
+ return {
2371
+ ext: "mxf",
2372
+ mime: "application/mxf"
2373
+ };
2374
+ }
2375
+ if (checkString("SCRM", { offset: 44 })) {
2376
+ return {
2377
+ ext: "s3m",
2378
+ mime: "audio/x-s3m"
2379
+ };
2380
+ }
2381
+ if (check([71], { offset: 4 }) && (check([71], { offset: 192 }) || check([71], { offset: 196 }))) {
2382
+ return {
2383
+ ext: "mts",
2384
+ mime: "video/mp2t"
2385
+ };
2386
+ }
2387
+ if (check([66, 79, 79, 75, 77, 79, 66, 73], { offset: 60 })) {
2388
+ return {
2389
+ ext: "mobi",
2390
+ mime: "application/x-mobipocket-ebook"
2391
+ };
2392
+ }
2393
+ if (check([68, 73, 67, 77], { offset: 128 })) {
2394
+ return {
2395
+ ext: "dcm",
2396
+ mime: "application/dicom"
2397
+ };
2398
+ }
2399
+ if (check([76, 0, 0, 0, 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70])) {
2400
+ return {
2401
+ ext: "lnk",
2402
+ mime: "application/x.ms.shortcut"
2403
+ };
2404
+ }
2405
+ if (check([98, 111, 111, 107, 0, 0, 0, 0, 109, 97, 114, 107, 0, 0, 0, 0])) {
2406
+ return {
2407
+ ext: "alias",
2408
+ mime: "application/x.apple.alias"
2409
+ };
2410
+ }
2411
+ if (check([76, 80], { offset: 34 }) && (check([0, 0, 1], { offset: 8 }) || check([1, 0, 2], { offset: 8 }) || check([2, 0, 2], { offset: 8 }))) {
2412
+ return {
2413
+ ext: "eot",
2414
+ mime: "application/vnd.ms-fontobject"
2415
+ };
2416
+ }
2417
+ if (check([6, 6, 237, 245, 216, 29, 70, 229, 189, 49, 239, 231, 254, 116, 183, 29])) {
2418
+ return {
2419
+ ext: "indd",
2420
+ mime: "application/x-indesign"
2421
+ };
2422
+ }
2423
+ await tokenizer.peekBuffer(buffer, { length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true });
2424
+ if (tarHeaderChecksumMatches(buffer)) {
2425
+ return {
2426
+ ext: "tar",
2427
+ mime: "application/x-tar"
2428
+ };
2429
+ }
2430
+ if (check([255, 254, 255, 14, 83, 0, 107, 0, 101, 0, 116, 0, 99, 0, 104, 0, 85, 0, 112, 0, 32, 0, 77, 0, 111, 0, 100, 0, 101, 0, 108, 0])) {
2431
+ return {
2432
+ ext: "skp",
2433
+ mime: "application/vnd.sketchup.skp"
2434
+ };
2435
+ }
2436
+ if (checkString("-----BEGIN PGP MESSAGE-----")) {
2437
+ return {
2438
+ ext: "pgp",
2439
+ mime: "application/pgp-encrypted"
2440
+ };
2441
+ }
2442
+ if (buffer.length >= 2 && check([255, 224], { offset: 0, mask: [255, 224] })) {
2443
+ if (check([16], { offset: 1, mask: [22] })) {
2444
+ if (check([8], { offset: 1, mask: [8] })) {
2445
+ return {
2446
+ ext: "aac",
2447
+ mime: "audio/aac"
2448
+ };
2449
+ }
2450
+ return {
2451
+ ext: "aac",
2452
+ mime: "audio/aac"
2453
+ };
2454
+ }
2455
+ if (check([2], { offset: 1, mask: [6] })) {
2456
+ return {
2457
+ ext: "mp3",
2458
+ mime: "audio/mpeg"
2459
+ };
2460
+ }
2461
+ if (check([4], { offset: 1, mask: [6] })) {
2462
+ return {
2463
+ ext: "mp2",
2464
+ mime: "audio/mpeg"
2465
+ };
2466
+ }
2467
+ if (check([6], { offset: 1, mask: [6] })) {
2468
+ return {
2469
+ ext: "mp1",
2470
+ mime: "audio/mpeg"
2471
+ };
2472
+ }
2473
+ }
2474
+ }
2475
+ var stream2 = (readableStream) => new Promise((resolve, reject) => {
2476
+ const stream = eval("require")("stream");
2477
+ readableStream.on("error", reject);
2478
+ readableStream.once("readable", async () => {
2479
+ const pass = new stream.PassThrough;
2480
+ let outputStream;
2481
+ if (stream.pipeline) {
2482
+ outputStream = stream.pipeline(readableStream, pass, () => {});
2483
+ } else {
2484
+ outputStream = readableStream.pipe(pass);
2485
+ }
2486
+ const chunk = readableStream.read(minimumBytes) || readableStream.read() || Buffer.alloc(0);
2487
+ try {
2488
+ const fileType2 = await fromBuffer(chunk);
2489
+ pass.fileType = fileType2;
2490
+ } catch (error) {
2491
+ reject(error);
2492
+ }
2493
+ resolve(outputStream);
2494
+ });
2495
+ });
2496
+ var fileType = {
2497
+ fromStream,
2498
+ fromTokenizer,
2499
+ fromBuffer,
2500
+ stream: stream2
2501
+ };
2502
+ Object.defineProperty(fileType, "extensions", {
2503
+ get() {
2504
+ return new Set(supported.extensions);
2505
+ }
2506
+ });
2507
+ Object.defineProperty(fileType, "mimeTypes", {
2508
+ get() {
2509
+ return new Set(supported.mimeTypes);
2510
+ }
2511
+ });
2512
+ module.exports = fileType;
2513
+ });
2514
+
2515
+ // node_modules/file-type/index.js
2516
+ var require_file_type = __commonJS((exports, module) => {
2517
+ var strtok3 = require_lib2();
2518
+ var core = require_core2();
2519
+ async function fromFile(path) {
2520
+ const tokenizer = await strtok3.fromFile(path);
2521
+ try {
2522
+ return await core.fromTokenizer(tokenizer);
2523
+ } finally {
2524
+ await tokenizer.close();
2525
+ }
2526
+ }
2527
+ var fileType = {
2528
+ fromFile
2529
+ };
2530
+ Object.assign(fileType, core);
2531
+ Object.defineProperty(fileType, "extensions", {
2532
+ get() {
2533
+ return core.extensions;
2534
+ }
2535
+ });
2536
+ Object.defineProperty(fileType, "mimeTypes", {
2537
+ get() {
2538
+ return core.mimeTypes;
2539
+ }
2540
+ });
2541
+ module.exports = fileType;
2542
+ });
2543
+ export default require_file_type();
2544
+
2545
+ //# debugId=6AA92663F11DE46064756E2164756E21
2546
+ //# sourceMappingURL=index-5xngv42g.js.map