yarn-spinner-runner-ts 0.1.2 → 0.1.4-a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +102 -88
  2. package/dist/compile/compiler.js +4 -4
  3. package/dist/compile/compiler.js.map +1 -1
  4. package/dist/compile/ir.d.ts +3 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.js +3 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/markup/parser.d.ts +3 -0
  9. package/dist/markup/parser.js +332 -0
  10. package/dist/markup/parser.js.map +1 -0
  11. package/dist/markup/types.d.ts +17 -0
  12. package/dist/markup/types.js +2 -0
  13. package/dist/markup/types.js.map +1 -0
  14. package/dist/model/ast.d.ts +3 -0
  15. package/dist/parse/parser.js +57 -8
  16. package/dist/parse/parser.js.map +1 -1
  17. package/dist/react/DialogueExample.js +13 -10
  18. package/dist/react/DialogueExample.js.map +1 -1
  19. package/dist/react/DialogueScene.d.ts +2 -1
  20. package/dist/react/DialogueScene.js +95 -26
  21. package/dist/react/DialogueScene.js.map +1 -1
  22. package/dist/react/DialogueView.d.ts +18 -4
  23. package/dist/react/DialogueView.js +84 -7
  24. package/dist/react/DialogueView.js.map +1 -1
  25. package/dist/react/MarkupRenderer.d.ts +8 -0
  26. package/dist/react/MarkupRenderer.js +64 -0
  27. package/dist/react/MarkupRenderer.js.map +1 -0
  28. package/dist/react/TypingText.d.ts +14 -0
  29. package/dist/react/TypingText.js +78 -0
  30. package/dist/react/TypingText.js.map +1 -0
  31. package/dist/react/useYarnRunner.js +10 -1
  32. package/dist/react/useYarnRunner.js.map +1 -1
  33. package/dist/runtime/commands.js +12 -1
  34. package/dist/runtime/commands.js.map +1 -1
  35. package/dist/runtime/results.d.ts +3 -0
  36. package/dist/runtime/runner.d.ts +7 -0
  37. package/dist/runtime/runner.js +161 -14
  38. package/dist/runtime/runner.js.map +1 -1
  39. package/dist/tests/custom_functions.test.d.ts +1 -0
  40. package/dist/tests/custom_functions.test.js +129 -0
  41. package/dist/tests/custom_functions.test.js.map +1 -0
  42. package/dist/tests/markup.test.d.ts +1 -0
  43. package/dist/tests/markup.test.js +46 -0
  44. package/dist/tests/markup.test.js.map +1 -0
  45. package/dist/tests/nodes_lines.test.js +25 -1
  46. package/dist/tests/nodes_lines.test.js.map +1 -1
  47. package/dist/tests/options.test.js +30 -1
  48. package/dist/tests/options.test.js.map +1 -1
  49. package/dist/tests/story_end.test.d.ts +1 -0
  50. package/dist/tests/story_end.test.js +37 -0
  51. package/dist/tests/story_end.test.js.map +1 -0
  52. package/dist/tests/typing-text.test.d.ts +1 -0
  53. package/dist/tests/typing-text.test.js +12 -0
  54. package/dist/tests/typing-text.test.js.map +1 -0
  55. package/docs/actor-transition.md +34 -0
  56. package/docs/markup.md +34 -19
  57. package/docs/scenes-actors-setup.md +1 -0
  58. package/docs/typing-animation.md +44 -0
  59. package/eslint.config.cjs +3 -0
  60. package/examples/browser/index.html +1 -1
  61. package/examples/browser/main.tsx +0 -2
  62. package/package.json +1 -1
  63. package/src/compile/compiler.ts +4 -4
  64. package/src/compile/ir.ts +3 -2
  65. package/src/index.ts +3 -0
  66. package/src/markup/parser.ts +372 -0
  67. package/src/markup/types.ts +22 -0
  68. package/src/model/ast.ts +17 -13
  69. package/src/parse/parser.ts +60 -8
  70. package/src/react/DialogueExample.tsx +27 -51
  71. package/src/react/DialogueScene.tsx +143 -44
  72. package/src/react/DialogueView.tsx +150 -14
  73. package/src/react/MarkupRenderer.tsx +110 -0
  74. package/src/react/TypingText.tsx +127 -0
  75. package/src/react/dialogue.css +26 -13
  76. package/src/react/useYarnRunner.tsx +13 -1
  77. package/src/runtime/commands.ts +14 -1
  78. package/src/runtime/results.ts +3 -1
  79. package/src/runtime/runner.ts +170 -14
  80. package/src/tests/custom_functions.test.ts +140 -0
  81. package/src/tests/markup.test.ts +62 -0
  82. package/src/tests/nodes_lines.test.ts +35 -1
  83. package/src/tests/options.test.ts +39 -1
  84. package/src/tests/story_end.test.ts +42 -0
