@jotx-labs/core 2.2.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 (114) hide show
  1. package/README.md +37 -0
  2. package/dist/__tests__/events.test.d.ts +2 -0
  3. package/dist/__tests__/events.test.d.ts.map +1 -0
  4. package/dist/__tests__/events.test.js +63 -0
  5. package/dist/__tests__/events.test.js.map +1 -0
  6. package/dist/__tests__/idGenerator.test.d.ts +5 -0
  7. package/dist/__tests__/idGenerator.test.d.ts.map +1 -0
  8. package/dist/__tests__/idGenerator.test.js +98 -0
  9. package/dist/__tests__/idGenerator.test.js.map +1 -0
  10. package/dist/__tests__/platform.test.d.ts +2 -0
  11. package/dist/__tests__/platform.test.d.ts.map +1 -0
  12. package/dist/__tests__/platform.test.js +37 -0
  13. package/dist/__tests__/platform.test.js.map +1 -0
  14. package/dist/__tests__/plugin.test.d.ts +2 -0
  15. package/dist/__tests__/plugin.test.d.ts.map +1 -0
  16. package/dist/__tests__/plugin.test.js +72 -0
  17. package/dist/__tests__/plugin.test.js.map +1 -0
  18. package/dist/converters/MarkdownConverter.d.ts +15 -0
  19. package/dist/converters/MarkdownConverter.d.ts.map +1 -0
  20. package/dist/converters/MarkdownConverter.js +519 -0
  21. package/dist/converters/MarkdownConverter.js.map +1 -0
  22. package/dist/document/index.d.ts +4 -0
  23. package/dist/document/index.d.ts.map +1 -0
  24. package/dist/document/index.js +8 -0
  25. package/dist/document/index.js.map +1 -0
  26. package/dist/events/EventEmitter.d.ts +20 -0
  27. package/dist/events/EventEmitter.d.ts.map +1 -0
  28. package/dist/events/EventEmitter.js +51 -0
  29. package/dist/events/EventEmitter.js.map +1 -0
  30. package/dist/events/index.d.ts +2 -0
  31. package/dist/events/index.d.ts.map +1 -0
  32. package/dist/events/index.js +18 -0
  33. package/dist/events/index.js.map +1 -0
  34. package/dist/index.d.ts +47 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +118 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/parser/__tests__/parser.test.d.ts +2 -0
  39. package/dist/parser/__tests__/parser.test.d.ts.map +1 -0
  40. package/dist/parser/__tests__/parser.test.js +72 -0
  41. package/dist/parser/__tests__/parser.test.js.map +1 -0
  42. package/dist/parser/__tests__/serializer.test.d.ts +2 -0
  43. package/dist/parser/__tests__/serializer.test.d.ts.map +1 -0
  44. package/dist/parser/__tests__/serializer.test.js +60 -0
  45. package/dist/parser/__tests__/serializer.test.js.map +1 -0
  46. package/dist/parser/__tests__/tokenizer.test.d.ts +2 -0
  47. package/dist/parser/__tests__/tokenizer.test.d.ts.map +1 -0
  48. package/dist/parser/__tests__/tokenizer.test.js +76 -0
  49. package/dist/parser/__tests__/tokenizer.test.js.map +1 -0
  50. package/dist/parser/__tests__/validator.test.d.ts +2 -0
  51. package/dist/parser/__tests__/validator.test.d.ts.map +1 -0
  52. package/dist/parser/__tests__/validator.test.js +281 -0
  53. package/dist/parser/__tests__/validator.test.js.map +1 -0
  54. package/dist/parser/serializer.d.ts +28 -0
  55. package/dist/parser/serializer.d.ts.map +1 -0
  56. package/dist/parser/serializer.js +157 -0
  57. package/dist/parser/serializer.js.map +1 -0
  58. package/dist/parser/tokenizer.new.d.ts +31 -0
  59. package/dist/parser/tokenizer.new.d.ts.map +1 -0
  60. package/dist/parser/tokenizer.new.js +181 -0
  61. package/dist/parser/tokenizer.new.js.map +1 -0
  62. package/dist/parser/v3/BlockParser.d.ts +11 -0
  63. package/dist/parser/v3/BlockParser.d.ts.map +1 -0
  64. package/dist/parser/v3/BlockParser.js +93 -0
  65. package/dist/parser/v3/BlockParser.js.map +1 -0
  66. package/dist/parser/v3/DocumentParser.d.ts +8 -0
  67. package/dist/parser/v3/DocumentParser.d.ts.map +1 -0
  68. package/dist/parser/v3/DocumentParser.js +109 -0
  69. package/dist/parser/v3/DocumentParser.js.map +1 -0
  70. package/dist/parser/v3/Parser.d.ts +11 -0
  71. package/dist/parser/v3/Parser.d.ts.map +1 -0
  72. package/dist/parser/v3/Parser.js +25 -0
  73. package/dist/parser/v3/Parser.js.map +1 -0
  74. package/dist/parser/validator.d.ts +24 -0
  75. package/dist/parser/validator.d.ts.map +1 -0
  76. package/dist/parser/validator.js +177 -0
  77. package/dist/parser/validator.js.map +1 -0
  78. package/dist/platform/NullPlatformAdapter.d.ts +18 -0
  79. package/dist/platform/NullPlatformAdapter.d.ts.map +1 -0
  80. package/dist/platform/NullPlatformAdapter.js +41 -0
  81. package/dist/platform/NullPlatformAdapter.js.map +1 -0
  82. package/dist/platform/PlatformAdapter.d.ts +22 -0
  83. package/dist/platform/PlatformAdapter.d.ts.map +1 -0
  84. package/dist/platform/PlatformAdapter.js +7 -0
  85. package/dist/platform/PlatformAdapter.js.map +1 -0
  86. package/dist/platform/index.d.ts +3 -0
  87. package/dist/platform/index.d.ts.map +1 -0
  88. package/dist/platform/index.js +19 -0
  89. package/dist/platform/index.js.map +1 -0
  90. package/dist/plugin/PluginSystem.d.ts +46 -0
  91. package/dist/plugin/PluginSystem.d.ts.map +1 -0
  92. package/dist/plugin/PluginSystem.js +58 -0
  93. package/dist/plugin/PluginSystem.js.map +1 -0
  94. package/dist/plugin/index.d.ts +2 -0
  95. package/dist/plugin/index.d.ts.map +1 -0
  96. package/dist/plugin/index.js +18 -0
  97. package/dist/plugin/index.js.map +1 -0
  98. package/dist/types/ast.d.ts +118 -0
  99. package/dist/types/ast.d.ts.map +1 -0
  100. package/dist/types/ast.js +331 -0
  101. package/dist/types/ast.js.map +1 -0
  102. package/dist/types/enums.d.ts +67 -0
  103. package/dist/types/enums.d.ts.map +1 -0
  104. package/dist/types/enums.js +278 -0
  105. package/dist/types/enums.js.map +1 -0
  106. package/dist/utils/idGenerator.d.ts +34 -0
  107. package/dist/utils/idGenerator.d.ts.map +1 -0
  108. package/dist/utils/idGenerator.js +105 -0
  109. package/dist/utils/idGenerator.js.map +1 -0
  110. package/dist/version.d.ts +7 -0
  111. package/dist/version.d.ts.map +1 -0
  112. package/dist/version.js +10 -0
  113. package/dist/version.js.map +1 -0
  114. package/package.json +41 -0
