simple-zstd 2.0.0 → 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.
- package/.github/workflows/ci.yml +5 -3
- package/.github/workflows/release.yml +9 -3
- package/CHANGELOG.md +6 -0
- package/README.md +39 -2
- package/dist/src/buffer-writable.js +6 -19
- package/dist/src/buffer-writable.js.map +1 -0
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.js +173 -83
- package/dist/src/index.js.map +1 -0
- package/dist/src/peek-transform.js +85 -98
- package/dist/src/peek-transform.js.map +1 -0
- package/dist/src/process-duplex.d.ts +13 -2
- package/dist/src/process-duplex.js +128 -108
- package/dist/src/process-duplex.js.map +1 -0
- package/dist/src/process-queue.js +41 -54
- package/dist/src/process-queue.js.map +1 -0
- package/dist/src/types.d.ts +6 -0
- package/dist/src/types.js +1 -1
- package/dist/src/types.js.map +1 -0
- package/package.json +16 -16
- package/src/index.ts +193 -48
- package/src/process-duplex.ts +112 -63
- package/src/types.ts +7 -0
- package/tsconfig.json +32 -99
package/dist/src/index.js
CHANGED
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
|
-
var _SimpleZSTD_compressQueue, _SimpleZSTD_decompressQueue, _SimpleZSTD_compressDictCleanup, _SimpleZSTD_decompressDictCleanup, _SimpleZSTD_ready, _SimpleZSTD_poolOptions;
|
|
17
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
6
|
exports.SimpleZSTD = void 0;
|
|
19
7
|
exports.clearDictionaryCache = clearDictionaryCache;
|
|
@@ -21,7 +9,9 @@ exports.compress = compress;
|
|
|
21
9
|
exports.compressBuffer = compressBuffer;
|
|
22
10
|
exports.decompress = decompress;
|
|
23
11
|
exports.decompressBuffer = decompressBuffer;
|
|
12
|
+
exports.createDictionary = createDictionary;
|
|
24
13
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
14
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
25
15
|
const promises_1 = require("node:fs/promises");
|
|
26
16
|
const node_crypto_1 = require("node:crypto");
|
|
27
17
|
const node_stream_1 = require("node:stream");
|
|
@@ -38,6 +28,13 @@ const peek_transform_1 = __importDefault(require("./peek-transform"));
|
|
|
38
28
|
// Dictionary cache to avoid recreating temp files for the same dictionary buffer
|
|
39
29
|
// Map: hash -> { path: string, cleanup: () => void, refCount: number }
|
|
40
30
|
const dictionaryCache = new Map();
|
|
31
|
+
async function createTempDirectory(prefix) {
|
|
32
|
+
const { path: tempDirectory, cleanup } = await (0, tmp_promise_1.dir)({ prefix, unsafeCleanup: true });
|
|
33
|
+
return {
|
|
34
|
+
directoryPath: tempDirectory,
|
|
35
|
+
cleanup: () => Promise.resolve(cleanup()),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
41
38
|
function hashBuffer(buffer) {
|
|
42
39
|
return (0, node_crypto_1.createHash)('sha256').update(buffer).digest('hex');
|
|
43
40
|
}
|
|
@@ -58,15 +55,16 @@ async function getCachedDictionaryPath(dictionary) {
|
|
|
58
55
|
};
|
|
59
56
|
}
|
|
60
57
|
debug(`Dictionary cache miss: ${hash.slice(0, 8)}... - creating temp file`);
|
|
61
|
-
const {
|
|
62
|
-
|
|
58
|
+
const { directoryPath, cleanup: tmpCleanup } = await createTempDirectory('zstd-dict-cache-');
|
|
59
|
+
const dictionaryPath = node_path_1.default.join(directoryPath, 'dictionary.zstd');
|
|
60
|
+
await (0, promises_1.writeFile)(dictionaryPath, dictionary);
|
|
63
61
|
dictionaryCache.set(hash, {
|
|
64
|
-
path,
|
|
62
|
+
path: dictionaryPath,
|
|
65
63
|
cleanup: tmpCleanup,
|
|
66
64
|
refCount: 1,
|
|
67
65
|
});
|
|
68
66
|
return {
|
|
69
|
-
path,
|
|
67
|
+
path: dictionaryPath,
|
|
70
68
|
cleanup: () => {
|
|
71
69
|
const cached = dictionaryCache.get(hash);
|
|
72
70
|
if (cached) {
|
|
@@ -112,7 +110,6 @@ catch {
|
|
|
112
110
|
async function CreateCompressStream(compLevel, opts) {
|
|
113
111
|
let lvl = compLevel;
|
|
114
112
|
let zo = opts.zstdOptions || [];
|
|
115
|
-
let path = null;
|
|
116
113
|
let cleanup = () => null;
|
|
117
114
|
if (!lvl)
|
|
118
115
|
lvl = 3;
|
|
@@ -124,13 +121,20 @@ async function CreateCompressStream(compLevel, opts) {
|
|
|
124
121
|
}
|
|
125
122
|
else if (Buffer.isBuffer(opts.dictionary)) {
|
|
126
123
|
// Use cached dictionary to avoid recreating temp files
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
const cached = await getCachedDictionaryPath(opts.dictionary);
|
|
125
|
+
cleanup = cached.cleanup;
|
|
126
|
+
zo = [...zo, '-D', cached.path];
|
|
129
127
|
}
|
|
130
128
|
let c;
|
|
131
129
|
try {
|
|
132
130
|
debug(bin, ['-zc', `-${lvl}`, ...zo], opts.spawnOptions, opts.streamOptions);
|
|
133
|
-
c = new process_duplex_1.default(
|
|
131
|
+
c = new process_duplex_1.default({
|
|
132
|
+
command: bin,
|
|
133
|
+
args: ['-zc', `-${lvl}`, ...zo],
|
|
134
|
+
spawnOptions: opts.spawnOptions,
|
|
135
|
+
streamOptions: opts.streamOptions,
|
|
136
|
+
nonZeroExitPolicy: true,
|
|
137
|
+
});
|
|
134
138
|
}
|
|
135
139
|
catch (err) {
|
|
136
140
|
// cleanup if error;
|
|
@@ -139,11 +143,6 @@ async function CreateCompressStream(compLevel, opts) {
|
|
|
139
143
|
}
|
|
140
144
|
c.on('exit', (code, signal) => {
|
|
141
145
|
debug('c exit', code, signal);
|
|
142
|
-
if (code !== 0) {
|
|
143
|
-
setImmediate(() => {
|
|
144
|
-
c.destroy(new Error(`zstd exited non zero. code: ${code} signal: ${signal}`));
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
146
|
cleanup();
|
|
148
147
|
});
|
|
149
148
|
return c;
|
|
@@ -175,7 +174,6 @@ function CompressBuffer(buffer, c) {
|
|
|
175
174
|
async function CreateDecompressStream(opts) {
|
|
176
175
|
// Dictionary
|
|
177
176
|
let zo = opts.zstdOptions || [];
|
|
178
|
-
let path = null;
|
|
179
177
|
let cleanup = () => null;
|
|
180
178
|
let terminate = false;
|
|
181
179
|
if (opts.dictionary && 'path' in opts.dictionary) {
|
|
@@ -183,13 +181,20 @@ async function CreateDecompressStream(opts) {
|
|
|
183
181
|
}
|
|
184
182
|
else if (Buffer.isBuffer(opts.dictionary)) {
|
|
185
183
|
// Use cached dictionary to avoid recreating temp files
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
const cached = await getCachedDictionaryPath(opts.dictionary);
|
|
185
|
+
cleanup = cached.cleanup;
|
|
186
|
+
zo = [...zo, '-D', cached.path];
|
|
188
187
|
}
|
|
189
188
|
let d;
|
|
190
189
|
try {
|
|
191
190
|
debug(bin, ['-dc', ...zo], opts.spawnOptions, opts.streamOptions);
|
|
192
|
-
d = new process_duplex_1.default(
|
|
191
|
+
d = new process_duplex_1.default({
|
|
192
|
+
command: bin,
|
|
193
|
+
args: ['-dc', ...zo],
|
|
194
|
+
spawnOptions: opts.spawnOptions,
|
|
195
|
+
streamOptions: opts.streamOptions,
|
|
196
|
+
nonZeroExitPolicy: () => !terminate,
|
|
197
|
+
});
|
|
193
198
|
}
|
|
194
199
|
catch (err) {
|
|
195
200
|
// cleanup if error
|
|
@@ -198,11 +203,6 @@ async function CreateDecompressStream(opts) {
|
|
|
198
203
|
}
|
|
199
204
|
d.on('exit', (code, signal) => {
|
|
200
205
|
debug('d exit', code, signal);
|
|
201
|
-
if (code !== 0 && !terminate) {
|
|
202
|
-
setImmediate(() => {
|
|
203
|
-
d.destroy(new Error(`zstd exited non zero. code: ${code} signal: ${signal}`));
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
206
|
cleanup();
|
|
207
207
|
});
|
|
208
208
|
const wrapper = new peek_transform_1.default({ maxBuffer: 10 }, (data, swap) => {
|
|
@@ -256,23 +256,112 @@ function decompress(opts = {}) {
|
|
|
256
256
|
return CreateDecompressStream(opts);
|
|
257
257
|
}
|
|
258
258
|
async function decompressBuffer(buffer, opts = {}) {
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
// Preserve "smart decompression" behavior for non-zstd payloads.
|
|
260
|
+
if (!(0, is_zst_1.default)(buffer)) {
|
|
261
|
+
return buffer;
|
|
262
|
+
}
|
|
263
|
+
let zo = opts.zstdOptions || [];
|
|
264
|
+
let cleanup = () => null;
|
|
265
|
+
if (opts.dictionary && 'path' in opts.dictionary) {
|
|
266
|
+
zo = [...zo, '-D', `${opts.dictionary.path}`];
|
|
267
|
+
}
|
|
268
|
+
else if (Buffer.isBuffer(opts.dictionary)) {
|
|
269
|
+
const cachedDictionary = await getCachedDictionaryPath(opts.dictionary);
|
|
270
|
+
zo = [...zo, '-D', `${cachedDictionary.path}`];
|
|
271
|
+
cleanup = cachedDictionary.cleanup;
|
|
272
|
+
}
|
|
273
|
+
const args = ['-dc', ...zo];
|
|
274
|
+
return new Promise((resolve, reject) => {
|
|
275
|
+
debug(bin, args, opts.spawnOptions);
|
|
276
|
+
const child = (0, node_child_process_1.execFile)(bin, args, {
|
|
277
|
+
...(opts.spawnOptions ?? {}),
|
|
278
|
+
encoding: 'buffer',
|
|
279
|
+
maxBuffer: 512 * 1024 * 1024,
|
|
280
|
+
}, (error, stdout, stderr) => {
|
|
281
|
+
cleanup();
|
|
282
|
+
if (!error) {
|
|
283
|
+
resolve(Buffer.isBuffer(stdout) ? stdout : Buffer.from(stdout));
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const code = typeof error.code === 'number' ? error.code : null;
|
|
287
|
+
const signal = error.signal ?? null;
|
|
288
|
+
const stdErrMessage = stderr?.toString().trim();
|
|
289
|
+
const errorMessage = stdErrMessage
|
|
290
|
+
? `zstd decompression failed (code: ${code}, signal: ${signal}): ${stdErrMessage}`
|
|
291
|
+
: `zstd decompression failed (code: ${code}, signal: ${signal})`;
|
|
292
|
+
reject(new Error(errorMessage));
|
|
293
|
+
});
|
|
294
|
+
child.stdin?.end(buffer);
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
async function createDictionary(opts) {
|
|
298
|
+
if (!Array.isArray(opts.trainingFiles) || opts.trainingFiles.length === 0) {
|
|
299
|
+
throw new Error('createDictionary requires at least one training file or buffer');
|
|
300
|
+
}
|
|
301
|
+
const { path: tempRunDirectory, cleanup } = await (0, tmp_promise_1.dir)({
|
|
302
|
+
prefix: 'zstd-dict-create-run-',
|
|
303
|
+
unsafeCleanup: true,
|
|
304
|
+
});
|
|
305
|
+
try {
|
|
306
|
+
const trainingPaths = [];
|
|
307
|
+
const outputPath = node_path_1.default.join(tempRunDirectory, 'dictionary.zstd');
|
|
308
|
+
for (const [index, trainingInput] of opts.trainingFiles.entries()) {
|
|
309
|
+
const stagedTrainingPath = node_path_1.default.join(tempRunDirectory, `training-${index}.bin`);
|
|
310
|
+
if (typeof trainingInput === 'string') {
|
|
311
|
+
await (0, promises_1.copyFile)(trainingInput, stagedTrainingPath);
|
|
312
|
+
trainingPaths.push(stagedTrainingPath);
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
if (Buffer.isBuffer(trainingInput)) {
|
|
316
|
+
await (0, promises_1.writeFile)(stagedTrainingPath, trainingInput);
|
|
317
|
+
trainingPaths.push(stagedTrainingPath);
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
throw new Error('createDictionary trainingFiles entries must be file paths or Buffers');
|
|
321
|
+
}
|
|
322
|
+
const args = ['--train', ...trainingPaths, '-o', outputPath];
|
|
323
|
+
if (opts.maxDictSize && opts.maxDictSize > 0) {
|
|
324
|
+
args.push(`--maxdict=${opts.maxDictSize}`);
|
|
325
|
+
}
|
|
326
|
+
if (opts.zstdOptions?.length) {
|
|
327
|
+
args.push(...opts.zstdOptions);
|
|
328
|
+
}
|
|
329
|
+
await new Promise((resolve, reject) => {
|
|
330
|
+
debug(bin, args, opts.spawnOptions);
|
|
331
|
+
(0, node_child_process_1.execFile)(bin, args, opts.spawnOptions ?? {}, (error, _stdout, stderr) => {
|
|
332
|
+
if (!error) {
|
|
333
|
+
resolve();
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
const code = typeof error.code === 'number' ? error.code : null;
|
|
337
|
+
const signal = error.signal ?? null;
|
|
338
|
+
const stdErrMessage = stderr?.toString().trim();
|
|
339
|
+
const errorMessage = stdErrMessage
|
|
340
|
+
? `zstd dictionary training failed (code: ${code}, signal: ${signal}): ${stdErrMessage}`
|
|
341
|
+
: `zstd dictionary training failed (code: ${code}, signal: ${signal})`;
|
|
342
|
+
reject(new Error(errorMessage));
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
return (0, promises_1.readFile)(outputPath);
|
|
346
|
+
}
|
|
347
|
+
finally {
|
|
348
|
+
await cleanup();
|
|
349
|
+
}
|
|
261
350
|
}
|
|
262
351
|
// SimpleZSTD Class
|
|
263
352
|
class SimpleZSTD {
|
|
353
|
+
#compressQueue;
|
|
354
|
+
#decompressQueue;
|
|
355
|
+
#compressDictCleanup = async () => undefined;
|
|
356
|
+
#decompressDictCleanup = async () => undefined;
|
|
357
|
+
#ready;
|
|
358
|
+
#poolOptions;
|
|
264
359
|
constructor(poolOptions) {
|
|
265
|
-
_SimpleZSTD_compressQueue.set(this, void 0);
|
|
266
|
-
_SimpleZSTD_decompressQueue.set(this, void 0);
|
|
267
|
-
_SimpleZSTD_compressDictCleanup.set(this, () => null);
|
|
268
|
-
_SimpleZSTD_decompressDictCleanup.set(this, () => null);
|
|
269
|
-
_SimpleZSTD_ready.set(this, void 0);
|
|
270
|
-
_SimpleZSTD_poolOptions.set(this, void 0);
|
|
271
360
|
debug('constructor', poolOptions);
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
361
|
+
this.#poolOptions = poolOptions;
|
|
362
|
+
this.#compressDictCleanup = async () => undefined;
|
|
363
|
+
this.#decompressDictCleanup = async () => undefined;
|
|
364
|
+
this.#ready = new Promise((resolve, reject) => {
|
|
276
365
|
(async () => {
|
|
277
366
|
try {
|
|
278
367
|
// Handle compress queue dictionary
|
|
@@ -282,10 +371,11 @@ class SimpleZSTD {
|
|
|
282
371
|
compressDictPath = compressDict.path;
|
|
283
372
|
}
|
|
284
373
|
else if (compressDict && Buffer.isBuffer(compressDict)) {
|
|
285
|
-
const {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
374
|
+
const { directoryPath, cleanup } = await createTempDirectory('zstd-dict-pool-compress-');
|
|
375
|
+
const dictionaryPath = node_path_1.default.join(directoryPath, 'dictionary.zstd');
|
|
376
|
+
this.#compressDictCleanup = cleanup;
|
|
377
|
+
await (0, promises_1.writeFile)(dictionaryPath, compressDict);
|
|
378
|
+
compressDictPath = dictionaryPath;
|
|
289
379
|
}
|
|
290
380
|
// Handle decompress queue dictionary
|
|
291
381
|
let decompressDictPath = undefined;
|
|
@@ -294,12 +384,13 @@ class SimpleZSTD {
|
|
|
294
384
|
decompressDictPath = decompressDict.path;
|
|
295
385
|
}
|
|
296
386
|
else if (decompressDict && Buffer.isBuffer(decompressDict)) {
|
|
297
|
-
const {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
387
|
+
const { directoryPath, cleanup } = await createTempDirectory('zstd-dict-pool-decompress-');
|
|
388
|
+
const dictionaryPath = node_path_1.default.join(directoryPath, 'dictionary.zstd');
|
|
389
|
+
this.#decompressDictCleanup = cleanup;
|
|
390
|
+
await (0, promises_1.writeFile)(dictionaryPath, decompressDict);
|
|
391
|
+
decompressDictPath = dictionaryPath;
|
|
301
392
|
}
|
|
302
|
-
|
|
393
|
+
this.#compressQueue = new process_queue_1.default(poolOptions?.compressQueueSize || 0, () => {
|
|
303
394
|
debug('compress factory');
|
|
304
395
|
return CreateCompressStream(poolOptions?.compressQueue?.compLevel || 3, {
|
|
305
396
|
...poolOptions?.compressQueue,
|
|
@@ -317,8 +408,8 @@ class SimpleZSTD {
|
|
|
317
408
|
stream.destroy();
|
|
318
409
|
}
|
|
319
410
|
});
|
|
320
|
-
})
|
|
321
|
-
|
|
411
|
+
});
|
|
412
|
+
this.#decompressQueue = new process_queue_1.default(poolOptions?.decompressQueueSize || 0, () => {
|
|
322
413
|
debug('decompress factory');
|
|
323
414
|
return CreateDecompressStream({
|
|
324
415
|
...poolOptions?.decompressQueue,
|
|
@@ -336,7 +427,7 @@ class SimpleZSTD {
|
|
|
336
427
|
stream.destroy();
|
|
337
428
|
}
|
|
338
429
|
});
|
|
339
|
-
})
|
|
430
|
+
});
|
|
340
431
|
debug('READY');
|
|
341
432
|
resolve(null);
|
|
342
433
|
}
|
|
@@ -346,11 +437,11 @@ class SimpleZSTD {
|
|
|
346
437
|
})();
|
|
347
438
|
}).catch((err) => {
|
|
348
439
|
debug('ready error', err);
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
})
|
|
440
|
+
void this.#compressDictCleanup();
|
|
441
|
+
void this.#decompressDictCleanup();
|
|
442
|
+
this.#compressDictCleanup = async () => undefined;
|
|
443
|
+
this.#decompressDictCleanup = async () => undefined;
|
|
444
|
+
});
|
|
354
445
|
}
|
|
355
446
|
/**
|
|
356
447
|
* Create a new SimpleZSTD instance with process pooling
|
|
@@ -359,27 +450,27 @@ class SimpleZSTD {
|
|
|
359
450
|
*/
|
|
360
451
|
static async create(poolOptions) {
|
|
361
452
|
const instance = new SimpleZSTD(poolOptions);
|
|
362
|
-
await
|
|
453
|
+
await instance.#ready;
|
|
363
454
|
return instance;
|
|
364
455
|
}
|
|
365
456
|
get queueStats() {
|
|
366
457
|
return {
|
|
367
458
|
compress: {
|
|
368
|
-
hits:
|
|
369
|
-
misses:
|
|
459
|
+
hits: this.#compressQueue.hits,
|
|
460
|
+
misses: this.#compressQueue.misses,
|
|
370
461
|
},
|
|
371
462
|
decompress: {
|
|
372
|
-
hits:
|
|
373
|
-
misses:
|
|
463
|
+
hits: this.#decompressQueue.hits,
|
|
464
|
+
misses: this.#decompressQueue.misses,
|
|
374
465
|
},
|
|
375
466
|
};
|
|
376
467
|
}
|
|
377
468
|
async destroy() {
|
|
378
|
-
await Promise.all([
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
469
|
+
await Promise.all([this.#compressQueue.destroy(), this.#decompressQueue.destroy()]);
|
|
470
|
+
await this.#compressDictCleanup();
|
|
471
|
+
await this.#decompressDictCleanup();
|
|
472
|
+
this.#compressDictCleanup = async () => undefined;
|
|
473
|
+
this.#decompressDictCleanup = async () => undefined;
|
|
383
474
|
}
|
|
384
475
|
/**
|
|
385
476
|
* Get a compression stream from the pool, or create a one-off stream with custom compression level
|
|
@@ -387,15 +478,15 @@ class SimpleZSTD {
|
|
|
387
478
|
* @returns Promise resolving to a Duplex compression stream
|
|
388
479
|
*/
|
|
389
480
|
async compress(compLevel) {
|
|
390
|
-
await
|
|
481
|
+
await this.#ready;
|
|
391
482
|
// If custom compression level is provided, create a one-off stream
|
|
392
483
|
if (compLevel !== undefined) {
|
|
393
484
|
return CreateCompressStream(compLevel, {
|
|
394
|
-
...
|
|
485
|
+
...this.#poolOptions?.compressQueue,
|
|
395
486
|
});
|
|
396
487
|
}
|
|
397
488
|
// Otherwise, acquire from pool
|
|
398
|
-
return
|
|
489
|
+
return this.#compressQueue.acquire();
|
|
399
490
|
}
|
|
400
491
|
/**
|
|
401
492
|
* Compress a buffer using the pool, or with a custom compression level
|
|
@@ -404,22 +495,21 @@ class SimpleZSTD {
|
|
|
404
495
|
* @returns Promise resolving to compressed buffer
|
|
405
496
|
*/
|
|
406
497
|
async compressBuffer(buffer, compLevel) {
|
|
407
|
-
await
|
|
498
|
+
await this.#ready;
|
|
408
499
|
const c = await this.compress(compLevel);
|
|
409
500
|
return CompressBuffer(buffer, c);
|
|
410
501
|
}
|
|
411
502
|
async decompress() {
|
|
412
|
-
await
|
|
413
|
-
return
|
|
503
|
+
await this.#ready;
|
|
504
|
+
return this.#decompressQueue.acquire();
|
|
414
505
|
}
|
|
415
506
|
async decompressBuffer(buffer) {
|
|
416
|
-
await
|
|
417
|
-
const d = await
|
|
507
|
+
await this.#ready;
|
|
508
|
+
const d = await this.#decompressQueue.acquire();
|
|
418
509
|
return DecompressBuffer(buffer, d);
|
|
419
510
|
}
|
|
420
511
|
}
|
|
421
512
|
exports.SimpleZSTD = SimpleZSTD;
|
|
422
|
-
_SimpleZSTD_compressQueue = new WeakMap(), _SimpleZSTD_decompressQueue = new WeakMap(), _SimpleZSTD_compressDictCleanup = new WeakMap(), _SimpleZSTD_decompressDictCleanup = new WeakMap(), _SimpleZSTD_ready = new WeakMap(), _SimpleZSTD_poolOptions = new WeakMap();
|
|
423
513
|
// module.exports = {
|
|
424
514
|
// SimpleZSTD,
|
|
425
515
|
// compress,
|
|
@@ -427,4 +517,4 @@ _SimpleZSTD_compressQueue = new WeakMap(), _SimpleZSTD_decompressQueue = new Wea
|
|
|
427
517
|
// decompress,
|
|
428
518
|
// decompressBuffer,
|
|
429
519
|
// };
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUZBLG9EQVlDO0FBMEtELDRCQUVDO0FBRUQsd0NBT0M7QUFFRCxnQ0FFQztBQUVELDRDQUdDO0FBN1JELHNEQUF5QjtBQUN6QiwrQ0FBNkM7QUFDN0MsNkNBQXlDO0FBQ3pDLDZDQUE0RDtBQUM1RCxtREFBZ0Q7QUFDaEQsMkRBQThDO0FBRTlDLG9EQUEyQjtBQUMzQiw2Q0FBbUM7QUFDbkMsa0RBQTBCO0FBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBSyxFQUFDLFlBQVksQ0FBQyxDQUFDO0FBRWxDLG9FQUEyQztBQUMzQyx3RUFBK0M7QUFDL0Msc0VBQTZDO0FBQzdDLHNFQUErQztBQU0vQyxpRkFBaUY7QUFDakYsdUVBQXVFO0FBQ3ZFLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFtRSxDQUFDO0FBRW5HLFNBQVMsVUFBVSxDQUFDLE1BQWM7SUFDaEMsT0FBTyxJQUFBLHdCQUFVLEVBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsS0FBSyxVQUFVLHVCQUF1QixDQUNwQyxVQUFrQjtJQUVsQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFcEMsSUFBSSxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNyRixPQUFPO1lB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
|
|
520
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AA0GA,oDAYC;AA4KD,4BAEC;AAED,wCAOC;AAED,gCAEC;AAED,4CAkDC;AAED,4CAiEC;AAxaD,sDAAyB;AACzB,0DAA6B;AAC7B,+CAAiE;AACjE,6CAAyC;AACzC,6CAA4D;AAC5D,mDAAgD;AAChD,2DAAwD;AAExD,oDAA2B;AAC3B,6CAAkC;AAClC,kDAA0B;AAE1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,YAAY,CAAC,CAAC;AAElC,oEAA2C;AAC3C,wEAA+C;AAC/C,sEAA6C;AAC7C,sEAA+C;AAa/C,iFAAiF;AACjF,uEAAuE;AACvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAG5B,CAAC;AAEJ,KAAK,UAAU,mBAAmB,CAAC,MAAc;IAI/C,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,iBAAG,EAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO;QACL,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,UAAkB;IAElB,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEpC,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,yBAAyB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrF,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAO,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CACH,kCAAkC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,MAAO,CAAC,QAAQ,GAAG,CACxF,CAAC;gBACF,+EAA+E;gBAC/E,sCAAsC;YACxC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,0BAA0B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAC5E,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,IAAA,oBAAS,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAE5C,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;QACxB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,CACH,kCAAkC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,MAAM,CAAC,QAAQ,GAAG,CACvF,CAAC;gBACF,+EAA+E;gBAC/E,sCAAsC;YACxC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,oBAAoB;IACxC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnC,MAAM,eAAe,GAAoB,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,KAAK,CAAC,kCAAkC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/D,0CAA0C;QAC1C,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;AAE5E,IAAI,GAAW,CAAC;AAEhB,IAAI,CAAC;IACH,GAAG,GAAG,IAAA,6BAAQ,EAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5F,KAAK,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAAC,MAAM,CAAC;IACP,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,CAAC;IACH,iBAAE,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAAC,MAAM,CAAC;IACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,IAAc;IACnE,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;IAErC,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,CAAC,CAAC;IAClB,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE;QAAE,GAAG,GAAG,CAAC,CAAC;IAEjC,aAAa;IACb,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACjD,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,uDAAuD;QACvD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAS,CAAC;IAEd,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7E,CAAC,GAAG,IAAI,wBAAa,CAAC;YACpB,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oBAAoB;QACpB,OAAO,EAAE,CAAC;QACV,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,MAAM,EAAE,EAAE;QACpC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,CAAS;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,IAAI,yBAAc,CAAC,EAAE,CAAC,CAAC;QAEjC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,YAAY,CAAC,GAAG,EAAE;gBAChB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC7B,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,mBAAQ,EAAC,sBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClC,IAAI,CAAC,GAAG,EAAE;YACT,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAc;IAClD,aAAa;IACb,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;IAErC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACjD,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,uDAAuD;QACvD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAS,CAAC;IAEd,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,CAAC,GAAG,IAAI,wBAAa,CAAC;YACpB,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YACpB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,CAAC;QACV,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,MAAM,EAAE,EAAE;QACpC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,wBAAe,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAY,EAAE,IAAI,EAAE,EAAE;QAC5E,IAAI,IAAA,gBAAK,EAAC,IAAI,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,CAAC,CAAC;YAClB,SAAS,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,EAAE,IAAI,yBAAW,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,CAAC,QAAQ,GAAG,UAAU,KAAmB,EAAE,QAAuC;QACvF,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACjB,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,CAAS;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,IAAI,yBAAc,CAAC,EAAE,CAAC,CAAC;QAEjC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,YAAY,CAAC,GAAG,EAAE;gBAChB,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,mBAAQ,EAAC,sBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClC,IAAI,CAAC,GAAG,EAAE;YACT,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uBAAuB;AAEvB,SAAgB,QAAQ,CAAC,SAAiB,EAAE,OAAiB,EAAE;IAC7D,OAAO,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,SAAiB,EACjB,OAAiB,EAAE;IAEnB,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,UAAU,CAAC,OAAiB,EAAE;IAC5C,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAiB,EAAE;IACxE,iEAAiE;IACjE,IAAI,CAAC,IAAA,gBAAK,EAAC,MAAM,CAAC,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;IAErC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACjD,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAA,6BAAQ,EACpB,GAAG,EACH,IAAI,EACJ;YACE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YAC5B,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;SAC7B,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,OAAO,EAAE,CAAC;YAEV,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;YACpC,MAAM,aAAa,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,YAAY,GAAG,aAAa;gBAChC,CAAC,CAAC,oCAAoC,IAAI,aAAa,MAAM,MAAM,aAAa,EAAE;gBAClF,CAAC,CAAC,oCAAoC,IAAI,aAAa,MAAM,GAAG,CAAC;YAEnE,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAClC,CAAC,CACF,CAAC;QAEF,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,IAA0B;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,iBAAG,EAAC;QACpD,MAAM,EAAE,uBAAuB;QAC/B,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAElE,KAAK,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,MAAM,kBAAkB,GAAG,mBAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC;YAEhF,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAA,mBAAQ,EAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;gBAClD,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAA,oBAAS,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;gBACnD,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACpC,IAAA,6BAAQ,EAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;gBACpC,MAAM,aAAa,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,aAAa;oBAChC,CAAC,CAAC,0CAA0C,IAAI,aAAa,MAAM,MAAM,aAAa,EAAE;oBACxF,CAAC,CAAC,0CAA0C,IAAI,aAAa,MAAM,GAAG,CAAC;gBAEzE,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,mBAAmB;AACnB,MAAa,UAAU;IACrB,cAAc,CAAwB;IACtC,gBAAgB,CAAwB;IACxC,oBAAoB,GAAwB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IAClE,sBAAsB,GAAwB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IACpE,MAAM,CAAC;IACP,YAAY,CAAY;IAExB,YAAoB,WAAsB;QACxC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QAClD,IAAI,CAAC,sBAAsB,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QAEpD,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,CAAC,KAAK,IAAI,EAAE;gBACV,IAAI,CAAC;oBACH,mCAAmC;oBACnC,IAAI,gBAAgB,GAAuB,SAAS,CAAC;oBACrD,MAAM,YAAY,GAAG,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC;oBAC5D,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;wBAC3C,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC;oBACvC,CAAC;yBAAM,IAAI,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBACzD,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAC1D,0BAA0B,CAC3B,CAAC;wBACF,MAAM,cAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;wBACnE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;wBACpC,MAAM,IAAA,oBAAS,EAAC,cAAc,EAAE,YAAY,CAAC,CAAC;wBAC9C,gBAAgB,GAAG,cAAc,CAAC;oBACpC,CAAC;oBAED,qCAAqC;oBACrC,IAAI,kBAAkB,GAAuB,SAAS,CAAC;oBACvD,MAAM,cAAc,GAAG,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC;oBAChE,IAAI,cAAc,IAAI,MAAM,IAAI,cAAc,EAAE,CAAC;wBAC/C,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC;oBAC3C,CAAC;yBAAM,IAAI,cAAc,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;wBAC7D,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAC1D,4BAA4B,CAC7B,CAAC;wBACF,MAAM,cAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;wBACnE,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;wBACtC,MAAM,IAAA,oBAAS,EAAC,cAAc,EAAE,cAAc,CAAC,CAAC;wBAChD,kBAAkB,GAAG,cAAc,CAAC;oBACtC,CAAC;oBAED,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAY,CACpC,WAAW,EAAE,iBAAiB,IAAI,CAAC,EACnC,GAAG,EAAE;wBACH,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBAC1B,OAAO,oBAAoB,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC,EAAE;4BACtE,GAAG,WAAW,EAAE,aAAa;4BAC7B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;yBACtE,CAAC,CAAC;oBACL,CAAC,EACD,KAAK,EAAE,CAAkB,EAAE,EAAE;wBAC3B,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC;wBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;4BAClC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gCACrB,OAAO,EAAE,CAAC;4BACZ,CAAC;iCAAM,CAAC;gCACN,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gCACtC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CACF,CAAC;oBAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAY,CACtC,WAAW,EAAE,mBAAmB,IAAI,CAAC,EACrC,GAAG,EAAE;wBACH,KAAK,CAAC,oBAAoB,CAAC,CAAC;wBAC5B,OAAO,sBAAsB,CAAC;4BAC5B,GAAG,WAAW,EAAE,eAAe;4BAC/B,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS;yBAC1E,CAAC,CAAC;oBACL,CAAC,EACD,KAAK,EAAE,CAAkB,EAAE,EAAE;wBAC3B,KAAK,CAAC,oBAAoB,CAAC,CAAC;wBAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC;wBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;4BAClC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gCACrB,OAAO,EAAE,CAAC;4BACZ,CAAC;iCAAM,CAAC;gCACN,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gCACtC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CACF,CAAC;oBAEF,KAAK,CAAC,OAAO,CAAC,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAC1B,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;YAClD,IAAI,CAAC,sBAAsB,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAsB;QACxC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,QAAQ,CAAC,MAAM,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;gBAC9B,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;aACnC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;gBAChC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;aACrC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QAClD,IAAI,CAAC,sBAAsB,GAAG,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAkB;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC;QAElB,mEAAmE;QACnE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,oBAAoB,CAAC,SAAS,EAAE;gBACrC,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa;aACpC,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,SAAkB;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC;QAClB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC;QAClB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;CACF;AArLD,gCAqLC;AAED,qBAAqB;AACrB,gBAAgB;AAChB,cAAc;AACd,oBAAoB;AACpB,gBAAgB;AAChB,sBAAsB;AACtB,KAAK"}
|