package/README.md CHANGED
@@ -7,36 +7,38 @@ TypeScript parser, compiler, and runtime for Yarn Spinner 3.x with React adapter
7
7
 
8
8
  ## References
9
9
 
10
- - Old JS parser: `bondage.js` (Yarn 2.x) — [GitHub](https://github.com/mnbroatch/bondage.js/tree/master/src)
11
- - Official compiler (C#): YarnSpinner.Compiler — [GitHub](https://github.com/YarnSpinnerTool/YarnSpinner/tree/main/YarnSpinner.Compiler)
12
- - Existing dialogue runner API: YarnBound — [GitHub](https://github.com/mnbroatch/yarn-bound?tab=readme-ov-file)
10
+ * Old JS parser: `bondage.js` (Yarn 2.x) — [GitHub](https://github.com/mnbroatch/bondage.js/tree/master/src)
11
+ * Official compiler (C#): YarnSpinner.Compiler — [GitHub](https://github.com/YarnSpinnerTool/YarnSpinner/tree/main/YarnSpinner.Compiler)
12
+ * Existing dialogue runner API: YarnBound — [GitHub](https://github.com/mnbroatch/yarn-bound?tab=readme-ov-file)
13
13
 
14
14
  ## Features
15
15
 
16
- - ✅ Full Yarn Spinner 3.x syntax support
17
- - ✅ Parser for `.yarn` files → AST
18
- - ✅ Compiler: AST → Intermediate Representation (IR)
19
- - ✅ Runtime with `YarnRunner` class
20
- - ✅ React hook: `useYarnRunner()`
21
- - ✅ React components: `<DialogueView />`, `<DialogueScene />`, `<DialogueExample />`
22
- -Expression evaluator for conditions
23
- -Command system with built-in handlers (`<<set>>`, `<<declare>>`, etc.)
24
- -Scene system with backgrounds and actor images
25
- -Custom CSS styling via `&css{}` attributes
26
- -Built-in functions (`visited`, `random`, `min`, `max`, etc.)
27
- -Support for:
28
- - Lines with speakers
29
- - Options with indented bodies
30
- - `<<if>>/<<elseif>>/<<else>>/<<endif>>` blocks
31
- - `<<once>>...<<endonce>>` blocks
32
- - `<<jump NodeName>>` commands
33
- - `<<detour NodeName>>` commands
34
- - Variables and expressions
35
- - Enums (`<<enum>>` blocks)
36
- - Smart variables (`<<declare $var = expr>>`)
37
- - Node groups with `when:` conditions
38
- - Tags and metadata on nodes, lines, and options
39
- - Custom commands
16
+ * ✅ Full Yarn Spinner 3.x syntax support
17
+ * ✅ Parser for `.yarn` files → AST
18
+ * ✅ Compiler: AST → Intermediate Representation (IR)
19
+ * ✅ Runtime with `YarnRunner` class
20
+ * ✅ React hook: `useYarnRunner()`
21
+ * ✅ React components: `<DialogueView />`, `<DialogueScene />`, `<DialogueExample />`
22
+ *Typing animation with configurable speeds, cursor styles, and auto-advance controls
23
+ *Markup parsing with HTML formatting tags and CSS-ready spans
24
+ *Expression evaluator for conditions
25
+ *Command system with built-in handlers (`<<set>>`, `<<declare>>`, etc.)
26
+ *Scene system with backgrounds and actor images (with configurable portrait cross-fades)
27
+ *Custom CSS styling via `&css{}` attributes
28
+ * ✅ Built-in functions (`visited`, `random`, `min`, `max`, etc.)
29
+ * Support for:
30
+ * Lines with speakers
31
+ * Options with indented bodies
32
+ * `<<if>>/<<elseif>>/<<else>>/<<endif>>` blocks
33
+ * `<<once>>...<<endonce>>` blocks
34
+ * `<<jump NodeName>>` commands
35
+ * `<<detour NodeName>>` commands
36
+ * Variables and expressions
37
+ * Enums (`<<enum>>` blocks)
38
+ * Smart variables (`<<declare $var = expr>>`)
39
+ * Node groups with `when:` conditions
40
+ * Tags and metadata on nodes, lines, and options
41
+ * Custom commands
40
42
 
41
43
  ## Installation
42
44
 
@@ -74,6 +76,10 @@ const runner = new YarnRunner(program, {
74
76
  handleCommand: (cmd, parsed) => {
75
77
  console.log("Command:", cmd);
76
78
  },
79
+ onStoryEnd: ({ variables, storyEnd }) => {
80
+ console.log("Story ended!", storyEnd);
81
+ console.log("Final variables:", variables);
82
+ },
77
83
  });
78
84
 
79
85
  // Get current result
@@ -126,6 +132,10 @@ function App() {
126
132
  }
127
133
  ```
128
134
 
135
+ ### Typing Animation
136
+
137
+ Set `enableTypingAnimation` on `DialogueView` to enable the `TypingText` component for typewriter-style delivery. Tweak props like `typingSpeed`, `showTypingCursor`, `cursorCharacter`, `autoAdvanceAfterTyping`, `autoAdvanceDelay`, and `pauseBeforeAdvance` to fine-tune behaviour, and see [Typing Animation (React)](./docs/typing-animation.md) for details.
138
+
129
139
  ### Browser Demo
130
140
 
131
141
  Run the interactive browser demo:
@@ -140,70 +150,71 @@ This starts a Vite dev server with a live Yarn script editor and dialogue system
140
150
 
141
151
  ### Parser
142
152
 
143
- - `parseYarn(text: string): YarnDocument` — Parse Yarn script text into AST
153
+ * `parseYarn(text: string): YarnDocument` — Parse Yarn script text into AST
144
154
 
145
155
  ### Compiler
146
156
 
147
- - `compile(doc: YarnDocument, opts?: CompileOptions): IRProgram` — Compile AST to IR
157
+ * `compile(doc: YarnDocument, opts?: CompileOptions): IRProgram` — Compile AST to IR
148
158
 
149
159
  ### Runtime
150
160
 
151
- - `YarnRunner(program: IRProgram, options: RunnerOptions)` — Dialogue runner class
152
- - `currentResult: RuntimeResult | null` — Current dialogue state
153
- - `advance(optionIndex?: number): void` — Advance dialogue
154
- - `getVariable(name: string): unknown` — Get variable value
155
- - `setVariable(name: string, value: unknown): void` — Set variable value
156
- - `getVariables(): Readonly<Record<string, unknown>>` — Get all variables
161
+ * `YarnRunner(program: IRProgram, options: RunnerOptions)` — Dialogue runner class
162
+ * `currentResult: RuntimeResult | null` — Current dialogue state
163
+ * `advance(optionIndex?: number): void` — Advance dialogue
164
+ * `getVariable(name: string): unknown` — Get variable value
165
+ * `setVariable(name: string, value: unknown): void` — Set variable value
166
+ * `getVariables(): Readonly<Record<string, unknown>>` — Get all variables
167
+ * `onStoryEnd?: (payload: { variables: Readonly<Record<string, unknown>>; storyEnd: true }) => void` — Handler called when story reaches its end, providing final variable state
157
168
 
158
169
  ### React Components
159
170
 
160
- - `useYarnRunner(program: IRProgram, options: RunnerOptions)` — React hook
161
- - Returns: `{ result: RuntimeResult | null, advance: (optionIndex?: number) => void, runner: YarnRunner }`
162
- - `<DialogueView result={...} onAdvance={...} scenes={...} />` — Ready-to-use dialogue component
163
- - `<DialogueScene sceneName={...} speaker={...} scenes={...} />` — Scene background and actor display
164
- - `<DialogueExample />` — Full example with editor
171
+ * `useYarnRunner(program: IRProgram, options: RunnerOptions)` — React hook
172
+ * Returns: `{ result: RuntimeResult | null, advance: (optionIndex?: number) => void, runner: YarnRunner }`
173
+ * `<DialogueView result={...} onAdvance={...} scenes={...} />` — Ready-to-use dialogue component
174
+ * `<DialogueScene sceneName={...} speaker={...} scenes={...} actorTransitionDuration={...} /> — Scene background, actor display, and portrait transitions` — Scene background and actor display
175
+ * `<DialogueExample />` — Full example with editor
165
176
 
166
177
  ### Scene System
167
178
 
168
- - `parseScenes(input: string | Record<string, unknown>): SceneCollection` — Parse YAML scene configuration
169
- - `SceneCollection` — Type for scene configuration
170
- - `SceneConfig` — Type for individual scene config
171
- - `ActorConfig` — Type for actor configuration
179
+ * `parseScenes(input: string | Record<string, unknown>): SceneCollection` — Parse YAML scene configuration
180
+ * `SceneCollection` — Type for scene configuration
181
+ * `SceneConfig` — Type for individual scene config
182
+ * `ActorConfig` — Type for actor configuration
172
183
 
173
184
  See [Scene and Actor Setup Guide](./docs/scenes-actors-setup.md) for detailed documentation.
174
185
 
175
186
  ### Expression Evaluator
176
187
 
177
- - `ExpressionEvaluator(variables, functions, enums?)` — Safe expression evaluator
178
- - Supports: `===`, `!==`, `<`, `>`, `<=`, `>=`, `&&`, `||`, `!`
179
- - Operator aliases: `eq/is`, `neq`, `gt`, `lt`, `lte`, `gte`, `and`, `or`, `not`, `xor`
180
- - Function calls: `functionName(arg1, arg2)`
181
- - Variables, numbers, strings, booleans
182
- - Enum support with shorthand (`MyEnum.Case`)
188
+ * `ExpressionEvaluator(variables, functions, enums?)` — Safe expression evaluator
189
+ * Supports: `===`, `!==`, `<`, `>`, `<=`, `>=`, `&&`, `||`, `!`
190
+ * Operator aliases: `eq/is`, `neq`, `gt`, `lt`, `lte`, `gte`, `and`, `or`, `not`, `xor`
191
+ * Function calls: `functionName(arg1, arg2)`
192
+ * Variables, numbers, strings, booleans
193
+ * Enum support with shorthand (`MyEnum.Case`)
183
194
 
184
195
  ### Commands
185
196
 
186
- - `CommandHandler` — Command handler registry
187
- - Built-in: `<<set variable = value>>`, `<<declare $var = expr>>`
188
- - Register custom handlers: `handler.register("mycommand", (args) => { ... })`
189
- - `parseCommand(content: string): ParsedCommand` — Parse command string
197
+ * `CommandHandler` — Command handler registry
198
+ * Built-in: `<<set variable = value>>`, `<<declare $var = expr>>`
199
+ * Register custom handlers: `handler.register("mycommand", (args) => { ... })`
200
+ * `parseCommand(content: string): ParsedCommand` — Parse command string
190
201
 
191
202
  ### Built-in Functions
192
203
 
193
204
  The runtime includes these built-in functions:
194
205
 
195
- - `visited(nodeName)` — Check if a node was visited
196
- - `visited_count(nodeName)` — Get visit count for a node
197
- - `random()` — Random float 0-1
198
- - `random_range(min, max)` — Random integer in range
199
- - `dice(sides)` — Roll a die
200
- - `min(a, b)`, `max(a, b)` — Min/max values
201
- - `round(n)`, `round_places(n, places)` — Rounding
202
- - `floor(n)`, `ceil(n)` — Floor/ceiling
203
- - `inc(n)`, `dec(n)` — Increment/decrement
204
- - `decimal(n)` — Convert to decimal
205
- - `int(n)` — Convert to integer
206
- - `string(n)`, `number(n)`, `bool(n)` — Type conversions
206
+ * `visited(nodeName)` — Check if a node was visited
207
+ * `visited_count(nodeName)` — Get visit count for a node
208
+ * `random()` — Random float 0-1
209
+ * `random_range(min, max)` — Random integer in range
210
+ * `dice(sides)` — Roll a die
211
+ * `min(a, b)`, `max(a, b)` — Min/max values
212
+ * `round(n)`, `round_places(n, places)` — Rounding
213
+ * `floor(n)`, `ceil(n)` — Floor/ceiling
214
+ * `inc(n)`, `dec(n)` — Increment/decrement
215
+ * `decimal(n)` — Convert to decimal
216
+ * `int(n)` — Convert to integer
217
+ * `string(n)`, `number(n)`, `bool(n)` — Type conversions
207
218
 
208
219
  ## Example Yarn Script
209
220
 
@@ -326,13 +337,13 @@ npm run demo:build # Build browser demo
326
337
 
327
338
  Tests are located in `src/tests/` and cover:
328
339
 
329
- - Basic dialogue flow
330
- - Options and branching
331
- - Variables and flow control
332
- - Commands (`<<set>>`, `<<declare>>`, etc.)
333
- - `<<once>>` blocks
334
- - `<<jump>>` and `<<detour>>`
335
- - Full featured Yarn scripts
340
+ * Basic dialogue flow
341
+ * Options and branching
342
+ * Variables and flow control
343
+ * Commands (`<<set>>`, `<<declare>>`, etc.)
344
+ * `<<once>>` blocks
345
+ * `<<jump>>` and `<<detour>>`
346
+ * Full featured Yarn scripts
336
347
 
337
348
  Run tests:
338
349
 
@@ -344,21 +355,24 @@ npm test
344
355
 
345
356
  Additional documentation is available in the `docs/` folder:
346
357
 
347
- - [Lines, Nodes, and Options](./docs/lines-nodes-and-options.md)
348
- - [Options](./docs/options.md)
349
- - [Jumps](./docs/jumps.md)
350
- - [Detour](./docs/detour.md)
351
- - [Logic and Variables](./docs/logic-and-variables.md)
352
- - [Flow Control](./docs/flow-control.md)
353
- - [Once Blocks](./docs/once.md)
354
- - [Smart Variables](./docs/smart-variables.md)
355
- - [Enums](./docs/enums.md)
356
- - [Commands](./docs/commands.md)
357
- - [Functions](./docs/functions.md)
358
- - [Node Groups](./docs/node-groups.md)
359
- - [Tags and Metadata](./docs/tags-metadata.md)
360
- - [CSS Attribute](./docs/css-attribute.md)
361
- - [Scene and Actor Setup](./docs/scenes-actors-setup.md)
358
+ * [Lines, Nodes, and Options](./docs/lines-nodes-and-options.md)
359
+ * [Options](./docs/options.md)
360
+ * [Jumps](./docs/jumps.md)
361
+ * [Detour](./docs/detour.md)
362
+ * [Logic and Variables](./docs/logic-and-variables.md)
363
+ * [Flow Control](./docs/flow-control.md)
364
+ * [Once Blocks](./docs/once.md)
365
+ * [Smart Variables](./docs/smart-variables.md)
366
+ * [Enums](./docs/enums.md)
367
+ * [Commands](./docs/commands.md)
368
+ * [Functions](./docs/functions.md)
369
+ * [Node Groups](./docs/node-groups.md)
370
+ * [Tags and Metadata](./docs/tags-metadata.md)
371
+ * [CSS Attribute](./docs/css-attribute.md)
372
+ * [Typing Animation (React)](./docs/typing-animation.md)
373
+ * [Markup (Yarn Spinner)](./docs/markup.md)
374
+ * [Actor Image Transitions](./docs/actor-transition.md)
375
+ * [Scene and Actor Setup](./docs/scenes-actors-setup.md)
362
376
 
363
377
  ## License
364
378
 
@@ -34,7 +34,7 @@ export function compile(doc, opts = {}) {
34
34
  case "Line":
35
35
  {
36
36
  const line = s;
37
- block.push({ op: "line", speaker: line.speaker, text: line.text, tags: ensureLineId(line.tags) });
37
+ block.push({ op: "line", speaker: line.speaker, text: line.text, tags: ensureLineId(line.tags), markup: line.markup });
38
38
  }
39
39
  break;
40
40
  case "Command":
@@ -63,7 +63,7 @@ export function compile(doc, opts = {}) {
63
63
  }
64
64
  block.push({
65
65
  op: "options",
66
- options: s.options.map((o) => ({ text: o.text, tags: ensureLineId(o.tags), css: o.css, block: emitBlock(o.body) })),
66
+ options: s.options.map((o) => ({ text: o.text, tags: ensureLineId(o.tags), css: o.css, markup: o.markup, block: emitBlock(o.body) })),
67
67
  });
68
68
  break;
69
69
  }
@@ -106,7 +106,7 @@ export function compile(doc, opts = {}) {
106
106
  case "Line":
107
107
  {
108
108
  const line = s;
109
- block.push({ op: "line", speaker: line.speaker, text: line.text, tags: ensureLineId(line.tags) });
109
+ block.push({ op: "line", speaker: line.speaker, text: line.text, tags: ensureLineId(line.tags), markup: line.markup });
110
110
  }
111
111
  break;
112
112
  case "Command":
@@ -134,7 +134,7 @@ export function compile(doc, opts = {}) {
134
134
  }
135
135
  block.push({
136
136
  op: "options",
137
- options: s.options.map((o) => ({ text: o.text, tags: ensureLineId(o.tags), css: o.css, block: emitBlock(o.body) })),
137
+ options: s.options.map((o) => ({ text: o.text, tags: ensureLineId(o.tags), css: o.css, markup: o.markup, block: emitBlock(o.body) })),
138
138
  });
139
139
  break;
140
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compile/compiler.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,OAAO,CAAC,GAAiB,EAAE,OAAuB,EAAE;IAClE,MAAM,OAAO,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACpD,yBAAyB;IACzB,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,SAAS,YAAY,CAAC,IAAe;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,6CAA6C;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,YAAY,EAAE,CAAC;QACvD,0DAA0D;QAC1D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,SAAS,SAAS,CAAC,KAAkB;gBACrC,MAAM,KAAK,GAAoB,EAAE,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;wBACf,KAAK,MAAM;4BACT,CAAC;gCACC,MAAM,IAAI,GAAG,CAAS,CAAC;gCACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACpG,CAAC;4BACD,MAAM;wBACR,KAAK,SAAS;4BACZ,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;4BAClD,MAAM;wBACR,KAAK,MAAM;4BACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC7C,MAAM;wBACR,KAAK,QAAQ;4BACX,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC/C,MAAM;wBACR,KAAK,aAAa,CAAC,CAAC,CAAC;4BACnB,wDAAwD;4BACxD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACrB,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oCACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oCACrC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC;wCAClE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oCACvB,CAAC;oCACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAC5B,MAAM;gCACR,CAAC;gCACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;oCAAE,MAAM,CAAC,8CAA8C;4BACjF,CAAC;4BACD,KAAK,CAAC,IAAI,CAAC;gCACT,EAAE,EAAE,SAAS;gCACb,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACrI,CAAC,CAAC;4BACH,MAAM;wBACR,CAAC;wBACD,KAAK,IAAI;4BACP,KAAK,CAAC,IAAI,CAAC;gCACT,EAAE,EAAE,IAAI;gCACR,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACxF,CAAC,CAAC;4BACH,MAAM;wBACR,KAAK,MAAM;4BACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC9G,MAAM;wBACR,KAAK,MAAM;4BACT,gFAAgF;4BAChF,MAAM;oBACV,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAW;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAG,IAAY,CAAC,GAAG;gBACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;aAC/C,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAoB,EAAE,CAAC;gBACzC,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,SAAS,SAAS,CAAC,KAAkB;oBACnC,MAAM,KAAK,GAAoB,EAAE,CAAC;oBAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACtB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;4BACf,KAAK,MAAM;gCACT,CAAC;oCACC,MAAM,IAAI,GAAG,CAAS,CAAC;oCACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCACpG,CAAC;gCACD,MAAM;4BACR,KAAK,SAAS;gCACZ,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gCAClD,MAAM;4BACR,KAAK,MAAM;gCACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gCAC7C,MAAM;4BACR,KAAK,QAAQ;gCACX,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gCAC/C,MAAM;4BACR,KAAK,aAAa,CAAC,CAAC,CAAC;gCACnB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oCAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oCACrB,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;wCACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;wCACrC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC;4CAClE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wCACvB,CAAC;wCACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wCAC5B,MAAM;oCACR,CAAC;oCACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;wCAAE,MAAM;gCAClC,CAAC;gCACD,KAAK,CAAC,IAAI,CAAC;oCACT,EAAE,EAAE,SAAS;oCACb,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,CAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCACrI,CAAC,CAAC;gCACH,MAAM;4BACR,CAAC;4BACD,KAAK,IAAI;gCACP,KAAK,CAAC,IAAI,CAAC;oCACT,EAAE,EAAE,IAAI;oCACR,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCACxF,CAAC,CAAC;gCACH,MAAM;4BACR,KAAK,MAAM;gCACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAC9G,MAAM;4BACR,KAAK,MAAM;gCACT,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,YAAY;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAG,IAAY,CAAC,GAAG;oBACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;iBAC/C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAgB;gBACzB,KAAK;gBACL,KAAK,EAAE,UAAU;aAClB,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compile/compiler.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,OAAO,CAAC,GAAiB,EAAE,OAAuB,EAAE;IAClE,MAAM,OAAO,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACpD,yBAAyB;IACzB,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,SAAS,YAAY,CAAC,IAAe;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,6CAA6C;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,YAAY,EAAE,CAAC;QACvD,0DAA0D;QAC1D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,SAAS,SAAS,CAAC,KAAkB;gBACrC,MAAM,KAAK,GAAoB,EAAE,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;wBACf,KAAK,MAAM;4BACT,CAAC;gCACC,MAAM,IAAI,GAAG,CAAS,CAAC;gCACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;4BACzH,CAAC;4BACD,MAAM;wBACR,KAAK,SAAS;4BACZ,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;4BAClD,MAAM;wBACR,KAAK,MAAM;4BACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC7C,MAAM;wBACR,KAAK,QAAQ;4BACX,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC/C,MAAM;wBACR,KAAK,aAAa,CAAC,CAAC,CAAC;4BACnB,wDAAwD;4BACxD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACrB,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oCACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oCACrC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC;wCAClE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oCACvB,CAAC;oCACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAC5B,MAAM;gCACR,CAAC;gCACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;oCAAE,MAAM,CAAC,8CAA8C;4BACjF,CAAC;4BACD,KAAK,CAAC,IAAI,CAAC;gCACT,EAAE,EAAE,SAAS;gCACb,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,CAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACvJ,CAAC,CAAC;4BACH,MAAM;wBACR,CAAC;wBACD,KAAK,IAAI;4BACP,KAAK,CAAC,IAAI,CAAC;gCACT,EAAE,EAAE,IAAI;gCACR,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACxF,CAAC,CAAC;4BACH,MAAM;wBACR,KAAK,MAAM;4BACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC9G,MAAM;wBACR,KAAK,MAAM;4BACT,gFAAgF;4BAChF,MAAM;oBACV,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAW;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAG,IAAY,CAAC,GAAG;gBACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;aAC/C,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAoB,EAAE,CAAC;gBACzC,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,SAAS,SAAS,CAAC,KAAkB;oBACnC,MAAM,KAAK,GAAoB,EAAE,CAAC;oBAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACtB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;4BACf,KAAK,MAAM;gCACT,CAAC;oCACC,MAAM,IAAI,GAAG,CAAS,CAAC;oCACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gCACzH,CAAC;gCACD,MAAM;4BACR,KAAK,SAAS;gCACZ,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gCAClD,MAAM;4BACR,KAAK,MAAM;gCACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gCAC7C,MAAM;4BACR,KAAK,QAAQ;gCACX,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gCAC/C,MAAM;4BACR,KAAK,aAAa,CAAC,CAAC,CAAC;gCACnB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oCAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oCACrB,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;wCACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;wCACrC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC;4CAClE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wCACvB,CAAC;wCACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wCAC5B,MAAM;oCACR,CAAC;oCACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;wCAAE,MAAM;gCAClC,CAAC;gCACD,KAAK,CAAC,IAAI,CAAC;oCACT,EAAE,EAAE,SAAS;oCACb,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,CAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCACvJ,CAAC,CAAC;gCACH,MAAM;4BACR,CAAC;4BACD,KAAK,IAAI;gCACP,KAAK,CAAC,IAAI,CAAC;oCACT,EAAE,EAAE,IAAI;oCACR,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCACxF,CAAC,CAAC;gCACH,MAAM;4BACR,KAAK,MAAM;gCACT,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAC9G,MAAM;4BACR,KAAK,MAAM;gCACT,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,YAAY;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAG,IAAY,CAAC,GAAG;oBACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;iBAC/C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAgB;gBACzB,KAAK;gBACL,KAAK,EAAE,UAAU;aAClB,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { MarkupParseResult } from "../markup/types.js";
1
2
  export type IRProgram = {
2
3
  enums: Record<string, string[]>;
3
4
  nodes: Record<string, IRNode | IRNodeGroup>;
@@ -18,6 +19,7 @@ export type IRInstruction = {
18
19
  speaker?: string;
19
20
  text: string;
20
21
  tags?: string[];
22
+ markup?: MarkupParseResult;
21
23
  } | {
22
24
  op: "command";
23
25
  content: string;
@@ -33,6 +35,7 @@ export type IRInstruction = {
33
35
  text: string;
34
36
  tags?: string[];
35
37
  css?: string;
38
+ markup?: MarkupParseResult;
36
39
  block: IRInstruction[];
37
40
  }>;
38
41
  } | {
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export * from "./parse/lexer.js";
3
3
  export * from "./parse/parser.js";
4
4
  export * from "./compile/ir.js";
5
5
  export * from "./compile/compiler.js";
6
+ export * from "./markup/types.js";
7
+ export * from "./markup/parser.js";
6
8
  export * from "./runtime/results.js";
7
9
  export * from "./runtime/evaluator.js";
8
10
  export * from "./runtime/commands.js";
@@ -14,3 +16,4 @@ export * from "./react/useYarnRunner.js";
14
16
  export * from "./react/DialogueView.js";
15
17
  export * from "./react/DialogueExample.js";
16
18
  export * from "./react/DialogueScene.js";
19
+ export * from "./react/MarkupRenderer.js";
package/dist/index.js CHANGED
@@ -3,6 +3,8 @@ export * from "./parse/lexer.js";
3
3
  export * from "./parse/parser.js";
4
4
  export * from "./compile/ir.js";
5
5
  export * from "./compile/compiler.js";
6
+ export * from "./markup/types.js";
7
+ export * from "./markup/parser.js";
6
8
  export * from "./runtime/results.js";
7
9
  export * from "./runtime/evaluator.js";
8
10
  export * from "./runtime/commands.js";
@@ -14,4 +16,5 @@ export * from "./react/useYarnRunner.js";
14
16
  export * from "./react/DialogueView.js";
15
17
  export * from "./react/DialogueExample.js";
16
18
  export * from "./react/DialogueScene.js";
19
+ export * from "./react/MarkupRenderer.js";
17
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MarkupParseResult } from "./types.js";
2
+ export declare function parseMarkup(input: string): MarkupParseResult;
3
+ export declare function sliceMarkup(result: MarkupParseResult, start: number, end?: number): MarkupParseResult;