@@ -0,0 +1,519 @@
1
+ "use strict";
2
+ /**
3
+ * Markdown Converter - Bidirectional conversion between Jotx and Markdown
4
+ * Supports extended Markdown (Obsidian-compatible) for better fidelity
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.jotToMarkdown = jotToMarkdown;
8
+ exports.markdownToJot = markdownToJot;
9
+ const marked_1 = require("marked");
10
+ const idGenerator_1 = require("../utils/idGenerator");
11
+ // ============================================================================
12
+ // JOTX → MARKDOWN (Export)
13
+ // ============================================================================
14
+ /**
15
+ * Convert Jotx AST to Markdown string
16
+ * Uses extended Markdown features (Obsidian-compatible) for better fidelity
17
+ */
18
+ function jotToMarkdown(ast) {
19
+ const lines = [];
20
+ const doc = ast.document;
21
+ // Generate YAML frontmatter for metadata
22
+ if (Object.keys(doc.metadata).length > 0) {
23
+ lines.push('---');
24
+ for (const [key, value] of Object.entries(doc.metadata)) {
25
+ if (value === undefined || value === null)
26
+ continue;
27
+ if (Array.isArray(value)) {
28
+ lines.push(`${key}:`);
29
+ value.forEach(v => lines.push(` - ${v}`));
30
+ }
31
+ else {
32
+ lines.push(`${key}: ${value}`);
33
+ }
34
+ }
35
+ lines.push('---');
36
+ lines.push('');
37
+ }
38
+ // Convert blocks
39
+ for (const block of doc.blocks) {
40
+ const blockMarkdown = blockToMarkdown(block, 0);
41
+ if (blockMarkdown) {
42
+ lines.push(blockMarkdown);
43
+ lines.push('');
44
+ }
45
+ }
46
+ return lines.join('\n').trim() + '\n';
47
+ }
48
+ /**
49
+ * Convert a single Jotx block to Markdown
50
+ */
51
+ function blockToMarkdown(block, nestLevel) {
52
+ const indent = ' '.repeat(nestLevel);
53
+ const props = block.properties;
54
+ switch (block.type) {
55
+ // ========== HEADINGS ==========
56
+ case 'heading': {
57
+ const level = props.level || 1;
58
+ const prefix = '#'.repeat(level);
59
+ return `${prefix} ${props.text || ''}`;
60
+ }
61
+ // ========== TEXT BLOCKS ==========
62
+ case 'paragraph':
63
+ return props.text || '';
64
+ case 'quote':
65
+ return `> ${props.text || ''}`;
66
+ // ========== LISTS ==========
67
+ case 'list': {
68
+ const lines = [];
69
+ const listType = props.listtype || 'bulleted';
70
+ if (block.children) {
71
+ block.children.forEach((item, idx) => {
72
+ if (item.type === 'listitem') { // V3 uses flatcase internally
73
+ const bullet = listType === 'numbered' ? `${idx + 1}.` : '-';
74
+ lines.push(`${indent}${bullet} ${item.properties.text || ''}`);
75
+ // Nested children
76
+ if (item.children) {
77
+ item.children.forEach(child => {
78
+ const childMd = blockToMarkdown(child, nestLevel + 1);
79
+ if (childMd)
80
+ lines.push(childMd);
81
+ });
82
+ }
83
+ }
84
+ });
85
+ }
86
+ return lines.join('\n');
87
+ }
88
+ case 'checklist': {
89
+ const lines = [];
90
+ if (block.children) {
91
+ block.children.forEach(item => {
92
+ if (item.type === 'taskitem') { // V3 uses flatcase internally
93
+ const checked = item.properties.checked ? 'x' : ' ';
94
+ lines.push(`${indent}- [${checked}] ${item.properties.text || ''}`);
95
+ }
96
+ });
97
+ }
98
+ return lines.join('\n');
99
+ }
100
+ // ========== CODE & TECHNICAL ==========
101
+ case 'code': {
102
+ const language = props.language || '';
103
+ const text = props.text || '';
104
+ return `\`\`\`${language}\n${text}\n\`\`\``;
105
+ }
106
+ case 'math': {
107
+ const equation = props.src || '';
108
+ const display = props.display !== false;
109
+ return display ? `$$\n${equation}\n$$` : `$${equation}$`;
110
+ }
111
+ case 'mermaid': {
112
+ const diagram = props.src || '';
113
+ return `\`\`\`mermaid\n${diagram}\n\`\`\``;
114
+ }
115
+ // ========== MEDIA ==========
116
+ case 'image': {
117
+ const src = props.relativePath || props.src || '';
118
+ const alt = props.alt || props.title || '';
119
+ const width = props.width ? ` {width=${props.width}}` : '';
120
+ return `![${alt}](${src})${width}`;
121
+ }
122
+ case 'floatimage': {
123
+ // Flatten: image + children as separate blocks
124
+ const lines = [];
125
+ const src = props.relativePath || props.src || '';
126
+ const alt = props.alt || props.title || '';
127
+ lines.push(`![${alt}](${src})`);
128
+ if (block.children) {
129
+ block.children.forEach(child => {
130
+ const childMd = blockToMarkdown(child, nestLevel);
131
+ if (childMd)
132
+ lines.push(childMd);
133
+ });
134
+ }
135
+ return lines.join('\n\n');
136
+ }
137
+ case 'video': {
138
+ const src = props.src || '';
139
+ const title = props.title || 'Video';
140
+ const type = props.type || 'youtube';
141
+ if (type === 'youtube') {
142
+ // YouTube embed (HTML for better compatibility)
143
+ return `[🎥 ${title}](${src})`;
144
+ }
145
+ else {
146
+ return `[🎥 ${title}](${src})`;
147
+ }
148
+ }
149
+ // ========== CONTAINERS ==========
150
+ case 'callout': {
151
+ // Obsidian-style callout: > [!type] Title
152
+ const variant = props.variant || 'info';
153
+ const text = props.text || '';
154
+ const lines = text.split('\n');
155
+ const result = [];
156
+ result.push(`> [!${variant}]`);
157
+ lines.forEach((line) => result.push(`> ${line}`));
158
+ return result.join('\n');
159
+ }
160
+ case 'toggle': {
161
+ // HTML details tag (widely supported)
162
+ const title = props.title || 'Toggle';
163
+ const lines = [];
164
+ lines.push(`<details>`);
165
+ lines.push(`<summary>${title}</summary>`);
166
+ lines.push('');
167
+ if (block.children) {
168
+ block.children.forEach(child => {
169
+ const childMd = blockToMarkdown(child, nestLevel);
170
+ if (childMd)
171
+ lines.push(childMd);
172
+ });
173
+ }
174
+ lines.push('');
175
+ lines.push(`</details>`);
176
+ return lines.join('\n');
177
+ }
178
+ case 'section': {
179
+ // Convert section to markdown heading + children
180
+ const title = props.title || '';
181
+ const lines = [];
182
+ if (title) {
183
+ lines.push(`### ${title}`);
184
+ lines.push('');
185
+ }
186
+ if (block.children) {
187
+ block.children.forEach(child => {
188
+ const childMd = blockToMarkdown(child, nestLevel);
189
+ if (childMd)
190
+ lines.push(childMd);
191
+ });
192
+ }
193
+ return lines.join('\n');
194
+ }
195
+ // ========== DATA ==========
196
+ case 'table': {
197
+ const lines = [];
198
+ // Get headers from first row or properties
199
+ let headers = [];
200
+ let dataRows = [];
201
+ if (block.children) {
202
+ const rows = block.children.filter(c => c.type === 'row'); // V3 AST
203
+ if (rows.length > 0) {
204
+ // First row as headers
205
+ const headerRow = rows[0];
206
+ if (headerRow.children) {
207
+ headers = headerRow.children
208
+ .filter(c => c.type === 'cell' || c.type === 'header')
209
+ .map(c => c.properties.text || '');
210
+ }
211
+ dataRows = rows.slice(1);
212
+ }
213
+ }
214
+ if (headers.length > 0) {
215
+ // Header row
216
+ lines.push('| ' + headers.join(' | ') + ' |');
217
+ // Separator
218
+ lines.push('| ' + headers.map(() => '---').join(' | ') + ' |');
219
+ // Data rows
220
+ dataRows.forEach(row => {
221
+ if (row.children) {
222
+ const cells = row.children
223
+ .filter(c => c.type === 'cell')
224
+ .map(c => c.properties.text || '');
225
+ lines.push('| ' + cells.join(' | ') + ' |');
226
+ }
227
+ });
228
+ }
229
+ return lines.join('\n');
230
+ }
231
+ case 'properties': {
232
+ // Convert to markdown table
233
+ const lines = [];
234
+ lines.push('| Property | Value |');
235
+ lines.push('| --- | --- |');
236
+ if (block.children) {
237
+ block.children
238
+ .filter(c => c.type === 'prop')
239
+ .forEach(prop => {
240
+ const key = prop.properties.key || '';
241
+ const value = prop.properties.value || '';
242
+ lines.push(`| ${key} | ${value} |`);
243
+ });
244
+ }
245
+ return lines.join('\n');
246
+ }
247
+ case 'datetime': {
248
+ const timestamp = props.timestamp || '';
249
+ const format = props.format || 'datetime';
250
+ if (timestamp) {
251
+ const date = new Date(timestamp);
252
+ if (format === 'date') {
253
+ return date.toLocaleDateString();
254
+ }
255
+ else if (format === 'time') {
256
+ return date.toLocaleTimeString();
257
+ }
258
+ else {
259
+ return date.toLocaleString();
260
+ }
261
+ }
262
+ return '';
263
+ }
264
+ // ========== MISC ==========
265
+ case 'divider':
266
+ return '---';
267
+ case 'link': {
268
+ const url = props.url || '';
269
+ const text = props.text || url;
270
+ return `[${text}](${url})`;
271
+ }
272
+ case 'linkcard': {
273
+ const url = props.url || '';
274
+ const title = props.title || '';
275
+ const description = props.description || '';
276
+ const lines = [];
277
+ lines.push(`[**${title}**](${url})`);
278
+ if (description) {
279
+ lines.push(`> ${description}`);
280
+ }
281
+ return lines.join('\n');
282
+ }
283
+ case 'attach': {
284
+ const path = props.path || '';
285
+ const name = props.name || 'Attachment';
286
+ return `[📎 ${name}](${path})`;
287
+ }
288
+ case 'chart':
289
+ // Not supported in standard Markdown
290
+ return `> [!note] Chart: ${props.title || 'Untitled'}\n> (Chart data not exported to Markdown)`;
291
+ default:
292
+ return '';
293
+ }
294
+ }
295
+ // ============================================================================
296
+ // MARKDOWN → JOTX (Import)
297
+ // ============================================================================
298
+ /**
299
+ * Convert Markdown string to Jotx AST
300
+ */
301
+ async function markdownToJot(markdown, documentId) {
302
+ const blocks = [];
303
+ const metadata = {};
304
+ // Extract YAML frontmatter
305
+ const frontmatterMatch = markdown.match(/^---\n([\s\S]*?)\n---\n/);
306
+ let contentMarkdown = markdown;
307
+ if (frontmatterMatch) {
308
+ const frontmatter = frontmatterMatch[1];
309
+ contentMarkdown = markdown.slice(frontmatterMatch[0].length);
310
+ // Parse frontmatter (simple key: value parsing)
311
+ frontmatter.split('\n').forEach(line => {
312
+ const match = line.match(/^(\w+):\s*(.*)$/);
313
+ if (match) {
314
+ const [, key, value] = match;
315
+ metadata[key] = value;
316
+ }
317
+ });
318
+ }
319
+ // Parse Markdown to tokens
320
+ const tokens = marked_1.marked.lexer(contentMarkdown);
321
+ // Convert tokens to Jotx blocks
322
+ for (const token of tokens) {
323
+ const block = await tokenToBlock(token);
324
+ if (block) {
325
+ blocks.push(block);
326
+ }
327
+ }
328
+ // Create document
329
+ const document = {
330
+ type: 'jotx',
331
+ id: documentId || 'imported_doc',
332
+ metadata: metadata,
333
+ blocks: blocks
334
+ };
335
+ return {
336
+ document,
337
+ errors: []
338
+ };
339
+ }
340
+ /**
341
+ * Convert a Marked token to Jotx block
342
+ */
343
+ async function tokenToBlock(token) {
344
+ const id = (0, idGenerator_1.generateBlockId)();
345
+ switch (token.type) {
346
+ case 'heading': {
347
+ const level = Math.min(token.depth, 6);
348
+ return {
349
+ type: 'heading',
350
+ id,
351
+ properties: {
352
+ level: level,
353
+ text: token.text
354
+ }
355
+ };
356
+ }
357
+ case 'paragraph': {
358
+ return {
359
+ type: 'paragraph',
360
+ id,
361
+ properties: {
362
+ text: token.text
363
+ }
364
+ };
365
+ }
366
+ case 'blockquote': {
367
+ const text = token.text;
368
+ // Check for Obsidian-style callout: > [!type]
369
+ const calloutMatch = text.match(/^\[!(\w+)\]\s*([\s\S]*)/);
370
+ if (calloutMatch) {
371
+ const [, variant, content] = calloutMatch;
372
+ return {
373
+ type: 'callout',
374
+ id,
375
+ properties: {
376
+ variant: variant.toLowerCase(),
377
+ text: content.trim()
378
+ }
379
+ };
380
+ }
381
+ return {
382
+ type: 'quote',
383
+ id,
384
+ properties: {
385
+ text: text
386
+ }
387
+ };
388
+ }
389
+ case 'code': {
390
+ const language = token.lang || '';
391
+ const text = token.text;
392
+ // Special case: mermaid diagrams
393
+ if (language === 'mermaid') {
394
+ return {
395
+ type: 'mermaid',
396
+ id,
397
+ properties: {
398
+ src: text
399
+ }
400
+ };
401
+ }
402
+ return {
403
+ type: 'code',
404
+ id,
405
+ properties: {
406
+ language,
407
+ text
408
+ }
409
+ };
410
+ }
411
+ case 'list': {
412
+ const listToken = token;
413
+ const isChecklist = listToken.items?.some((item) => typeof item.checked === 'boolean');
414
+ if (isChecklist) {
415
+ // Checklist
416
+ const items = listToken.items.map((item) => ({
417
+ type: 'taskitem',
418
+ id: (0, idGenerator_1.generateBlockId)(),
419
+ properties: {
420
+ text: item.text,
421
+ checked: item.checked || false
422
+ }
423
+ }));
424
+ return {
425
+ type: 'checklist',
426
+ id,
427
+ properties: {},
428
+ children: items
429
+ };
430
+ }
431
+ else {
432
+ // Regular list
433
+ const items = listToken.items.map((item) => ({
434
+ type: 'listitem',
435
+ id: (0, idGenerator_1.generateBlockId)(),
436
+ properties: {
437
+ text: item.text
438
+ }
439
+ }));
440
+ return {
441
+ type: 'list',
442
+ id,
443
+ properties: {
444
+ listtype: listToken.ordered ? 'numbered' : 'bulleted'
445
+ },
446
+ children: items
447
+ };
448
+ }
449
+ }
450
+ case 'table': {
451
+ const tableToken = token;
452
+ const rows = [];
453
+ // Header row
454
+ const headerCells = tableToken.header.map((cell) => ({
455
+ type: 'header',
456
+ id: (0, idGenerator_1.generateBlockId)(),
457
+ properties: {
458
+ text: cell.text
459
+ }
460
+ }));
461
+ rows.push({
462
+ type: 'row',
463
+ id: (0, idGenerator_1.generateBlockId)(),
464
+ properties: {},
465
+ children: headerCells
466
+ });
467
+ // Data rows
468
+ tableToken.rows.forEach((row) => {
469
+ const cells = row.map((cell) => ({
470
+ type: 'cell',
471
+ id: (0, idGenerator_1.generateBlockId)(),
472
+ properties: {
473
+ text: cell.text
474
+ }
475
+ }));
476
+ rows.push({
477
+ type: 'row',
478
+ id: (0, idGenerator_1.generateBlockId)(),
479
+ properties: {},
480
+ children: cells
481
+ });
482
+ });
483
+ return {
484
+ type: 'table',
485
+ id,
486
+ properties: {},
487
+ children: rows
488
+ };
489
+ }
490
+ case 'hr': {
491
+ return {
492
+ type: 'divider',
493
+ id,
494
+ properties: {}
495
+ };
496
+ }
497
+ case 'html': {
498
+ const html = token.text;
499
+ // Check for <details> tag (toggle)
500
+ const detailsMatch = html.match(/<details>([\s\S]*?)<\/details>/);
501
+ if (detailsMatch) {
502
+ const summaryMatch = detailsMatch[1].match(/<summary>(.*?)<\/summary>/);
503
+ const title = summaryMatch ? summaryMatch[1] : 'Toggle';
504
+ return {
505
+ type: 'toggle',
506
+ id,
507
+ properties: {
508
+ title
509
+ },
510
+ children: []
511
+ };
512
+ }
513
+ return null;
514
+ }
515
+ default:
516
+ return null;
517
+ }
518
+ }
519
+ //# sourceMappingURL=MarkdownConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownConverter.js","sourceRoot":"","sources":["../../src/converters/MarkdownConverter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Document Layer - High-level document management
3
+ */
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Document Layer - High-level document management
4
+ */
5
+ // V2 Document class removed - use AST directly
6
+ // export { Document, DocumentData } from './Document'
7
+ // export type { DocumentMetadata as DocMetadata } from './Document'
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":";AAAA;;GAEG;AAEH,+CAA+C;AAC/C,sDAAsD;AACtD,oEAAoE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Event emitter for document and block events
3
+ */
4
+ export type EventType = 'document:created' | 'document:modified' | 'document:deleted' | 'block:created' | 'block:modified' | 'block:deleted' | 'block:moved' | 'validation:complete' | 'plugin:loaded' | 'plugin:unloaded';
5
+ export interface Event {
6
+ type: EventType;
7
+ timestamp: number;
8
+ data: any;
9
+ }
10
+ type EventHandler = (event: Event) => void;
11
+ export declare class EventEmitter {
12
+ private listeners;
13
+ on(event: EventType, handler: EventHandler): void;
14
+ off(event: EventType, handler: EventHandler): void;
15
+ once(event: EventType, handler: EventHandler): void;
16
+ emit(event: EventType, data: any): void;
17
+ removeAllListeners(event?: EventType): void;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=EventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,eAAe,GACf,iBAAiB,CAAA;AAErB,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,GAAG,CAAA;CACV;AAED,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAE1C,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAA0C;IAE3D,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAOjD,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAOlD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAQnD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAYvC,kBAAkB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI;CAO5C"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * Event emitter for document and block events
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EventEmitter = void 0;
7
+ class EventEmitter {
8
+ constructor() {
9
+ this.listeners = new Map();
10
+ }
11
+ on(event, handler) {
12
+ if (!this.listeners.has(event)) {
13
+ this.listeners.set(event, new Set());
14
+ }
15
+ this.listeners.get(event).add(handler);
16
+ }
17
+ off(event, handler) {
18
+ const handlers = this.listeners.get(event);
19
+ if (handlers) {
20
+ handlers.delete(handler);
21
+ }
22
+ }
23
+ once(event, handler) {
24
+ const onceHandler = (e) => {
25
+ handler(e);
26
+ this.off(event, onceHandler);
27
+ };
28
+ this.on(event, onceHandler);
29
+ }
30
+ emit(event, data) {
31
+ const handlers = this.listeners.get(event);
32
+ if (handlers) {
33
+ const eventObject = {
34
+ type: event,
35
+ timestamp: Date.now(),
36
+ data
37
+ };
38
+ handlers.forEach(handler => handler(eventObject));
39
+ }
40
+ }
41
+ removeAllListeners(event) {
42
+ if (event) {
43
+ this.listeners.delete(event);
44
+ }
45
+ else {
46
+ this.listeners.clear();
47
+ }
48
+ }
49
+ }
50
+ exports.EventEmitter = EventEmitter;
51
+ //# sourceMappingURL=EventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAsBH,MAAa,YAAY;IAAzB;QACU,cAAS,GAAG,IAAI,GAAG,EAAgC,CAAA;IA2C7D,CAAC;IAzCC,EAAE,CAAC,KAAgB,EAAE,OAAqB;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,GAAG,CAAC,KAAgB,EAAE,OAAqB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAgB,EAAE,OAAqB;QAC1C,MAAM,WAAW,GAAiB,CAAC,CAAC,EAAE,EAAE;YACtC,OAAO,CAAC,CAAC,CAAC,CAAA;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QAC9B,CAAC,CAAA;QACD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,KAAgB,EAAE,IAAS;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,WAAW,GAAU;gBACzB,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI;aACL,CAAA;YACD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,KAAiB;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;CACF;AA5CD,oCA4CC"}
@@ -0,0 +1,2 @@
1
+ export * from './EventEmitter';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}