@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/dist/index.d.ts CHANGED
@@ -1,316 +1,389 @@
1
- import * as minimal_jsx_runtime from 'minimal-jsx-runtime';
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
- Trace = 0,
5
- Info = 1,
6
- Warning = 2,
7
- Error = 3,
8
- None = 4
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
- readonly name: string;
15
+ readonly name: string;
13
16
  };
14
17
  interface Source extends SourceDescriptor {
15
- readonly nLines: number;
16
- /**
17
- * Return the row- and column-index corresponding to a given location. The indices are zero-based.
18
- */
19
- getRowCol(loc: number): [row: number, col: number];
20
- /**
21
- * 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`.
22
- */
23
- getRowStart(n: number): number;
24
- /**
25
- * Returns the content of the row `n` (zero-based). If the source contains less than `n` rows, returns `undefined`.
26
- */
27
- getRow(n: number): string | undefined;
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
- private readonly src;
31
- readonly name: string;
32
- readonly nLines: number;
33
- private readonly lineMap;
34
- constructor(d: SourceDescriptor, src: string);
35
- getRowCol(pos: number): [row: number, col: number];
36
- getRowStart(n: number): number;
37
- getRow(n: number): string | undefined;
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
- declare class NameManager<T extends {
41
- name: string;
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
- private array;
44
- private data;
45
- constructor(from?: ReadonlyNameManager<T> | readonly T[] | ReadonlySet<T>);
46
- toArray(): T[];
47
- toSet(): Set<T>;
48
- get(name: string): T | undefined;
49
- has(name: string): boolean;
50
- remove(name: string): void;
51
- add(...elems: T[]): void;
52
- find(predicate: (x: T) => boolean): T | undefined;
53
- }
54
- type ReadonlyNameManager<T extends {
55
- name: string;
56
- }> = Omit<NameManager<T>, 'add' | 'remove'>;
57
-
58
- interface ParseContextStoreDefinitions {
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
- config: Configuration;
64
- variables: Map<string, string>;
65
- private data;
66
- constructor(config: Configuration, variables?: Map<string, string>);
67
- init<S extends ParseContextStoreKey>(key: S, obj: ParseContextStoreEntry<S>): void;
68
- set<S extends ParseContextStoreKey>(key: S, obj: ParseContextStoreEntry<S>): void;
69
- get<S extends ParseContextStoreKey>(key: S): ParseContextStoreEntry<S>;
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
- readonly root: RootNode;
73
- readonly context: ParseContext;
74
- readonly messages: readonly Message[];
75
- constructor(root: RootNode, context: ParseContext, messages: readonly Message[]);
76
- toStripped(): Document$1;
77
- /**
78
- * Performs a depth-first walk of the node tree.
79
- */
80
- walk(callback: (node: BlockEntity | InlineEntity | ArgumentEntity) => 'skip' | 'break' | 'continue'): void;
81
- /**
82
- * Gets all nodes that covers the given position, from outermost to innermost (essentially a path).
83
- */
84
- resolvePosition(pos: number): (BlockEntity | InlineEntity | ArgumentEntity)[];
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
- readonly initializers: readonly ((cxt: ParseContext) => void)[];
88
- readonly blockModifiers: ReadonlyNameManager<BlockModifierDefinition<any>>;
89
- readonly inlineModifiers: ReadonlyNameManager<InlineModifierDefinition<any>>;
90
- readonly systemModifiers: ReadonlyNameManager<SystemModifierDefinition<any>>;
91
- readonly argumentInterpolators: ReadonlyNameManager<ArgumentInterpolatorDefinition>;
92
- readonly blockShorthands: ReadonlyNameManager<BlockShorthand<any>>;
93
- readonly inlineShorthands: ReadonlyNameManager<InlineShorthand<any>>;
94
- readonly reparseDepthLimit: number;
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
- initializers: ((cxt: ParseContext) => void)[];
98
- blockModifiers: NameManager<BlockModifierDefinition<any>>;
99
- inlineModifiers: NameManager<InlineModifierDefinition<any>>;
100
- systemModifiers: NameManager<SystemModifierDefinition<any>>;
101
- argumentInterpolators: NameManager<ArgumentInterpolatorDefinition>;
102
- blockShorthands: NameManager<BlockShorthand<any>>;
103
- inlineShorthands: NameManager<InlineShorthand<any>>;
104
- reparseDepthLimit: number;
105
- static from(from: ReadonlyConfiguration): Configuration;
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
- Info = 0,
110
- Warning = 1,
111
- Error = 2
243
+ Info = 0,
244
+ Warning = 1,
245
+ Error = 2,
112
246
  }
113
247
  type Message = {
114
- readonly severity: MessageSeverity;
115
- readonly location: LocationRange;
116
- readonly info: string;
117
- readonly code: number;
248
+ readonly severity: MessageSeverity;
249
+ readonly location: LocationRange;
250
+ readonly info: string;
251
+ readonly code: number;
118
252
  };
119
253
  type LocationRange = {
120
- original?: LocationRange;
121
- source: Source;
122
- start: number;
123
- end: number;
124
- actualEnd?: number;
254
+ original?: LocationRange;
255
+ source: Source;
256
+ start: number;
257
+ end: number;
258
+ actualEnd?: number;
125
259
  };
126
260
  declare enum NodeType {
127
- Root = 0,
128
- Paragraph = 1,
129
- Preformatted = 2,
130
- Text = 3,
131
- Escaped = 4,
132
- SystemModifier = 5,
133
- InlineModifier = 6,
134
- BlockModifier = 7,
135
- Interpolation = 8
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
- location: LocationRange;
139
- type: NodeType.Paragraph;
140
- content: InlineEntity[];
283
+ location: LocationRange;
284
+ type: NodeType.Paragraph;
285
+ content: InlineEntity[];
141
286
  };
142
287
  type PreNode = {
143
- location: LocationRange;
144
- type: NodeType.Preformatted;
145
- content: {
146
- start: number;
147
- end: number;
148
- text: string;
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
- location: LocationRange;
153
- type: NodeType.Text;
154
- content: string;
297
+ location: LocationRange;
298
+ type: NodeType.Text;
299
+ content: string;
155
300
  };
156
301
  type EscapedNode = {
157
- location: LocationRange;
158
- type: NodeType.Escaped;
159
- content: string;
302
+ location: LocationRange;
303
+ type: NodeType.Escaped;
304
+ content: string;
160
305
  };
161
- type SystemModifierNode<TState> = {
162
- location: LocationRange;
163
- type: NodeType.SystemModifier;
164
- mod: SystemModifierDefinition<TState>;
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 BlockModifierNode<TState> = {
172
- location: LocationRange;
173
- type: NodeType.BlockModifier;
174
- mod: BlockModifierDefinition<TState>;
175
- state?: TState;
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 InlineModifierNode<TState> = {
182
- location: LocationRange;
183
- type: NodeType.InlineModifier;
184
- mod: InlineModifierDefinition<TState>;
185
- state?: TState;
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 RootNode = {
192
- type: NodeType.Root;
193
- content: BlockEntity[];
194
- source: Source;
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
- location: LocationRange;
202
- type: NodeType.Interpolation;
203
- definition: ArgumentInterpolatorDefinition;
204
- argument: ModifierArgument;
205
- expansion?: string;
340
+ location: LocationRange;
341
+ type: NodeType.Interpolation;
342
+ definition: ArgumentInterpolatorDefinition;
343
+ argument: ModifierArgument;
344
+ expansion?: string;
206
345
  };
207
346
  type ModifierArgument = {
208
- location: LocationRange;
209
- content: ArgumentEntity[];
210
- expansion?: string;
347
+ location: LocationRange;
348
+ content: ArgumentEntity[];
349
+ expansion?: string;
211
350
  };
212
351
  type ArgumentEntity = TextNode | EscapedNode | InterpolationNode;
213
- declare enum ModifierSlotType {
214
- Normal = 0,
215
- /** Content is preformatted: no escaping, no inner tags */
216
- Preformatted = 1,
217
- /** No content slot */
218
- None = 2
219
- }
220
- declare class ModifierBase<TNode, TEntity> {
221
- readonly name: string;
222
- readonly slotType: ModifierSlotType;
223
- constructor(name: string, slotType?: ModifierSlotType, args?: Partial<ModifierBase<TNode, TEntity>>);
224
- /**
225
- * Common values: heading, emphasis, keyword, highlight, commentary, comment, link, quote
226
- */
227
- roleHint?: string;
228
- /**
229
- * If true, any modifier encountered inside it will *not* be expanded *during parse-content*,
230
- * *unless* that modifier is `alwaysTryExpand`. In the vast majority of cases, you shouldn't
231
- * be using this.
232
- */
233
- delayContentExpansion: boolean;
234
- /**
235
- * If true, such a modifier will always be expanded whenever it is encountered, *even if*
236
- * it is contained in a modifier with `delayContentExpansion`. In the vast majority of cases,
237
- * you shouldn't be using this.
238
- */
239
- alwaysTryExpand: boolean;
240
- /** Called before the modifier's content is parsed.
241
- * @param immediate False when the node is inside a `delayContentExpansion` modifier, but it is `alwaysTryExpand`; otherwise true.
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
- state: TState;
311
- return: TReturn;
312
- document: TDocument;
313
- options: TOptions;
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
- readonly config: RenderConfiguration<Type>;
327
- readonly parsedDocument: Document$1;
328
- state: getState<Type>;
329
- renderEntity(node: BlockEntity | InlineEntity): getReturn<Type> | undefined;
330
- constructor(config: RenderConfiguration<Type>, parsedDocument: Document$1, state: getState<Type>);
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
- readonly options: getOptions<Type>;
334
- readonly paragraphRenderer?: NodeRenderer<Type, ParagraphNode>;
335
- readonly textRenderer?: NodeRenderer<Type, TextNode | PreNode | EscapedNode>;
336
- readonly undefinedBlockRenderer?: NodeRenderer<Type, BlockModifierNode<any>>;
337
- readonly undefinedInlineRenderer?: NodeRenderer<Type, InlineModifierNode<any>>;
338
- readonly blockRenderers: ReadonlyMap<BlockModifierDefinition<any>, NodeRenderer<Type, BlockModifierNode<any>>>;
339
- readonly inlineRenderers: ReadonlyMap<InlineModifierDefinition<any>, NodeRenderer<Type, InlineModifierNode<any>>>;
340
- readonly postprocessor: (results: getReturn<Type>[], cxt: RenderContext<Type>) => getDocument<Type>;
341
- render(doc: Document$1, state: getState<Type>): getDocument<Type>;
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
- options: getOptions<Type>;
347
- postprocessor: (results: getReturn<Type>[], cxt: RenderContext<Type>) => getDocument<Type>;
348
- paragraphRenderer?: NodeRenderer<Type, ParagraphNode>;
349
- textRenderer?: NodeRenderer<Type, TextNode | PreNode | EscapedNode>;
350
- undefinedBlockRenderer?: NodeRenderer<Type, BlockModifierNode<any>>;
351
- undefinedInlineRenderer?: NodeRenderer<Type, InlineModifierNode<any>>;
352
- blockRenderers: Map<BlockModifierDefinition<any>, NodeRenderer<Type, BlockModifierNode<any>>>;
353
- inlineRenderers: Map<InlineModifierDefinition<any>, NodeRenderer<Type, InlineModifierNode<any>>>;
354
- constructor(options: getOptions<Type>, postprocessor: (results: getReturn<Type>[], cxt: RenderContext<Type>) => getDocument<Type>);
355
- render(doc: Document$1, state: getState<Type>): getDocument<Type>;
356
- addBlockRenderer(...rs: BlockRendererDefiniton<Type>[]): void;
357
- addInlineRenderer(...rs: InlineRendererDefiniton<Type>[]): void;
358
- static from<Type extends AnyRendererType>(from: ReadonlyRenderConfiguration<Type>): RenderConfiguration<Type>;
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
- readonly code: number;
363
- readonly severity: MessageSeverity;
364
- readonly location: LocationRange;
365
- readonly info: string;
366
- constructor(code: number, severity: MessageSeverity, location: LocationRange, info: string);
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
- readonly code: number;
370
- readonly severity: MessageSeverity;
371
- readonly location: LocationRange;
372
- readonly info: string;
373
- constructor(code: number, severity: MessageSeverity, location: LocationRange, info: string);
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
- readonly location: LocationRange;
377
- private what;
378
- constructor(location: LocationRange, what: string);
379
- readonly code = 1;
380
- readonly severity = MessageSeverity.Error;
381
- get info(): string;
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
- readonly location: LocationRange;
385
- private what;
386
- constructor(location: LocationRange, what: string);
387
- readonly code = 2;
388
- readonly severity = MessageSeverity.Error;
389
- get info(): string;
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
- readonly location: LocationRange;
393
- private what;
394
- constructor(location: LocationRange, what: string);
395
- readonly code = 3;
396
- readonly severity = MessageSeverity.Error;
397
- get info(): string;
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
- readonly location: LocationRange;
401
- constructor(location: LocationRange, min?: number, max?: number);
402
- private msg;
403
- readonly code = 4;
404
- readonly severity = MessageSeverity.Error;
405
- get info(): string;
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
- readonly location: LocationRange;
409
- private what?;
410
- constructor(location: LocationRange, what?: string | undefined);
411
- readonly code = 5;
412
- readonly severity = MessageSeverity.Error;
413
- get info(): string;
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
- readonly location: LocationRange;
417
- private what?;
418
- constructor(location: LocationRange, what?: string | undefined);
419
- readonly code = 6;
420
- readonly severity = MessageSeverity.Error;
421
- get info(): string;
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
- readonly location: LocationRange;
425
- private what?;
426
- constructor(location: LocationRange, what?: string | undefined);
427
- readonly code = 7;
428
- readonly severity = MessageSeverity.Error;
429
- get info(): string;
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
- readonly location: LocationRange;
433
- private limit;
434
- private what;
435
- constructor(location: LocationRange, limit: number, what: string);
436
- readonly code = 8;
437
- readonly severity = MessageSeverity.Error;
438
- get info(): string;
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
- readonly location: LocationRange;
442
- constructor(location: LocationRange);
443
- readonly code = 9;
444
- readonly severity = MessageSeverity.Error;
445
- get info(): string;
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
- readonly location: LocationRange;
449
- constructor(location: LocationRange);
450
- readonly code = 10;
451
- readonly severity = MessageSeverity.Error;
452
- get info(): string;
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
- readonly location: LocationRange;
456
- constructor(location: LocationRange);
457
- readonly code = 11;
458
- readonly severity = MessageSeverity.Error;
459
- get info(): string;
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
- readonly location: LocationRange;
463
- constructor(location: LocationRange);
464
- readonly code = 12;
465
- readonly severity = MessageSeverity.Error;
466
- get info(): string;
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
- readonly location: LocationRange;
470
- constructor(location: LocationRange);
471
- readonly code = 13;
472
- readonly severity = MessageSeverity.Error;
473
- get info(): string;
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
- readonly location: LocationRange;
477
- constructor(location: LocationRange);
478
- readonly code = 14;
479
- readonly severity = MessageSeverity.Error;
480
- get info(): string;
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
- constructor(location: LocationRange);
578
+ constructor(location: LocationRange);
484
579
  }
485
580
  declare class NewBlockShouldBeOnNewlineMessage extends AddThingMessage {
486
- constructor(location: LocationRange);
581
+ constructor(location: LocationRange);
487
582
  }
488
583
  declare class ShouldBeOnNewlineMessage extends AddThingMessage {
489
- constructor(location: LocationRange);
584
+ constructor(location: LocationRange);
490
585
  }
491
586
  declare class NameAlreadyDefinedMessage implements Message {
492
- readonly location: LocationRange;
493
- private what;
494
- constructor(location: LocationRange, what: string);
495
- readonly code = 4;
496
- readonly severity = MessageSeverity.Warning;
497
- get info(): string;
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
- readonly location: LocationRange;
501
- private what;
502
- constructor(location: LocationRange, what: string);
503
- readonly code = 5;
504
- readonly severity = MessageSeverity.Warning;
505
- get info(): string;
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
- readonly location: LocationRange;
509
- private what;
510
- constructor(location: LocationRange, what: string);
511
- readonly code = 6;
512
- readonly severity = MessageSeverity.Warning;
513
- get info(): string;
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
- readonly location: LocationRange;
517
- private varname;
518
- private previous;
519
- constructor(location: LocationRange, varname: string, previous: string);
520
- readonly code = 6;
521
- readonly severity = MessageSeverity.Warning;
522
- get info(): string;
523
- }
524
-
525
- type messages_ArgumentCountMismatchMessage = ArgumentCountMismatchMessage;
526
- declare const messages_ArgumentCountMismatchMessage: typeof ArgumentCountMismatchMessage;
527
- type messages_CannotExpandArgumentMessage = CannotExpandArgumentMessage;
528
- declare const messages_CannotExpandArgumentMessage: typeof CannotExpandArgumentMessage;
529
- type messages_CannotUseModuleInSelfMessage = CannotUseModuleInSelfMessage;
530
- declare const messages_CannotUseModuleInSelfMessage: typeof CannotUseModuleInSelfMessage;
531
- type messages_EitherNormalOrPreMessage = EitherNormalOrPreMessage;
532
- declare const messages_EitherNormalOrPreMessage: typeof EitherNormalOrPreMessage;
533
- type messages_EntityNotAllowedMessage = EntityNotAllowedMessage;
534
- declare const messages_EntityNotAllowedMessage: typeof EntityNotAllowedMessage;
535
- type messages_ExpectedMessage = ExpectedMessage;
536
- declare const messages_ExpectedMessage: typeof ExpectedMessage;
537
- type messages_InvalidArgumentMessage = InvalidArgumentMessage;
538
- declare const messages_InvalidArgumentMessage: typeof InvalidArgumentMessage;
539
- type messages_MultipleBlocksNotPermittedMessage = MultipleBlocksNotPermittedMessage;
540
- declare const messages_MultipleBlocksNotPermittedMessage: typeof MultipleBlocksNotPermittedMessage;
541
- type messages_NameAlreadyDefinedMessage = NameAlreadyDefinedMessage;
542
- declare const messages_NameAlreadyDefinedMessage: typeof NameAlreadyDefinedMessage;
543
- type messages_NewBlockShouldBeOnNewlineMessage = NewBlockShouldBeOnNewlineMessage;
544
- declare const messages_NewBlockShouldBeOnNewlineMessage: typeof NewBlockShouldBeOnNewlineMessage;
545
- type messages_NoNestedModuleMessage = NoNestedModuleMessage;
546
- declare const messages_NoNestedModuleMessage: typeof NoNestedModuleMessage;
547
- type messages_OnlySimpleParagraphsPermittedMessage = OnlySimpleParagraphsPermittedMessage;
548
- declare const messages_OnlySimpleParagraphsPermittedMessage: typeof OnlySimpleParagraphsPermittedMessage;
549
- type messages_OverwriteDefinitionsMessage = OverwriteDefinitionsMessage;
550
- declare const messages_OverwriteDefinitionsMessage: typeof OverwriteDefinitionsMessage;
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
- declare function onlyPermitSingleBlock(node: BlockModifierNode<any> | SystemModifierNode<any>): Message[] | null;
576
-
577
- declare const modifierHelper_checkArgumentLength: typeof checkArgumentLength;
578
- declare const modifierHelper_checkArguments: typeof checkArguments;
579
- declare const modifierHelper_onlyPermitPlaintextParagraph: typeof onlyPermitPlaintextParagraph;
580
- declare const modifierHelper_onlyPermitSimpleParagraphs: typeof onlyPermitSimpleParagraphs;
581
- declare const modifierHelper_onlyPermitSingleBlock: typeof onlyPermitSingleBlock;
582
- declare namespace modifierHelper {
583
- export { modifierHelper_checkArgumentLength as checkArgumentLength, modifierHelper_checkArguments as checkArguments, modifierHelper_onlyPermitPlaintextParagraph as onlyPermitPlaintextParagraph, modifierHelper_onlyPermitSimpleParagraphs as onlyPermitSimpleParagraphs, modifierHelper_onlyPermitSingleBlock as onlyPermitSingleBlock };
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
- headPlugins: HTMLComponentPlugin[];
592
- headerPlugins: HTMLComponentPlugin[];
593
- footerPlugins: HTMLComponentPlugin[];
594
- postprocessPlugins: HTMLPostprocessPlugin[];
595
- transformAsset: (id: string) => string | undefined;
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
- state: HTMLRenderState;
599
- options: HTMLRendererOptions;
600
- document: Document;
601
- return: Node | Node[];
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
- title: string;
608
- stylesheet: string;
609
- cssVariables: Map<string, string>;
610
- invalidBlock(node: BlockEntity, msg: string): minimal_jsx_runtime.JSX.Element;
611
- invalidInline(node: InlineEntity, msg: string): minimal_jsx_runtime.JSX.Element;
612
- render(elems: (BlockEntity | InlineEntity)[], cxt: RenderContext<HTMLRenderType>): DocumentFragment;
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
- blockModifier: (x: BlockModifierDefinition<any>) => string;
618
- inlineModifier: (x: InlineModifierDefinition<any>) => string;
619
- inlineShorthand: (x: InlineShorthand<any>) => string;
620
- blockShorthand: (x: BlockShorthand<any>) => string;
621
- argument: (arg: ModifierArgument) => string;
622
- node: (...nodes: (BlockEntity | InlineEntity)[]) => string;
623
- message: typeof debugPrintMsg;
624
- range: typeof debugPrintRange;
625
- document: typeof debugDumpDocument;
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 { type ArgumentEntity, ArgumentInterpolatorDefinition, type BlockEntity, BlockModifierDefinition, type BlockModifierNode, type BlockRendererDefiniton, type BlockShorthand, BuiltinConfiguration, Configuration, DebugLevel, DefaultConfiguration, Document$1 as Document, type DocumentNode, type EscapedNode, type HTMLComponentPlugin, type HTMLPostprocessPlugin, HTMLRenderConfiguration, type HTMLRenderPlugin, HTMLRenderState, type HTMLRenderType, type HTMLRendererOptions, type InlineEntity, InlineModifierDefinition, type InlineModifierNode, type InlineRendererDefiniton, type InlineShorthand, type InterpolationNode, type LocationRange, type Message, MessageSeverity, type ModifierArgument, type ModifierNode, ModifierSlotType, type NodeRenderer, type NodeRendererDefinition, NodeType, type ParagraphNode, ParseContext, type ParseContextStoreDefinitions, type ParseContextStoreKey, type PreNode, type ReadonlyConfiguration, type ReadonlyRenderConfiguration, RenderConfiguration, RenderContext, type RendererType, type RootNode, type Scanner, SimpleScanner, type Source, type SourceDescriptor, StringSource, SystemModifierDefinition, type SystemModifierNode, type TextNode, debugPrint, emmmVersion, modifierHelper as helper, messages, parse, setDebugLevel };
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