@gmb/bitmark-parser 6.11.0 → 7.0.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.
Files changed (45) hide show
  1. package/README.md +311 -51
  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 +696 -312
  5. package/dist/browser/cjs/index.cjs.map +1 -1
  6. package/dist/browser/cjs/index.d.cts +487 -74
  7. package/dist/browser/esm/index.d.ts +487 -74
  8. package/dist/browser/esm/index.js +693 -311
  9. package/dist/browser/esm/index.js.map +1 -1
  10. package/dist/browser/esm/worker-entry.js +578 -210
  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 +119 -107
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +487 -74
  18. package/dist/index.d.ts +487 -74
  19. package/dist/index.js +116 -106
  20. package/dist/index.js.map +1 -1
  21. package/dist/legacy.cjs +8 -30
  22. package/dist/legacy.cjs.map +1 -1
  23. package/dist/legacy.d.cts +0 -2
  24. package/dist/legacy.d.ts +0 -2
  25. package/dist/legacy.js +8 -30
  26. package/dist/legacy.js.map +1 -1
  27. package/dist/worker-entry.cjs +1 -5
  28. package/dist/worker-entry.cjs.map +1 -1
  29. package/package.json +7 -7
  30. package/schema/bitmark.schema.json +496 -139
  31. package/wasm/bitmark_wasm.d.ts +47 -20
  32. package/wasm/bitmark_wasm.js +262 -96
  33. package/wasm/bitmark_wasm_bg.wasm +0 -0
  34. package/wasm/bitmark_wasm_bg.wasm.d.ts +4 -2
  35. package/wasm/package.json +1 -1
  36. package/wasm-bitmark-json/bitmark_json_wasm.d.ts +26 -11
  37. package/wasm-bitmark-json/bitmark_json_wasm.js +195 -65
  38. package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm +0 -0
  39. package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm.d.ts +2 -1
  40. package/wasm-bitmark-json/package.json +1 -1
  41. package/wasm-browser-full/bitmark_browser_full_wasm.d.ts +47 -20
  42. package/wasm-browser-full/bitmark_browser_full_wasm.js +262 -96
  43. package/wasm-browser-full/bitmark_browser_full_wasm_bg.wasm +0 -0
  44. package/wasm-browser-full/bitmark_browser_full_wasm_bg.wasm.d.ts +4 -2
  45. package/wasm-browser-full/package.json +1 -1
@@ -3,14 +3,16 @@
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const breakscape_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
5
5
  export const canonicalize: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
6
- export const convert: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
6
+ export const convert: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => void;
7
7
  export const convert_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
8
8
  export const count_bits: (a: number, b: number, c: number) => void;
9
+ export const diff: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
9
10
  export const info: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
11
+ export const info_text_supported: () => number;
10
12
  export const is_bitmark: (a: number, b: number) => number;
11
- export const lex: (a: number, b: number, c: number, d: number, e: number) => void;
12
13
  export const prettify: (a: number, b: number, c: number, d: number) => void;
13
14
  export const register: (a: number, b: number, c: number, d: number, e: number) => void;
15
+ export const resolve_patch_document: (a: number, b: number, c: number, d: number, e: number) => void;
14
16
  export const split_bits: (a: number, b: number, c: number) => void;
15
17
  export const split_json_bits: (a: number, b: number, c: number) => void;
16
18
  export const transform: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
package/wasm/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "Get More Brain Ltd <info@getmorebrain.com>"
5
5
  ],
6
6
  "description": "WebAssembly bindings for the bitmark parser",
7
- "version": "6.11.0",
7
+ "version": "7.0.0",
8
8
  "license": "ISC",
