@the_dissidents/libemmm 0.0.3 → 0.0.5

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 (125) hide show
  1. package/README.md +6 -3
  2. package/dist/index.d.mts +23 -2
  3. package/dist/index.d.ts +23 -2
  4. package/dist/index.js +157 -33
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +157 -33
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/src/builtin/builtin.d.ts +2 -0
  9. package/dist/src/builtin/builtin.js +18 -0
  10. package/dist/src/builtin/builtin.js.map +1 -0
  11. package/dist/src/builtin/define-modifier.d.ts +12 -0
  12. package/dist/src/builtin/define-modifier.js +129 -0
  13. package/dist/src/builtin/define-modifier.js.map +1 -0
  14. package/dist/src/builtin/define-shorthand.d.ts +14 -0
  15. package/dist/src/builtin/define-shorthand.js +178 -0
  16. package/dist/src/builtin/define-shorthand.js.map +1 -0
  17. package/dist/src/builtin/internal.d.ts +41 -0
  18. package/dist/src/builtin/internal.js +106 -0
  19. package/dist/src/builtin/internal.js.map +1 -0
  20. package/dist/src/builtin/module.d.ts +16 -0
  21. package/dist/src/builtin/module.js +156 -0
  22. package/dist/src/builtin/module.js.map +1 -0
  23. package/dist/src/builtin/slot.d.ts +7 -0
  24. package/dist/src/builtin/slot.js +136 -0
  25. package/dist/src/builtin/slot.js.map +1 -0
  26. package/dist/src/builtin/var.d.ts +12 -0
  27. package/dist/src/builtin/var.js +103 -0
  28. package/dist/src/builtin/var.js.map +1 -0
  29. package/dist/src/debug-print.d.ts +14 -0
  30. package/dist/src/debug-print.js +113 -0
  31. package/dist/src/debug-print.js.map +1 -0
  32. package/dist/src/debug.d.ts +15 -0
  33. package/dist/src/debug.js +47 -0
  34. package/dist/src/debug.js.map +1 -0
  35. package/dist/src/default/bullets.d.ts +4 -0
  36. package/dist/src/default/bullets.js +39 -0
  37. package/dist/src/default/bullets.js.map +1 -0
  38. package/dist/src/default/code.d.ts +6 -0
  39. package/dist/src/default/code.js +13 -0
  40. package/dist/src/default/code.js.map +1 -0
  41. package/dist/src/default/default.d.ts +2 -0
  42. package/dist/src/default/default.js +20 -0
  43. package/dist/src/default/default.js.map +1 -0
  44. package/dist/src/default/headings.d.ts +20 -0
  45. package/dist/src/default/headings.js +125 -0
  46. package/dist/src/default/headings.js.map +1 -0
  47. package/dist/src/default/html-renderer.d.ts +26 -0
  48. package/dist/src/default/html-renderer.js +108 -0
  49. package/dist/src/default/html-renderer.js.map +1 -0
  50. package/dist/src/default/inline-styles.d.ts +4 -0
  51. package/dist/src/default/inline-styles.js +24 -0
  52. package/dist/src/default/inline-styles.js.map +1 -0
  53. package/dist/src/default/misc.d.ts +6 -0
  54. package/dist/src/default/misc.js +112 -0
  55. package/dist/src/default/misc.js.map +1 -0
  56. package/dist/src/default/notes.d.ts +28 -0
  57. package/dist/src/default/notes.js +109 -0
  58. package/dist/src/default/notes.js.map +1 -0
  59. package/dist/src/default/quotes.d.ts +4 -0
  60. package/dist/src/default/quotes.js +36 -0
  61. package/dist/src/default/quotes.js.map +1 -0
  62. package/dist/src/default/vars.d.ts +2 -0
  63. package/dist/src/default/vars.js +39 -0
  64. package/dist/src/default/vars.js.map +1 -0
  65. package/dist/src/index.d.ts +13 -0
  66. package/dist/src/index.js +58 -0
  67. package/dist/src/index.js.map +1 -0
  68. package/dist/src/interface.d.ts +174 -0
  69. package/dist/src/interface.js +93 -0
  70. package/dist/src/interface.js.map +1 -0
  71. package/dist/src/messages.d.ts +165 -0
  72. package/dist/src/messages.js +279 -0
  73. package/dist/src/messages.js.map +1 -0
  74. package/dist/src/modifier-helper.d.ts +6 -0
  75. package/dist/src/modifier-helper.js +113 -0
  76. package/dist/src/modifier-helper.js.map +1 -0
  77. package/dist/src/parser-config.d.ts +44 -0
  78. package/dist/src/parser-config.js +67 -0
  79. package/dist/src/parser-config.js.map +1 -0
  80. package/dist/src/parser.d.ts +3 -0
  81. package/dist/src/parser.js +652 -0
  82. package/dist/src/parser.js.map +1 -0
  83. package/dist/src/renderer.d.ts +49 -0
  84. package/dist/src/renderer.js +81 -0
  85. package/dist/src/renderer.js.map +1 -0
  86. package/dist/src/scanner.d.ts +22 -0
  87. package/dist/src/scanner.js +50 -0
  88. package/dist/src/scanner.js.map +1 -0
  89. package/dist/src/temp.d.ts +1 -0
  90. package/dist/src/temp.js +108 -0
  91. package/dist/src/temp.js.map +1 -0
  92. package/dist/src/typing-helper.d.ts +7 -0
  93. package/dist/src/typing-helper.js +3 -0
  94. package/dist/src/typing-helper.js.map +1 -0
  95. package/dist/src/util.d.ts +29 -0
  96. package/dist/src/util.js +177 -0
  97. package/dist/src/util.js.map +1 -0
  98. package/dist/tests/advanced_syntax.test.d.ts +1 -0
  99. package/dist/tests/advanced_syntax.test.js +180 -0
  100. package/dist/tests/advanced_syntax.test.js.map +1 -0
  101. package/dist/tests/basic_syntax.test.d.ts +1 -0
  102. package/dist/tests/basic_syntax.test.js +431 -0
  103. package/dist/tests/basic_syntax.test.js.map +1 -0
  104. package/dist/tests/default/headings.test.d.ts +1 -0
  105. package/dist/tests/default/headings.test.js +90 -0
  106. package/dist/tests/default/headings.test.js.map +1 -0
  107. package/dist/tests/define_block.test.d.ts +1 -0
  108. package/dist/tests/define_block.test.js +209 -0
  109. package/dist/tests/define_block.test.js.map +1 -0
  110. package/dist/tests/define_inline.test.d.ts +1 -0
  111. package/dist/tests/define_inline.test.js +289 -0
  112. package/dist/tests/define_inline.test.js.map +1 -0
  113. package/dist/tests/modules.test.d.ts +1 -0
  114. package/dist/tests/modules.test.js +137 -0
  115. package/dist/tests/modules.test.js.map +1 -0
  116. package/dist/tests/shorthands.test.d.ts +1 -0
  117. package/dist/tests/shorthands.test.js +79 -0
  118. package/dist/tests/shorthands.test.js.map +1 -0
  119. package/dist/tsup.config.d.ts +2 -0
  120. package/dist/tsup.config.js +12 -0
  121. package/dist/tsup.config.js.map +1 -0
  122. package/dist/vitest.config.d.ts +2 -0
  123. package/dist/vitest.config.js +17 -0
  124. package/dist/vitest.config.js.map +1 -0
  125. package/package.json +1 -1
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const vitest_1 = require("vitest");
37
+ const builtin_1 = require("../src/builtin/builtin");
38
+ const scanner_1 = require("../src/scanner");
39
+ const Parser = __importStar(require("../src/parser"));
40
+ const interface_1 = require("../src/interface");
41
+ const debug_1 = require("../src/debug");
42
+ const parser_config_1 = require("../src/parser-config");
43
+ const TestConfig = parser_config_1.Configuration.from(builtin_1.BuiltinConfiguration);
44
+ TestConfig.blockModifiers.add(new interface_1.BlockModifierDefinition('normal', interface_1.ModifierSlotType.Normal));
45
+ function parse(src) {
46
+ const config = parser_config_1.Configuration.from(TestConfig);
47
+ let doc = Parser.parse(new scanner_1.SimpleScanner(src), new parser_config_1.ParseContext(config)).toStripped();
48
+ return doc;
49
+ }
50
+ function parseWithoutStrip(src) {
51
+ const config = parser_config_1.Configuration.from(TestConfig);
52
+ let doc = Parser.parse(new scanner_1.SimpleScanner(src), new parser_config_1.ParseContext(config));
53
+ return doc;
54
+ }
55
+ debug_1.debug.level = debug_1.DebugLevel.Warning;
56
+ (0, vitest_1.describe)('argument parsing', () => {
57
+ (0, vitest_1.test)('[/print]', () => {
58
+ let doc = parse(`[/print 123:456]`);
59
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
60
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
61
+ { type: interface_1.NodeType.Paragraph, content: [
62
+ { type: interface_1.NodeType.Text, content: '123456' }
63
+ ] }
64
+ ]);
65
+ });
66
+ (0, vitest_1.test)('simple', () => {
67
+ let doc = parseWithoutStrip(`[.normal 123:456]`);
68
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
69
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
70
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
71
+ arguments: [
72
+ { content: [{ content: "123" }] },
73
+ { content: [{ content: "456" }] }
74
+ ]
75
+ }]);
76
+ });
77
+ (0, vitest_1.test)('multiple lines', () => {
78
+ let doc = parseWithoutStrip(`[.normal 123\n456\n\n\n78900:\nab\n\ncdef\n:zzzz]`);
79
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
80
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
81
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
82
+ arguments: [
83
+ { content: [{ content: "123\n456\n\n\n78900" }] },
84
+ { content: [{ content: "\nab\n\ncdef\n" }] },
85
+ { content: [{ content: "zzzz" }] }
86
+ ]
87
+ }]);
88
+ });
89
+ (0, vitest_1.test)('escaped', () => {
90
+ let doc = parseWithoutStrip(String.raw `[/print \]]`);
91
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
92
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
93
+ type: interface_1.NodeType.Paragraph,
94
+ content: [{
95
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'print' },
96
+ arguments: [{ content: [{ type: interface_1.NodeType.Escaped, content: "]" }] }],
97
+ expansion: [{ type: interface_1.NodeType.Text, content: ']' }]
98
+ }]
99
+ }]);
100
+ });
101
+ (0, vitest_1.test)('variable interpolation: AST', () => {
102
+ let doc = parse(`[.normal $(x)]`);
103
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
104
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
105
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
106
+ arguments: [
107
+ { content: [{
108
+ type: interface_1.NodeType.Interpolation,
109
+ argument: { content: [{ type: interface_1.NodeType.Text, content: 'x' }] }
110
+ }] }
111
+ ],
112
+ content: []
113
+ }]);
114
+ doc = parse(String.raw `[.normal $(\))]`);
115
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
116
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
117
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
118
+ arguments: [
119
+ { content: [{
120
+ type: interface_1.NodeType.Interpolation,
121
+ argument: { content: [{ type: interface_1.NodeType.Escaped, content: ")" }] }
122
+ }] }
123
+ ],
124
+ content: []
125
+ }]);
126
+ });
127
+ (0, vitest_1.test)('variable interpolation: expansion', () => {
128
+ let doc = parse(`[-var x:123][/print $(x)]`);
129
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
130
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
131
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: '123' }] }
132
+ ]);
133
+ });
134
+ (0, vitest_1.test)('variable interpolation: nested', () => {
135
+ let doc = parse(`[-var x:y][-var xy:123][/print $(x$(x))]`);
136
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
137
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
138
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: '123' }] }
139
+ ]);
140
+ });
141
+ (0, vitest_1.test)('complex argument interpolation (modifier)', () => {
142
+ let doc = parse(`[-define-block a:x:y][-define-block $(y):z][/$x][/$y][/$z]\n\n[.a b:c;]\n[.c 1;]`);
143
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
144
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
145
+ { type: interface_1.NodeType.Paragraph, content: [
146
+ { type: interface_1.NodeType.Text, content: 'b' },
147
+ { type: interface_1.NodeType.Text, content: 'c' },
148
+ { type: interface_1.NodeType.Text, content: '1' }
149
+ ] }
150
+ ]);
151
+ });
152
+ (0, vitest_1.test)('complex argument interpolation (interp)', () => {
153
+ let doc = parse(`[-define-block a:x:y][-define-block $(y):z][/print $(x)$(y)$(z)]\n\n[.a b:c;]\n[.c 1;]`);
154
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
155
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
156
+ { type: interface_1.NodeType.Paragraph, content: [
157
+ { type: interface_1.NodeType.Text, content: 'bc1' }
158
+ ] }
159
+ ]);
160
+ });
161
+ });
162
+ (0, vitest_1.describe)('[-var] and [/$]', () => {
163
+ (0, vitest_1.test)('simple', () => {
164
+ let doc = parse(`[-var x:123][/$x]`);
165
+ vitest_1.expect.soft(doc.messages).toMatchObject([]);
166
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
167
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: '123' }] }
168
+ ]);
169
+ });
170
+ (0, vitest_1.test)('warning - undefined reference', () => {
171
+ let doc = parse(`[/$x]`);
172
+ vitest_1.expect.soft(doc.messages).toMatchObject([
173
+ { code: 5, severity: interface_1.MessageSeverity.Warning }
174
+ ]);
175
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
176
+ { type: interface_1.NodeType.Paragraph, content: [] }
177
+ ]);
178
+ });
179
+ });
180
+ //# sourceMappingURL=advanced_syntax.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced_syntax.test.js","sourceRoot":"","sources":["../../tests/advanced_syntax.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,431 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const vitest_1 = require("vitest");
37
+ const scanner_1 = require("../src/scanner");
38
+ const Parser = __importStar(require("../src/parser"));
39
+ const interface_1 = require("../src/interface");
40
+ const parser_config_1 = require("../src/parser-config");
41
+ const TestConfig = new parser_config_1.Configuration();
42
+ TestConfig.blockModifiers.add(new interface_1.BlockModifierDefinition('normal', interface_1.ModifierSlotType.Normal), new interface_1.BlockModifierDefinition('pre', interface_1.ModifierSlotType.Preformatted), new interface_1.BlockModifierDefinition('marker', interface_1.ModifierSlotType.None));
43
+ TestConfig.inlineModifiers.add(new interface_1.InlineModifierDefinition('normal', interface_1.ModifierSlotType.Normal), new interface_1.InlineModifierDefinition('pre', interface_1.ModifierSlotType.Preformatted), new interface_1.InlineModifierDefinition('marker', interface_1.ModifierSlotType.None));
44
+ function parse(src) {
45
+ return Parser.parse(new scanner_1.SimpleScanner(src), new parser_config_1.ParseContext(TestConfig));
46
+ }
47
+ (0, vitest_1.describe)('basic syntax', () => {
48
+ (0, vitest_1.test)('empty source', () => {
49
+ const doc = parse(``);
50
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
51
+ vitest_1.expect.soft(doc.root.content).toHaveLength(0);
52
+ });
53
+ (0, vitest_1.test)('simple paragraphs', () => {
54
+ const doc = parse(`aaa\nbbb\n\nccc\n\nddd`);
55
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
56
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
57
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'aaa\nbbb' }] },
58
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'ccc' }] },
59
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'ddd' }] }
60
+ ]);
61
+ });
62
+ (0, vitest_1.test)('escaping', () => {
63
+ let doc = parse(`a\\[.b]\\`);
64
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
65
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
66
+ { type: interface_1.NodeType.Paragraph, content: [
67
+ { type: interface_1.NodeType.Text, content: 'a' },
68
+ { type: interface_1.NodeType.Escaped, content: '[' },
69
+ { type: interface_1.NodeType.Text, content: '.b]\\' }
70
+ ] },
71
+ ]);
72
+ });
73
+ (0, vitest_1.test)('normal block modifier', () => {
74
+ let doc = parse(`[.normal]abc`);
75
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
76
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
77
+ {
78
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
79
+ content: [{ type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] }]
80
+ }
81
+ ]);
82
+ doc = parse(` [.normal] \n abc\n def `);
83
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
84
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
85
+ {
86
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
87
+ content: [{ type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc\ndef' }] }]
88
+ }
89
+ ]);
90
+ doc = parse(`[.normal]\nabc\n\ndef`);
91
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
92
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
93
+ {
94
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
95
+ content: [{ type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] }]
96
+ },
97
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'def' }] }
98
+ ]);
99
+ });
100
+ (0, vitest_1.test)('normal groups', () => {
101
+ let doc = parse(`:--\nabc\n\ndef\n--:`);
102
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
103
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
104
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] },
105
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'def' }] }
106
+ ]);
107
+ doc = parse(`:--\nabc\n\n:--\ndef\n--:\n--:`);
108
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
109
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
110
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] },
111
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'def' }] }
112
+ ]);
113
+ doc = parse(`[.normal]:--\nabc\n\ndef\n--:`);
114
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
115
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
116
+ {
117
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
118
+ content: [
119
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] },
120
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'def' }] }
121
+ ]
122
+ },
123
+ ]);
124
+ doc = parse(` [.normal] \n :--\n abc \n--:`);
125
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
126
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
127
+ {
128
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
129
+ content: [{ type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] }]
130
+ },
131
+ ]);
132
+ });
133
+ (0, vitest_1.test)('preformatted block modifier', () => {
134
+ let doc = parse(`[.pre]abc`);
135
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
136
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
137
+ {
138
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
139
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc' } }]
140
+ },
141
+ ]);
142
+ doc = parse(` [.pre] \n abc\n def`);
143
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
144
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
145
+ {
146
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
147
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc\n def' } }]
148
+ },
149
+ ]);
150
+ doc = parse(`[.pre]\nabc\n\ndef`);
151
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
152
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
153
+ {
154
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
155
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc' } }]
156
+ },
157
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'def' }] }
158
+ ]);
159
+ });
160
+ (0, vitest_1.test)('preformatted groups', () => {
161
+ let doc = parse(`[.pre]:--\n\n\n--:`);
162
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
163
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
164
+ {
165
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
166
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: '\n' } }]
167
+ }
168
+ ]);
169
+ doc = parse(`[.pre]:--\nabc\n\ndef\n--:`);
170
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
171
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
172
+ {
173
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
174
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc\n\ndef' } }]
175
+ }
176
+ ]);
177
+ doc = parse(` [.pre] \n :--\n abc\n--:`);
178
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
179
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
180
+ {
181
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
182
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: ' abc' } }]
183
+ }
184
+ ]);
185
+ });
186
+ (0, vitest_1.test)('empty block modifier', () => {
187
+ let doc = parse(`[.normal;]abc`);
188
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
189
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
190
+ {
191
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
192
+ content: []
193
+ },
194
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] },
195
+ ]);
196
+ doc = parse(`[.marker]abc`);
197
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
198
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
199
+ {
200
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'marker' },
201
+ content: []
202
+ },
203
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] },
204
+ ]);
205
+ doc = parse(`[.normal][.pre]`);
206
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
207
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
208
+ {
209
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
210
+ content: [{
211
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
212
+ content: []
213
+ }]
214
+ }
215
+ ]);
216
+ });
217
+ (0, vitest_1.test)('chained block modifiers', () => {
218
+ let doc = parse(`[.normal][.normal][.pre]abc`);
219
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
220
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
221
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
222
+ content: [{
223
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
224
+ content: [{
225
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
226
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc' } }]
227
+ }]
228
+ }]
229
+ }]);
230
+ doc = parse(`[.normal][.normal]abc\n[.pre]def`);
231
+ const obj1 = [
232
+ {
233
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
234
+ content: [{
235
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'normal' },
236
+ content: [
237
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] }
238
+ ]
239
+ }]
240
+ },
241
+ {
242
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
243
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'def' } }]
244
+ }
245
+ ];
246
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
247
+ vitest_1.expect.soft(doc.root.content).toMatchObject(obj1);
248
+ });
249
+ (0, vitest_1.test)('normal inline modifier', () => {
250
+ let doc = parse(`[/normal]abc[;]`);
251
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
252
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
253
+ type: interface_1.NodeType.Paragraph,
254
+ content: [{
255
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'normal' },
256
+ content: [{ type: interface_1.NodeType.Text, content: 'abc' }]
257
+ }]
258
+ }]);
259
+ doc = parse(`[/normal] abc [;]`);
260
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
261
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
262
+ type: interface_1.NodeType.Paragraph,
263
+ content: [{
264
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'normal' },
265
+ content: [{ type: interface_1.NodeType.Text, content: 'abc' }]
266
+ }]
267
+ }]);
268
+ doc = parse(`[/normal]abc[/normal]def[;][;]`);
269
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
270
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
271
+ type: interface_1.NodeType.Paragraph,
272
+ content: [{
273
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'normal' },
274
+ content: [
275
+ { type: interface_1.NodeType.Text, content: 'abc' },
276
+ {
277
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'normal' },
278
+ content: [{ type: interface_1.NodeType.Text, content: 'def' }]
279
+ }
280
+ ]
281
+ }]
282
+ }]);
283
+ });
284
+ (0, vitest_1.test)('preformatted inline modifier', () => {
285
+ let doc = parse(`[/pre] abc [;]`);
286
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
287
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
288
+ type: interface_1.NodeType.Paragraph,
289
+ content: [{
290
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'pre' },
291
+ content: [{ type: interface_1.NodeType.Text, content: ' abc ' }]
292
+ }]
293
+ }]);
294
+ doc = parse(`[/pre][/normal;]ha[;]`);
295
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
296
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
297
+ type: interface_1.NodeType.Paragraph,
298
+ content: [{
299
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'pre' },
300
+ content: [{ type: interface_1.NodeType.Text, content: '[/normal;]ha' }]
301
+ }]
302
+ }]);
303
+ doc = parse(`[/normal]abc[/pre][/normal;]ha[;][;]`);
304
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
305
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
306
+ type: interface_1.NodeType.Paragraph,
307
+ content: [{
308
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'normal' },
309
+ content: [
310
+ { type: interface_1.NodeType.Text, content: 'abc' },
311
+ {
312
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'pre' },
313
+ content: [{ type: interface_1.NodeType.Text, content: '[/normal;]ha' }]
314
+ }
315
+ ]
316
+ }]
317
+ }]);
318
+ });
319
+ (0, vitest_1.test)('empty inline modifier', () => {
320
+ let doc = parse(`[/normal;][/pre;][/marker;]`);
321
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
322
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
323
+ type: interface_1.NodeType.Paragraph,
324
+ content: [
325
+ {
326
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'normal' },
327
+ content: []
328
+ }, {
329
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'pre' },
330
+ content: []
331
+ }, {
332
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'marker' },
333
+ content: []
334
+ }
335
+ ]
336
+ }]);
337
+ doc = parse(`[/marker]`);
338
+ vitest_1.expect.soft(doc.messages).toHaveLength(0);
339
+ vitest_1.expect.soft(doc.root.content).toMatchObject([{
340
+ type: interface_1.NodeType.Paragraph,
341
+ content: [{
342
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'marker' },
343
+ content: []
344
+ }]
345
+ }]);
346
+ });
347
+ (0, vitest_1.test)('unknown modifiers', () => {
348
+ let doc = parse(`[.invalid]aaa[/invalid]bbb[;]ccc`);
349
+ vitest_1.expect.soft(doc.messages).toMatchObject([
350
+ { severity: interface_1.MessageSeverity.Error, code: 2 },
351
+ { severity: interface_1.MessageSeverity.Error, code: 2 }
352
+ ]);
353
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
354
+ {
355
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'UNKNOWN' },
356
+ content: [{
357
+ type: interface_1.NodeType.Paragraph,
358
+ content: [
359
+ { type: interface_1.NodeType.Text, content: 'aaa' },
360
+ {
361
+ type: interface_1.NodeType.InlineModifier, mod: { name: 'UNKNOWN' },
362
+ content: [{ type: interface_1.NodeType.Text, content: 'bbb' }]
363
+ },
364
+ { type: interface_1.NodeType.Text, content: 'ccc' },
365
+ ]
366
+ }]
367
+ }
368
+ ]);
369
+ });
370
+ (0, vitest_1.test)('warnings - extra newlines', () => {
371
+ let doc = parse(`aaa\nbbb\n\n\nccc\n\nddd`);
372
+ vitest_1.expect.soft(doc.messages).toMatchObject([
373
+ { severity: interface_1.MessageSeverity.Warning, code: 1 }
374
+ ]);
375
+ doc = parse(`[.normal]\n\nabc`);
376
+ vitest_1.expect.soft(doc.messages).toMatchObject([
377
+ { severity: interface_1.MessageSeverity.Warning, code: 1 }
378
+ ]);
379
+ doc = parse(`[.pre]\n\nabc`);
380
+ vitest_1.expect.soft(doc.messages).toMatchObject([
381
+ { severity: interface_1.MessageSeverity.Warning, code: 1 }
382
+ ]);
383
+ doc = parse(`[.normal]abc\n\n\ndef`);
384
+ vitest_1.expect.soft(doc.messages).toMatchObject([
385
+ { severity: interface_1.MessageSeverity.Warning, code: 1 }
386
+ ]);
387
+ doc = parse(`[.pre]abc\n\n\ndef`);
388
+ vitest_1.expect.soft(doc.messages).toMatchObject([
389
+ { severity: interface_1.MessageSeverity.Warning, code: 1 }
390
+ ]);
391
+ });
392
+ (0, vitest_1.test)('warnings - should be newlines', () => {
393
+ let doc = parse(`:--abc\n--:`);
394
+ vitest_1.expect.soft(doc.messages).toMatchObject([
395
+ { severity: interface_1.MessageSeverity.Warning, code: 3 }
396
+ ]);
397
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
398
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] }
399
+ ]);
400
+ doc = parse(`[.pre]:--abc\n--:`);
401
+ vitest_1.expect.soft(doc.messages).toMatchObject([
402
+ { severity: interface_1.MessageSeverity.Warning, code: 3 }
403
+ ]);
404
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
405
+ {
406
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
407
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc' } }]
408
+ },
409
+ ]);
410
+ doc = parse(`:--\nabc\n--:haha`);
411
+ vitest_1.expect.soft(doc.messages).toMatchObject([
412
+ { severity: interface_1.MessageSeverity.Warning, code: 3 }
413
+ ]);
414
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
415
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'abc' }] },
416
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'haha' }] }
417
+ ]);
418
+ doc = parse(`[.pre]\n:--abc\n--:haha`);
419
+ vitest_1.expect.soft(doc.messages).toMatchObject([
420
+ { severity: interface_1.MessageSeverity.Warning, code: 3 }
421
+ ]);
422
+ vitest_1.expect.soft(doc.root.content).toMatchObject([
423
+ {
424
+ type: interface_1.NodeType.BlockModifier, mod: { name: 'pre' },
425
+ content: [{ type: interface_1.NodeType.Preformatted, content: { text: 'abc' } }]
426
+ },
427
+ { type: interface_1.NodeType.Paragraph, content: [{ type: interface_1.NodeType.Text, content: 'haha' }] }
428
+ ]);
429
+ });
430
+ });
431
+ //# sourceMappingURL=basic_syntax.test.js.map