@gmb/bitmark-parser 3.0.0-alpha.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.
@@ -0,0 +1,298 @@
1
+
2
+ let imports = {};
3
+ let wasm;
4
+ const { TextEncoder, TextDecoder } = require(`util`);
5
+
6
+ let WASM_VECTOR_LEN = 0;
7
+
8
+ let cachedUint8ArrayMemory0 = null;
9
+
10
+ function getUint8ArrayMemory0() {
11
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
12
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
13
+ }
14
+ return cachedUint8ArrayMemory0;
15
+ }
16
+
17
+ let cachedTextEncoder = new TextEncoder('utf-8');
18
+
19
+ const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
20
+ ? function (arg, view) {
21
+ return cachedTextEncoder.encodeInto(arg, view);
22
+ }
23
+ : function (arg, view) {
24
+ const buf = cachedTextEncoder.encode(arg);
25
+ view.set(buf);
26
+ return {
27
+ read: arg.length,
28
+ written: buf.length
29
+ };
30
+ });
31
+
32
+ function passStringToWasm0(arg, malloc, realloc) {
33
+
34
+ if (realloc === undefined) {
35
+ const buf = cachedTextEncoder.encode(arg);
36
+ const ptr = malloc(buf.length, 1) >>> 0;
37
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
38
+ WASM_VECTOR_LEN = buf.length;
39
+ return ptr;
40
+ }
41
+
42
+ let len = arg.length;
43
+ let ptr = malloc(len, 1) >>> 0;
44
+
45
+ const mem = getUint8ArrayMemory0();
46
+
47
+ let offset = 0;
48
+
49
+ for (; offset < len; offset++) {
50
+ const code = arg.charCodeAt(offset);
51
+ if (code > 0x7F) break;
52
+ mem[ptr + offset] = code;
53
+ }
54
+
55
+ if (offset !== len) {
56
+ if (offset !== 0) {
57
+ arg = arg.slice(offset);
58
+ }
59
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
60
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
61
+ const ret = encodeString(arg, view);
62
+
63
+ offset += ret.written;
64
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
65
+ }
66
+
67
+ WASM_VECTOR_LEN = offset;
68
+ return ptr;
69
+ }
70
+
71
+ let cachedDataViewMemory0 = null;
72
+
73
+ function getDataViewMemory0() {
74
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
75
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
76
+ }
77
+ return cachedDataViewMemory0;
78
+ }
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
+ /**
89
+ * Auto-detect input format and convert between bitmark and JSON.
90
+ *
91
+ * `options_json` is a JSON string with optional fields:
92
+ * - `"mode"`: `"optimized"` (default) or `"full"`
93
+ * - `"warnings"`: `true` or `false` (default)
94
+ * - `"plainText"`: `true` or `false` (default)
95
+ * - `"pretty"`: `true` or `false` (default)
96
+ * - `"indent"`: number (default: 2)
97
+ *
98
+ * Returns JSON if input is bitmark, or an error message if input is JSON
99
+ * (generator not yet implemented).
100
+ * @param {string} input
101
+ * @param {string} options_json
102
+ * @returns {string}
103
+ */
104
+ module.exports.convert = function(input, options_json) {
105
+ let deferred3_0;
106
+ let deferred3_1;
107
+ try {
108
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
109
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
110
+ const len0 = WASM_VECTOR_LEN;
111
+ const ptr1 = passStringToWasm0(options_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
112
+ const len1 = WASM_VECTOR_LEN;
113
+ wasm.convert(retptr, ptr0, len0, ptr1, len1);
114
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
115
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
116
+ deferred3_0 = r0;
117
+ deferred3_1 = r1;
118
+ return getStringFromWasm0(r0, r1);
119
+ } finally {
120
+ wasm.__wbindgen_add_to_stack_pointer(16);
121
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
122
+ }
123
+ };
124
+
125
+ /**
126
+ * Breakscape text (escape bitmark special characters).
127
+ *
128
+ * `format`: `"bitmark++"` (default) or `"plainText"`
129
+ * `location`: `"body"` (default) or `"tag"`
130
+ * @param {string} input
131
+ * @param {string} format
132
+ * @param {string} location
133
+ * @returns {string}
134
+ */
135
+ module.exports.breakscape_text = function(input, format, location) {
136
+ let deferred4_0;
137
+ let deferred4_1;
138
+ try {
139
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
140
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
141
+ const len0 = WASM_VECTOR_LEN;
142
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
143
+ const len1 = WASM_VECTOR_LEN;
144
+ const ptr2 = passStringToWasm0(location, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
145
+ const len2 = WASM_VECTOR_LEN;
146
+ wasm.breakscape_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2);
147
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
148
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
149
+ deferred4_0 = r0;
150
+ deferred4_1 = r1;
151
+ return getStringFromWasm0(r0, r1);
152
+ } finally {
153
+ wasm.__wbindgen_add_to_stack_pointer(16);
154
+ wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
155
+ }
156
+ };
157
+
158
+ /**
159
+ * Query information about supported bit types.
160
+ *
161
+ * `info_type`: `"list"`, `"bit"`, `"all"`, or `"deprecated"`
162
+ * `format`: `"text"` or `"json"`
163
+ * `bit`: bit name (required when `info_type` is `"bit"`)
164
+ * `pretty`: whether to pretty-print JSON output
165
+ * `indent`: indent size for pretty-printing (default: 2)
166
+ * @param {string} info_type
167
+ * @param {string} format
168
+ * @param {string} bit
169
+ * @param {boolean} pretty
170
+ * @param {number} indent
171
+ * @returns {string}
172
+ */
173
+ module.exports.info = function(info_type, format, bit, pretty, indent) {
174
+ let deferred4_0;
175
+ let deferred4_1;
176
+ try {
177
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
178
+ const ptr0 = passStringToWasm0(info_type, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
179
+ const len0 = WASM_VECTOR_LEN;
180
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
181
+ const len1 = WASM_VECTOR_LEN;
182
+ const ptr2 = passStringToWasm0(bit, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
183
+ const len2 = WASM_VECTOR_LEN;
184
+ wasm.info(retptr, ptr0, len0, ptr1, len1, ptr2, len2, pretty, indent);
185
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
186
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
187
+ deferred4_0 = r0;
188
+ deferred4_1 = r1;
189
+ return getStringFromWasm0(r0, r1);
190
+ } finally {
191
+ wasm.__wbindgen_add_to_stack_pointer(16);
192
+ wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
193
+ }
194
+ };
195
+
196
+ /**
197
+ * Unbreakscape text (unescape bitmark special characters).
198
+ *
199
+ * `format`: `"bitmark++"` (default) or `"plainText"`
200
+ * `location`: `"body"` (default) or `"tag"`
201
+ * @param {string} input
202
+ * @param {string} format
203
+ * @param {string} location
204
+ * @returns {string}
205
+ */
206
+ module.exports.unbreakscape_text = function(input, format, location) {
207
+ let deferred4_0;
208
+ let deferred4_1;
209
+ try {
210
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
211
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
212
+ const len0 = WASM_VECTOR_LEN;
213
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
214
+ const len1 = WASM_VECTOR_LEN;
215
+ const ptr2 = passStringToWasm0(location, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
216
+ const len2 = WASM_VECTOR_LEN;
217
+ wasm.unbreakscape_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2);
218
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
219
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
220
+ deferred4_0 = r0;
221
+ deferred4_1 = r1;
222
+ return getStringFromWasm0(r0, r1);
223
+ } finally {
224
+ wasm.__wbindgen_add_to_stack_pointer(16);
225
+ wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);
226
+ }
227
+ };
228
+
229
+ /**
230
+ * Parse bitmark input text and return the reference JSON format.
231
+ *
232
+ * Uses the full pipeline: parse → validate → serialize with optimized mode.
233
+ * @param {string} input
234
+ * @returns {string}
235
+ */
236
+ module.exports.parse = function(input) {
237
+ let deferred2_0;
238
+ let deferred2_1;
239
+ try {
240
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
241
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
242
+ const len0 = WASM_VECTOR_LEN;
243
+ wasm.parse(retptr, ptr0, len0);
244
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
245
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
246
+ deferred2_0 = r0;
247
+ deferred2_1 = r1;
248
+ return getStringFromWasm0(r0, r1);
249
+ } finally {
250
+ wasm.__wbindgen_add_to_stack_pointer(16);
251
+ wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);
252
+ }
253
+ };
254
+
255
+ /**
256
+ * Lex bitmark input text, returning one line per token in the same format as
257
+ * the Rust CLI: `{kind:?} {span:?} "{text}"`.
258
+ *
259
+ * `stage` selects the lexer pipeline:
260
+ * - `"lex"` — combined (default)
261
+ * - `"lex-bitmark"` — bitmark-level only
262
+ * - `"lex-text"` — text-level only
263
+ * - `"lex-json"` — combined, JSON array output
264
+ * - `"lex-bitmark-json"` — bitmark-level, JSON array output
265
+ * - `"lex-text-json"` — text-level, JSON array output
266
+ * @param {string} input
267
+ * @param {string} stage
268
+ * @returns {string}
269
+ */
270
+ module.exports.lex = function(input, stage) {
271
+ let deferred3_0;
272
+ let deferred3_1;
273
+ try {
274
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
275
+ const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
276
+ const len0 = WASM_VECTOR_LEN;
277
+ const ptr1 = passStringToWasm0(stage, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
278
+ const len1 = WASM_VECTOR_LEN;
279
+ wasm.lex(retptr, ptr0, len0, ptr1, len1);
280
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
281
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
282
+ deferred3_0 = r0;
283
+ deferred3_1 = r1;
284
+ return getStringFromWasm0(r0, r1);
285
+ } finally {
286
+ wasm.__wbindgen_add_to_stack_pointer(16);
287
+ wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
288
+ }
289
+ };
290
+
291
+ const path = require('path').join(__dirname, 'bitmark_wasm_bg.wasm');
292
+ const bytes = require('fs').readFileSync(path);
293
+
294
+ const wasmModule = new WebAssembly.Module(bytes);
295
+ const wasmInstance = new WebAssembly.Instance(wasmModule, imports);
296
+ wasm = wasmInstance.exports;
297
+ module.exports.__wasm = wasm;
298
+
Binary file
@@ -0,0 +1,13 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const breakscape_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
5
+ export const convert: (a: number, b: number, c: number, d: number, e: number) => void;
6
+ export const info: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
7
+ export const lex: (a: number, b: number, c: number, d: number, e: number) => void;
8
+ export const parse: (a: number, b: number, c: number) => void;
9
+ export const unbreakscape_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
10
+ export const __wbindgen_add_to_stack_pointer: (a: number) => number;
11
+ export const __wbindgen_export_0: (a: number, b: number) => number;
12
+ export const __wbindgen_export_1: (a: number, b: number, c: number, d: number) => number;
13
+ export const __wbindgen_export_2: (a: number, b: number, c: number) => void;
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "bitmark-wasm",
3
+ "collaborators": [
4
+ "Get More Brain Ltd <info@getmorebrain.com>"
5
+ ],
6
+ "description": "WebAssembly bindings for the bitmark parser",
7
+ "version": "3.0.0",
8
+ "license": "ISC",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/getMoreBrain/bitmark-parser"
12
+ },
13
+ "files": [
14
+ "bitmark_wasm_bg.wasm",
15
+ "bitmark_wasm.js",
16
+ "bitmark_wasm.d.ts"
17
+ ],
18
+ "main": "bitmark_wasm.js",
19
+ "types": "bitmark_wasm.d.ts"
20
+ }