9
9
  "repository": {
10
10
  "type": "git",
@@ -40,13 +40,13 @@ export function info(info_type: string, format: string, bit: string, pretty: boo
40
40
  *
41
41
  * `data` is the file's own text. Semantics are REPLACE: a second call
42
42
  * supersedes the first entirely, and the built-in table (where the variant
43
- * bakes one) stays underneath. Returns `""` on success, or an
44
- * `error:`-prefixed message — matching the other string-returning exports.
43
+ * bakes one) stays underneath. Throws on bad data — like every other
44
+ * fallible export (PLAN-192 D1).
45
45
  *
46
46
  * Available in EVERY variant, including those that bake nothing: that is
47
47
  * exactly where a consumer must supply the file themselves.
48
48
  */
49
- export function register(data_type: string, data: string): string;
49
+ export function register(data_type: string, data: string): void;
50
50
  /**
51
51
  * Apply a patch (a JSON array of patch entries) to every bit and re-emit.
52
52
  *
@@ -54,20 +54,35 @@ export function register(data_type: string, data: string): string;
54
54
  * `output_format_sel`: `"bitmark"` | `"json"` (default json).
55
55
  * `patch_json`: the patch entry array (empty string = no patches, i.e. a
56
56
  * canonicalizing pass). Parallelism is a JS-side concern (web workers); this
57
- * runs sequentially. Returns the document text/JSON, or `error: …`.
57
+ * runs sequentially. Returns the document text/JSON; throws on failure.
58
58
  */
59
59
  export function transform(input: string, input_format_sel: string, output_format_sel: string, mode: string, patch_json: string, pretty: boolean, indent: number, spaces_around_values: number): string;
60
+ /**
61
+ * Resolve a patch document against `input` (bitmark or JSON) into the
62
+ * ordered output items, so a JS per-bit planner (hooks, worker pool) can
63
+ * reorder, drop and insert jobs from the one Rust implementation
64
+ * (PLAN-179). Returns a JSON array of
65
+ * `{ "source": <original index> | null, "bit": <inner bit> | null,
66
+ * "patch": [ … ] }`; throws on failure.
67
+ */
68
+ export function resolve_patch_document(input: string, patch_json: string): string;
60
69
  /**
61
70
  * Convert between bitmark and JSON with explicit input/output formats + mode.
62
71
  *
63
- * `input_format`: `"auto"` (default) | `"bitmark"` | `"json"`.
64
- * `output_format`: `"auto"` (opposite of input) | `"bitmark"` | `"json"`.
72
+ * `input_format`: `"auto"` (default) | `"bitmark"` | `"json"` | a mapping id.
73
+ * `output_format`: `"auto"` (opposite of input) | `"bitmark"` | `"json"` |
74
+ * `"text"` | `"lex"` (the token stream as JSON, bitmark input only) | a
75
+ * mapping id.
65
76
  * `mode`: `"optimized"` (default) | `"full"`.
66
77
  * `mapping_report`: replace the output with a human-readable report of the
67
78
  * input→output mappings, including inputs that are NOT mapped (PLAN-147).
68
- * Returns the converted text/JSON, or a string prefixed `error:` on failure.
79
+ * `position_encoding`: `"utf-16"` (default) | `"utf-8"` and `tokens_layout`:
80
+ * `"lsp"` (default) | `"absolute"` — the `semantic-tokens` output's two
81
+ * options (PLAN-193); `""` means the default, and every other output
82
+ * format ignores them.
83
+ * Returns the converted text/JSON; throws on failure.
69
84
  */
70
- export function convert(input: string, input_format_sel: string, output_format_sel: string, mode: string, pretty: boolean, indent: number, spaces_around_values: number, include_unknown_properties: boolean, mapping_report: boolean): string;
85
+ export function convert(input: string, input_format_sel: string, output_format_sel: string, mode: string, pretty: boolean, indent: number, spaces_around_values: number, include_unknown_properties: boolean, mapping_report: boolean, position_encoding: string, tokens_layout: string): string;
71
86
  /**
72
87
  * Re-emit input in its own format in canonical form at `mode`.
73
88
  *
@@ -77,7 +92,7 @@ export function convert(input: string, input_format_sel: string, output_format_s
77
92
  export function canonicalize(input: string, input_format_sel: string, mode: string, pretty: boolean, indent: number, spaces_around_values: number): string;
78
93
  /**
79
94
  * Count the bits in `input` (auto-detecting bitmark vs JSON).
80
- * Returns the count as a decimal string, or `error: …`.
95
+ * Returns the count as a decimal string; throws on failure.
81
96
  */
82
97
  export function count_bits(input: string): string;
83
98
  /**
@@ -96,7 +111,7 @@ export function is_bitmark(input: string): boolean;
96
111
  * Split a JSON document (a top-level array of bit envelopes) into its per-bit
97
112
  * envelope objects, returned as a JSON array string. Lets a JS caller iterate
98
113
  * JSON-input bits for per-bit hooks (the JSON counterpart of [`split_bits`]).
99
- * Returns `error: …` if the input is not a JSON array of bits.
114
+ * Throws if the input is not a JSON array of bits.
100
115
  */
101
116
  export function split_json_bits(input: string): string;
102
117
  /**
@@ -112,6 +127,6 @@ export function prettify(json: string, indent: number): string;
112
127
  * `format`: a bitmark text format (`"bitmark++"`, `"bitmark+"`) parses
113
128
  * inline marks; anything else is treated as plain text (textToAst only).
114
129
  * `location`: `"body"` (default) or `"tag"`.
115
- * Returns the converted fragment, or `error: …`.
130
+ * Returns the converted fragment; throws on failure.
116
131
  */
117
132
  export function convert_text(input: string, direction: string, format: string, location: string): string;
@@ -1,9 +1,12 @@
1
1
 
2
2
  let imports = {};
3
+ imports['__wbindgen_placeholder__'] = module.exports;
3
4
  let wasm;
4
- const { TextEncoder, TextDecoder } = require(`util`);
5
+ const { TextDecoder, TextEncoder } = require(`util`);
5
6
 
6
- let WASM_VECTOR_LEN = 0;
7
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
8
+
9
+ cachedTextDecoder.decode();
7
10
 
8
11
  let cachedUint8ArrayMemory0 = null;
9
12
 
@@ -14,6 +17,28 @@ function getUint8ArrayMemory0() {
14
17
  return cachedUint8ArrayMemory0;
15
18
  }
16
19
 
20
+ function getStringFromWasm0(ptr, len) {
21
+ ptr = ptr >>> 0;
22
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
23
+ }
24
+
25
+ const heap = new Array(128).fill(undefined);
26
+
27
+ heap.push(undefined, null, true, false);
28
+
29
+ let heap_next = heap.length;
30
+
31
+ function addHeapObject(obj) {
32
+ if (heap_next === heap.length) heap.push(heap.length + 1);
33
+ const idx = heap_next;
34
+ heap_next = heap[idx];
35
+
36
+ heap[idx] = obj;
37
+ return idx;
38
+ }
39
+
40
+ let WASM_VECTOR_LEN = 0;
41
+
17
42
  let cachedTextEncoder = new TextEncoder('utf-8');
18
43
 
19
44
  const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
@@ -76,15 +101,6 @@ function getDataViewMemory0() {
76
101
  }
77
102
  return cachedDataViewMemory0;
78
103
  }
