@chicowall/grf-loader 1.0.4 → 1.0.5

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.
@@ -1,545 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('pako'), require('jdataview'), require('fs')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'pako', 'jdataview', 'fs'], factory) :
4
- (global = global || self, factory(global.GrfLoader = {}, global.pako, global.jDataview, global.fs));
5
- }(this, (function (exports, pako, jDataview, fs) { 'use strict';
6
-
7
- jDataview = jDataview && Object.prototype.hasOwnProperty.call(jDataview, 'default') ? jDataview['default'] : jDataview;
8
-
9
- /*! *****************************************************************************
10
- Copyright (c) Microsoft Corporation.
11
-
12
- Permission to use, copy, modify, and/or distribute this software for any
13
- purpose with or without fee is hereby granted.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
16
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
17
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
18
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
19
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
20
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
21
- PERFORMANCE OF THIS SOFTWARE.
22
- ***************************************************************************** */
23
- /* global Reflect, Promise */
24
-
25
- var extendStatics = function(d, b) {
26
- extendStatics = Object.setPrototypeOf ||
27
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29
- return extendStatics(d, b);
30
- };
31
-
32
- function __extends(d, b) {
33
- extendStatics(d, b);
34
- function __() { this.constructor = d; }
35
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36
- }
37
-
38
- function __awaiter(thisArg, _arguments, P, generator) {
39
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
40
- return new (P || (P = Promise))(function (resolve, reject) {
41
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
42
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
43
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
44
- step((generator = generator.apply(thisArg, _arguments || [])).next());
45
- });
46
- }
47
-
48
- function __generator(thisArg, body) {
49
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
50
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
51
- function verb(n) { return function (v) { return step([n, v]); }; }
52
- function step(op) {
53
- if (f) throw new TypeError("Generator is already executing.");
54
- while (_) try {
55
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
56
- if (y = 0, t) op = [op[0] & 2, t.value];
57
- switch (op[0]) {
58
- case 0: case 1: t = op; break;
59
- case 4: _.label++; return { value: op[1], done: false };
60
- case 5: _.label++; y = op[1]; op = [0]; continue;
61
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
62
- default:
63
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
64
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
65
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
66
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
67
- if (t[2]) _.ops.pop();
68
- _.trys.pop(); continue;
69
- }
70
- op = body.call(thisArg, _);
71
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
72
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
73
- }
74
- }
75
-
76
- /**
77
- * Ragnarok Online DES decoder implementation
78
- * It's a custom one with some alterations
79
- */
80
- var mask = new Uint8Array([0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01]);
81
- var tmp = new Uint8Array(8);
82
- var tmp2 = new Uint8Array(8);
83
- var clean = new Uint8Array(8);
84
- // prettier-ignore
85
- var initialPermutationTable = new Uint8Array([
86
- 58, 50, 42, 34, 26, 18, 10, 2,
87
- 60, 52, 44, 36, 28, 20, 12, 4,
88
- 62, 54, 46, 38, 30, 22, 14, 6,
89
- 64, 56, 48, 40, 32, 24, 16, 8,
90
- 57, 49, 41, 33, 25, 17, 9, 1,
91
- 59, 51, 43, 35, 27, 19, 11, 3,
92
- 61, 53, 45, 37, 29, 21, 13, 5,
93
- 63, 55, 47, 39, 31, 23, 15, 7
94
- ]);
95
- // prettier-ignore
96
- var finalPermutationTable = new Uint8Array([
97
- 40, 8, 48, 16, 56, 24, 64, 32,
98
- 39, 7, 47, 15, 55, 23, 63, 31,
99
- 38, 6, 46, 14, 54, 22, 62, 30,
100
- 37, 5, 45, 13, 53, 21, 61, 29,
101
- 36, 4, 44, 12, 52, 20, 60, 28,
102
- 35, 3, 43, 11, 51, 19, 59, 27,
103
- 34, 2, 42, 10, 50, 18, 58, 26,
104
- 33, 1, 41, 9, 49, 17, 57, 25
105
- ]);
106
- // prettier-ignore
107
- var transpositionTable = new Uint8Array([
108
- 16, 7, 20, 21,
109
- 29, 12, 28, 17,
110
- 1, 15, 23, 26,
111
- 5, 18, 31, 10,
112
- 2, 8, 24, 14,
113
- 32, 27, 3, 9,
114
- 19, 13, 30, 6,
115
- 22, 11, 4, 25
116
- ]);
117
- // prettier-ignore
118
- var substitutionBoxTable = [
119
- new Uint8Array([
120
- 0xef, 0x03, 0x41, 0xfd, 0xd8, 0x74, 0x1e, 0x47, 0x26, 0xef, 0xfb, 0x22, 0xb3, 0xd8, 0x84, 0x1e,
121
- 0x39, 0xac, 0xa7, 0x60, 0x62, 0xc1, 0xcd, 0xba, 0x5c, 0x96, 0x90, 0x59, 0x05, 0x3b, 0x7a, 0x85,
122
- 0x40, 0xfd, 0x1e, 0xc8, 0xe7, 0x8a, 0x8b, 0x21, 0xda, 0x43, 0x64, 0x9f, 0x2d, 0x14, 0xb1, 0x72,
123
- 0xf5, 0x5b, 0xc8, 0xb6, 0x9c, 0x37, 0x76, 0xec, 0x39, 0xa0, 0xa3, 0x05, 0x52, 0x6e, 0x0f, 0xd9
124
- ]),
125
- new Uint8Array([
126
- 0xa7, 0xdd, 0x0d, 0x78, 0x9e, 0x0b, 0xe3, 0x95, 0x60, 0x36, 0x36, 0x4f, 0xf9, 0x60, 0x5a, 0xa3,
127
- 0x11, 0x24, 0xd2, 0x87, 0xc8, 0x52, 0x75, 0xec, 0xbb, 0xc1, 0x4c, 0xba, 0x24, 0xfe, 0x8f, 0x19,
128
- 0xda, 0x13, 0x66, 0xaf, 0x49, 0xd0, 0x90, 0x06, 0x8c, 0x6a, 0xfb, 0x91, 0x37, 0x8d, 0x0d, 0x78,
129
- 0xbf, 0x49, 0x11, 0xf4, 0x23, 0xe5, 0xce, 0x3b, 0x55, 0xbc, 0xa2, 0x57, 0xe8, 0x22, 0x74, 0xce
130
- ]),
131
- new Uint8Array([
132
- 0x2c, 0xea, 0xc1, 0xbf, 0x4a, 0x24, 0x1f, 0xc2, 0x79, 0x47, 0xa2, 0x7c, 0xb6, 0xd9, 0x68, 0x15,
133
- 0x80, 0x56, 0x5d, 0x01, 0x33, 0xfd, 0xf4, 0xae, 0xde, 0x30, 0x07, 0x9b, 0xe5, 0x83, 0x9b, 0x68,
134
- 0x49, 0xb4, 0x2e, 0x83, 0x1f, 0xc2, 0xb5, 0x7c, 0xa2, 0x19, 0xd8, 0xe5, 0x7c, 0x2f, 0x83, 0xda,
135
- 0xf7, 0x6b, 0x90, 0xfe, 0xc4, 0x01, 0x5a, 0x97, 0x61, 0xa6, 0x3d, 0x40, 0x0b, 0x58, 0xe6, 0x3d
136
- ]),
137
- new Uint8Array([
138
- 0x4d, 0xd1, 0xb2, 0x0f, 0x28, 0xbd, 0xe4, 0x78, 0xf6, 0x4a, 0x0f, 0x93, 0x8b, 0x17, 0xd1, 0xa4,
139
- 0x3a, 0xec, 0xc9, 0x35, 0x93, 0x56, 0x7e, 0xcb, 0x55, 0x20, 0xa0, 0xfe, 0x6c, 0x89, 0x17, 0x62,
140
- 0x17, 0x62, 0x4b, 0xb1, 0xb4, 0xde, 0xd1, 0x87, 0xc9, 0x14, 0x3c, 0x4a, 0x7e, 0xa8, 0xe2, 0x7d,
141
- 0xa0, 0x9f, 0xf6, 0x5c, 0x6a, 0x09, 0x8d, 0xf0, 0x0f, 0xe3, 0x53, 0x25, 0x95, 0x36, 0x28, 0xcb
142
- ])
143
- ];
144
- /**
145
- * Initial permutation (IP).
146
- */
147
- function initialPermutation(src, index) {
148
- for (var i = 0; i < 64; ++i) {
149
- var j = initialPermutationTable[i] - 1;
150
- if (src[index + ((j >> 3) & 7)] & mask[j & 7]) {
151
- tmp[(i >> 3) & 7] |= mask[i & 7];
152
- }
153
- }
154
- src.set(tmp, index);
155
- tmp.set(clean);
156
- }
157
- /**
158
- * Final permutation (IP^-1).
159
- */
160
- function finalPermutation(src, index) {
161
- for (var i = 0; i < 64; ++i) {
162
- var j = finalPermutationTable[i] - 1;
163
- if (src[index + ((j >> 3) & 7)] & mask[j & 7]) {
164
- tmp[(i >> 3) & 7] |= mask[i & 7];
165
- }
166
- }
167
- src.set(tmp, index);
168
- tmp.set(clean);
169
- }
170
- /**
171
- * Transposition (P-BOX).
172
- */
173
- function transposition(src, index) {
174
- for (var i = 0; i < 32; ++i) {
175
- var j = transpositionTable[i] - 1;
176
- if (src[index + (j >> 3)] & mask[j & 7]) {
177
- tmp[(i >> 3) + 4] |= mask[i & 7];
178
- }
179
- }
180
- src.set(tmp, index);
181
- tmp.set(clean);
182
- }
183
- /**
184
- * Expansion (E).
185
- * Expands upper four 8-bits (32b) into eight 6-bits (48b).
186
- */
187
- function expansion(src, index) {
188
- tmp[0] = ((src[index + 7] << 5) | (src[index + 4] >> 3)) & 0x3f; // ..0 vutsr
189
- tmp[1] = ((src[index + 4] << 1) | (src[index + 5] >> 7)) & 0x3f; // ..srqpo n
190
- tmp[2] = ((src[index + 4] << 5) | (src[index + 5] >> 3)) & 0x3f; // ..o nmlkj
191
- tmp[3] = ((src[index + 5] << 1) | (src[index + 6] >> 7)) & 0x3f; // ..kjihg f
192
- tmp[4] = ((src[index + 5] << 5) | (src[index + 6] >> 3)) & 0x3f; // ..g fedcb
193
- tmp[5] = ((src[index + 6] << 1) | (src[index + 7] >> 7)) & 0x3f; // ..cba98 7
194
- tmp[6] = ((src[index + 6] << 5) | (src[index + 7] >> 3)) & 0x3f; // ..8 76543
195
- tmp[7] = ((src[index + 7] << 1) | (src[index + 4] >> 7)) & 0x3f; // ..43210 v
196
- src.set(tmp, index);
197
- tmp.set(clean);
198
- }
199
- /**
200
- * Substitution boxes (S-boxes).
201
- * NOTE: This implementation was optimized to process two nibbles in one step (twice as fast).
202
- */
203
- function substitutionBox(src, index) {
204
- for (var i = 0; i < 4; ++i) {
205
- tmp[i] =
206
- (substitutionBoxTable[i][src[i * 2 + 0 + index]] & 0xf0) |
207
- (substitutionBoxTable[i][src[i * 2 + 1 + index]] & 0x0f);
208
- }
209
- src.set(tmp, index);
210
- tmp.set(clean);
211
- }
212
- /**
213
- * DES round function.
214
- * XORs src[0..3] with TP(SBOX(E(src[4..7]))).
215
- */
216
- function roundFunction(src, index) {
217
- for (var i = 0; i < 8; i++) {
218
- tmp2[i] = src[index + i];
219
- }
220
- expansion(tmp2, 0);
221
- substitutionBox(tmp2, 0);
222
- transposition(tmp2, 0);
223
- src[index + 0] ^= tmp2[4];
224
- src[index + 1] ^= tmp2[5];
225
- src[index + 2] ^= tmp2[6];
226
- src[index + 3] ^= tmp2[7];
227
- }
228
- /**
229
- * DEcrypt a block
230
- */
231
- function decryptBlock(src, index) {
232
- initialPermutation(src, index);
233
- roundFunction(src, index);
234
- finalPermutation(src, index);
235
- }
236
- /**
237
- * Decode the whole file
238
- */
239
- function decodeFull(src, length, entryLength) {
240
- // compute number of digits of the entry length
241
- var digits = entryLength.toString().length;
242
- // choose size of gap between two encrypted blocks
243
- // digits: 0 1 2 3 4 5 6 7 8 9 ...
244
- // cycle: 1 1 1 4 5 14 15 22 23 24 ...
245
- var cycle = digits < 3
246
- ? 1
247
- : digits < 5
248
- ? digits + 1
249
- : digits < 7
250
- ? digits + 9
251
- : digits + 15;
252
- var nblocks = length >> 3;
253
- // first 20 blocks are all des-encrypted
254
- for (var i = 0; i < 20 && i < nblocks; ++i) {
255
- decryptBlock(src, i * 8);
256
- }
257
- for (var i = 20, j = -1; i < nblocks; ++i) {
258
- // decrypt block
259
- if (i % cycle === 0) {
260
- decryptBlock(src, i * 8);
261
- continue;
262
- }
263
- // de-shuffle block
264
- if (++j && j % 7 === 0) {
265
- shuffleDec(src, i * 8);
266
- }
267
- }
268
- }
269
- /**
270
- * Decode only the header
271
- */
272
- function decodeHeader(src, length) {
273
- var count = length >> 3;
274
- // first 20 blocks are all des-encrypted
275
- for (var i = 0; i < 20 && i < count; ++i) {
276
- decryptBlock(src, i * 8);
277
- }
278
- // the rest is plaintext, done.
279
- }
280
- /**
281
- * Shuffle decode
282
- */
283
- function shuffleDec(src, index) {
284
- tmp[0] = src[index + 3];
285
- tmp[1] = src[index + 4];
286
- tmp[2] = src[index + 6];
287
- tmp[3] = src[index + 0];
288
- tmp[4] = src[index + 1];
289
- tmp[5] = src[index + 2];
290
- tmp[6] = src[index + 5];
291
- tmp[7] = shuffleDecTable[src[index + 7]];
292
- src.set(tmp, index);
293
- tmp.set(clean);
294
- }
295
- /**
296
- * GRF substitution table
297
- */
298
- var shuffleDecTable = (function () {
299
- // prettier-ignore
300
- var list = new Uint8Array([
301
- 0x00, 0x2b, 0x6c, 0x80, 0x01, 0x68, 0x48,
302
- 0x77, 0x60, 0xff, 0xb9, 0xc0, 0xfe, 0xeb
303
- ]);
304
- var out = new Uint8Array(Array.from({ length: 256 }, function (_, k) { return k; }));
305
- var count = list.length;
306
- for (var i = 0; i < count; i += 2) {
307
- out[list[i + 0]] = list[i + 1];
308
- out[list[i + 1]] = list[i + 0];
309
- }
310
- return out;
311
- })();
312
-
313
- var FILELIST_TYPE_FILE = 0x01;
314
- var FILELIST_TYPE_ENCRYPT_MIXED = 0x02; // encryption mode 0 (header DES + periodic DES/shuffle)
315
- var FILELIST_TYPE_ENCRYPT_HEADER = 0x04; // encryption mode 1 (header DES only)
316
- var HEADER_SIGNATURE = 'Master of Magic';
317
- var HEADER_SIZE = 46;
318
- var FILE_TABLE_SIZE = Uint32Array.BYTES_PER_ELEMENT * 2;
319
- var GrfBase = /** @class */ (function () {
320
- function GrfBase(fd) {
321
- this.fd = fd;
322
- this.version = 0x200;
323
- this.fileCount = 0;
324
- this.loaded = false;
325
- this.files = new Map();
326
- this.fileTableOffset = 0;
327
- }
328
- GrfBase.prototype.getStreamReader = function (offset, length) {
329
- return __awaiter(this, void 0, void 0, function () {
330
- var buffer;
331
- return __generator(this, function (_a) {
332
- switch (_a.label) {
333
- case 0: return [4 /*yield*/, this.getStreamBuffer(this.fd, offset, length)];
334
- case 1:
335
- buffer = _a.sent();
336
- return [2 /*return*/, new jDataview(buffer, void 0, void 0, true)];
337
- }
338
- });
339
- });
340
- };
341
- GrfBase.prototype.load = function () {
342
- return __awaiter(this, void 0, void 0, function () {
343
- return __generator(this, function (_a) {
344
- switch (_a.label) {
345
- case 0:
346
- if (!!this.loaded) return [3 /*break*/, 3];
347
- return [4 /*yield*/, this.parseHeader()];
348
- case 1:
349
- _a.sent();
350
- return [4 /*yield*/, this.parseFileList()];
351
- case 2:
352
- _a.sent();
353
- this.loaded = true;
354
- _a.label = 3;
355
- case 3: return [2 /*return*/];
356
- }
357
- });
358
- });
359
- };
360
- GrfBase.prototype.parseHeader = function () {
361
- return __awaiter(this, void 0, void 0, function () {
362
- var reader, signature, reservedFiles;
363
- return __generator(this, function (_a) {
364
- switch (_a.label) {
365
- case 0: return [4 /*yield*/, this.getStreamReader(0, HEADER_SIZE)];
366
- case 1:
367
- reader = _a.sent();
368
- signature = reader.getString(15);
369
- if (signature !== HEADER_SIGNATURE) {
370
- throw new Error('Not a GRF file (invalid signature)');
371
- }
372
- reader.skip(15);
373
- this.fileTableOffset = reader.getUint32() + HEADER_SIZE;
374
- reservedFiles = reader.getUint32();
375
- this.fileCount = reader.getUint32() - reservedFiles - 7;
376
- this.version = reader.getUint32();
377
- if (this.version !== 0x200) {
378
- throw new Error("Unsupported version \"0x" + this.version.toString(16) + "\"");
379
- }
380
- return [2 /*return*/];
381
- }
382
- });
383
- });
384
- };
385
- GrfBase.prototype.parseFileList = function () {
386
- return __awaiter(this, void 0, void 0, function () {
387
- var reader, compressedSize, realSize, compressed, data, i, p, filename, entry;
388
- return __generator(this, function (_a) {
389
- switch (_a.label) {
390
- case 0: return [4 /*yield*/, this.getStreamReader(this.fileTableOffset, FILE_TABLE_SIZE)];
391
- case 1:
392
- reader = _a.sent();
393
- compressedSize = reader.getUint32();
394
- realSize = reader.getUint32();
395
- return [4 /*yield*/, this.getStreamBuffer(this.fd, this.fileTableOffset + FILE_TABLE_SIZE, compressedSize)];
396
- case 2:
397
- compressed = _a.sent();
398
- data = pako.inflate(compressed, {
399
- //chunkSize: realSize
400
- });
401
- // Optimized version without using jDataView (faster)
402
- for (i = 0, p = 0; i < this.fileCount; ++i) {
403
- filename = '';
404
- while (data[p]) {
405
- filename += String.fromCharCode(data[p++]);
406
- }
407
- p++;
408
- entry = {
409
- compressedSize: data[p++] | (data[p++] << 8) | (data[p++] << 16) | (data[p++] << 24),
410
- lengthAligned: data[p++] | (data[p++] << 8) | (data[p++] << 16) | (data[p++] << 24),
411
- realSize: data[p++] | (data[p++] << 8) | (data[p++] << 16) | (data[p++] << 24),
412
- type: data[p++],
413
- offset: (data[p++] | (data[p++] << 8) | (data[p++] << 16) | (data[p++] << 24)) >>> 0
414
- };
415
- // Not a file (folder ?)
416
- if (entry.type & FILELIST_TYPE_FILE) {
417
- this.files.set(filename.toLowerCase(), entry);
418
- }
419
- }
420
- return [2 /*return*/];
421
- }
422
- });
423
- });
424
- };
425
- GrfBase.prototype.decodeEntry = function (data, entry) {
426
- // Decode the file
427
- if (entry.type & FILELIST_TYPE_ENCRYPT_MIXED) {
428
- decodeFull(data, entry.lengthAligned, entry.compressedSize);
429
- }
430
- else if (entry.type & FILELIST_TYPE_ENCRYPT_HEADER) {
431
- decodeHeader(data, entry.lengthAligned);
432
- }
433
- // No compression
434
- if (entry.realSize === entry.compressedSize) {
435
- return data;
436
- }
437
- // Uncompress
438
- return pako.inflate(data, {
439
- //chunkSize: entry.realSize
440
- });
441
- };
442
- GrfBase.prototype.getFile = function (filename) {
443
- return __awaiter(this, void 0, void 0, function () {
444
- var path, entry, data, result;
445
- return __generator(this, function (_a) {
446
- switch (_a.label) {
447
- case 0:
448
- if (!this.loaded) {
449
- return [2 /*return*/, Promise.resolve({ data: null, error: 'GRF not loaded yet' })];
450
- }
451
- path = filename.toLowerCase();
452
- // Not exists
453
- if (!this.files.has(path)) {
454
- return [2 /*return*/, Promise.resolve({ data: null, error: "File \"" + path + "\" not found" })];
455
- }
456
- entry = this.files.get(path);
457
- return [4 /*yield*/, this.getStreamBuffer(this.fd, entry.offset + HEADER_SIZE, entry.lengthAligned)];
458
- case 1:
459
- data = _a.sent();
460
- try {
461
- result = this.decodeEntry(data, entry);
462
- return [2 /*return*/, Promise.resolve({ data: result, error: null })];
463
- }
464
- catch (error) {
465
- return [2 /*return*/, Promise.resolve({ data: null, error: error })];
466
- }
467
- return [2 /*return*/];
468
- }
469
- });
470
- });
471
- };
472
- return GrfBase;
473
- }());
474
-
475
- /**
476
- * Using this Browser, we work from a File or Blob object.
477
- * We are use the FileReader API to read only some part of the file to avoid
478
- * loading 2 gigas into memory
479
- */
480
- var GrfBrowser = /** @class */ (function (_super) {
481
- __extends(GrfBrowser, _super);
482
- function GrfBrowser() {
483
- return _super !== null && _super.apply(this, arguments) || this;
484
- }
485
- GrfBrowser.prototype.getStreamBuffer = function (buffer, offset, length) {
486
- return __awaiter(this, void 0, void 0, function () {
487
- return __generator(this, function (_a) {
488
- return [2 /*return*/, new Promise(function (resolve, reject) {
489
- var reader = new FileReader();
490
- reader.onerror = reject;
491
- reader.onload = function () {
492
- return resolve(new Uint8Array(reader.result));
493
- };
494
- reader.readAsArrayBuffer(buffer.slice(offset, offset + length));
495
- })];
496
- });
497
- });
498
- };
499
- return GrfBrowser;
500
- }(GrfBase));
501
-
502
- /**
503
- * Using this Node env, we work from a fd object.
504
- * We do not work directly with a buffer to avoid loading 2 gigas into memory.
505
- *
506
- * You can get the `fd` by using :
507
- * ```
508
- * const fd = openSync('path/to/grf', 'r');
509
- * const grf = new GRFNode(fd);
510
- * ```
511
- */
512
- var GrfNode = /** @class */ (function (_super) {
513
- __extends(GrfNode, _super);
514
- function GrfNode() {
515
- return _super !== null && _super.apply(this, arguments) || this;
516
- }
517
- GrfNode.prototype.getStreamBuffer = function (fd, offset, length) {
518
- return __awaiter(this, void 0, void 0, function () {
519
- var buffer;
520
- return __generator(this, function (_a) {
521
- switch (_a.label) {
522
- case 0:
523
- buffer = Buffer.alloc(length);
524
- return [4 /*yield*/, new Promise(function (resolve, reject) {
525
- return fs.read(fd, buffer, 0, length, offset, function (error) {
526
- return error ? reject(error) : resolve();
527
- });
528
- })];
529
- case 1:
530
- _a.sent();
531
- return [2 /*return*/, buffer];
532
- }
533
- });
534
- });
535
- };
536
- return GrfNode;
537
- }(GrfBase));
538
-
539
- exports.GrfBrowser = GrfBrowser;
540
- exports.GrfNode = GrfNode;
541
-
542
- Object.defineProperty(exports, '__esModule', { value: true });
543
-
544
- })));
545
- //# sourceMappingURL=grf-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grf-loader.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/des.ts","../../src/grf-base.ts","../../src/grf-browser.ts","../../src/grf-node.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n",null,null,null,null],"names":["inflate","read"],"mappings":"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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SAChG,CAAC;QACF,IAAI,UAAU,CAAC;YACb,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC/F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC/F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC/F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SAChG,CAAC;QACF,IAAI,UAAU,CAAC;YACb,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC/F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC/F,IAAI,EAAE,IAAI,E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"}
@@ -1,17 +0,0 @@
1
- var t,e;t=this,e=function(t,e,r,n){"use strict";r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */
16
- var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function o(t,e){function r(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function a(t,e,r,n){return new(r||(r=Promise))((function(i,o){function a(t){try{u(n.next(t))}catch(t){o(t)}}function s(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))}function s(t,e){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=e.call(t,a)}catch(t){o=[6,t],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}var u=new Uint8Array([128,64,32,16,8,4,2,1]),f=new Uint8Array(8),c=new Uint8Array(8),l=new Uint8Array(8),h=new Uint8Array([58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7]),d=new Uint8Array([40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,33,1,41,9,49,17,57,25]),p=new Uint8Array([16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25]),v=[new Uint8Array([239,3,65,253,216,116,30,71,38,239,251,34,179,216,132,30,57,172,167,96,98,193,205,186,92,150,144,89,5,59,122,133,64,253,30,200,231,138,139,33,218,67,100,159,45,20,177,114,245,91,200,182,156,55,118,236,57,160,163,5,82,110,15,217]),new Uint8Array([167,221,13,120,158,11,227,149,96,54,54,79,249,96,90,163,17,36,210,135,200,82,117,236,187,193,76,186,36,254,143,25,218,19,102,175,73,208,144,6,140,106,251,145,55,141,13,120,191,73,17,244,35,229,206,59,85,188,162,87,232,34,116,206]),new Uint8Array([44,234,193,191,74,36,31,194,121,71,162,124,182,217,104,21,128,86,93,1,51,253,244,174,222,48,7,155,229,131,155,104,73,180,46,131,31,194,181,124,162,25,216,229,124,47,131,218,247,107,144,254,196,1,90,151,97,166,61,64,11,88,230,61]),new Uint8Array([77,209,178,15,40,189,228,120,246,74,15,147,139,23,209,164,58,236,201,53,147,86,126,203,85,32,160,254,108,137,23,98,23,98,75,177,180,222,209,135,201,20,60,74,126,168,226,125,160,159,246,92,106,9,141,240,15,227,83,37,149,54,40,203])];function y(t,e){for(var r=0;r<8;r++)c[r]=t[e+r];!function(t,e){f[0]=63&(t[e+7]<<5|t[e+4]>>3),f[1]=63&(t[e+4]<<1|t[e+5]>>7),f[2]=63&(t[e+4]<<5|t[e+5]>>3),f[3]=63&(t[e+5]<<1|t[e+6]>>7),f[4]=63&(t[e+5]<<5|t[e+6]>>3),f[5]=63&(t[e+6]<<1|t[e+7]>>7),f[6]=63&(t[e+6]<<5|t[e+7]>>3),f[7]=63&(t[e+7]<<1|t[e+4]>>7),t.set(f,e),f.set(l)}(c,0),function(t,e){for(var r=0;r<4;++r)f[r]=240&v[r][t[2*r+0+e]]|15&v[r][t[2*r+1+e]];t.set(f,e),f.set(l)}(c,0),function(t,e){for(var r=0;r<32;++r){var n=p[r]-1;t[e+(n>>3)]&u[7&n]&&(f[4+(r>>3)]|=u[7&r])}t.set(f,e),f.set(l)}(c,0),t[e+0]^=c[4],t[e+1]^=c[5],t[e+2]^=c[6],t[e+3]^=c[7]}function w(t,e){!function(t,e){for(var r=0;r<64;++r){var n=h[r]-1;t[e+(n>>3&7)]&u[7&n]&&(f[r>>3&7]|=u[7&r])}t.set(f,e),f.set(l)}(t,e),y(t,e),function(t,e){for(var r=0;r<64;++r){var n=d[r]-1;t[e+(n>>3&7)]&u[7&n]&&(f[r>>3&7]|=u[7&r])}t.set(f,e),f.set(l)}(t,e)}function g(t,e){f[0]=t[e+3],f[1]=t[e+4],f[2]=t[e+6],f[3]=t[e+0],f[4]=t[e+1],f[5]=t[e+2],f[6]=t[e+5],f[7]=b[t[e+7]],t.set(f,e),f.set(l)}var b=function(){for(var t=new Uint8Array([0,43,108,128,1,104,72,119,96,255,185,192,254,235]),e=new Uint8Array(Array.from({length:256},(function(t,e){return e}))),r=t.length,n=0;n<r;n+=2)e[t[n+0]]=t[n+1],e[t[n+1]]=t[n+0];return e}(),m=2*Uint32Array.BYTES_PER_ELEMENT,A=function(){function t(t){this.fd=t,this.version=512,this.fileCount=0,this.loaded=!1,this.files=new Map,this.fileTableOffset=0}return t.prototype.getStreamReader=function(t,e){return a(this,void 0,void 0,(function(){var n;return s(this,(function(i){switch(i.label){case 0:return[4,this.getStreamBuffer(this.fd,t,e)];case 1:return n=i.sent(),[2,new r(n,void 0,void 0,!0)]}}))}))},t.prototype.load=function(){return a(this,void 0,void 0,(function(){return s(this,(function(t){switch(t.label){case 0:return this.loaded?[3,3]:[4,this.parseHeader()];case 1:return t.sent(),[4,this.parseFileList()];case 2:t.sent(),this.loaded=!0,t.label=3;case 3:return[2]}}))}))},t.prototype.parseHeader=function(){return a(this,void 0,void 0,(function(){var t,e;return s(this,(function(r){switch(r.label){case 0:return[4,this.getStreamReader(0,46)];case 1:if("Master of Magic"!==(t=r.sent()).getString(15))throw Error("Not a GRF file (invalid signature)");if(t.skip(15),this.fileTableOffset=t.getUint32()+46,e=t.getUint32(),this.fileCount=t.getUint32()-e-7,this.version=t.getUint32(),512!==this.version)throw Error('Unsupported version "0x'+this.version.toString(16)+'"');return[2]}}))}))},t.prototype.parseFileList=function(){return a(this,void 0,void 0,(function(){var t,r,n,i,o,a,u,f;return s(this,(function(s){switch(s.label){case 0:return[4,this.getStreamReader(this.fileTableOffset,m)];case 1:return t=s.sent(),r=t.getUint32(),t.getUint32(),[4,this.getStreamBuffer(this.fd,this.fileTableOffset+m,r)];case 2:for(n=s.sent(),i=e.inflate(n,{}),o=0,a=0;o<this.fileCount;++o){for(u="";i[a];)u+=String.fromCharCode(i[a++]);a++,1&(f={compressedSize:i[a++]|i[a++]<<8|i[a++]<<16|i[a++]<<24,lengthAligned:i[a++]|i[a++]<<8|i[a++]<<16|i[a++]<<24,realSize:i[a++]|i[a++]<<8|i[a++]<<16|i[a++]<<24,type:i[a++],offset:(i[a++]|i[a++]<<8|i[a++]<<16|i[a++]<<24)>>>0}).type&&this.files.set(u.toLowerCase(),f)}return[2]}}))}))},t.prototype.decodeEntry=function(t,r){return 2&r.type?function(t,e,r){for(var n=r.toString().length,i=n<3?1:n<5?n+1:n<7?n+9:n+15,o=e>>3,a=0;a<20&&a<o;++a)w(t,8*a);a=20;for(var s=-1;a<o;++a)a%i!=0?++s&&s%7==0&&g(t,8*a):w(t,8*a)}(t,r.lengthAligned,r.compressedSize):4&r.type&&function(t,e){for(var r=e>>3,n=0;n<20&&n<r;++n)w(t,8*n)}(t,r.lengthAligned),r.realSize===r.compressedSize?t:e.inflate(t,{})},t.prototype.getFile=function(t){return a(this,void 0,void 0,(function(){var e,r,n,i;return s(this,(function(o){switch(o.label){case 0:return this.loaded?(e=t.toLowerCase(),this.files.has(e)?(r=this.files.get(e),[4,this.getStreamBuffer(this.fd,r.offset+46,r.lengthAligned)]):[2,Promise.resolve({data:null,error:'File "'+e+'" not found'})]):[2,Promise.resolve({data:null,error:"GRF not loaded yet"})];case 1:n=o.sent();try{return i=this.decodeEntry(n,r),[2,Promise.resolve({data:i,error:null})]}catch(t){return[2,Promise.resolve({data:null,error:t})]}return[2]}}))}))},t}(),U=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.getStreamBuffer=function(t,e,r){return a(this,void 0,void 0,(function(){return s(this,(function(n){return[2,new Promise((function(n,i){var o=new FileReader;o.onerror=i,o.onload=function(){return n(new Uint8Array(o.result))},o.readAsArrayBuffer(t.slice(e,e+r))}))]}))}))},e}(A),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.getStreamBuffer=function(t,e,r){return a(this,void 0,void 0,(function(){var i;return s(this,(function(o){switch(o.label){case 0:return i=Buffer.alloc(r),[4,new Promise((function(o,a){return n.read(t,i,0,r,e,(function(t){return t?a(t):o()}))}))];case 1:return o.sent(),[2,i]}}))}))},e}(A);t.GrfBrowser=U,t.GrfNode=S,Object.defineProperty(t,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("pako"),require("jdataview"),require("fs")):"function"==typeof define&&define.amd?define(["exports","pako","jdataview","fs"],e):e((t=t||self).GrfLoader={},t.pako,t.jDataview,t.fs);
17
- //# sourceMappingURL=grf-loader.min.js.map