@gmb/bitmark-parser 6.11.1 → 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 +222 -54
  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 +547 -325
  5. package/dist/browser/cjs/index.cjs.map +1 -1
  6. package/dist/browser/cjs/index.d.cts +342 -68
  7. package/dist/browser/esm/index.d.ts +342 -68
  8. package/dist/browser/esm/index.js +546 -324
  9. package/dist/browser/esm/index.js.map +1 -1
  10. package/dist/browser/esm/worker-entry.js +497 -242
  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 +51 -88
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +342 -68
  18. package/dist/index.d.ts +342 -68
  19. package/dist/index.js +50 -87
  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 +6 -6
  30. package/schema/bitmark.schema.json +496 -139
  31. package/wasm/bitmark_wasm.d.ts +27 -23
  32. package/wasm/bitmark_wasm.js +198 -112
  33. package/wasm/bitmark_wasm_bg.wasm +0 -0
  34. package/wasm/bitmark_wasm_bg.wasm.d.ts +2 -2
  35. package/wasm/package.json +1 -1
  36. package/wasm-bitmark-json/bitmark_json_wasm.d.ts +18 -12
  37. package/wasm-bitmark-json/bitmark_json_wasm.js +170 -72
  38. package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm +0 -0
  39. package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm.d.ts +1 -1
  40. package/wasm-bitmark-json/package.json +1 -1
  41. package/wasm-browser-full/bitmark_browser_full_wasm.d.ts +27 -23
  42. package/wasm-browser-full/bitmark_browser_full_wasm.js +198 -112
  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 +2 -2
  45. package/wasm-browser-full/package.json +1 -1
@@ -3,13 +3,13 @@
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 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;
10
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;
11
12
  export const is_bitmark: (a: number, b: number) => number;
12
- export const lex: (a: number, b: number, c: number, d: number, e: number) => void;
13
13
  export const prettify: (a: number, b: number, c: number, d: number) => void;
14
14
  export const register: (a: number, b: number, c: number, d: number, e: number) => void;
15
15
  export const resolve_patch_document: (a: number, b: number, c: number, d: number, e: 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.1",
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,7 +54,7 @@ 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
60
  /**
@@ -63,20 +63,26 @@ export function transform(input: string, input_format_sel: string, output_format
63
63
  * reorder, drop and insert jobs from the one Rust implementation
64
64
  * (PLAN-179). Returns a JSON array of
65
65
  * `{ "source": <original index> | null, "bit": <inner bit> | null,
66
- * "patch": [ … ] }`, or `error: …`.
66
+ * "patch": [ … ] }`; throws on failure.
67
67
  */
68
68
  export function resolve_patch_document(input: string, patch_json: string): string;
69
69
  /**
70
70
  * Convert between bitmark and JSON with explicit input/output formats + mode.
71
71
  *
72
- * `input_format`: `"auto"` (default) | `"bitmark"` | `"json"`.
73
- * `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.
74
76
  * `mode`: `"optimized"` (default) | `"full"`.
75
77
  * `mapping_report`: replace the output with a human-readable report of the
76
78
  * input→output mappings, including inputs that are NOT mapped (PLAN-147).
77
- * 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.
78
84
  */
79
- 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;
80
86
  /**
81
87
  * Re-emit input in its own format in canonical form at `mode`.
82
88
  *
@@ -86,7 +92,7 @@ export function convert(input: string, input_format_sel: string, output_format_s
86
92
  export function canonicalize(input: string, input_format_sel: string, mode: string, pretty: boolean, indent: number, spaces_around_values: number): string;
87
93
  /**
88
94
  * Count the bits in `input` (auto-detecting bitmark vs JSON).
89
- * Returns the count as a decimal string, or `error: …`.
95
+ * Returns the count as a decimal string; throws on failure.
90
96
  */
91
97
  export function count_bits(input: string): string;
92
98
  /**
@@ -105,7 +111,7 @@ export function is_bitmark(input: string): boolean;
105
111
  * Split a JSON document (a top-level array of bit envelopes) into its per-bit
106
112
  * envelope objects, returned as a JSON array string. Lets a JS caller iterate
107
113
  * JSON-input bits for per-bit hooks (the JSON counterpart of [`split_bits`]).
108
- * Returns `error: …` if the input is not a JSON array of bits.
114
+ * Throws if the input is not a JSON array of bits.
109
115
  */
110
116
  export function split_json_bits(input: string): string;
111
117
  /**
@@ -121,6 +127,6 @@ export function prettify(json: string, indent: number): string;
121
127
  * `format`: a bitmark text format (`"bitmark++"`, `"bitmark+"`) parses
122
128
  * inline marks; anything else is treated as plain text (textToAst only).
123
129
  * `location`: `"body"` (default) or `"tag"`.
124
- * Returns the converted fragment, or `error: …`.
130
+ * Returns the converted fragment; throws on failure.
125
131
  */
126
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,12 +302,20 @@ 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);
286
319
  }
