html-to-markdown-wasm 2.6.5 → 2.7.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/README.md +39 -2
- package/dist/README.md +49 -23
- package/dist/html_to_markdown_wasm.d.ts +10 -23
- package/dist/html_to_markdown_wasm_bg.js +205 -21
- package/dist/html_to_markdown_wasm_bg.wasm +0 -0
- package/dist/html_to_markdown_wasm_bg.wasm.d.ts +7 -0
- package/dist/package.json +1 -1
- package/dist-node/README.md +49 -23
- package/dist-node/html_to_markdown_wasm.d.ts +10 -23
- package/dist-node/html_to_markdown_wasm.js +207 -21
- package/dist-node/html_to_markdown_wasm_bg.wasm +0 -0
- package/dist-node/html_to_markdown_wasm_bg.wasm.d.ts +7 -0
- package/dist-node/package.json +1 -1
- package/dist-web/README.md +49 -23
- package/dist-web/html_to_markdown_wasm.d.ts +17 -23
- package/dist-web/html_to_markdown_wasm.js +203 -21
- package/dist-web/html_to_markdown_wasm_bg.wasm +0 -0
- package/dist-web/html_to_markdown_wasm_bg.wasm.d.ts +7 -0
- package/dist-web/package.json +1 -1
- package/package.json +1 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
|
+
export function convertBytes(html: Uint8Array, options: any): string;
|
|
3
4
|
/**
|
|
4
5
|
* Convert HTML to Markdown
|
|
5
6
|
*
|
|
@@ -19,34 +20,20 @@
|
|
|
19
20
|
* ```
|
|
20
21
|
*/
|
|
21
22
|
export function convert(html: string, options: any): string;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*
|
|
25
|
-
* # Arguments
|
|
26
|
-
*
|
|
27
|
-
* * `html` - The HTML string to convert
|
|
28
|
-
* * `options` - Optional conversion options (as a JavaScript object)
|
|
29
|
-
* * `image_config` - Configuration for inline image extraction
|
|
30
|
-
*
|
|
31
|
-
* # Example
|
|
32
|
-
*
|
|
33
|
-
* ```javascript
|
|
34
|
-
* import { convertWithInlineImages, WasmInlineImageConfig } from '@html-to-markdown/wasm';
|
|
35
|
-
*
|
|
36
|
-
* const html = '<img src="data:image/png;base64,..." alt="test">';
|
|
37
|
-
* const config = new WasmInlineImageConfig(1024 * 1024);
|
|
38
|
-
* config.inferDimensions = true;
|
|
39
|
-
*
|
|
40
|
-
* const result = convertWithInlineImages(html, null, config);
|
|
41
|
-
* console.log(result.markdown);
|
|
42
|
-
* console.log(result.inlineImages.length);
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
23
|
+
export function convertWithOptionsHandle(html: string, handle: WasmConversionOptionsHandle): string;
|
|
24
|
+
export function createConversionOptionsHandle(options: any): WasmConversionOptionsHandle;
|
|
45
25
|
export function convertWithInlineImages(html: string, options: any, image_config?: WasmInlineImageConfig | null): WasmHtmlExtraction;
|
|
26
|
+
export function convertBytesWithInlineImages(html: Uint8Array, options: any, image_config?: WasmInlineImageConfig | null): WasmHtmlExtraction;
|
|
46
27
|
/**
|
|
47
28
|
* Initialize panic hook for better error messages in the browser
|
|
48
29
|
*/
|
|
49
30
|
export function init(): void;
|
|
31
|
+
export function convertBytesWithOptionsHandle(html: Uint8Array, handle: WasmConversionOptionsHandle): string;
|
|
32
|
+
export class WasmConversionOptionsHandle {
|
|
33
|
+
free(): void;
|
|
34
|
+
[Symbol.dispose](): void;
|
|
35
|
+
constructor(options: any);
|
|
36
|
+
}
|
|
50
37
|
/**
|
|
51
38
|
* Result of HTML extraction with inline images
|
|
52
39
|
*/
|
|
@@ -99,12 +86,19 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
99
86
|
|
|
100
87
|
export interface InitOutput {
|
|
101
88
|
readonly memory: WebAssembly.Memory;
|
|
89
|
+
readonly __wbg_wasmconversionoptionshandle_free: (a: number, b: number) => void;
|
|
102
90
|
readonly __wbg_wasmhtmlextraction_free: (a: number, b: number) => void;
|
|
103
91
|
readonly __wbg_wasminlineimage_free: (a: number, b: number) => void;
|
|
104
92
|
readonly __wbg_wasminlineimageconfig_free: (a: number, b: number) => void;
|
|
105
93
|
readonly __wbg_wasminlineimagewarning_free: (a: number, b: number) => void;
|
|
106
94
|
readonly convert: (a: number, b: number, c: number, d: number) => void;
|
|
95
|
+
readonly convertBytes: (a: number, b: number, c: number) => void;
|
|
96
|
+
readonly convertBytesWithInlineImages: (a: number, b: number, c: number, d: number) => void;
|
|
97
|
+
readonly convertBytesWithOptionsHandle: (a: number, b: number, c: number) => void;
|
|
107
98
|
readonly convertWithInlineImages: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
99
|
+
readonly convertWithOptionsHandle: (a: number, b: number, c: number, d: number) => void;
|
|
100
|
+
readonly createConversionOptionsHandle: (a: number, b: number) => void;
|
|
101
|
+
readonly wasmconversionoptionshandle_new: (a: number, b: number) => void;
|
|
108
102
|
readonly wasmhtmlextraction_inlineImages: (a: number, b: number) => void;
|
|
109
103
|
readonly wasmhtmlextraction_markdown: (a: number, b: number) => void;
|
|
110
104
|
readonly wasmhtmlextraction_warnings: (a: number, b: number) => void;
|
|
@@ -227,6 +227,36 @@ function getArrayJsValueFromWasm0(ptr, len) {
|
|
|
227
227
|
}
|
|
228
228
|
return result;
|
|
229
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* @param {Uint8Array} html
|
|
232
|
+
* @param {any} options
|
|
233
|
+
* @returns {string}
|
|
234
|
+
*/
|
|
235
|
+
export function convertBytes(html, options) {
|
|
236
|
+
let deferred2_0;
|
|
237
|
+
let deferred2_1;
|
|
238
|
+
try {
|
|
239
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
240
|
+
wasm.convertBytes(retptr, addHeapObject(html), addHeapObject(options));
|
|
241
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
242
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
243
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
244
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
245
|
+
var ptr1 = r0;
|
|
246
|
+
var len1 = r1;
|
|
247
|
+
if (r3) {
|
|
248
|
+
ptr1 = 0; len1 = 0;
|
|
249
|
+
throw takeObject(r2);
|
|
250
|
+
}
|
|
251
|
+
deferred2_0 = ptr1;
|
|
252
|
+
deferred2_1 = len1;
|
|
253
|
+
return getStringFromWasm0(ptr1, len1);
|
|
254
|
+
} finally {
|
|
255
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
256
|
+
wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
230
260
|
/**
|
|
231
261
|
* Convert HTML to Markdown
|
|
232
262
|
*
|
|
@@ -281,27 +311,59 @@ function _assertClass(instance, klass) {
|
|
|
281
311
|
}
|
|
282
312
|
}
|
|
283
313
|
/**
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
*
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
314
|
+
* @param {string} html
|
|
315
|
+
* @param {WasmConversionOptionsHandle} handle
|
|
316
|
+
* @returns {string}
|
|
317
|
+
*/
|
|
318
|
+
export function convertWithOptionsHandle(html, handle) {
|
|
319
|
+
let deferred3_0;
|
|
320
|
+
let deferred3_1;
|
|
321
|
+
try {
|
|
322
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
323
|
+
const ptr0 = passStringToWasm0(html, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
324
|
+
const len0 = WASM_VECTOR_LEN;
|
|
325
|
+
_assertClass(handle, WasmConversionOptionsHandle);
|
|
326
|
+
wasm.convertWithOptionsHandle(retptr, ptr0, len0, handle.__wbg_ptr);
|
|
327
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
328
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
329
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
330
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
331
|
+
var ptr2 = r0;
|
|
332
|
+
var len2 = r1;
|
|
333
|
+
if (r3) {
|
|
334
|
+
ptr2 = 0; len2 = 0;
|
|
335
|
+
throw takeObject(r2);
|
|
336
|
+
}
|
|
337
|
+
deferred3_0 = ptr2;
|
|
338
|
+
deferred3_1 = len2;
|
|
339
|
+
return getStringFromWasm0(ptr2, len2);
|
|
340
|
+
} finally {
|
|
341
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
342
|
+
wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* @param {any} options
|
|
348
|
+
* @returns {WasmConversionOptionsHandle}
|
|
349
|
+
*/
|
|
350
|
+
export function createConversionOptionsHandle(options) {
|
|
351
|
+
try {
|
|
352
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
353
|
+
wasm.createConversionOptionsHandle(retptr, addHeapObject(options));
|
|
354
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
355
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
356
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
357
|
+
if (r2) {
|
|
358
|
+
throw takeObject(r1);
|
|
359
|
+
}
|
|
360
|
+
return WasmConversionOptionsHandle.__wrap(r0);
|
|
361
|
+
} finally {
|
|
362
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
305
367
|
* @param {string} html
|
|
306
368
|
* @param {any} options
|
|
307
369
|
* @param {WasmInlineImageConfig | null} [image_config]
|
|
@@ -330,6 +392,33 @@ export function convertWithInlineImages(html, options, image_config) {
|
|
|
330
392
|
}
|
|
331
393
|
}
|
|
332
394
|
|
|
395
|
+
/**
|
|
396
|
+
* @param {Uint8Array} html
|
|
397
|
+
* @param {any} options
|
|
398
|
+
* @param {WasmInlineImageConfig | null} [image_config]
|
|
399
|
+
* @returns {WasmHtmlExtraction}
|
|
400
|
+
*/
|
|
401
|
+
export function convertBytesWithInlineImages(html, options, image_config) {
|
|
402
|
+
try {
|
|
403
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
404
|
+
let ptr0 = 0;
|
|
405
|
+
if (!isLikeNone(image_config)) {
|
|
406
|
+
_assertClass(image_config, WasmInlineImageConfig);
|
|
407
|
+
ptr0 = image_config.__destroy_into_raw();
|
|
408
|
+
}
|
|
409
|
+
wasm.convertBytesWithInlineImages(retptr, addHeapObject(html), addHeapObject(options), ptr0);
|
|
410
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
411
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
412
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
413
|
+
if (r2) {
|
|
414
|
+
throw takeObject(r1);
|
|
415
|
+
}
|
|
416
|
+
return WasmHtmlExtraction.__wrap(r0);
|
|
417
|
+
} finally {
|
|
418
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
|
|
333
422
|
/**
|
|
334
423
|
* Initialize panic hook for better error messages in the browser
|
|
335
424
|
*/
|
|
@@ -337,6 +426,85 @@ export function init() {
|
|
|
337
426
|
wasm.init();
|
|
338
427
|
}
|
|
339
428
|
|
|
429
|
+
/**
|
|
430
|
+
* @param {Uint8Array} html
|
|
431
|
+
* @param {WasmConversionOptionsHandle} handle
|
|
432
|
+
* @returns {string}
|
|
433
|
+
*/
|
|
434
|
+
export function convertBytesWithOptionsHandle(html, handle) {
|
|
435
|
+
let deferred2_0;
|
|
436
|
+
let deferred2_1;
|
|
437
|
+
try {
|
|
438
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
439
|
+
_assertClass(handle, WasmConversionOptionsHandle);
|
|
440
|
+
wasm.convertBytesWithOptionsHandle(retptr, addHeapObject(html), handle.__wbg_ptr);
|
|
441
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
442
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
443
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
444
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
445
|
+
var ptr1 = r0;
|
|
446
|
+
var len1 = r1;
|
|
447
|
+
if (r3) {
|
|
448
|
+
ptr1 = 0; len1 = 0;
|
|
449
|
+
throw takeObject(r2);
|
|
450
|
+
}
|
|
451
|
+
deferred2_0 = ptr1;
|
|
452
|
+
deferred2_1 = len1;
|
|
453
|
+
return getStringFromWasm0(ptr1, len1);
|
|
454
|
+
} finally {
|
|
455
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
456
|
+
wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
const WasmConversionOptionsHandleFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
461
|
+
? { register: () => {}, unregister: () => {} }
|
|
462
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_wasmconversionoptionshandle_free(ptr >>> 0, 1));
|
|
463
|
+
|
|
464
|
+
export class WasmConversionOptionsHandle {
|
|
465
|
+
|
|
466
|
+
static __wrap(ptr) {
|
|
467
|
+
ptr = ptr >>> 0;
|
|
468
|
+
const obj = Object.create(WasmConversionOptionsHandle.prototype);
|
|
469
|
+
obj.__wbg_ptr = ptr;
|
|
470
|
+
WasmConversionOptionsHandleFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
471
|
+
return obj;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
__destroy_into_raw() {
|
|
475
|
+
const ptr = this.__wbg_ptr;
|
|
476
|
+
this.__wbg_ptr = 0;
|
|
477
|
+
WasmConversionOptionsHandleFinalization.unregister(this);
|
|
478
|
+
return ptr;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
free() {
|
|
482
|
+
const ptr = this.__destroy_into_raw();
|
|
483
|
+
wasm.__wbg_wasmconversionoptionshandle_free(ptr, 0);
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* @param {any} options
|
|
487
|
+
*/
|
|
488
|
+
constructor(options) {
|
|
489
|
+
try {
|
|
490
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
491
|
+
wasm.wasmconversionoptionshandle_new(retptr, addHeapObject(options));
|
|
492
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
493
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
494
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
495
|
+
if (r2) {
|
|
496
|
+
throw takeObject(r1);
|
|
497
|
+
}
|
|
498
|
+
this.__wbg_ptr = r0 >>> 0;
|
|
499
|
+
WasmConversionOptionsHandleFinalization.register(this, this.__wbg_ptr, this);
|
|
500
|
+
return this;
|
|
501
|
+
} finally {
|
|
502
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
if (Symbol.dispose) WasmConversionOptionsHandle.prototype[Symbol.dispose] = WasmConversionOptionsHandle.prototype.free;
|
|
507
|
+
|
|
340
508
|
const WasmHtmlExtractionFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
341
509
|
? { register: () => {}, unregister: () => {} }
|
|
342
510
|
: new FinalizationRegistry(ptr => wasm.__wbg_wasmhtmlextraction_free(ptr >>> 0, 1));
|
|
@@ -838,6 +1006,16 @@ function __wbg_get_imports() {
|
|
|
838
1006
|
const ret = result;
|
|
839
1007
|
return ret;
|
|
840
1008
|
};
|
|
1009
|
+
imports.wbg.__wbg_instanceof_Object_10bb762262230c68 = function(arg0) {
|
|
1010
|
+
let result;
|
|
1011
|
+
try {
|
|
1012
|
+
result = getObject(arg0) instanceof Object;
|
|
1013
|
+
} catch (_) {
|
|
1014
|
+
result = false;
|
|
1015
|
+
}
|
|
1016
|
+
const ret = result;
|
|
1017
|
+
return ret;
|
|
1018
|
+
};
|
|
841
1019
|
imports.wbg.__wbg_instanceof_Uint8Array_20c8e73002f7af98 = function(arg0) {
|
|
842
1020
|
let result;
|
|
843
1021
|
try {
|
|
@@ -860,6 +1038,10 @@ function __wbg_get_imports() {
|
|
|
860
1038
|
const ret = Symbol.iterator;
|
|
861
1039
|
return addHeapObject(ret);
|
|
862
1040
|
};
|
|
1041
|
+
imports.wbg.__wbg_keys_b4d27b02ad14f4be = function(arg0) {
|
|
1042
|
+
const ret = Object.keys(getObject(arg0));
|
|
1043
|
+
return addHeapObject(ret);
|
|
1044
|
+
};
|
|
863
1045
|
imports.wbg.__wbg_length_69bca3cb64fc8748 = function(arg0) {
|
|
864
1046
|
const ret = getObject(arg0).length;
|
|
865
1047
|
return ret;
|
|
Binary file
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const __wbg_wasmconversionoptionshandle_free: (a: number, b: number) => void;
|
|
4
5
|
export const __wbg_wasmhtmlextraction_free: (a: number, b: number) => void;
|
|
5
6
|
export const __wbg_wasminlineimage_free: (a: number, b: number) => void;
|
|
6
7
|
export const __wbg_wasminlineimageconfig_free: (a: number, b: number) => void;
|
|
7
8
|
export const __wbg_wasminlineimagewarning_free: (a: number, b: number) => void;
|
|
8
9
|
export const convert: (a: number, b: number, c: number, d: number) => void;
|
|
10
|
+
export const convertBytes: (a: number, b: number, c: number) => void;
|
|
11
|
+
export const convertBytesWithInlineImages: (a: number, b: number, c: number, d: number) => void;
|
|
12
|
+
export const convertBytesWithOptionsHandle: (a: number, b: number, c: number) => void;
|
|
9
13
|
export const convertWithInlineImages: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
14
|
+
export const convertWithOptionsHandle: (a: number, b: number, c: number, d: number) => void;
|
|
15
|
+
export const createConversionOptionsHandle: (a: number, b: number) => void;
|
|
16
|
+
export const wasmconversionoptionshandle_new: (a: number, b: number) => void;
|
|
10
17
|
export const wasmhtmlextraction_inlineImages: (a: number, b: number) => void;
|
|
11
18
|
export const wasmhtmlextraction_markdown: (a: number, b: number) => void;
|
|
12
19
|
export const wasmhtmlextraction_warnings: (a: number, b: number) => void;
|
package/dist-web/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "html-to-markdown-wasm",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "High-performance HTML to Markdown converter - WebAssembly bindings",
|
|
5
5
|
"main": "dist/html_to_markdown_wasm.js",
|
|
6
6
|
"types": "dist/html_to_markdown_wasm.d.ts",
|
|
@@ -50,12 +50,10 @@
|
|
|
50
50
|
"test": "vitest run",
|
|
51
51
|
"test:watch": "vitest",
|
|
52
52
|
"test:wasm-pack": "wasm-pack test --headless --chrome",
|
|
53
|
-
"bench": "tsx benchmark.ts",
|
|
54
53
|
"clean": "rm -rf dist dist-node dist-web node_modules pkg"
|
|
55
54
|
},
|
|
56
55
|
"devDependencies": {
|
|
57
56
|
"@types/node": "^24.10.0",
|
|
58
|
-
"tinybench": "^5.1.0",
|
|
59
57
|
"tsx": "^4.20.6",
|
|
60
58
|
"vitest": "^4.0.8",
|
|
61
59
|
"wasm-pack": "^0.13.1"
|