satteri 0.1.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 (60) hide show
  1. package/README.md +7 -0
  2. package/browser.js +1 -0
  3. package/dist/command-buffer.d.ts +75 -0
  4. package/dist/command-buffer.js +231 -0
  5. package/dist/command-buffer.js.map +1 -0
  6. package/dist/compile.d.ts +22 -0
  7. package/dist/compile.js +144 -0
  8. package/dist/compile.js.map +1 -0
  9. package/dist/data-map.d.ts +10 -0
  10. package/dist/data-map.js +26 -0
  11. package/dist/data-map.js.map +1 -0
  12. package/dist/hast/hast-materializer.d.ts +11 -0
  13. package/dist/hast/hast-materializer.js +150 -0
  14. package/dist/hast/hast-materializer.js.map +1 -0
  15. package/dist/hast/hast-reader.d.ts +65 -0
  16. package/dist/hast/hast-reader.js +280 -0
  17. package/dist/hast/hast-reader.js.map +1 -0
  18. package/dist/hast/hast-visitor.d.ts +71 -0
  19. package/dist/hast/hast-visitor.js +537 -0
  20. package/dist/hast/hast-visitor.js.map +1 -0
  21. package/dist/hast-types.d.ts +5 -0
  22. package/dist/hast-types.js +2 -0
  23. package/dist/hast-types.js.map +1 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.js +5 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/lazy-props.d.ts +10 -0
  28. package/dist/lazy-props.js +51 -0
  29. package/dist/lazy-props.js.map +1 -0
  30. package/dist/mdast/mdast-materializer.d.ts +9 -0
  31. package/dist/mdast/mdast-materializer.js +162 -0
  32. package/dist/mdast/mdast-materializer.js.map +1 -0
  33. package/dist/mdast/mdast-reader.d.ts +174 -0
  34. package/dist/mdast/mdast-reader.js +481 -0
  35. package/dist/mdast/mdast-reader.js.map +1 -0
  36. package/dist/mdast/mdast-visitor.d.ts +98 -0
  37. package/dist/mdast/mdast-visitor.js +543 -0
  38. package/dist/mdast/mdast-visitor.js.map +1 -0
  39. package/dist/mdast-types.d.ts +5 -0
  40. package/dist/mdast-types.js +2 -0
  41. package/dist/mdast-types.js.map +1 -0
  42. package/dist/pipeline.d.ts +29 -0
  43. package/dist/pipeline.js +87 -0
  44. package/dist/pipeline.js.map +1 -0
  45. package/dist/plugin.d.ts +12 -0
  46. package/dist/plugin.js +19 -0
  47. package/dist/plugin.js.map +1 -0
  48. package/dist/processor.d.ts +33 -0
  49. package/dist/processor.js +49 -0
  50. package/dist/processor.js.map +1 -0
  51. package/dist/types.d.ts +86 -0
  52. package/dist/types.js +6 -0
  53. package/dist/types.js.map +1 -0
  54. package/index.d.ts +109 -0
  55. package/index.js +604 -0
  56. package/package.json +60 -0
  57. package/satteri_napi.linux-x64-gnu.node +0 -0
  58. package/satteri_napi.wasi-browser.js +80 -0
  59. package/satteri_napi.wasi.cjs +132 -0
  60. package/wasi-worker.mjs +63 -0
