@gmb/bitmark-parser 6.11.0 → 6.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +97 -5
  2. package/dist/browser/bitmark-parser.min.js +4 -4
  3. package/dist/browser/bitmark-parser.min.js.map +1 -1
  4. package/dist/browser/cjs/index.cjs +186 -24
  5. package/dist/browser/cjs/index.cjs.map +1 -1
  6. package/dist/browser/cjs/index.d.cts +146 -7
  7. package/dist/browser/esm/index.d.ts +146 -7
  8. package/dist/browser/esm/index.js +184 -24
  9. package/dist/browser/esm/index.js.map +1 -1
  10. package/dist/browser/esm/worker-entry.js +113 -0
  11. package/dist/browser/esm/worker-entry.js.map +1 -1
  12. package/dist/browser/wasm/bitmark_browser_full_wasm_bg.wasm +0 -0
  13. package/dist/browser/wasm/bitmark_json_wasm_bg.wasm +0 -0
  14. package/dist/browser/wasm/bitmark_wasm_bg.wasm +0 -0
  15. package/dist/index.cjs +73 -24
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +146 -7
  18. package/dist/index.d.ts +146 -7
  19. package/dist/index.js +71 -24
  20. package/dist/index.js.map +1 -1
  21. package/dist/legacy.cjs +1 -1
  22. package/dist/legacy.cjs.map +1 -1
  23. package/dist/legacy.js +1 -1
  24. package/dist/legacy.js.map +1 -1
  25. package/dist/worker-entry.cjs.map +1 -1
  26. package/package.json +7 -7
  27. package/schema/bitmark.schema.json +1 -1
  28. package/wasm/bitmark_wasm.d.ts +23 -0
  29. package/wasm/bitmark_wasm.js +80 -0
  30. package/wasm/bitmark_wasm_bg.wasm +0 -0
  31. package/wasm/bitmark_wasm_bg.wasm.d.ts +2 -0
  32. package/wasm/package.json +1 -1
  33. package/wasm-bitmark-json/bitmark_json_wasm.d.ts +9 -0
  34. package/wasm-bitmark-json/bitmark_json_wasm.js +32 -0
  35. package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm +0 -0
  36. package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm.d.ts +1 -0
  37. package/wasm-bitmark-json/package.json +1 -1
  38. package/wasm-browser-full/bitmark_browser_full_wasm.d.ts +23 -0
  39. package/wasm-browser-full/bitmark_browser_full_wasm.js +80 -0
  40. package/wasm-browser-full/bitmark_browser_full_wasm_bg.wasm +0 -0
  41. package/wasm-browser-full/bitmark_browser_full_wasm_bg.wasm.d.ts +2 -0
  42. package/wasm-browser-full/package.json +1 -1