287
320
  };
288
321
 
@@ -292,14 +325,14 @@ module.exports.transform = function(input, input_format_sel, output_format_sel,
292
325
  * reorder, drop and insert jobs from the one Rust implementation
293
326
  * (PLAN-179). Returns a JSON array of
294
327
  * `{ "source": <original index> | null, "bit": <inner bit> | null,
295
- * "patch": [ … ] }`, or `error: …`.
328
+ * "patch": [ … ] }`; throws on failure.
296
329
  * @param {string} input
297
330
  * @param {string} patch_json
298
331
  * @returns {string}
299
332
  */
300
333
  module.exports.resolve_patch_document = function(input, patch_json) {
301
- let deferred3_0;
302
- let deferred3_1;
334
+ let deferred4_0;
335
+ let deferred4_1;
303
336
  try {
304
337
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
305
338
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -309,24 +342,38 @@ module.exports.resolve_patch_document = function(input, patch_json) {
309
342
  wasm.resolve_patch_document(retptr, ptr0, len0, ptr1, len1);
310
343
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
311
344
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
312
- deferred3_0 = r0;
313
- deferred3_1 = r1;
314
- return getStringFromWasm0(r0, r1);
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);
315
356
  } finally {
316
357
  wasm.__wbindgen_add_to_stack_pointer(16);
317
- wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
358
+ wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
318
359
  }
319
360
  };
320
361
 
321
362
  /**
322
363
  * Convert between bitmark and JSON with explicit input/output formats + mode.
323
364
  *
324
- * `input_format`: `"auto"` (default) | `"bitmark"` | `"json"`.
325
- * `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.
326
369
  * `mode`: `"optimized"` (default) | `"full"`.
327
370
  * `mapping_report`: replace the output with a human-readable report of the
328
371
  * input→output mappings, including inputs that are NOT mapped (PLAN-147).
329
- * 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.
330
377
  * @param {string} input
331
378
  * @param {string} input_format_sel
332
379
  * @param {string} output_format_sel
@@ -336,11 +383,13 @@ module.exports.resolve_patch_document = function(input, patch_json) {
336
383
  * @param {number} spaces_around_values
337
384
  * @param {boolean} include_unknown_properties
338
385
  * @param {boolean} mapping_report
386
+ * @param {string} position_encoding
387
+ * @param {string} tokens_layout
339
388
  * @returns {string}
340
389
  */
341
- module.exports.convert = function(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values, include_unknown_properties, mapping_report) {
342
- let deferred5_0;
343
- 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;
344
393
  try {
345
394
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
346
395
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -351,15 +400,27 @@ module.exports.convert = function(input, input_format_sel, output_format_sel, mo
351
400
  const len2 = WASM_VECTOR_LEN;
352
401
  const ptr3 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
353
402
  const len3 = WASM_VECTOR_LEN;
354
- 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);
355
408
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
356
409
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
357
- deferred5_0 = r0;
358
- deferred5_1 = r1;
359
- 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);
360
421
  } finally {
361
422
  wasm.__wbindgen_add_to_stack_pointer(16);
362
- wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
423
+ wasm.__wbindgen_export_2(deferred8_0, deferred8_1, 1);
363
424
  }
364
425
  };
365
426
 
