@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
@@ -15,12 +15,14 @@ __export(bitmark_wasm_exports, {
15
15
  convert_text: () => convert_text,
16
16
  count_bits: () => count_bits,
17
17
  default: () => bitmark_wasm_default,
18
+ diff: () => diff,
18
19
  info: () => info,
19
20
  initSync: () => initSync,
20
21
  is_bitmark: () => is_bitmark,
21
22
  lex: () => lex,
22
23
  prettify: () => prettify,
23
24
  register: () => register,
25
+ resolve_patch_document: () => resolve_patch_document,
24
26
  split_bits: () => split_bits,
25
27
  split_json_bits: () => split_json_bits,
26
28
  transform: () => transform,
@@ -233,6 +235,50 @@ function transform(input, input_format_sel, output_format_sel, mode, patch_json,
233
235
  wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
234
236
  }
235
237
  }
238
+ function resolve_patch_document(input, patch_json) {
239
+ let deferred3_0;
240
+ let deferred3_1;
241
+ try {
242
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
243
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
244
+ const len0 = WASM_VECTOR_LEN;
245
+ const ptr1 = passStringToWasm0(patch_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
246
+ const len1 = WASM_VECTOR_LEN;
247
+ wasm.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
248
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
249
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
250
+ deferred3_0 = r0;
251
+ deferred3_1 = r1;
252
+ return getStringFromWasm0(r0, r1);
253
+ } finally {
254
+ wasm.__wbindgen_add_to_stack_pointer(16);
255
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
256
+ }
257
+ }
258
+ function diff(a, b, input_format_sel, output_format_sel, context, locate, similarity, bbox_tolerance, spaces_around_values) {
259
+ let deferred5_0;
260
+ let deferred5_1;
261
+ try {
262
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
263
+ const ptr0 = passStringToWasm0(a, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
264
+ const len0 = WASM_VECTOR_LEN;
265
+ const ptr1 = passStringToWasm0(b, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
266
+ const len1 = WASM_VECTOR_LEN;
267
+ const ptr2 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
268
+ const len2 = WASM_VECTOR_LEN;
269
+ const ptr3 = passStringToWasm0(output_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
270
+ const len3 = WASM_VECTOR_LEN;
271
+ wasm.diff(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, context, locate, similarity, bbox_tolerance, spaces_around_values);
272
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
273
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
274
+ deferred5_0 = r0;
275
+ deferred5_1 = r1;
276
+ return getStringFromWasm0(r0, r1);
277
+ } finally {
278
+ wasm.__wbindgen_add_to_stack_pointer(16);
279
+ wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
280
+ }
281
+ }
236
282
  function register(data_type, data) {
237
283
  let deferred3_0;
238
284
  let deferred3_1;
@@ -463,12 +509,14 @@ __export(bitmark_browser_full_wasm_exports, {
463
509
  convert_text: () => convert_text2,
464
510
  count_bits: () => count_bits2,
465
511
  default: () => bitmark_browser_full_wasm_default,
512
+ diff: () => diff2,
466
513
  info: () => info2,
467
514
  initSync: () => initSync2,
468
515
  is_bitmark: () => is_bitmark2,
469
516
  lex: () => lex2,
470
517
  prettify: () => prettify2,
471
518
  register: () => register2,
519
+ resolve_patch_document: () => resolve_patch_document2,
472
520
  split_bits: () => split_bits2,
473
521
  split_json_bits: () => split_json_bits2,
474
522
  transform: () => transform2,
@@ -681,6 +729,50 @@ function transform2(input, input_format_sel, output_format_sel, mode, patch_json
681
729
  wasm2.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
682
730
  }
683
731
  }
732
+ function resolve_patch_document2(input, patch_json) {
733
+ let deferred3_0;
734
+ let deferred3_1;
735
+ try {
736
+ const retptr = wasm2.__wbindgen_add_to_stack_pointer(-16);
737
+ const ptr0 = passStringToWasm02(input, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
738
+ const len0 = WASM_VECTOR_LEN2;
739
+ const ptr1 = passStringToWasm02(patch_json, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
740
+ const len1 = WASM_VECTOR_LEN2;
741
+ wasm2.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
742
+ var r0 = getDataViewMemory02().getInt32(retptr + 4 * 0, true);
743
+ var r1 = getDataViewMemory02().getInt32(retptr + 4 * 1, true);
744
+ deferred3_0 = r0;
745
+ deferred3_1 = r1;
746
+ return getStringFromWasm02(r0, r1);
747
+ } finally {
748
+ wasm2.__wbindgen_add_to_stack_pointer(16);
749
+ wasm2.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
750
+ }
751
+ }
752
+ function diff2(a, b, input_format_sel, output_format_sel, context, locate, similarity, bbox_tolerance, spaces_around_values) {
753
+ let deferred5_0;
754
+ let deferred5_1;
755
+ try {
756
+ const retptr = wasm2.__wbindgen_add_to_stack_pointer(-16);
757
+ const ptr0 = passStringToWasm02(a, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
758
+ const len0 = WASM_VECTOR_LEN2;
759
+ const ptr1 = passStringToWasm02(b, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
760
+ const len1 = WASM_VECTOR_LEN2;
761
+ const ptr2 = passStringToWasm02(input_format_sel, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
762
+ const len2 = WASM_VECTOR_LEN2;
763
+ const ptr3 = passStringToWasm02(output_format_sel, wasm2.__wbindgen_export_0, wasm2.__wbindgen_export_1);
764
+ const len3 = WASM_VECTOR_LEN2;
765
+ wasm2.diff(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, context, locate, similarity, bbox_tolerance, spaces_around_values);
766
+ var r0 = getDataViewMemory02().getInt32(retptr + 4 * 0, true);
767
+ var r1 = getDataViewMemory02().getInt32(retptr + 4 * 1, true);
768
+ deferred5_0 = r0;
769
+ deferred5_1 = r1;
770
+ return getStringFromWasm02(r0, r1);
771
+ } finally {
772
+ wasm2.__wbindgen_add_to_stack_pointer(16);
773
+ wasm2.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
774
+ }
775
+ }
684
776
  function register2(data_type, data) {
685
777
  let deferred3_0;
686
778
  let deferred3_1;
@@ -916,6 +1008,7 @@ __export(bitmark_json_wasm_exports, {
916
1008
  is_bitmark: () => is_bitmark3,
917
1009
  prettify: () => prettify3,
918
1010
  register: () => register3,
1011
+ resolve_patch_document: () => resolve_patch_document3,
919
1012
  split_bits: () => split_bits3,
920
1013
  split_json_bits: () => split_json_bits3,
921
1014
  transform: () => transform3,
@@ -1104,6 +1197,26 @@ function transform3(input, input_format_sel, output_format_sel, mode, patch_json
1104
1197
  wasm3.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
1105
1198
  }
1106
1199
  }
1200
+ function resolve_patch_document3(input, patch_json) {
1201
+ let deferred3_0;
1202
+ let deferred3_1;
1203
+ try {
1204
+ const retptr = wasm3.__wbindgen_add_to_stack_pointer(-16);
1205
+ const ptr0 = passStringToWasm03(input, wasm3.__wbindgen_export_0, wasm3.__wbindgen_export_1);
1206
+ const len0 = WASM_VECTOR_LEN3;
1207
+ const ptr1 = passStringToWasm03(patch_json, wasm3.__wbindgen_export_0, wasm3.__wbindgen_export_1);
1208
+ const len1 = WASM_VECTOR_LEN3;
1209
+ wasm3.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
1210
+ var r0 = getDataViewMemory03().getInt32(retptr + 4 * 0, true);
1211
+ var r1 = getDataViewMemory03().getInt32(retptr + 4 * 1, true);
1212
+ deferred3_0 = r0;
1213
+ deferred3_1 = r1;
1214
+ return getStringFromWasm03(r0, r1);
1215
+ } finally {
1216
+ wasm3.__wbindgen_add_to_stack_pointer(16);
1217
+ wasm3.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
1218
+ }
1219
+ }
1107
1220
  function convert3(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report) {
1108
1221
  let deferred5_0;
1109
1222
  let deferred5_1;
@@ -1332,7 +1445,7 @@ var bitmark_json_wasm_default = __wbg_init3;
1332
1445
  // src/generated/package_info.ts
1333
1446
  var PACKAGE_INFO = {
1334
1447
  "name": "@gmb/bitmark-parser",
1335
- "version": "6.11.0",
1448
+ "version": "6.11.1",
1336
1449
  "author": "Get More Brain Ltd <info@getmorebrain.com>",
1337
1450
  "license": "ISC",
1338
1451
  "description": "A parser for bitmark text, powered by WebAssembly."
@@ -1396,13 +1509,10 @@ function stripArray(doc) {
1396
1509
  const t = doc.trim();
1397
1510
  return t.startsWith("[") && t.endsWith("]") ? t.slice(1, -1) : doc;
1398
1511
  }
1399
- function normalisePatch(patch) {
1400
- if (patch === void 0) return [];
1401
- if (typeof patch === "string") {
1402
- const trimmed = patch.trim();
1403
- return trimmed === "" ? [] : JSON.parse(trimmed);
1404
- }
1405
- return patch;
1512
+ function patchJsonOf(patch) {
1513
+ if (patch === void 0) return "";
1514
+ if (typeof patch === "string") return patch.trim();
1515
+ return JSON.stringify(patch);
1406
1516
  }
1407
1517
  function buildUnits(wasm4, input, inputIsBitmark) {
1408
1518
  if (inputIsBitmark) {
@@ -1432,28 +1542,56 @@ function planTransform(wasm4, input, options) {
1432
1542
  const sel = options.inputFormat ?? "auto";
1433
1543
  const inputIsBitmark = sel === "bitmark" || sel !== "json" && wasm4.is_bitmark(input);
1434
1544
  const inputFormat = inputIsBitmark ? "bitmark" : "json";
1435
- const staticPatch = normalisePatch(options.patch);
1436
1545
  const units = buildUnits(wasm4, input, inputIsBitmark);
1437
1546
  const total = units.length;
1438
- const jobs = [];
1439
- const views = [];
1547
+ const hooked = [];
1440
1548
  for (let index = 0; index < total; index++) {
1441
- const { view, source } = units[index];
1549
+ const { view } = units[index];
1442
1550
  view.index = index;
1443
1551
  view.total = total;
1444
1552
  const result = options.preHook ? options.preHook(view) || {} : {};
1445
- if (result.drop) continue;
1446
- const patches = result.patches ? [...staticPatch, ...result.patches] : staticPatch;
1447
- jobs.push({
1448
- index,
1449
- source,
1450
- inputFormat,
1451
- outputFormat: result.outputFormat ?? output,
1452
- mode,
1453
- patchJson: JSON.stringify(patches),
1454
- spacesAroundValues
1455
- });
1456
- views.push(view);
1553
+ hooked.push(result.drop ? null : { patches: result.patches ?? [], outputFormat: result.outputFormat ?? output });
1554
+ }
1555
+ const patchJson = patchJsonOf(options.patch);
1556
+ let resolved;
1557
+ if (patchJson === "") {
1558
+ resolved = units.map((_, index) => ({ source: index, bit: null, patch: [] }));
1559
+ } else {
1560
+ const out = wasm4.resolve_patch_document(input, patchJson);
1561
+ if (isError(out)) throw new Error(out);
1562
+ resolved = JSON.parse(out);
1563
+ }
1564
+ const jobs = [];
1565
+ const views = [];
1566
+ for (const item of resolved) {
1567
+ if (item.source !== null) {
1568
+ const hook = hooked[item.source];
1569
+ if (!hook) continue;
1570
+ jobs.push({
1571
+ index: item.source,
1572
+ source: units[item.source].source,
1573
+ inputFormat,
1574
+ outputFormat: hook.outputFormat,
1575
+ mode,
1576
+ // The document's patches first, the hook's after (the hook contract).
1577
+ patchJson: JSON.stringify([...item.patch, ...hook.patches]),
1578
+ spacesAroundValues
1579
+ });
1580
+ views.push(units[item.source].view);
1581
+ } else {
1582
+ const bit = item.bit ?? {};
1583
+ const index = jobs.length;
1584
+ jobs.push({
1585
+ index,
1586
+ source: JSON.stringify([{ bit }]),
1587
+ inputFormat: "json",
1588
+ outputFormat: output,
1589
+ mode,
1590
+ patchJson: JSON.stringify(item.patch),
1591
+ spacesAroundValues
1592
+ });
1593
+ views.push({ format: "json", index, total, bit });
1594
+ }
1457
1595
  }
1458
1596
  return { jobs, views, output, pretty, indent };
1459
1597
  }
@@ -2757,6 +2895,26 @@ function transform4(input, options = {}) {
2757
2895
  options.spacesAroundValues ?? 1
2758
2896
  );
2759
2897
  }
2898
+ function diff3(a, b, options = {}) {
2899
+ const wasm4 = getActive();
2900
+ if (typeof wasm4.diff !== "function") throw new UnsupportedFeatureError("diff", variant());
2901
+ const out = wasm4.diff(
2902
+ a,
2903
+ b,
2904
+ options.inputFormat ?? "auto",
2905
+ options.outputFormat ?? "bitmark",
2906
+ options.context ?? 3,
2907
+ options.locate ?? false,
2908
+ options.similarity ?? 0.6,
2909
+ options.bboxTolerance ?? 8,
2910
+ options.spacesAroundValues ?? 0
2911
+ );
2912
+ if (out.startsWith("error:")) throw new Error(out.slice("error:".length).trim());
2913
+ return out;
2914
+ }
2915
+ function diffBits(a, b, options = {}) {
2916
+ return JSON.parse(diff3(a, b, { ...options, outputFormat: "json" }));
2917
+ }
2760
2918
  function breakscapeText(input, options = {}) {
2761
2919
  const format = options.format ?? "bitmark++";
2762
2920
  const location = options.location ?? "body";
@@ -2892,6 +3050,8 @@ export {
2892
3050
  canonicalize4 as canonicalize,
2893
3051
  convert4 as convert,
2894
3052
  countBits,
3053
+ diff3 as diff,
3054
+ diffBits,
2895
3055
  info4 as info,
2896
3056
  init,
2897
3057
  initSync4 as initSync,