79
-
80
- let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
81
-
82
- cachedTextDecoder.decode();
83
-
84
- function getStringFromWasm0(ptr, len) {
85
- ptr = ptr >>> 0;
86
- return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
87
- }
88
104
  /**
89
105
  * Breakscape text (escape bitmark special characters).
90
106
  *
@@ -203,6 +219,19 @@ module.exports.info = function(info_type, format, bit, pretty, indent, include_d
203
219
  }
204
220
  };
205
221
 
222
+ function getObject(idx) { return heap[idx]; }
223
+
224
+ function dropObject(idx) {
225
+ if (idx < 132) return;
226
+ heap[idx] = heap_next;
227
+ heap_next = idx;
228
+ }
229
+
230
+ function takeObject(idx) {
231
+ const ret = getObject(idx);
232
+ dropObject(idx);
233
+ return ret;
234
+ }
206
235
  /**
207
236
  * Register data with the parser process (PLAN-173 P12).
208
237
  *
@@ -211,18 +240,15 @@ module.exports.info = function(info_type, format, bit, pretty, indent, include_d
211
240
  *
212
241
  * `data` is the file's own text. Semantics are REPLACE: a second call
213
242
  * supersedes the first entirely, and the built-in table (where the variant
214
- * bakes one) stays underneath. Returns `""` on success, or an
215
- * `error:`-prefixed message — matching the other string-returning exports.
243
+ * bakes one) stays underneath. Throws on bad data — like every other
244
+ * fallible export (PLAN-192 D1).
216
245
  *
217
246
  * Available in EVERY variant, including those that bake nothing: that is
218
247
  * exactly where a consumer must supply the file themselves.
219
248
  * @param {string} data_type
220
249
  * @param {string} data
221
- * @returns {string}
222
250
  */