@@ -377,8 +438,8 @@ module.exports.convert = function(input, input_format_sel, output_format_sel, mo
377
438
  * @returns {string}
378
439
  */
379
440
  module.exports.canonicalize = function(input, input_format_sel, mode, pretty, indent, spaces_around_values) {
380
- let deferred4_0;
381
- let deferred4_1;
441
+ let deferred5_0;
442
+ let deferred5_1;
382
443
  try {
383
444
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
384
445
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -390,24 +451,32 @@ module.exports.canonicalize = function(input, input_format_sel, mode, pretty, in
390
451
  wasm.canonicalize(retptr, ptr0, len0, ptr1, len1, ptr2, len2, pretty, indent, spaces_around_values);
391
452
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
392
453
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
393
- deferred4_0 = r0;
394
- deferred4_1 = r1;
395
- 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);
396
465
  } finally {
397
466
  wasm.__wbindgen_add_to_stack_pointer(16);
398
- wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
467
+ wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
399
468
  }
400
469
  };
401
470
 
402
471
  /**
403
472
  * Count the bits in `input` (auto-detecting bitmark vs JSON).
404
- * Returns the count as a decimal string, or `error: …`.
473
+ * Returns the count as a decimal string; throws on failure.
405
474
  * @param {string} input
406
475
  * @returns {string}
407
476
  */
408
477
  module.exports.count_bits = function(input) {
409
- let deferred2_0;
410
- let deferred2_1;
478
+ let deferred3_0;
479
+ let deferred3_1;
411
480
  try {
412
481
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
413
482
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -415,12 +484,20 @@ module.exports.count_bits = function(input) {
415
484
  wasm.count_bits(retptr, ptr0, len0);
416
485
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
417
486
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
418
- deferred2_0 = r0;
419
- deferred2_1 = r1;
420
- 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);
421
498
  } finally {
422
499
  wasm.__wbindgen_add_to_stack_pointer(16);
423
- wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);
500
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
424
501
  }
425
502
  };
426
503
 
@@ -468,13 +545,13 @@ module.exports.is_bitmark = function(input) {
468
545
  * Split a JSON document (a top-level array of bit envelopes) into its per-bit
469
546
  * envelope objects, returned as a JSON array string. Lets a JS caller iterate
470
547
  * JSON-input bits for per-bit hooks (the JSON counterpart of [`split_bits`]).
471
- * Returns `error: …` if the input is not a JSON array of bits.
548
+ * Throws if the input is not a JSON array of bits.
472
549
  * @param {string} input
473
550
  * @returns {string}
474
551
  */
475
552
  module.exports.split_json_bits = function(input) {
476
- let deferred2_0;
477
- let deferred2_1;
553
+ let deferred3_0;
554
+ let deferred3_1;
478
555
  try {
479
556
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
480
557
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -482,12 +559,20 @@ module.exports.split_json_bits = function(input) {
482
559
  wasm.split_json_bits(retptr, ptr0, len0);
483
560
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
484
561
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
485
- deferred2_0 = r0;
486
- deferred2_1 = r1;
487
- 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);
488
573
  } finally {
489
574
  wasm.__wbindgen_add_to_stack_pointer(16);
490
- wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);
575
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
491
576
  }
492
577
  };
493
578
 
@@ -525,7 +610,7 @@ module.exports.prettify = function(json, indent) {
525
610
  * `format`: a bitmark text format (`"bitmark++"`, `"bitmark+"`) parses
526
611
  * inline marks; anything else is treated as plain text (textToAst only).
527
612
  * `location`: `"body"` (default) or `"tag"`.
528
- * Returns the converted fragment, or `error: …`.
613
+ * Returns the converted fragment; throws on failure.
529
614
  * @param {string} input
530
615
  * @param {string} direction
531
616
  * @param {string} format
@@ -533,8 +618,8 @@ module.exports.prettify = function(json, indent) {
533
618
  * @returns {string}
534
619
  */
535
620
  module.exports.convert_text = function(input, direction, format, location) {
536
- let deferred5_0;
537
- let deferred5_1;
621
+ let deferred6_0;
622
+ let deferred6_1;
538
623
  try {
539
624
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
540
625
  const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
@@ -548,15 +633,28 @@ module.exports.convert_text = function(input, direction, format, location) {
548
633
  wasm.convert_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
549
634
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
550
635
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
551
- deferred5_0 = r0;
552
- deferred5_1 = r1;
553
- 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);
554
647
  } finally {
555
648
  wasm.__wbindgen_add_to_stack_pointer(16);
556
- wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);
649
+ wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);
557
650
  }
558
651
  };
559
652
 
653
+ module.exports.__wbindgen_error_new = function(arg0, arg1) {
654
+ const ret = new Error(getStringFromWasm0(arg0, arg1));
655
+ return addHeapObject(ret);
656
+ };
657
+
560
658
  const path = require('path').join(__dirname, 'bitmark_json_wasm_bg.wasm');
561
659
  const bytes = require('fs').readFileSync(path);
562
660
 
@@ -3,7 +3,7 @@
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;
@@ -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.1",
7
+ "version": "7.0.0",
8
8
  "license": "ISC",
9
9
  "repository": {
10
10
  "type": "git",