@@ -0,0 +1,481 @@
1
+ // Node type discriminant values (must match NodeType enum in node.rs)
2
+ export const NodeType = Object.freeze({
3
+ Root: 0,
4
+ Paragraph: 1,
5
+ Heading: 2,
6
+ ThematicBreak: 3,
7
+ Blockquote: 4,
8
+ List: 5,
9
+ ListItem: 6,
10
+ Html: 7,
11
+ Code: 8,
12
+ Definition: 9,
13
+ Text: 10,
14
+ Emphasis: 11,
15
+ Strong: 12,
16
+ InlineCode: 13,
17
+ Break: 14,
18
+ Link: 15,
19
+ Image: 16,
20
+ LinkReference: 17,
21
+ ImageReference: 18,
22
+ FootnoteDefinition: 19,
23
+ FootnoteReference: 20,
24
+ Table: 21,
25
+ TableRow: 22,
26
+ TableCell: 23,
27
+ Delete: 24,
28
+ Yaml: 25,
29
+ Toml: 26,
30
+ Math: 27,
31
+ InlineMath: 28,
32
+ // MDX
33
+ MdxJsxFlowElement: 100,
34
+ MdxJsxTextElement: 101,
35
+ MdxFlowExpression: 102,
36
+ MdxTextExpression: 103,
37
+ MdxjsEsm: 104,
38
+ });
39
+ // Reverse map: number → string name
40
+ export const NodeTypeName = Object.fromEntries(Object.entries(NodeType).map(([k, v]) => [v, k]));
41
+ // MdastNode field offsets within NODE_STRUCT_SIZE bytes.
42
+ // Must match MdastNode #[repr(C)] layout in node.rs:
43
+ // id: u32 @ 0
44
+ // node_type: u8 @ 4
45
+ // _pad: [u8; 3] @ 5
46
+ // parent: u32 @ 8
47
+ // start_offset: u32 @ 12
48
+ // end_offset: u32 @ 16
49
+ // start_line: u32 @ 20
50
+ // start_column: u32 @ 24
51
+ // end_line: u32 @ 28
52
+ // end_column: u32 @ 32
53
+ // children_start: u32 @ 36
54
+ // children_count: u32 @ 40
55
+ // data_offset: u32 @ 44
56
+ // data_len: u32 @ 48
57
+ // Total: 52 bytes
58
+ const FIELD = {
59
+ id: 0,
60
+ node_type: 4, // u8
61
+ parent: 8,
62
+ start_offset: 12,
63
+ end_offset: 16,
64
+ start_line: 20,
65
+ start_column: 24,
66
+ end_line: 28,
67
+ end_column: 32,
68
+ children_start: 36,
69
+ children_count: 40,
70
+ data_offset: 44,
71
+ data_len: 48,
72
+ };
73
+ // BufferHeader field offsets (all u32, little-endian):
74
+ // magic: [u8; 4] @ 0
75
+ // version: u32 @ 4
76
+ // node_struct_size: u32 @ 8
77
+ // node_count: u32 @ 12
78
+ // nodes_offset: u32 @ 16
79
+ // children_count: u32 @ 20
80
+ // children_offset: u32 @ 24
81
+ // type_data_len: u32 @ 28
82
+ // type_data_offset: u32 @ 32
83
+ // source_len: u32 @ 36
84
+ // source_offset: u32 @ 40
85
+ // Total: 44 bytes
86
+ const MAGIC = 0x5241444d; // "MDAR" bytes [0x4d,0x44,0x41,0x52] read as little-endian u32
87
+ export class ArenaReader {
88
+ #view;
89
+ #header;
90
+ #textDecoder;
91
+ #sourceCache = null;
92
+ constructor(buffer) {
93
+ if (buffer instanceof Uint8Array) {
94
+ this.#view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
95
+ }
96
+ else {
97
+ this.#view = new DataView(buffer);
98
+ }
99
+ this.#textDecoder = new TextDecoder("utf-8");
100
+ this.#header = this.#readHeader();
101
+ }
102
+ #readHeader() {
103
+ const v = this.#view;
104
+ const magic = v.getUint32(0, true);
105
+ if (magic !== MAGIC) {
106
+ throw new Error(`Invalid buffer: bad magic 0x${magic.toString(16)}, expected 0x${MAGIC.toString(16)}`);
107
+ }
108
+ const version = v.getUint32(4, true);
109
+ if (version !== 1) {
110
+ throw new Error(`Unsupported buffer version: ${version}`);
111
+ }
112
+ return {
113
+ version,
114
+ nodeStructSize: v.getUint32(8, true),
115
+ nodeCount: v.getUint32(12, true),
116
+ nodesOffset: v.getUint32(16, true),
117
+ childrenCount: v.getUint32(20, true),
118
+ childrenOffset: v.getUint32(24, true),
119
+ typeDataLen: v.getUint32(28, true),
120
+ typeDataOffset: v.getUint32(32, true),
121
+ sourceLen: v.getUint32(36, true),
122
+ sourceOffset: v.getUint32(40, true),
123
+ };
124
+ }
125
+ get nodeCount() {
126
+ return this.#header.nodeCount;
127
+ }
128
+ get header() {
129
+ return { ...this.#header };
130
+ }
131
+ getSource() {
132
+ if (this.#sourceCache === null) {
133
+ const { sourceOffset, sourceLen } = this.#header;
134
+ const bytes = new Uint8Array(this.#view.buffer, this.#view.byteOffset + sourceOffset, sourceLen);
135
+ this.#sourceCache = this.#textDecoder.decode(bytes);
136
+ }
137
+ return this.#sourceCache;
138
+ }
139
+ getString(offset, len) {
140
+ if (len === 0)
141
+ return "";
142
+ const { sourceOffset } = this.#header;
143
+ const bytes = new Uint8Array(this.#view.buffer, this.#view.byteOffset + sourceOffset + offset, len);
144
+ return this.#textDecoder.decode(bytes);
145
+ }
146
+ getNode(nodeId) {
147
+ const { nodesOffset, nodeStructSize, nodeCount } = this.#header;
148
+ if (nodeId >= nodeCount) {
149
+ throw new RangeError(`Node ID ${nodeId} out of range (count: ${nodeCount})`);
150
+ }
151
+ const base = nodesOffset + nodeId * nodeStructSize;
152
+ const v = this.#view;
153
+ const type = v.getUint8(base + FIELD.node_type);
154
+ return {
155
+ id: v.getUint32(base + FIELD.id, true),
156
+ type,
157
+ typeName: NodeTypeName[type] ?? `Unknown(${type})`,
158
+ parent: v.getUint32(base + FIELD.parent, true),
159
+ position: {
160
+ start: {
161
+ offset: v.getUint32(base + FIELD.start_offset, true),
162
+ line: v.getUint32(base + FIELD.start_line, true),
163
+ column: v.getUint32(base + FIELD.start_column, true),
164
+ },
165
+ end: {
166
+ offset: v.getUint32(base + FIELD.end_offset, true),
167
+ line: v.getUint32(base + FIELD.end_line, true),
168
+ column: v.getUint32(base + FIELD.end_column, true),
169
+ },
170
+ },
171
+ childrenStart: v.getUint32(base + FIELD.children_start, true),
172
+ childrenCount: v.getUint32(base + FIELD.children_count, true),
173
+ dataOffset: v.getUint32(base + FIELD.data_offset, true),
174
+ dataLen: v.getUint32(base + FIELD.data_len, true),
175
+ };
176
+ }
177
+ /** Fast path: read only the type byte for a node. */
178
+ getNodeType(nodeId) {
179
+ const { nodesOffset, nodeStructSize } = this.#header;
180
+ return this.#view.getUint8(nodesOffset + nodeId * nodeStructSize + FIELD.node_type);
181
+ }
182
+ getChildIds(nodeId) {
183
+ const node = this.getNode(nodeId);
184
+ if (node.childrenCount === 0)
185
+ return [];
186
+ const { childrenOffset } = this.#header;
187
+ const ids = [];
188
+ for (let i = 0; i < node.childrenCount; i++) {
189
+ const off = childrenOffset + (node.childrenStart + i) * 4;
190
+ ids.push(this.#view.getUint32(off, true));
191
+ }
192
+ return ids;
193
+ }
194
+ /** Push child node IDs directly onto a stack array (reverse order for depth-first). */
195
+ pushChildIds(nodeId, stack) {
196
+ const { nodesOffset, nodeStructSize, childrenOffset } = this.#header;
197
+ const base = nodesOffset + nodeId * nodeStructSize;
198
+ const v = this.#view;
199
+ const childrenStart = v.getUint32(base + FIELD.children_start, true);
200
+ const childrenCount = v.getUint32(base + FIELD.children_count, true);
201
+ if (childrenCount === 0)
202
+ return;
203
+ for (let i = childrenCount - 1; i >= 0; i--) {
204
+ stack.push(v.getUint32(childrenOffset + (childrenStart + i) * 4, true));
205
+ }
206
+ }
207
+ getTypeData(nodeId) {
208
+ const node = this.getNode(nodeId);
209
+ if (node.dataLen === 0)
210
+ return new Uint8Array(0);
211
+ const { typeDataOffset } = this.#header;
212
+ return new Uint8Array(this.#view.buffer, this.#view.byteOffset + typeDataOffset + node.dataOffset, node.dataLen);
213
+ }
214
+ // ── Low-level helpers ──────────────────────────────────────────────────────
215
+ /** Read a StringRef (offset: u32 LE, len: u32 LE) from type data. */
216
+ readStringRef(typeData, byteOffset = 0) {
217
+ const view = new DataView(typeData.buffer, typeData.byteOffset + byteOffset);
218
+ return {
219
+ offset: view.getUint32(0, true),
220
+ len: view.getUint32(4, true),
221
+ };
222
+ }
223
+ // ── Type-specific data accessors ───────────────────────────────────────────
224
+ /** HeadingData: depth u8 @ 0. */
225
+ getHeadingDepth(nodeId) {
226
+ return this.getTypeData(nodeId)[0];
227
+ }
228
+ /**
229
+ * StringRef value. Valid for Text, InlineCode, Html, Yaml, Toml, InlineMath nodes.
230
+ * These store a single StringRef as their type data.
231
+ */
232
+ getTextValue(nodeId) {
233
+ const data = this.getTypeData(nodeId);
234
+ const ref = this.readStringRef(data);
235
+ return this.getString(ref.offset, ref.len);
236
+ }
237
+ /**
238
+ * LinkData: url(0..8), title(8..16).
239
+ * Valid for Link nodes.
240
+ */
241
+ getLinkData(nodeId) {
242
+ const data = this.getTypeData(nodeId);
243
+ const urlRef = this.readStringRef(data, 0);
244
+ const titleRef = this.readStringRef(data, 8);
245
+ return {
246
+ url: this.getString(urlRef.offset, urlRef.len),
247
+ title: titleRef.len > 0 ? this.getString(titleRef.offset, titleRef.len) : null,
248
+ };
249
+ }
250
+ /**
251
+ * ImageData: url(0..8), alt(8..16), title(16..24).
252
+ * Valid for Image nodes.
253
+ */
254
+ getImageData(nodeId) {
255
+ const data = this.getTypeData(nodeId);
256
+ const urlRef = this.readStringRef(data, 0);
257
+ const altRef = this.readStringRef(data, 8);
258
+ const titleRef = this.readStringRef(data, 16);
259
+ return {
260
+ url: this.getString(urlRef.offset, urlRef.len),
261
+ alt: this.getString(altRef.offset, altRef.len),
262
+ title: titleRef.len > 0 ? this.getString(titleRef.offset, titleRef.len) : null,
263
+ };
264
+ }
265
+ /**
266
+ * CodeData #[repr(C)]: lang(0..8), meta(8..16), value(16..24), fence_char(24), _pad(25..28).
267
+ * Valid for Code nodes.
268
+ */
269
+ getCodeData(nodeId) {
270
+ const data = this.getTypeData(nodeId);
271
+ const langRef = this.readStringRef(data, 0);
272
+ const metaRef = this.readStringRef(data, 8);
273
+ const valueRef = this.readStringRef(data, 16);
274
+ return {
275
+ lang: langRef.len > 0 ? this.getString(langRef.offset, langRef.len) : null,
276
+ meta: metaRef.len > 0 ? this.getString(metaRef.offset, metaRef.len) : null,
277
+ value: this.getString(valueRef.offset, valueRef.len),
278
+ };
279
+ }
280
+ /**
281
+ * MathData #[repr(C)]: meta(0..8), value(8..16).
282
+ * Valid for Math nodes.
283
+ */
284
+ getMathData(nodeId) {
285
+ const data = this.getTypeData(nodeId);
286
+ const metaRef = this.readStringRef(data, 0);
287
+ const valueRef = this.readStringRef(data, 8);
288
+ return {
289
+ meta: metaRef.len > 0 ? this.getString(metaRef.offset, metaRef.len) : null,
290
+ value: this.getString(valueRef.offset, valueRef.len),
291
+ };
292
+ }
293
+ /**
294
+ * DefinitionData #[repr(C)]: url(0..8), title(8..16), identifier(16..24), label(24..32).
295
+ * Valid for Definition nodes.
296
+ */
297
+ getDefinitionData(nodeId) {
298
+ const data = this.getTypeData(nodeId);
299
+ const urlRef = this.readStringRef(data, 0);
300
+ const titleRef = this.readStringRef(data, 8);
301
+ const identifierRef = this.readStringRef(data, 16);
302
+ const labelRef = this.readStringRef(data, 24);
303
+ return {
304
+ url: this.getString(urlRef.offset, urlRef.len),
305
+ title: titleRef.len > 0 ? this.getString(titleRef.offset, titleRef.len) : null,
306
+ identifier: this.getString(identifierRef.offset, identifierRef.len),
307
+ label: this.getString(labelRef.offset, labelRef.len),
308
+ };
309
+ }
310
+ /**
311
+ * ListData #[repr(C)]: start(0..4), ordered(4), spread(5), _pad(6..8).
312
+ * Valid for List nodes.
313
+ */
314
+ getListData(nodeId) {
315
+ const data = this.getTypeData(nodeId);
316
+ const view = new DataView(data.buffer, data.byteOffset);
317
+ return {
318
+ start: view.getUint32(0, true),
319
+ ordered: data[4] !== 0,
320
+ spread: data[5] !== 0,
321
+ };
322
+ }
323
+ /**
324
+ * ListItemData #[repr(C)]: checked(0), spread(1).
325
+ * checked: 0=unchecked, 1=checked, 2=not-a-task-item.
326
+ */
327
+ getListItemData(nodeId) {
328
+ const data = this.getTypeData(nodeId);
329
+ const checkedByte = data[0];
330
+ return {
331
+ checked: checkedByte === 2 ? null : checkedByte === 1,
332
+ spread: data[1] !== 0,
333
+ };
334
+ }
335
+ /**
336
+ * ReferenceData #[repr(C)]: identifier(0..8), label(8..16), reference_kind(16), _pad(17..20).
337
+ * referenceKind: 0=shortcut, 1=collapsed, 2=full.
338
+ * Valid for LinkReference, ImageReference, FootnoteReference nodes.
339
+ */
340
+ getReferenceData(nodeId) {
341
+ const data = this.getTypeData(nodeId);
342
+ const identifierRef = this.readStringRef(data, 0);
343
+ const labelRef = this.readStringRef(data, 8);
344
+ const kindByte = data[16];
345
+ const referenceTypes = ["shortcut", "collapsed", "full"];
346
+ return {
347
+ identifier: this.getString(identifierRef.offset, identifierRef.len),
348
+ label: this.getString(labelRef.offset, labelRef.len),
349
+ referenceType: referenceTypes[kindByte] ?? "shortcut",
350
+ };
351
+ }
352
+ /**
353
+ * FootnoteDefinitionData #[repr(C)]: identifier(0..8), label(8..16).
354
+ */
355
+ getFootnoteDefinitionData(nodeId) {
356
+ const data = this.getTypeData(nodeId);
357
+ const identifierRef = this.readStringRef(data, 0);
358
+ const labelRef = this.readStringRef(data, 8);
359
+ return {
360
+ identifier: this.getString(identifierRef.offset, identifierRef.len),
361
+ label: this.getString(labelRef.offset, labelRef.len),
362
+ };
363
+ }
364
+ /**
365
+ * TableData #[repr(C)]: align_count(0..4), then align_count bytes.
366
+ * Alignment bytes: 0=none, 1=left, 2=right, 3=center.
367
+ */
368
+ getTableAlign(nodeId) {
369
+ const data = this.getTypeData(nodeId);
370
+ if (data.length < 4)
371
+ return [];
372
+ const view = new DataView(data.buffer, data.byteOffset);
373
+ const count = view.getUint32(0, true);
374
+ const alignNames = [null, "left", "right", "center"];
375
+ const result = [];
376
+ for (let i = 0; i < count; i++) {
377
+ result.push(alignNames[data[4 + i]] ?? null);
378
+ }
379
+ return result;
380
+ }
381
+ /**
382
+ * MdxJsxElementData: name StringRef (0..8). len===0 means fragment.
383
+ */
384
+ getMdxJsxElementName(nodeId) {
385
+ const data = this.getTypeData(nodeId);
386
+ const nameRef = this.readStringRef(data, 0);
387
+ return nameRef.len > 0 ? this.getString(nameRef.offset, nameRef.len) : null;
388
+ }
389
+ /**
390
+ * MDX JSX element data: name + attributes.
391
+ *
392
+ * Layout:
393
+ * [name: StringRef(8B)][attr_count: u32(4B)][_pad: u32(4B)] = 16-byte header
394
+ * then attr_count * 20 bytes:
395
+ * [kind: u8(1B)][_pad: [u8;3](3B)][name: StringRef(8B)][value: StringRef(8B)]
396
+ *
397
+ * Attribute kinds: 0=boolean, 1=literal, 2=expression, 3=spread
398
+ */
399
+ getMdxJsxElementData(nodeId) {
400
+ const data = this.getTypeData(nodeId);
401
+ if (data.length < 16) {
402
+ return { name: this.getMdxJsxElementName(nodeId), attributes: [] };
403
+ }
404
+ const nameRef = this.readStringRef(data, 0);
405
+ const name = nameRef.len > 0 ? this.getString(nameRef.offset, nameRef.len) : null;
406
+ const view = new DataView(data.buffer, data.byteOffset + 8);
407
+ const attrCount = view.getUint32(0, true);
408
+ const attributes = [];
409
+ for (let i = 0; i < attrCount; i++) {
410
+ const base = 16 + i * 20;
411
+ const kind = data[base];
412
+ const attrNameRef = this.readStringRef(data, base + 4);
413
+ const attrValueRef = this.readStringRef(data, base + 12);
414
+ switch (kind) {
415
+ case 0: // BooleanProp
416
+ attributes.push({
417
+ type: "mdxJsxAttribute",
418
+ name: this.getString(attrNameRef.offset, attrNameRef.len),
419
+ value: null,
420
+ });
421
+ break;
422
+ case 1: // LiteralProp
423
+ attributes.push({
424
+ type: "mdxJsxAttribute",
425
+ name: this.getString(attrNameRef.offset, attrNameRef.len),
426
+ value: this.getString(attrValueRef.offset, attrValueRef.len),
427
+ });
428
+ break;
429
+ case 2: // ExpressionProp
430
+ attributes.push({
431
+ type: "mdxJsxAttribute",
432
+ name: this.getString(attrNameRef.offset, attrNameRef.len),
433
+ value: {
434
+ type: "mdxJsxAttributeValueExpression",
435
+ value: this.getString(attrValueRef.offset, attrValueRef.len),
436
+ },
437
+ });
438
+ break;
439
+ case 3: // Spread
440
+ attributes.push({
441
+ type: "mdxJsxExpressionAttribute",
442
+ value: this.getString(attrValueRef.offset, attrValueRef.len),
443
+ });
444
+ break;
445
+ }
446
+ }
447
+ return { name, attributes };
448
+ }
449
+ /**
450
+ * ExpressionData #[repr(C)]: value StringRef (0..8).
451
+ * Valid for MdxFlowExpression, MdxTextExpression, MdxjsEsm.
452
+ */
453
+ getExpressionValue(nodeId) {
454
+ const data = this.getTypeData(nodeId);
455
+ const valueRef = this.readStringRef(data, 0);
456
+ return this.getString(valueRef.offset, valueRef.len);
457
+ }
458
+ // ── Tree walking ──────────────────────────────────────────────────────────
459
+ /**
460
+ * Walk the tree depth-first. Return false from visitor to skip children.
461
+ */
462
+ walk(visitor, rootId = 0) {
463
+ const stack = [rootId];
464
+ while (stack.length > 0) {
465
+ const nodeId = stack.pop();
466
+ const nodeType = this.getNodeType(nodeId);
467
+ const result = visitor(nodeId, nodeType);
468
+ if (result !== false) {
469
+ const childIds = this.getChildIds(nodeId);
470
+ for (let i = childIds.length - 1; i >= 0; i--) {
471
+ stack.push(childIds[i]);
472
+ }
473
+ }
474
+ }
475
+ }
476
+ /** Walk depth-first with full node objects (slower, but convenient). */
477
+ walkFull(visitor, rootId = 0) {
478
+ this.walk((nodeId) => visitor(this.getNode(nodeId)), rootId);
479
+ }
480
+ }
481
+ //# sourceMappingURL=mdast-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdast-reader.js","sourceRoot":"","sources":["../../src/mdast/mdast-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import { CommandBuffer } from "../command-buffer.js";
2
+ import type { MdastNode, Toml, MathNode, InlineMath } from "../types.js";
3
+ import type { Blockquote, Break, Code, Definition, Delete, Emphasis, FootnoteDefinition, FootnoteReference, Heading, Html, Image, ImageReference, InlineCode, Link, LinkReference, List, ListItem, Paragraph, Root, Strong, Table, TableRow, TableCell, Text, ThematicBreak, Yaml } from "mdast";
4
+ import type { MdxJsxFlowElement, MdxJsxTextElement } from "mdast-util-mdx-jsx";
5
+ import type { MdxFlowExpression, MdxTextExpression } from "mdast-util-mdx-expression";
6
+ import type { MdxjsEsm } from "mdast-util-mdxjs-esm";
7
+ export interface MdastDiagnostic {
8
+ message: string;
9
+ nodeId?: number | undefined;
10
+ position?: MdastNode["position"] | undefined;
11
+ severity: "error" | "warning" | "info";
12
+ }
13
+ export declare class MdastVisitorContext {
14
+ #private;
15
+ readonly source: string;
16
+ readonly filename: string;
17
+ constructor(source: string, filename: string);
18
+ removeNode(node: MdastNode): void;
19
+ insertBefore(node: MdastNode, newNode: MdastNode): void;
20
+ insertAfter(node: MdastNode, newNode: MdastNode): void;
21
+ wrapNode(node: MdastNode, parentNode: MdastNode): void;
22
+ prependChild(node: MdastNode, childNode: MdastNode): void;
23
+ appendChild(node: MdastNode, childNode: MdastNode): void;
24
+ replaceNode(node: MdastNode, newNode: MdastNode): void;
25
+ setProperty(node: MdastNode, key: string, value: unknown): void;
26
+ report({ message, node, severity, }: {
27
+ message: string;
28
+ node?: MdastNode;
29
+ severity?: "error" | "warning" | "info";
30
+ }): void;
31
+ /** Get the binary command buffer for all mutations recorded via context methods. */
32
+ getCommandBuffer(): CommandBuffer;
33
+ getDiagnostics(): MdastDiagnostic[];
34
+ }
35
+ type MdastVisitorResult = MdastNode | {
36
+ raw: string;
37
+ } | {
38
+ rawHtml: string;
39
+ } | undefined | null | void;
40
+ type MdastVisitorFn<N extends MdastNode = MdastNode> = (node: N, context: MdastVisitorContext) => MdastVisitorResult | Promise<MdastVisitorResult>;
41
+ export interface MdastPluginInstance {
42
+ root?: MdastVisitorFn<Root>;
43
+ paragraph?: MdastVisitorFn<Paragraph>;
44
+ heading?: MdastVisitorFn<Heading>;
45
+ thematicBreak?: MdastVisitorFn<ThematicBreak>;
46
+ blockquote?: MdastVisitorFn<Blockquote>;
47
+ list?: MdastVisitorFn<List>;
48
+ listItem?: MdastVisitorFn<ListItem>;
49
+ html?: MdastVisitorFn<Html>;
50
+ code?: MdastVisitorFn<Code>;
51
+ definition?: MdastVisitorFn<Definition>;
52
+ text?: MdastVisitorFn<Text>;
53
+ emphasis?: MdastVisitorFn<Emphasis>;
54
+ strong?: MdastVisitorFn<Strong>;
55
+ inlineCode?: MdastVisitorFn<InlineCode>;
56
+ break?: MdastVisitorFn<Break>;
57
+ link?: MdastVisitorFn<Link>;
58
+ image?: MdastVisitorFn<Image>;
59
+ linkReference?: MdastVisitorFn<LinkReference>;
60
+ imageReference?: MdastVisitorFn<ImageReference>;
61
+ footnoteDefinition?: MdastVisitorFn<FootnoteDefinition>;
62
+ footnoteReference?: MdastVisitorFn<FootnoteReference>;
63
+ table?: MdastVisitorFn<Table>;
64
+ tableRow?: MdastVisitorFn<TableRow>;
65
+ tableCell?: MdastVisitorFn<TableCell>;
66
+ delete?: MdastVisitorFn<Delete>;
67
+ yaml?: MdastVisitorFn<Yaml>;
68
+ toml?: MdastVisitorFn<Toml>;
69
+ math?: MdastVisitorFn<MathNode>;
70
+ inlineMath?: MdastVisitorFn<InlineMath>;
71
+ mdxJsxFlowElement?: MdastVisitorFn<MdxJsxFlowElement>;
72
+ mdxJsxTextElement?: MdastVisitorFn<MdxJsxTextElement>;
73
+ mdxFlowExpression?: MdastVisitorFn<MdxFlowExpression>;
74
+ mdxTextExpression?: MdastVisitorFn<MdxTextExpression>;
75
+ mdxjsEsm?: MdastVisitorFn<MdxjsEsm>;
76
+ }
77
+ interface MdastVisitResult {
78
+ /** Binary command buffer containing all mutations. */
79
+ commandBuffer: Uint8Array;
80
+ diagnostics: MdastDiagnostic[];
81
+ hasMutations: boolean;
82
+ }
83
+ export type MdastHandle = any;
84
+ interface MdastSubscription {
85
+ nodeType: number;
86
+ visitFn: (node: MdastNode, context: MdastVisitorContext) => unknown;
87
+ }
88
+ /** Resolve subscriptions from a plugin instance. */
89
+ export declare function resolveMdastSubscriptions(plugin: MdastPluginInstance): MdastSubscription[];
90
+ /**
91
+ * Walk an MDAST handle in Rust, dispatch matched nodes to JS visitor functions,
92
+ * and apply mutations back to the handle. No arena buffers cross NAPI.
93
+ *
94
+ * Returns MdastVisitResult synchronously if all visitors are sync,
95
+ * or Promise<MdastVisitResult> if any visitor is async.
96
+ */
97
+ export declare function visitMdastHandle(handle: MdastHandle, plugin: MdastPluginInstance, subs: MdastSubscription[], source: string, filename: string): MdastVisitResult | Promise<MdastVisitResult>;
98
+ export {};