@the_dissidents/libemmm 0.0.8 → 0.0.10
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.
- package/README.md +204 -62
- package/dist/chunk-Bp6m_JJh.js +13 -0
- package/dist/index.cjs +3311 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +728 -0
- package/dist/index.d.ts +599 -506
- package/dist/index.js +3078 -3246
- package/dist/index.js.map +1 -1
- package/package.json +25 -17
- package/dist/index.d.mts +0 -634
- package/dist/index.mjs +0 -3366
- package/dist/index.mjs.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,316 +1,389 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { t as __export } from "./chunk-Bp6m_JJh.js";
|
|
2
|
+
import * as minimal_jsx_runtime_jsx_runtime0 from "minimal-jsx-runtime/jsx-runtime";
|
|
2
3
|
|
|
4
|
+
//#region src/debug.d.ts
|
|
3
5
|
declare enum DebugLevel {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
6
|
+
Trace = 0,
|
|
7
|
+
Info = 1,
|
|
8
|
+
Warning = 2,
|
|
9
|
+
Error = 3,
|
|
10
|
+
None = 4,
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/source.d.ts
|
|
11
14
|
type SourceDescriptor = {
|
|
12
|
-
|
|
15
|
+
readonly name: string;
|
|
13
16
|
};
|
|
14
17
|
interface Source extends SourceDescriptor {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
readonly nLines: number;
|
|
19
|
+
/**
|
|
20
|
+
* Return the row- and column-index corresponding to a given location. The indices are zero-based.
|
|
21
|
+
*/
|
|
22
|
+
getRowCol(loc: number): [row: number, col: number];
|
|
23
|
+
/**
|
|
24
|
+
* Returns the position of the start of row `n` (zero-based). If `n` is zero, returns zero. If the source contains less than `n` rows, returns `Infinity`.
|
|
25
|
+
*/
|
|
26
|
+
getRowStart(n: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the content of the row `n` (zero-based). If the source contains less than `n` rows, returns `undefined`.
|
|
29
|
+
*/
|
|
30
|
+
getRow(n: number): string | undefined;
|
|
28
31
|
}
|
|
29
32
|
declare class StringSource implements Source {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
private readonly src;
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly nLines: number;
|
|
36
|
+
private readonly lineMap;
|
|
37
|
+
constructor(d: SourceDescriptor, src: string);
|
|
38
|
+
getRowCol(pos: number): [row: number, col: number];
|
|
39
|
+
getRowStart(n: number): number;
|
|
40
|
+
getRow(n: number): string | undefined;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/module.d.ts
|
|
44
|
+
type ModuleDefinition = {
|
|
45
|
+
usedModules: Set<string>;
|
|
46
|
+
blocks: Set<BlockModifierDefinition<unknown>>;
|
|
47
|
+
inlines: Set<InlineModifierDefinition<unknown>>;
|
|
48
|
+
inlineShorthands: Set<InlineShorthand<unknown>>;
|
|
49
|
+
blockShorthands: Set<BlockShorthand<unknown>>;
|
|
50
|
+
};
|
|
51
|
+
declare namespace ModuleDefinition {
|
|
52
|
+
function from(cxt: ParseContext): ModuleDefinition;
|
|
53
|
+
function apply(defs: ModuleDefinition, cxt: ParseContext): void;
|
|
54
|
+
function diff(cnew: ModuleDefinition, cold: ModuleDefinition): ModuleDefinition;
|
|
55
|
+
function combine(cnew: ModuleDefinition, cold: ModuleDefinition): [ModuleDefinition, string];
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/scanner.d.ts
|
|
59
|
+
type Inspector = {
|
|
60
|
+
position: number;
|
|
61
|
+
callback: (cxt: ParseContext, pos: number) => void;
|
|
62
|
+
};
|
|
63
|
+
declare class SimpleScanner implements Scanner {
|
|
64
|
+
#private;
|
|
65
|
+
private src;
|
|
66
|
+
readonly source: Source;
|
|
67
|
+
constructor(src: string, sourceDesc?: SourceDescriptor, inspectors?: Inspector[]);
|
|
68
|
+
position(): number;
|
|
69
|
+
isEOF(): boolean;
|
|
70
|
+
inspectors(): Inspector[];
|
|
71
|
+
peek(str: string): boolean;
|
|
72
|
+
acceptChar(): string;
|
|
73
|
+
accept(str: string): boolean;
|
|
74
|
+
acceptWhitespaceChar(): string | null;
|
|
38
75
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
76
|
+
interface Scanner {
|
|
77
|
+
readonly source: Source;
|
|
78
|
+
position(): number;
|
|
79
|
+
isEOF(): boolean;
|
|
80
|
+
/** Sources can have inspectors in them, which are positions that trigger a callback when encounterede. This function returns the inspectors that lie between the current position and where this function was previously called (or the beginning for the first call). */
|
|
81
|
+
inspectors(): Inspector[];
|
|
82
|
+
/** return true if sees str immediately */
|
|
83
|
+
peek(str: string): boolean;
|
|
84
|
+
/** if sees str immediately, consumes it and returns true */
|
|
85
|
+
accept(str: string): boolean;
|
|
86
|
+
/** consumes a character and returns it; throws at EOF */
|
|
87
|
+
acceptChar(): string;
|
|
88
|
+
/** newlines are NOT whitespaces */
|
|
89
|
+
acceptWhitespaceChar(): string | null;
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/util.d.ts
|
|
93
|
+
declare class NameManager<T$1 extends {
|
|
94
|
+
name: string;
|
|
42
95
|
}> {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
type ReadonlyNameManager<T extends {
|
|
55
|
-
|
|
56
|
-
}> = Omit<NameManager<T>, 'add' | 'remove'>;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
96
|
+
private array;
|
|
97
|
+
private data;
|
|
98
|
+
constructor(from?: ReadonlyNameManager<T$1> | readonly T$1[] | ReadonlySet<T$1>);
|
|
99
|
+
toArray(): T$1[];
|
|
100
|
+
toSet(): Set<T$1>;
|
|
101
|
+
get(name: string): T$1 | undefined;
|
|
102
|
+
has(name: string): boolean;
|
|
103
|
+
remove(name: string): void;
|
|
104
|
+
add(...elems: T$1[]): void;
|
|
105
|
+
find(predicate: (x: T$1) => boolean): T$1 | undefined;
|
|
106
|
+
}
|
|
107
|
+
type ReadonlyNameManager<T$1 extends {
|
|
108
|
+
name: string;
|
|
109
|
+
}> = Omit<NameManager<T$1>, 'add' | 'remove'>;
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/parser-config.d.ts
|
|
112
|
+
interface ParseContextStoreDefinitions {}
|
|
60
113
|
type ParseContextStoreKey = keyof ParseContextStoreDefinitions;
|
|
61
114
|
type ParseContextStoreEntry<S extends ParseContextStoreKey> = ParseContextStoreDefinitions[S];
|
|
62
115
|
declare class ParseContext {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
116
|
+
readonly config: Configuration;
|
|
117
|
+
variables: Map<string, string>;
|
|
118
|
+
private data;
|
|
119
|
+
usedModules: Set<string>;
|
|
120
|
+
constructor(config: Configuration, variables?: Map<string, string>);
|
|
121
|
+
init<S extends ParseContextStoreKey>(key: S, obj: ParseContextStoreEntry<S>): void;
|
|
122
|
+
set<S extends ParseContextStoreKey>(key: S, obj: ParseContextStoreEntry<S>): void;
|
|
123
|
+
get<S extends ParseContextStoreKey>(key: S): ParseContextStoreEntry<S>;
|
|
124
|
+
parse(scanner: Scanner): Document$1;
|
|
70
125
|
}
|
|
71
126
|
declare class Document$1 {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
127
|
+
readonly root: RootNode;
|
|
128
|
+
readonly context: ParseContext;
|
|
129
|
+
readonly messages: readonly Message[];
|
|
130
|
+
constructor(root: RootNode, context: ParseContext, messages: readonly Message[]);
|
|
131
|
+
toStripped(): Document$1;
|
|
132
|
+
/**
|
|
133
|
+
* Performs a depth-first walk of the node tree.
|
|
134
|
+
*/
|
|
135
|
+
walk(callback: (node: BlockEntity | InlineEntity | ArgumentEntity) => 'skip' | 'break' | 'continue'): void;
|
|
136
|
+
/**
|
|
137
|
+
* Gets all nodes that covers the given position, from outermost to innermost (essentially a path).
|
|
138
|
+
*/
|
|
139
|
+
resolvePosition(pos: number): (BlockEntity | InlineEntity | ArgumentEntity)[];
|
|
85
140
|
}
|
|
141
|
+
type Shorthand<TMod> = {
|
|
142
|
+
name: string;
|
|
143
|
+
parts: readonly string[];
|
|
144
|
+
postfix: string | undefined;
|
|
145
|
+
mod: TMod;
|
|
146
|
+
};
|
|
147
|
+
type BlockShorthand<TState> = Shorthand<BlockModifierDefinition<TState>>;
|
|
148
|
+
type InlineShorthand<TState> = Shorthand<InlineModifierDefinition<TState>>;
|
|
149
|
+
type KernelConfiguration = {
|
|
150
|
+
collapseWhitespaces: boolean;
|
|
151
|
+
reparseDepthLimit: number;
|
|
152
|
+
};
|
|
86
153
|
interface ReadonlyConfiguration {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
154
|
+
readonly initializers: readonly ((cxt: ParseContext) => void)[];
|
|
155
|
+
readonly modules: ReadonlyMap<string, ModuleDefinition>;
|
|
156
|
+
readonly blockModifiers: ReadonlyNameManager<BlockModifierDefinition<any>>;
|
|
157
|
+
readonly inlineModifiers: ReadonlyNameManager<InlineModifierDefinition<any>>;
|
|
158
|
+
readonly systemModifiers: ReadonlyNameManager<SystemModifierDefinition<any>>;
|
|
159
|
+
readonly argumentInterpolators: ReadonlyNameManager<ArgumentInterpolatorDefinition>;
|
|
160
|
+
readonly blockShorthands: ReadonlyNameManager<BlockShorthand<any>>;
|
|
161
|
+
readonly inlineShorthands: ReadonlyNameManager<InlineShorthand<any>>;
|
|
162
|
+
readonly kernel: Readonly<KernelConfiguration>;
|
|
95
163
|
}
|
|
96
164
|
declare class Configuration implements ReadonlyConfiguration {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
165
|
+
initializers: ((cxt: ParseContext) => void)[];
|
|
166
|
+
modules: Map<string, ModuleDefinition>;
|
|
167
|
+
blockModifiers: NameManager<BlockModifierDefinition<any>>;
|
|
168
|
+
inlineModifiers: NameManager<InlineModifierDefinition<any>>;
|
|
169
|
+
systemModifiers: NameManager<SystemModifierDefinition<any>>;
|
|
170
|
+
argumentInterpolators: NameManager<ArgumentInterpolatorDefinition>;
|
|
171
|
+
blockShorthands: NameManager<BlockShorthand<any>>;
|
|
172
|
+
inlineShorthands: NameManager<InlineShorthand<any>>;
|
|
173
|
+
kernel: KernelConfiguration;
|
|
174
|
+
static from(from: ReadonlyConfiguration): Configuration;
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
//#region src/modifier.d.ts
|
|
178
|
+
declare enum ModifierSlotType {
|
|
179
|
+
Normal = 0,
|
|
180
|
+
/** Content is preformatted: no escaping, no inner tags */
|
|
181
|
+
Preformatted = 1,
|
|
182
|
+
/** No content slot */
|
|
183
|
+
None = 2,
|
|
106
184
|
}
|
|
107
|
-
|
|
185
|
+
type ModifierMetadata = {};
|
|
186
|
+
declare class ModifierBase<TNode, TEntity> {
|
|
187
|
+
readonly name: string;
|
|
188
|
+
readonly slotType: ModifierSlotType;
|
|
189
|
+
constructor(name: string, slotType?: ModifierSlotType, args?: Partial<ModifierBase<TNode, TEntity>>);
|
|
190
|
+
metadata: ModifierMetadata;
|
|
191
|
+
/**
|
|
192
|
+
* Common values: heading, emphasis, keyword, highlight, commentary, comment, link, quote, pre
|
|
193
|
+
*/
|
|
194
|
+
roleHint?: string;
|
|
195
|
+
/**
|
|
196
|
+
* If true, any modifier encountered inside it will *not* be expanded *during parse-content*,
|
|
197
|
+
* *unless* that modifier is `alwaysTryExpand`. In the vast majority of cases, you shouldn't
|
|
198
|
+
* be using this.
|
|
199
|
+
*/
|
|
200
|
+
delayContentExpansion: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* If true, such a modifier will always be expanded whenever it is encountered, *even if*
|
|
203
|
+
* it is contained in a modifier with `delayContentExpansion`. In the vast majority of cases,
|
|
204
|
+
* you shouldn't be using this.
|
|
205
|
+
*/
|
|
206
|
+
alwaysTryExpand: boolean;
|
|
207
|
+
/** Called before the modifier's content is parsed.
|
|
208
|
+
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
209
|
+
*/
|
|
210
|
+
beforeParseContent?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
211
|
+
/** Called after the modifier's content is parsed.
|
|
212
|
+
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
213
|
+
*/
|
|
214
|
+
afterParseContent?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
215
|
+
/** Called before reparsing of the expansion.
|
|
216
|
+
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.*/
|
|
217
|
+
beforeProcessExpansion?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
218
|
+
/** Called before reparsing of the expansion.
|
|
219
|
+
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.*/
|
|
220
|
+
afterProcessExpansion?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
221
|
+
/**
|
|
222
|
+
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
223
|
+
*/
|
|
224
|
+
prepareExpand?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
225
|
+
/**
|
|
226
|
+
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
227
|
+
*/
|
|
228
|
+
expand?: (node: TNode, cxt: ParseContext, immediate: boolean) => TEntity[] | undefined;
|
|
229
|
+
}
|
|
230
|
+
declare class BlockModifierDefinition<TState> extends ModifierBase<BlockModifierNode<TState>, BlockEntity> {}
|
|
231
|
+
declare class InlineModifierDefinition<TState> extends ModifierBase<InlineModifierNode<TState>, InlineEntity> {}
|
|
232
|
+
declare class SystemModifierDefinition<TState> extends ModifierBase<SystemModifierNode<TState>, never> {}
|
|
233
|
+
declare class ArgumentInterpolatorDefinition {
|
|
234
|
+
readonly name: string;
|
|
235
|
+
readonly postfix: string;
|
|
236
|
+
constructor(name: string, postfix: string, args?: Partial<ArgumentInterpolatorDefinition>);
|
|
237
|
+
alwaysTryExpand: boolean;
|
|
238
|
+
expand?: (content: string, cxt: ParseContext, immediate: boolean) => string | undefined;
|
|
239
|
+
}
|
|
240
|
+
//#endregion
|
|
241
|
+
//#region src/interface.d.ts
|
|
108
242
|
declare enum MessageSeverity {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
243
|
+
Info = 0,
|
|
244
|
+
Warning = 1,
|
|
245
|
+
Error = 2,
|
|
112
246
|
}
|
|
113
247
|
type Message = {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
248
|
+
readonly severity: MessageSeverity;
|
|
249
|
+
readonly location: LocationRange;
|
|
250
|
+
readonly info: string;
|
|
251
|
+
readonly code: number;
|
|
118
252
|
};
|
|
119
253
|
type LocationRange = {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
254
|
+
original?: LocationRange;
|
|
255
|
+
source: Source;
|
|
256
|
+
start: number;
|
|
257
|
+
end: number;
|
|
258
|
+
actualEnd?: number;
|
|
125
259
|
};
|
|
126
260
|
declare enum NodeType {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
261
|
+
Root = 0,
|
|
262
|
+
Group = 1,
|
|
263
|
+
Paragraph = 2,
|
|
264
|
+
Preformatted = 3,
|
|
265
|
+
Text = 4,
|
|
266
|
+
Escaped = 5,
|
|
267
|
+
SystemModifier = 6,
|
|
268
|
+
InlineModifier = 7,
|
|
269
|
+
BlockModifier = 8,
|
|
270
|
+
Interpolation = 9,
|
|
136
271
|
}
|
|
272
|
+
type RootNode = {
|
|
273
|
+
type: NodeType.Root;
|
|
274
|
+
content: BlockEntity[];
|
|
275
|
+
source: Source;
|
|
276
|
+
};
|
|
277
|
+
type GroupNode = {
|
|
278
|
+
location: LocationRange;
|
|
279
|
+
type: NodeType.Group;
|
|
280
|
+
content: BlockEntity[];
|
|
281
|
+
};
|
|
137
282
|
type ParagraphNode = {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
283
|
+
location: LocationRange;
|
|
284
|
+
type: NodeType.Paragraph;
|
|
285
|
+
content: InlineEntity[];
|
|
141
286
|
};
|
|
142
287
|
type PreNode = {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
288
|
+
location: LocationRange;
|
|
289
|
+
type: NodeType.Preformatted;
|
|
290
|
+
content: {
|
|
291
|
+
start: number;
|
|
292
|
+
end: number;
|
|
293
|
+
text: string;
|
|
294
|
+
};
|
|
150
295
|
};
|
|
151
296
|
type TextNode = {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
297
|
+
location: LocationRange;
|
|
298
|
+
type: NodeType.Text;
|
|
299
|
+
content: string;
|
|
155
300
|
};
|
|
156
301
|
type EscapedNode = {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
302
|
+
location: LocationRange;
|
|
303
|
+
type: NodeType.Escaped;
|
|
304
|
+
content: string;
|
|
160
305
|
};
|
|
161
|
-
type
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
state?: TState;
|
|
166
|
-
head: LocationRange;
|
|
167
|
-
arguments: ModifierArgument[];
|
|
168
|
-
content: BlockEntity[];
|
|
169
|
-
expansion?: never[];
|
|
306
|
+
type ModifierArguments = {
|
|
307
|
+
positional: ModifierArgument[];
|
|
308
|
+
named: Map<string, ModifierArgument>;
|
|
309
|
+
location: LocationRange;
|
|
170
310
|
};
|
|
171
|
-
type
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
head: LocationRange;
|
|
177
|
-
arguments: ModifierArgument[];
|
|
178
|
-
content: BlockEntity[];
|
|
179
|
-
expansion?: BlockEntity[];
|
|
311
|
+
type ModifierNodeBase<TState> = {
|
|
312
|
+
location: LocationRange;
|
|
313
|
+
state?: TState;
|
|
314
|
+
head: LocationRange;
|
|
315
|
+
arguments: ModifierArguments;
|
|
180
316
|
};
|
|
181
|
-
type
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
head: LocationRange;
|
|
187
|
-
arguments: ModifierArgument[];
|
|
188
|
-
content: InlineEntity[];
|
|
189
|
-
expansion?: InlineEntity[];
|
|
317
|
+
type SystemModifierNode<TState> = ModifierNodeBase<TState> & {
|
|
318
|
+
type: NodeType.SystemModifier;
|
|
319
|
+
mod: SystemModifierDefinition<TState>;
|
|
320
|
+
content: BlockEntity[];
|
|
321
|
+
expansion?: never[];
|
|
190
322
|
};
|
|
191
|
-
type
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
323
|
+
type BlockModifierNode<TState> = ModifierNodeBase<TState> & {
|
|
324
|
+
type: NodeType.BlockModifier;
|
|
325
|
+
mod: BlockModifierDefinition<TState>;
|
|
326
|
+
content: BlockEntity[];
|
|
327
|
+
expansion?: BlockEntity[];
|
|
328
|
+
};
|
|
329
|
+
type InlineModifierNode<TState> = ModifierNodeBase<TState> & {
|
|
330
|
+
type: NodeType.InlineModifier;
|
|
331
|
+
mod: InlineModifierDefinition<TState>;
|
|
332
|
+
content: InlineEntity[];
|
|
333
|
+
expansion?: InlineEntity[];
|
|
195
334
|
};
|
|
196
|
-
type ModifierNode<T = any> = BlockModifierNode<T> | InlineModifierNode<T> | SystemModifierNode<T>;
|
|
197
|
-
type BlockEntity = ParagraphNode | PreNode | BlockModifierNode<any> | SystemModifierNode<any>;
|
|
335
|
+
type ModifierNode<T$1 = any> = BlockModifierNode<T$1> | InlineModifierNode<T$1> | SystemModifierNode<T$1>;
|
|
336
|
+
type BlockEntity = GroupNode | ParagraphNode | PreNode | BlockModifierNode<any> | SystemModifierNode<any>;
|
|
198
337
|
type InlineEntity = TextNode | EscapedNode | InlineModifierNode<any> | SystemModifierNode<any>;
|
|
199
338
|
type DocumentNode = BlockEntity | InlineEntity | RootNode;
|
|
200
339
|
type InterpolationNode = {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
340
|
+
location: LocationRange;
|
|
341
|
+
type: NodeType.Interpolation;
|
|
342
|
+
definition: ArgumentInterpolatorDefinition;
|
|
343
|
+
argument: ModifierArgument;
|
|
344
|
+
expansion?: string;
|
|
206
345
|
};
|
|
207
346
|
type ModifierArgument = {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
347
|
+
location: LocationRange;
|
|
348
|
+
content: ArgumentEntity[];
|
|
349
|
+
expansion?: string;
|
|
211
350
|
};
|
|
212
351
|
type ArgumentEntity = TextNode | EscapedNode | InterpolationNode;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
beforeParseContent?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
244
|
-
/** Called after the modifier's content is parsed.
|
|
245
|
-
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
246
|
-
*/
|
|
247
|
-
afterParseContent?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
248
|
-
/** Called before reparsing of the expansion.
|
|
249
|
-
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.*/
|
|
250
|
-
beforeProcessExpansion?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
251
|
-
/** Called before reparsing of the expansion.
|
|
252
|
-
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.*/
|
|
253
|
-
afterProcessExpansion?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
254
|
-
/**
|
|
255
|
-
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
256
|
-
*/
|
|
257
|
-
prepareExpand?: (node: TNode, cxt: ParseContext, immediate: boolean) => Message[];
|
|
258
|
-
/**
|
|
259
|
-
* @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
|
|
260
|
-
*/
|
|
261
|
-
expand?: (node: TNode, cxt: ParseContext, immediate: boolean) => TEntity[] | undefined;
|
|
262
|
-
}
|
|
263
|
-
declare class BlockModifierDefinition<TState> extends ModifierBase<BlockModifierNode<TState>, BlockEntity> {
|
|
264
|
-
}
|
|
265
|
-
declare class InlineModifierDefinition<TState> extends ModifierBase<InlineModifierNode<TState>, InlineEntity> {
|
|
266
|
-
}
|
|
267
|
-
declare class SystemModifierDefinition<TState> extends ModifierBase<SystemModifierNode<TState>, never> {
|
|
268
|
-
}
|
|
269
|
-
declare class ArgumentInterpolatorDefinition {
|
|
270
|
-
readonly name: string;
|
|
271
|
-
readonly postfix: string;
|
|
272
|
-
constructor(name: string, postfix: string, args?: Partial<ArgumentInterpolatorDefinition>);
|
|
273
|
-
alwaysTryExpand: boolean;
|
|
274
|
-
expand?: (content: string, cxt: ParseContext, immediate: boolean) => string | undefined;
|
|
275
|
-
}
|
|
276
|
-
type Shorthand<TMod> = {
|
|
277
|
-
name: string;
|
|
278
|
-
parts: readonly string[];
|
|
279
|
-
postfix: string | undefined;
|
|
280
|
-
mod: TMod;
|
|
281
|
-
};
|
|
282
|
-
type BlockShorthand<TState> = Shorthand<BlockModifierDefinition<TState>>;
|
|
283
|
-
type InlineShorthand<TState> = Shorthand<InlineModifierDefinition<TState>>;
|
|
284
|
-
|
|
285
|
-
declare class SimpleScanner implements Scanner {
|
|
286
|
-
private src;
|
|
287
|
-
readonly source: Source;
|
|
288
|
-
private pos;
|
|
289
|
-
constructor(src: string, sourceDesc?: SourceDescriptor);
|
|
290
|
-
position(): number;
|
|
291
|
-
isEOF(): boolean;
|
|
292
|
-
peek(str: string): boolean;
|
|
293
|
-
acceptChar(): string;
|
|
294
|
-
accept(str: string): boolean;
|
|
295
|
-
acceptWhitespaceChar(): string | null;
|
|
296
|
-
}
|
|
297
|
-
interface Scanner {
|
|
298
|
-
readonly source: Source;
|
|
299
|
-
position(): number;
|
|
300
|
-
isEOF(): boolean;
|
|
301
|
-
peek(str: string): boolean;
|
|
302
|
-
accept(str: string): boolean;
|
|
303
|
-
acceptChar(): string;
|
|
304
|
-
acceptWhitespaceChar(): string | null;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
declare function parse(scanner: Scanner, cxt: ParseContext): Document$1;
|
|
308
|
-
|
|
352
|
+
//#endregion
|
|
353
|
+
//#region src/parser.d.ts
|
|
354
|
+
declare class Parser {
|
|
355
|
+
#private;
|
|
356
|
+
private scanner;
|
|
357
|
+
private cxt;
|
|
358
|
+
private emit;
|
|
359
|
+
private delayDepth;
|
|
360
|
+
constructor(scanner: Scanner, cxt: ParseContext);
|
|
361
|
+
parse(): Document$1;
|
|
362
|
+
private WHITESPACES;
|
|
363
|
+
private WHITESPACES_OR_NEWLINES;
|
|
364
|
+
private SHOULD_BE_A_NEWLINE;
|
|
365
|
+
private WARN_IF_MORE_NEWLINES_THAN;
|
|
366
|
+
private DOCUMENT;
|
|
367
|
+
private BLOCK_ENTITY;
|
|
368
|
+
private MODIFIER;
|
|
369
|
+
private PRE_PARAGRAPH;
|
|
370
|
+
private MAYBE_GROUPED_PARAGRAPH;
|
|
371
|
+
private PARAGRAPH;
|
|
372
|
+
private SHORTHAND;
|
|
373
|
+
private MODIFIER_BODY;
|
|
374
|
+
private INLINE_ENTITY;
|
|
375
|
+
private PREFORMATTED_INLINE_ENTITY;
|
|
376
|
+
private ARGUMENT_CONTENT;
|
|
377
|
+
private POSSIBLY_NAMED_ARGUMENT;
|
|
378
|
+
private ARGUMENTS;
|
|
379
|
+
}
|
|
380
|
+
//#endregion
|
|
381
|
+
//#region src/renderer.d.ts
|
|
309
382
|
type RendererType<TState, TReturn, TDocument, TOptions = undefined> = {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
383
|
+
state: TState;
|
|
384
|
+
return: TReturn;
|
|
385
|
+
document: TDocument;
|
|
386
|
+
options: TOptions;
|
|
314
387
|
};
|
|
315
388
|
type AnyRendererType = RendererType<any, any, any, any>;
|
|
316
389
|
type getState<Type> = Type extends RendererType<infer T, any, any, any> ? T : never;
|
|
@@ -318,317 +391,337 @@ type getReturn<Type> = Type extends RendererType<any, infer T, any, any> ? T : n
|
|
|
318
391
|
type getDocument<Type> = Type extends RendererType<any, any, infer T, any> ? T : never;
|
|
319
392
|
type getOptions<Type> = Type extends RendererType<any, any, any, infer T> ? T : never;
|
|
320
393
|
type NodeRenderer<Type extends AnyRendererType, TNode> = (node: TNode, cxt: RenderContext<Type>) => getReturn<Type>;
|
|
321
|
-
type NodeRendererDefinition<Type extends AnyRendererType, TNode, TDef> = [
|
|
322
|
-
def: TDef,
|
|
323
|
-
renderer: NodeRenderer<Type, TNode>
|
|
324
|
-
];
|
|
394
|
+
type NodeRendererDefinition<Type extends AnyRendererType, TNode, TDef> = [def: TDef, renderer: NodeRenderer<Type, TNode>];
|
|
325
395
|
declare class RenderContext<Type extends AnyRendererType> {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
396
|
+
readonly config: RenderConfiguration<Type>;
|
|
397
|
+
readonly parsedDocument: Document$1;
|
|
398
|
+
state: getState<Type>;
|
|
399
|
+
renderEntity(node: BlockEntity | InlineEntity): getReturn<Type>[];
|
|
400
|
+
constructor(config: RenderConfiguration<Type>, parsedDocument: Document$1, state: getState<Type>);
|
|
331
401
|
}
|
|
332
402
|
interface ReadonlyRenderConfiguration<Type extends AnyRendererType> {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
403
|
+
readonly options: getOptions<Type>;
|
|
404
|
+
readonly paragraphRenderer?: NodeRenderer<Type, ParagraphNode>;
|
|
405
|
+
readonly textRenderer?: NodeRenderer<Type, TextNode | PreNode | EscapedNode>;
|
|
406
|
+
readonly undefinedBlockRenderer?: NodeRenderer<Type, BlockModifierNode<any>>;
|
|
407
|
+
readonly undefinedInlineRenderer?: NodeRenderer<Type, InlineModifierNode<any>>;
|
|
408
|
+
readonly blockRenderers: ReadonlyMap<BlockModifierDefinition<any>, NodeRenderer<Type, BlockModifierNode<any>>>;
|
|
409
|
+
readonly inlineRenderers: ReadonlyMap<InlineModifierDefinition<any>, NodeRenderer<Type, InlineModifierNode<any>>>;
|
|
410
|
+
readonly postprocessor: (results: getReturn<Type>[], cxt: RenderContext<Type>) => getDocument<Type>;
|
|
411
|
+
render(doc: Document$1, state: getState<Type>): getDocument<Type>;
|
|
342
412
|
}
|
|
343
413
|
type BlockRendererDefiniton<Type extends AnyRendererType, ModState = any> = NodeRendererDefinition<Type, BlockModifierNode<ModState>, BlockModifierDefinition<ModState>>;
|
|
344
414
|
type InlineRendererDefiniton<Type extends AnyRendererType, ModState = any> = NodeRendererDefinition<Type, InlineModifierNode<ModState>, InlineModifierDefinition<ModState>>;
|
|
345
415
|
declare class RenderConfiguration<Type extends AnyRendererType> implements ReadonlyRenderConfiguration<Type> {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
416
|
+
options: getOptions<Type>;
|
|
417
|
+
postprocessor: (results: getReturn<Type>[], cxt: RenderContext<Type>) => getDocument<Type>;
|
|
418
|
+
paragraphRenderer?: NodeRenderer<Type, ParagraphNode>;
|
|
419
|
+
textRenderer?: NodeRenderer<Type, TextNode | PreNode | EscapedNode>;
|
|
420
|
+
undefinedBlockRenderer?: NodeRenderer<Type, BlockModifierNode<any>>;
|
|
421
|
+
undefinedInlineRenderer?: NodeRenderer<Type, InlineModifierNode<any>>;
|
|
422
|
+
blockRenderers: Map<BlockModifierDefinition<any>, NodeRenderer<Type, BlockModifierNode<any>>>;
|
|
423
|
+
inlineRenderers: Map<InlineModifierDefinition<any>, NodeRenderer<Type, InlineModifierNode<any>>>;
|
|
424
|
+
constructor(options: getOptions<Type>, postprocessor: (results: getReturn<Type>[], cxt: RenderContext<Type>) => getDocument<Type>);
|
|
425
|
+
render(doc: Document$1, state: getState<Type>): getDocument<Type>;
|
|
426
|
+
addBlockRenderer(...rs: BlockRendererDefiniton<Type>[]): void;
|
|
427
|
+
addInlineRenderer(...rs: InlineRendererDefiniton<Type>[]): void;
|
|
428
|
+
static from<Type extends AnyRendererType>(from: ReadonlyRenderConfiguration<Type>): RenderConfiguration<Type>;
|
|
429
|
+
}
|
|
430
|
+
declare namespace messages_d_exports {
|
|
431
|
+
export { ArgumentCountMismatchMessage, CannotExpandArgumentMessage, CannotUseModuleInSelfMessage, ContentExpectedMessage, DuplicateNamedArgumentMessage, EitherNormalOrPreMessage, EntityNotAllowedMessage, ExpectedMessage, InternalErrorMessage, InvalidArgumentMessage, MultipleBlocksNotPermittedMessage, NameAlreadyDefinedMessage, NewBlockShouldBeOnNewlineMessage, NoNestedModuleMessage, OnlySimpleParagraphsPermittedMessage, OverwriteDefinitionsMessage, OverwriteSpecialVariableMessage, ReachedRecursionLimitMessage, ShouldBeOnNewlineMessage, SlotUsedOutsideDefinitionMessage, UnclosedInlineModifierMessage, UndefinedVariableMessage, UnknownModifierMessage, UnnecessaryNewlineMessage };
|
|
359
432
|
}
|
|
360
|
-
|
|
361
433
|
declare class AddThingMessage implements Message {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
434
|
+
readonly code: number;
|
|
435
|
+
readonly severity: MessageSeverity;
|
|
436
|
+
readonly location: LocationRange;
|
|
437
|
+
readonly info: string;
|
|
438
|
+
constructor(code: number, severity: MessageSeverity, location: LocationRange, info: string);
|
|
367
439
|
}
|
|
368
440
|
declare class RemoveThingMessage implements Message {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
441
|
+
readonly code: number;
|
|
442
|
+
readonly severity: MessageSeverity;
|
|
443
|
+
readonly location: LocationRange;
|
|
444
|
+
readonly info: string;
|
|
445
|
+
constructor(code: number, severity: MessageSeverity, location: LocationRange, info: string);
|
|
374
446
|
}
|
|
375
447
|
declare class ExpectedMessage implements Message {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
448
|
+
readonly location: LocationRange;
|
|
449
|
+
private what;
|
|
450
|
+
constructor(location: LocationRange, what: string);
|
|
451
|
+
readonly code = 1;
|
|
452
|
+
readonly severity = MessageSeverity.Error;
|
|
453
|
+
get info(): string;
|
|
382
454
|
}
|
|
383
455
|
declare class UnknownModifierMessage implements Message {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
456
|
+
readonly location: LocationRange;
|
|
457
|
+
private what;
|
|
458
|
+
constructor(location: LocationRange, what: string);
|
|
459
|
+
readonly code = 2;
|
|
460
|
+
readonly severity = MessageSeverity.Error;
|
|
461
|
+
get info(): string;
|
|
390
462
|
}
|
|
391
463
|
declare class UnclosedInlineModifierMessage implements Message {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
464
|
+
readonly location: LocationRange;
|
|
465
|
+
private what;
|
|
466
|
+
constructor(location: LocationRange, what: string);
|
|
467
|
+
readonly code = 3;
|
|
468
|
+
readonly severity = MessageSeverity.Error;
|
|
469
|
+
get info(): string;
|
|
398
470
|
}
|
|
399
471
|
declare class ArgumentCountMismatchMessage implements Message {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
472
|
+
readonly location: LocationRange;
|
|
473
|
+
constructor(location: LocationRange, min?: number, max?: number);
|
|
474
|
+
private msg;
|
|
475
|
+
readonly code = 4;
|
|
476
|
+
readonly severity = MessageSeverity.Error;
|
|
477
|
+
get info(): string;
|
|
406
478
|
}
|
|
407
479
|
declare class CannotExpandArgumentMessage implements Message {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
480
|
+
readonly location: LocationRange;
|
|
481
|
+
private what?;
|
|
482
|
+
constructor(location: LocationRange, what?: string | undefined);
|
|
483
|
+
readonly code = 5;
|
|
484
|
+
readonly severity = MessageSeverity.Error;
|
|
485
|
+
get info(): string;
|
|
414
486
|
}
|
|
415
487
|
declare class InvalidArgumentMessage implements Message {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
488
|
+
readonly location: LocationRange;
|
|
489
|
+
private what?;
|
|
490
|
+
constructor(location: LocationRange, what?: string | undefined);
|
|
491
|
+
readonly code = 6;
|
|
492
|
+
readonly severity = MessageSeverity.Error;
|
|
493
|
+
get info(): string;
|
|
422
494
|
}
|
|
423
495
|
declare class EntityNotAllowedMessage implements Message {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
496
|
+
readonly location: LocationRange;
|
|
497
|
+
private what?;
|
|
498
|
+
constructor(location: LocationRange, what?: string | undefined);
|
|
499
|
+
readonly code = 7;
|
|
500
|
+
readonly severity = MessageSeverity.Error;
|
|
501
|
+
get info(): string;
|
|
430
502
|
}
|
|
431
503
|
declare class ReachedRecursionLimitMessage implements Message {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
504
|
+
readonly location: LocationRange;
|
|
505
|
+
private limit;
|
|
506
|
+
private what;
|
|
507
|
+
constructor(location: LocationRange, limit: number, what: string);
|
|
508
|
+
readonly code = 8;
|
|
509
|
+
readonly severity = MessageSeverity.Error;
|
|
510
|
+
get info(): string;
|
|
439
511
|
}
|
|
440
512
|
declare class SlotUsedOutsideDefinitionMessage implements Message {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
513
|
+
readonly location: LocationRange;
|
|
514
|
+
constructor(location: LocationRange);
|
|
515
|
+
readonly code = 9;
|
|
516
|
+
readonly severity = MessageSeverity.Error;
|
|
517
|
+
get info(): string;
|
|
446
518
|
}
|
|
447
519
|
declare class NoNestedModuleMessage implements Message {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
520
|
+
readonly location: LocationRange;
|
|
521
|
+
constructor(location: LocationRange);
|
|
522
|
+
readonly code = 10;
|
|
523
|
+
readonly severity = MessageSeverity.Error;
|
|
524
|
+
get info(): string;
|
|
453
525
|
}
|
|
454
526
|
declare class CannotUseModuleInSelfMessage implements Message {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
527
|
+
readonly location: LocationRange;
|
|
528
|
+
constructor(location: LocationRange);
|
|
529
|
+
readonly code = 11;
|
|
530
|
+
readonly severity = MessageSeverity.Error;
|
|
531
|
+
get info(): string;
|
|
460
532
|
}
|
|
461
533
|
declare class EitherNormalOrPreMessage implements Message {
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
534
|
+
readonly location: LocationRange;
|
|
535
|
+
constructor(location: LocationRange);
|
|
536
|
+
readonly code = 12;
|
|
537
|
+
readonly severity = MessageSeverity.Error;
|
|
538
|
+
get info(): string;
|
|
467
539
|
}
|
|
468
540
|
declare class MultipleBlocksNotPermittedMessage implements Message {
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
541
|
+
readonly location: LocationRange;
|
|
542
|
+
constructor(location: LocationRange);
|
|
543
|
+
readonly code = 13;
|
|
544
|
+
readonly severity = MessageSeverity.Error;
|
|
545
|
+
get info(): string;
|
|
474
546
|
}
|
|
475
547
|
declare class OnlySimpleParagraphsPermittedMessage implements Message {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
548
|
+
readonly location: LocationRange;
|
|
549
|
+
constructor(location: LocationRange);
|
|
550
|
+
readonly code = 14;
|
|
551
|
+
readonly severity = MessageSeverity.Error;
|
|
552
|
+
get info(): string;
|
|
553
|
+
}
|
|
554
|
+
declare class ContentExpectedMessage implements Message {
|
|
555
|
+
readonly location: LocationRange;
|
|
556
|
+
constructor(location: LocationRange);
|
|
557
|
+
readonly code = 15;
|
|
558
|
+
readonly severity = MessageSeverity.Error;
|
|
559
|
+
get info(): string;
|
|
560
|
+
}
|
|
561
|
+
declare class InternalErrorMessage implements Message {
|
|
562
|
+
readonly location: LocationRange;
|
|
563
|
+
readonly error: any;
|
|
564
|
+
constructor(location: LocationRange, error: any);
|
|
565
|
+
readonly code = 16;
|
|
566
|
+
readonly severity = MessageSeverity.Error;
|
|
567
|
+
get info(): string;
|
|
568
|
+
}
|
|
569
|
+
declare class DuplicateNamedArgumentMessage implements Message {
|
|
570
|
+
readonly location: LocationRange;
|
|
571
|
+
readonly name: string;
|
|
572
|
+
constructor(location: LocationRange, name: string);
|
|
573
|
+
readonly code = 17;
|
|
574
|
+
readonly severity = MessageSeverity.Error;
|
|
575
|
+
get info(): string;
|
|
481
576
|
}
|
|
482
577
|
declare class UnnecessaryNewlineMessage extends RemoveThingMessage {
|
|
483
|
-
|
|
578
|
+
constructor(location: LocationRange);
|
|
484
579
|
}
|
|
485
580
|
declare class NewBlockShouldBeOnNewlineMessage extends AddThingMessage {
|
|
486
|
-
|
|
581
|
+
constructor(location: LocationRange);
|
|
487
582
|
}
|
|
488
583
|
declare class ShouldBeOnNewlineMessage extends AddThingMessage {
|
|
489
|
-
|
|
584
|
+
constructor(location: LocationRange);
|
|
490
585
|
}
|
|
491
586
|
declare class NameAlreadyDefinedMessage implements Message {
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
587
|
+
readonly location: LocationRange;
|
|
588
|
+
private what;
|
|
589
|
+
constructor(location: LocationRange, what: string);
|
|
590
|
+
readonly code = 4;
|
|
591
|
+
readonly severity = MessageSeverity.Warning;
|
|
592
|
+
get info(): string;
|
|
498
593
|
}
|
|
499
594
|
declare class UndefinedVariableMessage implements Message {
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
595
|
+
readonly location: LocationRange;
|
|
596
|
+
private what;
|
|
597
|
+
constructor(location: LocationRange, what: string);
|
|
598
|
+
readonly code = 5;
|
|
599
|
+
readonly severity = MessageSeverity.Warning;
|
|
600
|
+
get info(): string;
|
|
506
601
|
}
|
|
507
602
|
declare class OverwriteDefinitionsMessage implements Message {
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
603
|
+
readonly location: LocationRange;
|
|
604
|
+
private what;
|
|
605
|
+
constructor(location: LocationRange, what: string);
|
|
606
|
+
readonly code = 6;
|
|
607
|
+
readonly severity = MessageSeverity.Warning;
|
|
608
|
+
get info(): string;
|
|
514
609
|
}
|
|
515
610
|
declare class OverwriteSpecialVariableMessage implements Message {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
type
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
declare
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
type messages_OverwriteSpecialVariableMessage = OverwriteSpecialVariableMessage;
|
|
552
|
-
declare const messages_OverwriteSpecialVariableMessage: typeof OverwriteSpecialVariableMessage;
|
|
553
|
-
type messages_ReachedRecursionLimitMessage = ReachedRecursionLimitMessage;
|
|
554
|
-
declare const messages_ReachedRecursionLimitMessage: typeof ReachedRecursionLimitMessage;
|
|
555
|
-
type messages_ShouldBeOnNewlineMessage = ShouldBeOnNewlineMessage;
|
|
556
|
-
declare const messages_ShouldBeOnNewlineMessage: typeof ShouldBeOnNewlineMessage;
|
|
557
|
-
type messages_SlotUsedOutsideDefinitionMessage = SlotUsedOutsideDefinitionMessage;
|
|
558
|
-
declare const messages_SlotUsedOutsideDefinitionMessage: typeof SlotUsedOutsideDefinitionMessage;
|
|
559
|
-
type messages_UnclosedInlineModifierMessage = UnclosedInlineModifierMessage;
|
|
560
|
-
declare const messages_UnclosedInlineModifierMessage: typeof UnclosedInlineModifierMessage;
|
|
561
|
-
type messages_UndefinedVariableMessage = UndefinedVariableMessage;
|
|
562
|
-
declare const messages_UndefinedVariableMessage: typeof UndefinedVariableMessage;
|
|
563
|
-
type messages_UnknownModifierMessage = UnknownModifierMessage;
|
|
564
|
-
declare const messages_UnknownModifierMessage: typeof UnknownModifierMessage;
|
|
565
|
-
type messages_UnnecessaryNewlineMessage = UnnecessaryNewlineMessage;
|
|
566
|
-
declare const messages_UnnecessaryNewlineMessage: typeof UnnecessaryNewlineMessage;
|
|
567
|
-
declare namespace messages {
|
|
568
|
-
export { messages_ArgumentCountMismatchMessage as ArgumentCountMismatchMessage, messages_CannotExpandArgumentMessage as CannotExpandArgumentMessage, messages_CannotUseModuleInSelfMessage as CannotUseModuleInSelfMessage, messages_EitherNormalOrPreMessage as EitherNormalOrPreMessage, messages_EntityNotAllowedMessage as EntityNotAllowedMessage, messages_ExpectedMessage as ExpectedMessage, messages_InvalidArgumentMessage as InvalidArgumentMessage, messages_MultipleBlocksNotPermittedMessage as MultipleBlocksNotPermittedMessage, messages_NameAlreadyDefinedMessage as NameAlreadyDefinedMessage, messages_NewBlockShouldBeOnNewlineMessage as NewBlockShouldBeOnNewlineMessage, messages_NoNestedModuleMessage as NoNestedModuleMessage, messages_OnlySimpleParagraphsPermittedMessage as OnlySimpleParagraphsPermittedMessage, messages_OverwriteDefinitionsMessage as OverwriteDefinitionsMessage, messages_OverwriteSpecialVariableMessage as OverwriteSpecialVariableMessage, messages_ReachedRecursionLimitMessage as ReachedRecursionLimitMessage, messages_ShouldBeOnNewlineMessage as ShouldBeOnNewlineMessage, messages_SlotUsedOutsideDefinitionMessage as SlotUsedOutsideDefinitionMessage, messages_UnclosedInlineModifierMessage as UnclosedInlineModifierMessage, messages_UndefinedVariableMessage as UndefinedVariableMessage, messages_UnknownModifierMessage as UnknownModifierMessage, messages_UnnecessaryNewlineMessage as UnnecessaryNewlineMessage };
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
declare function checkArgumentLength(node: ModifierNode, min?: number, max?: number | undefined): Message[] | null;
|
|
572
|
-
declare function checkArguments(node: ModifierNode, min?: number, max?: number | undefined): Message[] | null;
|
|
611
|
+
readonly location: LocationRange;
|
|
612
|
+
private varname;
|
|
613
|
+
private previous;
|
|
614
|
+
constructor(location: LocationRange, varname: string, previous: string);
|
|
615
|
+
readonly code = 6;
|
|
616
|
+
readonly severity = MessageSeverity.Warning;
|
|
617
|
+
get info(): string;
|
|
618
|
+
}
|
|
619
|
+
declare namespace modifier_helper_d_exports {
|
|
620
|
+
export { bindArgs, createParagraphWrapper, createPlaintextWrapper, onlyPermitPlaintextParagraph, onlyPermitSimpleParagraphs, onlyPermitSingleBlock };
|
|
621
|
+
}
|
|
622
|
+
type BindResult<P extends string[], Opt extends string[], N extends Record<string, string>> = {
|
|
623
|
+
msgs: Message[];
|
|
624
|
+
args: undefined;
|
|
625
|
+
nodes: undefined;
|
|
626
|
+
rest: undefined;
|
|
627
|
+
restNodes: undefined;
|
|
628
|
+
} | {
|
|
629
|
+
msgs: null;
|
|
630
|
+
args: { [key in P[number]]: string } & { [key in Opt[number]]?: string | undefined } & { [key in keyof N]: string };
|
|
631
|
+
nodes: { [key in P[number]]: ModifierArgument } & { [key in Opt[number]]: ModifierArgument | undefined } & { [key in keyof N]: ModifierArgument | undefined };
|
|
632
|
+
rest: string[];
|
|
633
|
+
restNodes: ModifierArgument[];
|
|
634
|
+
};
|
|
635
|
+
declare function bindArgs<P extends string[], Opt extends string[] = [], N extends Record<string, string> = {}>(node: ModifierNode, p: readonly [...P], opts?: {
|
|
636
|
+
named?: N;
|
|
637
|
+
optional?: readonly [...Opt];
|
|
638
|
+
rest?: boolean;
|
|
639
|
+
restNamed?: boolean;
|
|
640
|
+
trim?: boolean;
|
|
641
|
+
}): BindResult<P, Opt, N>;
|
|
642
|
+
/**
|
|
643
|
+
* Helper function to ensure that a modifier only accepts plaintext paragraphs as content.
|
|
644
|
+
* @returns The content as a string if OK, otherwise an array of error messages.
|
|
645
|
+
*/
|
|
573
646
|
declare function onlyPermitPlaintextParagraph(node: BlockModifierNode<any> | SystemModifierNode<any>): Message[] | string;
|
|
647
|
+
/**
|
|
648
|
+
* Helper function to ensure that a modifier does not accept any block modifiers inside its content.
|
|
649
|
+
* @returns `null` if OK, otherwise an array of error messages.
|
|
650
|
+
*/
|
|
574
651
|
declare function onlyPermitSimpleParagraphs(node: BlockModifierNode<any> | SystemModifierNode<any>): Message[] | null;
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
declare
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
declare
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
652
|
+
/**
|
|
653
|
+
* Helper function to ensure that a modifier only accepts one block as its content.
|
|
654
|
+
* @returns `null` if OK, otherwise an array of error messages.
|
|
655
|
+
*/
|
|
656
|
+
declare function onlyPermitSingleBlock(node: BlockModifierNode<any> | SystemModifierNode<any>, opt?: {
|
|
657
|
+
optional?: boolean;
|
|
658
|
+
}): Message[] | null;
|
|
659
|
+
declare function createPlaintextWrapper(name: string, get: (cxt: ParseContext) => string | undefined, set: (cxt: ParseContext, value: string) => string, slotType?: ModifierSlotType): SystemModifierDefinition<void>;
|
|
660
|
+
declare function createParagraphWrapper(name: string, get: (cxt: ParseContext) => ParagraphNode | undefined, set: (cxt: ParseContext, value: ParagraphNode) => void, slotType?: ModifierSlotType): SystemModifierDefinition<void>;
|
|
661
|
+
//#endregion
|
|
662
|
+
//#region src/node-util.d.ts
|
|
663
|
+
type CloneNodeOptions = {
|
|
664
|
+
newLocation?: LocationRange;
|
|
665
|
+
withState?: boolean;
|
|
666
|
+
};
|
|
667
|
+
declare function cloneNode<T$1 extends DocumentNode>(node: T$1, options?: CloneNodeOptions): T$1;
|
|
668
|
+
declare function cloneNodes<T$1 extends readonly DocumentNode[]>(nodes: T$1, options?: CloneNodeOptions): T$1;
|
|
669
|
+
/** Warning: modifies the original nodes */
|
|
670
|
+
declare function stripNode(...nodes: DocumentNode[]): DocumentNode[];
|
|
671
|
+
//#endregion
|
|
672
|
+
//#region src/builtin/builtin.d.ts
|
|
586
673
|
declare const BuiltinConfiguration: ReadonlyConfiguration;
|
|
587
|
-
|
|
674
|
+
//#endregion
|
|
675
|
+
//#region src/default/default.d.ts
|
|
588
676
|
declare const DefaultConfiguration: ReadonlyConfiguration;
|
|
589
|
-
|
|
677
|
+
//#endregion
|
|
678
|
+
//#region src/default/html-renderer.d.ts
|
|
590
679
|
type HTMLRendererOptions = {
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
680
|
+
document: Document;
|
|
681
|
+
headPlugins: HTMLComponentPlugin[];
|
|
682
|
+
headerPlugins: HTMLComponentPlugin[];
|
|
683
|
+
footerPlugins: HTMLComponentPlugin[];
|
|
684
|
+
postprocessPlugins: HTMLPostprocessPlugin[];
|
|
685
|
+
transformAsset: (id: string) => string | undefined;
|
|
596
686
|
};
|
|
597
687
|
type HTMLRenderType = {
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
688
|
+
state: HTMLRenderState;
|
|
689
|
+
options: HTMLRendererOptions;
|
|
690
|
+
document: Document;
|
|
691
|
+
return: Node | Node[];
|
|
602
692
|
};
|
|
603
693
|
type HTMLRenderPlugin = (elem: BlockEntity | InlineEntity, cxt: RenderContext<HTMLRenderType>) => string | undefined;
|
|
604
694
|
type HTMLComponentPlugin = (cxt: RenderContext<HTMLRenderType>) => Node | Node[] | undefined;
|
|
605
695
|
type HTMLPostprocessPlugin = (cxt: RenderContext<HTMLRenderType>, output: Document) => void;
|
|
606
696
|
declare class HTMLRenderState {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
697
|
+
title: string;
|
|
698
|
+
stylesheet: string;
|
|
699
|
+
cssVariables: Map<string, string>;
|
|
700
|
+
invalidBlock(node: BlockEntity, msg: string): minimal_jsx_runtime_jsx_runtime0.JSX.Element;
|
|
701
|
+
invalidInline(node: InlineEntity, msg: string): minimal_jsx_runtime_jsx_runtime0.JSX.Element;
|
|
702
|
+
render(elems: (BlockEntity | InlineEntity)[], cxt: RenderContext<HTMLRenderType>): DocumentFragment;
|
|
613
703
|
}
|
|
614
704
|
declare const HTMLRenderConfiguration: ReadonlyRenderConfiguration<HTMLRenderType>;
|
|
615
|
-
|
|
705
|
+
//#endregion
|
|
706
|
+
//#region src/debug-print.d.ts
|
|
616
707
|
declare const debugPrint: {
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
708
|
+
blockModifier: (x: BlockModifierDefinition<any>) => string;
|
|
709
|
+
inlineModifier: (x: InlineModifierDefinition<any>) => string;
|
|
710
|
+
inlineShorthand: (x: InlineShorthand<any>) => string;
|
|
711
|
+
blockShorthand: (x: BlockShorthand<any>) => string;
|
|
712
|
+
argument: (arg: ModifierArgument) => string;
|
|
713
|
+
node: (...nodes: (BlockEntity | InlineEntity)[]) => string;
|
|
714
|
+
message: typeof debugPrintMsg;
|
|
715
|
+
range: typeof debugPrintRange;
|
|
716
|
+
document: typeof debugDumpDocument;
|
|
626
717
|
};
|
|
627
718
|
declare function debugPrintRange(loc: LocationRange, context?: number): string;
|
|
628
719
|
declare function debugPrintMsg(m: Message): string;
|
|
629
720
|
declare function debugDumpDocument(doc: Document$1): string;
|
|
630
|
-
|
|
721
|
+
//#endregion
|
|
722
|
+
//#region src/index.d.ts
|
|
631
723
|
declare const emmmVersion = "0.0.6";
|
|
632
724
|
declare function setDebugLevel(level: DebugLevel): void;
|
|
633
|
-
|
|
634
|
-
export {
|
|
725
|
+
//#endregion
|
|
726
|
+
export { ArgumentEntity, ArgumentInterpolatorDefinition, BlockEntity, BlockModifierDefinition, BlockModifierNode, BlockRendererDefiniton, BlockShorthand, BuiltinConfiguration, CloneNodeOptions, Configuration, DebugLevel, DefaultConfiguration, Document$1 as Document, DocumentNode, EscapedNode, GroupNode, HTMLComponentPlugin, HTMLPostprocessPlugin, HTMLRenderConfiguration, HTMLRenderPlugin, HTMLRenderState, HTMLRenderType, HTMLRendererOptions, InlineEntity, InlineModifierDefinition, InlineModifierNode, InlineRendererDefiniton, InlineShorthand, Inspector, InterpolationNode, KernelConfiguration, LocationRange, Message, MessageSeverity, ModifierArgument, ModifierArguments, ModifierMetadata, ModifierNode, ModifierSlotType, NodeRenderer, NodeRendererDefinition, NodeType, ParagraphNode, ParseContext, ParseContextStoreDefinitions, ParseContextStoreKey, Parser, PreNode, ReadonlyConfiguration, ReadonlyRenderConfiguration, RenderConfiguration, RenderContext, RendererType, RootNode, Scanner, SimpleScanner, Source, SourceDescriptor, StringSource, SystemModifierDefinition, SystemModifierNode, TextNode, cloneNode, cloneNodes, debugPrint, emmmVersion, modifier_helper_d_exports as helper, messages_d_exports as messages, setDebugLevel, stripNode };
|
|
727
|
+
//# sourceMappingURL=index.d.ts.map
|