223
251
  module.exports.register = function(data_type, data) {
224
- let deferred3_0;
225
- let deferred3_1;
226
252
  try {
227
253
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
228
254
  const ptr0 = passStringToWasm0(data_type, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -232,12 +258,11 @@ module.exports.register = function(data_type, data) {
232
258
  wasm.register(retptr, ptr0, len0, ptr1, len1);
233
259
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
234
260
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
235
- deferred3_0 = r0;
236
- deferred3_1 = r1;
237
- return getStringFromWasm0(r0, r1);
261
+ if (r1) {
262
+ throw takeObject(r0);
263
+ }
238
264
  } finally {
239
265
  wasm.__wbindgen_add_to_stack_pointer(16);
240
- wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
241
266
  }
242
267
  };
243
268
 
@@ -248,7 +273,7 @@ module.exports.register = function(data_type, data) {
248
273
  * `output_format_sel`: `"bitmark"` | `"json"` (default json).
249
274
  * `patch_json`: the patch entry array (empty string = no patches, i.e. a
250
275
  * canonicalizing pass). Parallelism is a JS-side concern (web workers); this
251
- * runs sequentially. Returns the document text/JSON, or `error: …`.
276
+ * runs sequentially. Returns the document text/JSON; throws on failure.
252
277
  * @param {string} input
253
278
  * @param {string} input_format_sel
254
279
  * @param {string} output_format_sel
@@ -260,8 +285,8 @@ module.exports.register = function(data_type, data) {
260
285
  * @returns {string}
261
286
  */
262
287
  module.exports.transform = function(input, input_format_sel, output_format_sel, mode, patch_json, pretty, indent, spaces_around_values) {
263
- let deferred6_0;
264
- let deferred6_1;
288
+ let deferred7_0;
289
+ let deferred7_1;
265
290
  try {
266
291
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
267
292
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -277,24 +302,78 @@ module.exports.transform = function(input, input_format_sel, output_format_sel,
277
302
  wasm.transform(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, pretty, indent, spaces_around_values);
278
303
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
279
304
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
280
- deferred6_0 = r0;
281
- deferred6_1 = r1;
282
- return getStringFromWasm0(r0, r1);
305
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
306
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
307
+ var ptr6 = r0;
308
+ var len6 = r1;
309
+ if (r3) {
310
+ ptr6 = 0; len6 = 0;
311
+ throw takeObject(r2);
312
+ }
313
+ deferred7_0 = ptr6;
314
+ deferred7_1 = len6;
315
+ return getStringFromWasm0(ptr6, len6);
283
316
  } finally {
284
317
  wasm.__wbindgen_add_to_stack_pointer(16);
285
- wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
318
+ wasm.__wbindgen_export_2(deferred7_0, deferred7_1, 1);
319
+ }
320
+ };
321
+
322
+ /**
323
+ * Resolve a patch document against `input` (bitmark or JSON) into the
324
+ * ordered output items, so a JS per-bit planner (hooks, worker pool) can
325
+ * reorder, drop and insert jobs from the one Rust implementation
326
+ * (PLAN-179). Returns a JSON array of
327
+ * `{ "source": <original index> | null, "bit": <inner bit> | null,
328
+ * "patch": [ … ] }`; throws on failure.
329
+ * @param {string} input
330
+ * @param {string} patch_json
331
+ * @returns {string}
332
+ */
333
+ module.exports.resolve_patch_document = function(input, patch_json) {
334
+ let deferred4_0;
335
+ let deferred4_1;
336
+ try {
337
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
338
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
339
+ const len0 = WASM_VECTOR_LEN;
340
+ const ptr1 = passStringToWasm0(patch_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
341
+ const len1 = WASM_VECTOR_LEN;
342
+ wasm.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
343
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
344
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
345
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
346
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
347
+ var ptr3 = r0;
348
+ var len3 = r1;
349
+ if (r3) {
350
+ ptr3 = 0; len3 = 0;
351
+ throw takeObject(r2);
352
+ }
353
+ deferred4_0 = ptr3;
354
+ deferred4_1 = len3;
355
+ return getStringFromWasm0(ptr3, len3);
356
+ } finally {
357
+ wasm.__wbindgen_add_to_stack_pointer(16);
358
+ wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
286
359
  }
287
360
  };
288
361
 
289
362
  /**
290
363
  * Convert between bitmark and JSON with explicit input/output formats + mode.
291
364
  *
292
- * `input_format`: `"auto"` (default) | `"bitmark"` | `"json"`.
293
- * `output_format`: `"auto"` (opposite of input) | `"bitmark"` | `"json"`.
365
+ * `input_format`: `"auto"` (default) | `"bitmark"` | `"json"` | a mapping id.
366
+ * `output_format`: `"auto"` (opposite of input) | `"bitmark"` | `"json"` |
367
+ * `"text"` | `"lex"` (the token stream as JSON, bitmark input only) | a
368
+ * mapping id.
294
369
  * `mode`: `"optimized"` (default) | `"full"`.
295
370
  * `mapping_report`: replace the output with a human-readable report of the
296
371
  * input→output mappings, including inputs that are NOT mapped (PLAN-147).
297
- * Returns the converted text/JSON, or a string prefixed `error:` on failure.
372
+ * `position_encoding`: `"utf-16"` (default) | `"utf-8"` and `tokens_layout`:
373
+ * `"lsp"` (default) | `"absolute"` — the `semantic-tokens` output's two
374
+ * options (PLAN-193); `""` means the default, and every other output
375
+ * format ignores them.
376
+ * Returns the converted text/JSON; throws on failure.
298
377
  * @param {string} input
299
378
  * @param {string} input_format_sel
300
379
  * @param {string} output_format_sel
@@ -304,11 +383,13 @@ module.exports.transform = function(input, input_format_sel, output_format_sel,
304
383
  * @param {number} spaces_around_values
305
384
  * @param {boolean} include_unknown_properties
306
385
  * @param {boolean} mapping_report
386
+ * @param {string} position_encoding
387
+ * @param {string} tokens_layout
307
388
  * @returns {string}
308
389
  */
309
- module.exports.convert = function(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report) {
310
- let deferred5_0;
311
- let deferred5_1;
390
+ module.exports.convert = function(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report, position_encoding, tokens_layout) {
391
+ let deferred8_0;
392
+ let deferred8_1;
312
393
  try {
313
394
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
314
395
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -319,15 +400,27 @@ module.exports.convert = function(input, input_format_sel, output_format_sel, mo
319
400
  const len2 = WASM_VECTOR_LEN;
320
401
  const ptr3 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
321
402
  const len3 = WASM_VECTOR_LEN;
322
- wasm.convert(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report);
403
+ const ptr4 = passStringToWasm0(position_encoding, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
404
+ const len4 = WASM_VECTOR_LEN;
405
+ const ptr5 = passStringToWasm0(tokens_layout, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
406
+ const len5 = WASM_VECTOR_LEN;
407
+ wasm.convert(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report, ptr4, len4, ptr5, len5);
323
408
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
324
409
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
325
- deferred5_0 = r0;
326
- deferred5_1 = r1;
327
- return getStringFromWasm0(r0, r1);
410
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
411
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
412
+ var ptr7 = r0;
413
+ var len7 = r1;
414
+ if (r3) {
415
+ ptr7 = 0; len7 = 0;
416
+ throw takeObject(r2);
417
+ }
418
+ deferred8_0 = ptr7;
419
+ deferred8_1 = len7;
420
+ return getStringFromWasm0(ptr7, len7);
328
421
  } finally {
329
422
  wasm.__wbindgen_add_to_stack_pointer(16);
330
- wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
423
+ wasm.__wbindgen_export_2(deferred8_0, deferred8_1, 1);
331
424
  }
332
425
  };
333
426
 
@@ -345,8 +438,8 @@ module.exports.convert = function(input, input_format_sel, output_format_sel, mo
345
438
  * @returns {string}
346
439
  */
347
440
  module.exports.canonicalize = function(input, input_format_sel, mode, pretty, indent, spaces_around_values) {
348
- let deferred4_0;
349
- let deferred4_1;
441
+ let deferred5_0;
442
+ let deferred5_1;
350
443
  try {
351
444
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
352
445
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -358,24 +451,32 @@ module.exports.canonicalize = function(input, input_format_sel, mode, pretty, in
358
451
  wasm.canonicalize(retptr, ptr0, len0, ptr1, len1, ptr2, len2, pretty, indent, spaces_around_values);
359
452
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
360
453
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
361
- deferred4_0 = r0;
362
- deferred4_1 = r1;
363
- return getStringFromWasm0(r0, r1);
454
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
455
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
456
+ var ptr4 = r0;
457
+ var len4 = r1;
458
+ if (r3) {
459
+ ptr4 = 0; len4 = 0;
460
+ throw takeObject(r2);
461
+ }
462
+ deferred5_0 = ptr4;
463
+ deferred5_1 = len4;
464
+ return getStringFromWasm0(ptr4, len4);
364
465
  } finally {
365
466
  wasm.__wbindgen_add_to_stack_pointer(16);
366
- wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
467
+ wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
367
468
  }
368
469
  };
369
470
 
370
471
  /**
371
472
  * Count the bits in `input` (auto-detecting bitmark vs JSON).
372
- * Returns the count as a decimal string, or `error: …`.
473
+ * Returns the count as a decimal string; throws on failure.
373
474
  * @param {string} input
374
475
  * @returns {string}
375
476
  */
376
477
  module.exports.count_bits = function(input) {
377
- let deferred2_0;
378
- let deferred2_1;
478
+ let deferred3_0;
479
+ let deferred3_1;
379
480
  try {
380
481
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
381
482
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -383,12 +484,20 @@ module.exports.count_bits = function(input) {
383
484
  wasm.count_bits(retptr, ptr0, len0);
384
485
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
385
486
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
386
- deferred2_0 = r0;
387
- deferred2_1 = r1;
388
- return getStringFromWasm0(r0, r1);
487
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
488
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
489
+ var ptr2 = r0;
490
+ var len2 = r1;
491
+ if (r3) {
492
+ ptr2 = 0; len2 = 0;
493
+ throw takeObject(r2);
494
+ }
495
+ deferred3_0 = ptr2;
496
+ deferred3_1 = len2;
497
+ return getStringFromWasm0(ptr2, len2);
389
498
  } finally {
390
499
  wasm.__wbindgen_add_to_stack_pointer(16);
391
- wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);
500
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
392
501
  }
393
502
  };
394
503
 
@@ -436,13 +545,13 @@ module.exports.is_bitmark = function(input) {
436
545
  * Split a JSON document (a top-level array of bit envelopes) into its per-bit
437
546
  * envelope objects, returned as a JSON array string. Lets a JS caller iterate
438
547
  * JSON-input bits for per-bit hooks (the JSON counterpart of [`split_bits`]).
439
- * Returns `error: …` if the input is not a JSON array of bits.
548
+ * Throws if the input is not a JSON array of bits.
440
549
  * @param {string} input
441
550
  * @returns {string}
442
551
  */
443
552
  module.exports.split_json_bits = function(input) {
444
- let deferred2_0;
445
- let deferred2_1;
553
+ let deferred3_0;
554
+ let deferred3_1;
446
555
  try {
447
556
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
448
557
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -450,12 +559,20 @@ module.exports.split_json_bits = function(input) {
450
559
  wasm.split_json_bits(retptr, ptr0, len0);
451
560
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
452
561
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
453
- deferred2_0 = r0;
454
- deferred2_1 = r1;
455
- return getStringFromWasm0(r0, r1);
562
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
563
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
564
+ var ptr2 = r0;
565
+ var len2 = r1;
566
+ if (r3) {
567
+ ptr2 = 0; len2 = 0;
568
+ throw takeObject(r2);
569
+ }
570
+ deferred3_0 = ptr2;
571
+ deferred3_1 = len2;
572
+ return getStringFromWasm0(ptr2, len2);
456
573
  } finally {
457
574
  wasm.__wbindgen_add_to_stack_pointer(16);
458
- wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);
575
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
459
576
  }
460
577
  };
461
578
 
@@ -493,7 +610,7 @@ module.exports.prettify = function(json, indent) {
493
610
  * `format`: a bitmark text format (`"bitmark++"`, `"bitmark+"`) parses
494
611
  * inline marks; anything else is treated as plain text (textToAst only).
495
612
  * `location`: `"body"` (default) or `"tag"`.
496
- * Returns the converted fragment, or `error: …`.
613
+ * Returns the converted fragment; throws on failure.
497
614
  * @param {string} input
498
615
  * @param {string} direction
499
616
  * @param {string} format
@@ -501,8 +618,8 @@ module.exports.prettify = function(json, indent) {
501
618
  * @returns {string}
502
619
  */
503
620
  module.exports.convert_text = function(input, direction, format, location) {
504
- let deferred5_0;
505
- let deferred5_1;
621
+ let deferred6_0;
622
+ let deferred6_1;
506
623
  try {
507
624
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
508
625
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -516,15 +633,28 @@ module.exports.convert_text = function(input, direction, format, location) {
516
633
  wasm.convert_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
517
634
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
518
635
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
519
- deferred5_0 = r0;
520
- deferred5_1 = r1;
521
- return getStringFromWasm0(r0, r1);
636
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
637
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
638
+ var ptr5 = r0;
639
+ var len5 = r1;
640
+ if (r3) {
641
+ ptr5 = 0; len5 = 0;
642
+ throw takeObject(r2);
643
+ }
644
+ deferred6_0 = ptr5;
645
+ deferred6_1 = len5;
646
+ return getStringFromWasm0(ptr5, len5);
522
647
  } finally {
523
648
  wasm.__wbindgen_add_to_stack_pointer(16);
524
- wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
649
+ wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
525
650
  }
526
651
  };
527
652
 
653
+ module.exports.__wbindgen_error_new = function(arg0, arg1) {
654
+ const ret = new Error(getStringFromWasm0(arg0, arg1));
655
+ return addHeapObject(ret);
656
+ };
657
+
528
658
  const path = require('path').join(__dirname, 'bitmark_json_wasm_bg.wasm');
529
659
  const bytes = require('fs').readFileSync(path);
530
660
 
@@ -3,13 +3,14 @@
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const breakscape_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
5
5
  export const canonicalize: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
6
- export const convert: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
6
+ export const convert: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => void;
7
7
  export const convert_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
8
8
  export const count_bits: (a: number, b: number, c: number) => void;
9
9
  export const info: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
10
10
  export const is_bitmark: (a: number, b: number) => number;
11
11
  export const prettify: (a: number, b: number, c: number, d: number) => void;
12
12
  export const register: (a: number, b: number, c: number, d: number, e: number) => void;
13
+ export const resolve_patch_document: (a: number, b: number, c: number, d: number, e: number) => void;
13
14
  export const split_bits: (a: number, b: number, c: number) => void;
14
15
  export const split_json_bits: (a: number, b: number, c: number) => void;
15
16
  export const transform: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => void;
@@ -4,7 +4,7 @@
4
4
  "Get More Brain Ltd <info@getmorebrain.com>"
5
5
  ],
6
6
  "description": "WebAssembly bindings for the bitmark parser",
7
- "version": "6.11.0",
7
+ "version": "7.0.0",
8
8
  "license": "ISC",
9
9
  "repository": {
10
10
  "type": "git",