yarn-spinner-runner-ts 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -88
- package/dist/compile/compiler.js +4 -4
- package/dist/compile/compiler.js.map +1 -1
- package/dist/compile/ir.d.ts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/markup/parser.d.ts +3 -0
- package/dist/markup/parser.js +332 -0
- package/dist/markup/parser.js.map +1 -0
- package/dist/markup/types.d.ts +17 -0
- package/dist/markup/types.js +2 -0
- package/dist/markup/types.js.map +1 -0
- package/dist/model/ast.d.ts +3 -0
- package/dist/parse/parser.js +57 -8
- package/dist/parse/parser.js.map +1 -1
- package/dist/react/DialogueExample.js +6 -4
- package/dist/react/DialogueExample.js.map +1 -1
- package/dist/react/DialogueScene.d.ts +2 -1
- package/dist/react/DialogueScene.js +95 -26
- package/dist/react/DialogueScene.js.map +1 -1
- package/dist/react/DialogueView.d.ts +10 -1
- package/dist/react/DialogueView.js +68 -5
- package/dist/react/DialogueView.js.map +1 -1
- package/dist/react/MarkupRenderer.d.ts +8 -0
- package/dist/react/MarkupRenderer.js +64 -0
- package/dist/react/MarkupRenderer.js.map +1 -0
- package/dist/react/TypingText.d.ts +14 -0
- package/dist/react/TypingText.js +78 -0
- package/dist/react/TypingText.js.map +1 -0
- package/dist/runtime/commands.js +12 -1
- package/dist/runtime/commands.js.map +1 -1
- package/dist/runtime/results.d.ts +3 -0
- package/dist/runtime/runner.d.ts +7 -0
- package/dist/runtime/runner.js +161 -14
- package/dist/runtime/runner.js.map +1 -1
- package/dist/tests/custom_functions.test.d.ts +1 -0
- package/dist/tests/custom_functions.test.js +129 -0
- package/dist/tests/custom_functions.test.js.map +1 -0
- package/dist/tests/markup.test.d.ts +1 -0
- package/dist/tests/markup.test.js +46 -0
- package/dist/tests/markup.test.js.map +1 -0
- package/dist/tests/nodes_lines.test.js +25 -1
- package/dist/tests/nodes_lines.test.js.map +1 -1
- package/dist/tests/options.test.js +30 -1
- package/dist/tests/options.test.js.map +1 -1
- package/dist/tests/story_end.test.d.ts +1 -0
- package/dist/tests/story_end.test.js +37 -0
- package/dist/tests/story_end.test.js.map +1 -0
- package/dist/tests/typing-text.test.d.ts +1 -0
- package/dist/tests/typing-text.test.js +12 -0
- package/dist/tests/typing-text.test.js.map +1 -0
- package/docs/actor-transition.md +34 -0
- package/docs/markup.md +34 -19
- package/docs/scenes-actors-setup.md +1 -0
- package/docs/typing-animation.md +44 -0
- package/eslint.config.cjs +3 -0
- package/examples/browser/index.html +1 -1
- package/examples/browser/main.tsx +0 -2
- package/package.json +6 -6
- package/src/compile/compiler.ts +4 -4
- package/src/compile/ir.ts +3 -2
- package/src/index.ts +3 -0
- package/src/markup/parser.ts +372 -0
- package/src/markup/types.ts +22 -0
- package/src/model/ast.ts +17 -13
- package/src/parse/parser.ts +60 -8
- package/src/react/DialogueExample.tsx +18 -42
- package/src/react/DialogueScene.tsx +143 -44
- package/src/react/DialogueView.tsx +122 -8
- package/src/react/MarkupRenderer.tsx +110 -0
- package/src/react/TypingText.tsx +127 -0
- package/src/react/dialogue.css +26 -13
- package/src/runtime/commands.ts +14 -1
- package/src/runtime/results.ts +3 -1
- package/src/runtime/runner.ts +170 -14
- package/src/tests/custom_functions.test.ts +140 -0
- package/src/tests/markup.test.ts +62 -0
- package/src/tests/nodes_lines.test.ts +35 -1
- package/src/tests/options.test.ts +39 -1
- 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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
153
|
+
* `parseYarn(text: string): YarnDocument` — Parse Yarn script text into AST
|
|
144
154
|
|
|
145
155
|
### Compiler
|
|
146
156
|
|
|
147
|
-
|
|
157
|
+
* `compile(doc: YarnDocument, opts?: CompileOptions): IRProgram` — Compile AST to IR
|
|
148
158
|
|
|
149
159
|
### Runtime
|
|
150
160
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
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
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
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
|
|
package/dist/compile/compiler.js
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compile/compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/compile/ir.d.ts
CHANGED
|
@@ -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"}
|