@@ -31,6 +31,8 @@ __export(index_exports, {
31
31
  canonicalize: () => canonicalize4,
32
32
  convert: () => convert4,
33
33
  countBits: () => countBits,
34
+ diff: () => diff3,
35
+ diffBits: () => diffBits,
34
36
  info: () => info4,
35
37
  init: () => init,
36
38
  initSync: () => initSync4,
@@ -61,12 +63,14 @@ __export(bitmark_wasm_exports, {
61
63
  convert_text: () => convert_text,
62
64
  count_bits: () => count_bits,
63
65
  default: () => bitmark_wasm_default,
66
+ diff: () => diff,
64
67
  info: () => info,
65
68
  initSync: () => initSync,
66
69
  is_bitmark: () => is_bitmark,
67
70
  lex: () => lex,
68
71
  prettify: () => prettify,
69
72
  register: () => register,
73
+ resolve_patch_document: () => resolve_patch_document,
70
74
  split_bits: () => split_bits,
71
75
  split_json_bits: () => split_json_bits,
72
76
  transform: () => transform,
@@ -279,6 +283,50 @@ function transform(input, input_format_sel, output_format_sel, mode, patch_json,
279
283
  wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
280
284
  }
281
285
  }
286
+ function resolve_patch_document(input, patch_json) {
287
+ let deferred3_0;
288
+ let deferred3_1;
289
+ try {
290
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
291
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
292
+ const len0 = WASM_VECTOR_LEN;
293
+ const ptr1 = passStringToWasm0(patch_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
294
+ const len1 = WASM_VECTOR_LEN;
295
+ wasm.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
296
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
297
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
298
+ deferred3_0 = r0;
299
+ deferred3_1 = r1;
300
+ return getStringFromWasm0(r0, r1);
301
+ } finally {
302
+ wasm.__wbindgen_add_to_stack_pointer(16);
303
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
304
+ }
305
+ }
306
+ function diff(a, b, input_format_sel, output_format_sel, context, locate, similarity, bbox_tolerance, spaces_around_values) {
307
+ let deferred5_0;
308
+ let deferred5_1;
309
+ try {
310
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
311
+ const ptr0 = passStringToWasm0(a, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
312
+ const len0 = WASM_VECTOR_LEN;
313
+ const ptr1 = passStringToWasm0(b, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
314
+ const len1 = WASM_VECTOR_LEN;
315
+ const ptr2 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
316
+ const len2 = WASM_VECTOR_LEN;
317
+ const ptr3 = passStringToWasm0(output_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
318
+ const len3 = WASM_VECTOR_LEN;
319
+ wasm.diff(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, context, locate, similarity, bbox_tolerance, spaces_around_values);
320
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
321
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
322
+ deferred5_0 = r0;
323
+ deferred5_1 = r1;
324
+ return getStringFromWasm0(r0, r1);
325
+ } finally {
326
+ wasm.__wbindgen_add_to_stack_pointer(16);
327
+ wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
328
+ }
329
+ }
282
330
  function register(data_type, data) {
283
331
  let deferred3_0;
284
332
  let deferred3_1;
@@ -509,12 +557,14 @@ __export(bitmark_browser_full_wasm_exports, {
509
557
  convert_text: () => convert_text2,
510
558
  count_bits: () => count_bits2,
511
559
  default: () => bitmark_browser_full_wasm_default,
560
+ diff: () => diff2,
512
561
  info: () => info2,
513
562
  initSync: () => initSync2,
514
563
  is_bitmark: () => is_bitmark2,
515
564
  lex: () => lex2,
516
565
  prettify: () => prettify2,
517
566
  register: () => register2,
567
+ resolve_patch_document: () => resolve_patch_document2,
518
568
  split_bits: () => split_bits2,
519
569
  split_json_bits: () => split_json_bits2,
520
570
  transform: () => transform2,
@@ -727,6 +777,50 @@ function transform2(input, input_format_sel, output_format_sel, mode, patch_json
727
777
  wasm2.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
728
778
  }
729
779
  }
780
+ function resolve_patch_document2(input, patch_json) {
781
+ let deferred3_0;
782
+ let deferred3_1;
783
+ try {
784
+ const retptr = wasm2.__wbindgen_add_to_stack_pointer(-16);
785
+ const ptr0 = passStringToWasm02(input, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
786
+ const len0 = WASM_VECTOR_LEN2;
787
+ const ptr1 = passStringToWasm02(patch_json, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
788
+ const len1 = WASM_VECTOR_LEN2;
789
+ wasm2.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
790
+ var r0 = getDataViewMemory02().getInt32(retptr + 4 * 0, true);
791
+ var r1 = getDataViewMemory02().getInt32(retptr + 4 * 1, true);
792
+ deferred3_0 = r0;
793
+ deferred3_1 = r1;
794
+ return getStringFromWasm02(r0, r1);
795
+ } finally {
796
+ wasm2.__wbindgen_add_to_stack_pointer(16);
797
+ wasm2.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
798
+ }
799
+ }
800
+ function diff2(a, b, input_format_sel, output_format_sel, context, locate, similarity, bbox_tolerance, spaces_around_values) {
801
+ let deferred5_0;
802
+ let deferred5_1;
803
+ try {
804
+ const retptr = wasm2.__wbindgen_add_to_stack_pointer(-16);
805
+ const ptr0 = passStringToWasm02(a, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
806
+ const len0 = WASM_VECTOR_LEN2;
807
+ const ptr1 = passStringToWasm02(b, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
808
+ const len1 = WASM_VECTOR_LEN2;
809
+ const ptr2 = passStringToWasm02(input_format_sel, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
810
+ const len2 = WASM_VECTOR_LEN2;
811
+ const ptr3 = passStringToWasm02(output_format_sel, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
812
+ const len3 = WASM_VECTOR_LEN2;
813
+ wasm2.diff(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, context, locate, similarity, bbox_tolerance, spaces_around_values);
814
+ var r0 = getDataViewMemory02().getInt32(retptr + 4 * 0, true);
815
+ var r1 = getDataViewMemory02().getInt32(retptr + 4 * 1, true);
816
+ deferred5_0 = r0;
817
+ deferred5_1 = r1;
818
+ return getStringFromWasm02(r0, r1);
819
+ } finally {
820
+ wasm2.__wbindgen_add_to_stack_pointer(16);
821
+ wasm2.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
822
+ }
823
+ }
730
824
  function register2(data_type, data) {
731
825
  let deferred3_0;
732
826
  let deferred3_1;
@@ -962,6 +1056,7 @@ __export(bitmark_json_wasm_exports, {
962
1056
  is_bitmark: () => is_bitmark3,
963
1057
  prettify: () => prettify3,
964
1058
  register: () => register3,
1059
+ resolve_patch_document: () => resolve_patch_document3,
965
1060
  split_bits: () => split_bits3,
966
1061
  split_json_bits: () => split_json_bits3,
967
1062
  transform: () => transform3,
@@ -1150,6 +1245,26 @@ function transform3(input, input_format_sel, output_format_sel, mode, patch_json
1150
1245
  wasm3.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
1151
1246
  }
1152
1247
  }
1248
+ function resolve_patch_document3(input, patch_json) {
1249
+ let deferred3_0;
1250
+ let deferred3_1;
1251
+ try {
1252
+ const retptr = wasm3.__wbindgen_add_to_stack_pointer(-16);
1253
+ const ptr0 = passStringToWasm03(input, wasm3.__wbindgen_export_0, wasm3.__wbindgen_export_1);
1254
+ const len0 = WASM_VECTOR_LEN3;
1255
+ const ptr1 = passStringToWasm03(patch_json, wasm3.__wbindgen_export_0, wasm3.__wbindgen_export_1);
1256
+ const len1 = WASM_VECTOR_LEN3;
1257
+ wasm3.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
1258
+ var r0 = getDataViewMemory03().getInt32(retptr + 4 * 0, true);
1259
+ var r1 = getDataViewMemory03().getInt32(retptr + 4 * 1, true);
1260
+ deferred3_0 = r0;
1261
+ deferred3_1 = r1;
1262
+ return getStringFromWasm03(r0, r1);
1263
+ } finally {
1264
+ wasm3.__wbindgen_add_to_stack_pointer(16);
1265
+ wasm3.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
1266
+ }
1267
+ }
1153
1268
  function convert3(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report) {
1154
1269
  let deferred5_0;
1155
1270
  let deferred5_1;
@@ -1378,7 +1493,7 @@ var bitmark_json_wasm_default = __wbg_init3;
1378
1493
  // src/generated/package_info.ts
1379
1494
  var PACKAGE_INFO = {
1380
1495
  "name": "@gmb/bitmark-parser",
1381
- "version": "6.11.0",
1496
+ "version": "6.11.1",
1382
1497
  "author": "Get More Brain Ltd <info@getmorebrain.com>",
1383
1498
  "license": "ISC",
1384
1499
  "description": "A parser for bitmark text, powered by WebAssembly."
@@ -1442,13 +1557,10 @@ function stripArray(doc) {
1442
1557
  const t = doc.trim();
1443
1558
  return t.startsWith("[") && t.endsWith("]") ? t.slice(1, -1) : doc;
1444
1559
  }
1445
- function normalisePatch(patch) {
1446
- if (patch === void 0) return [];
1447
- if (typeof patch === "string") {
1448
- const trimmed = patch.trim();
1449
- return trimmed === "" ? [] : JSON.parse(trimmed);
1450
- }
1451
- return patch;
1560
+ function patchJsonOf(patch) {
1561
+ if (patch === void 0) return "";
1562
+ if (typeof patch === "string") return patch.trim();
1563
+ return JSON.stringify(patch);
1452
1564
  }
1453
1565
  function buildUnits(wasm4, input, inputIsBitmark) {
1454
1566
  if (inputIsBitmark) {
@@ -1478,28 +1590,56 @@ function planTransform(wasm4, input, options) {
1478
1590
  const sel = options.inputFormat ?? "auto";
1479
1591
  const inputIsBitmark = sel === "bitmark" || sel !== "json" && wasm4.is_bitmark(input);
1480
1592
  const inputFormat = inputIsBitmark ? "bitmark" : "json";
1481
- const staticPatch = normalisePatch(options.patch);
1482
1593
  const units = buildUnits(wasm4, input, inputIsBitmark);
1483
1594
  const total = units.length;
1484
- const jobs = [];
1485
- const views = [];
1595
+ const hooked = [];
1486
1596
  for (let index = 0; index < total; index++) {
1487
- const { view, source } = units[index];
1597
+ const { view } = units[index];
1488
1598
  view.index = index;
1489
1599
  view.total = total;
1490
1600
  const result = options.preHook ? options.preHook(view) || {} : {};
1491
- if (result.drop) continue;
1492
- const patches = result.patches ? [...staticPatch, ...result.patches] : staticPatch;
1493
- jobs.push({
1494
- index,
1495
- source,
1496
- inputFormat,
1497
- outputFormat: result.outputFormat ?? output,
1498
- mode,
1499
- patchJson: JSON.stringify(patches),
1500
- spacesAroundValues
1501
- });
1502
- views.push(view);
1601
+ hooked.push(result.drop ? null : { patches: result.patches ?? [], outputFormat: result.outputFormat ?? output });
1602
+ }
1603
+ const patchJson = patchJsonOf(options.patch);
1604
+ let resolved;
1605
+ if (patchJson === "") {
1606
+ resolved = units.map((_, index) => ({ source: index, bit: null, patch: [] }));
1607
+ } else {
1608
+ const out = wasm4.resolve_patch_document(input, patchJson);
1609
+ if (isError(out)) throw new Error(out);
1610
+ resolved = JSON.parse(out);
1611
+ }
1612
+ const jobs = [];
1613
+ const views = [];
1614
+ for (const item of resolved) {
1615
+ if (item.source !== null) {
1616
+ const hook = hooked[item.source];
1617
+ if (!hook) continue;
1618
+ jobs.push({
1619
+ index: item.source,
1620
+ source: units[item.source].source,
1621
+ inputFormat,
1622
+ outputFormat: hook.outputFormat,
1623
+ mode,
1624
+ // The document's patches first, the hook's after (the hook contract).
1625
+ patchJson: JSON.stringify([...item.patch, ...hook.patches]),
1626
+ spacesAroundValues
1627
+ });
1628
+ views.push(units[item.source].view);
1629
+ } else {
1630
+ const bit = item.bit ?? {};
1631
+ const index = jobs.length;
1632
+ jobs.push({
1633
+ index,
1634
+ source: JSON.stringify([{ bit }]),
1635
+ inputFormat: "json",
1636
+ outputFormat: output,
1637
+ mode,
1638
+ patchJson: JSON.stringify(item.patch),
1639
+ spacesAroundValues
1640
+ });
1641
+ views.push({ format: "json", index, total, bit });
1642
+ }
1503
1643
  }
1504
1644
  return { jobs, views, output, pretty, indent };
1505
1645
  }
@@ -2803,6 +2943,26 @@ function transform4(input, options = {}) {
2803
2943
  options.spacesAroundValues ?? 1
2804
2944
  );
2805
2945
  }
2946
+ function diff3(a, b, options = {}) {
2947
+ const wasm4 = getActive();
2948
+ if (typeof wasm4.diff !== "function") throw new UnsupportedFeatureError("diff", variant());
2949
+ const out = wasm4.diff(
2950
+ a,
2951
+ b,
2952
+ options.inputFormat ?? "auto",
2953
+ options.outputFormat ?? "bitmark",
2954
+ options.context ?? 3,
2955
+ options.locate ?? false,
2956
+ options.similarity ?? 0.6,
2957
+ options.bboxTolerance ?? 8,
2958
+ options.spacesAroundValues ?? 0
2959
+ );
2960
+ if (out.startsWith("error:")) throw new Error(out.slice("error:".length).trim());
2961
+ return out;
2962
+ }
2963
+ function diffBits(a, b, options = {}) {
2964
+ return JSON.parse(diff3(a, b, { ...options, outputFormat: "json" }));
2965
+ }
2806
2966
  function breakscapeText(input, options = {}) {
2807
2967
  const format = options.format ?? "bitmark++";
2808
2968
  const location = options.location ?? "body";
@@ -2939,6 +3099,8 @@ function transformParallel(input, options = {}) {
2939
3099
  canonicalize,
2940
3100
  convert,
2941
3101
  countBits,
3102
+ diff,
3103
+ diffBits,
2942
3104
  info,
2943
3105
  init,
2944
3106
  initSync,