yarn-spinner-runner-ts 0.1.2 → 0.1.3
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 +97 -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/results.d.ts +3 -0
- package/dist/runtime/runner.d.ts +1 -0
- package/dist/runtime/runner.js +151 -14
- package/dist/runtime/runner.js.map +1 -1
- 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/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 +1 -1
- 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/results.ts +3 -1
- package/src/runtime/runner.ts +158 -14
- 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/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
|
|
|
@@ -126,6 +128,10 @@ function App() {
|
|
|
126
128
|
}
|
|
127
129
|
```
|
|
128
130
|
|
|
131
|
+
### Typing Animation
|
|
132
|
+
|
|
133
|
+
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.
|
|
134
|
+
|
|
129
135
|
### Browser Demo
|
|
130
136
|
|
|
131
137
|
Run the interactive browser demo:
|
|
@@ -140,70 +146,70 @@ This starts a Vite dev server with a live Yarn script editor and dialogue system
|
|
|
140
146
|
|
|
141
147
|
### Parser
|
|
142
148
|
|
|
143
|
-
|
|
149
|
+
* `parseYarn(text: string): YarnDocument` — Parse Yarn script text into AST
|
|
144
150
|
|
|
145
151
|
### Compiler
|
|
146
152
|
|
|
147
|
-
|
|
153
|
+
* `compile(doc: YarnDocument, opts?: CompileOptions): IRProgram` — Compile AST to IR
|
|
148
154
|
|
|
149
155
|
### Runtime
|
|
150
156
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
+
* `YarnRunner(program: IRProgram, options: RunnerOptions)` — Dialogue runner class
|
|
158
|
+
* `currentResult: RuntimeResult | null` — Current dialogue state
|
|
159
|
+
* `advance(optionIndex?: number): void` — Advance dialogue
|
|
160
|
+
* `getVariable(name: string): unknown` — Get variable value
|
|
161
|
+
* `setVariable(name: string, value: unknown): void` — Set variable value
|
|
162
|
+
* `getVariables(): Readonly<Record<string, unknown>>` — Get all variables
|
|
157
163
|
|
|
158
164
|
### React Components
|
|
159
165
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
166
|
+
* `useYarnRunner(program: IRProgram, options: RunnerOptions)` — React hook
|
|
167
|
+
* Returns: `{ result: RuntimeResult | null, advance: (optionIndex?: number) => void, runner: YarnRunner }`
|
|
168
|
+
* `<DialogueView result={...} onAdvance={...} scenes={...} />` — Ready-to-use dialogue component
|
|
169
|
+
* `<DialogueScene sceneName={...} speaker={...} scenes={...} actorTransitionDuration={...} /> — Scene background, actor display, and portrait transitions` — Scene background and actor display
|
|
170
|
+
* `<DialogueExample />` — Full example with editor
|
|
165
171
|
|
|
166
172
|
### Scene System
|
|
167
173
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
174
|
+
* `parseScenes(input: string | Record<string, unknown>): SceneCollection` — Parse YAML scene configuration
|
|
175
|
+
* `SceneCollection` — Type for scene configuration
|
|
176
|
+
* `SceneConfig` — Type for individual scene config
|
|
177
|
+
* `ActorConfig` — Type for actor configuration
|
|
172
178
|
|
|
173
179
|
See [Scene and Actor Setup Guide](./docs/scenes-actors-setup.md) for detailed documentation.
|
|
174
180
|
|
|
175
181
|
### Expression Evaluator
|
|
176
182
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
+
* `ExpressionEvaluator(variables, functions, enums?)` — Safe expression evaluator
|
|
184
|
+
* Supports: `===`, `!==`, `<`, `>`, `<=`, `>=`, `&&`, `||`, `!`
|
|
185
|
+
* Operator aliases: `eq/is`, `neq`, `gt`, `lt`, `lte`, `gte`, `and`, `or`, `not`, `xor`
|
|
186
|
+
* Function calls: `functionName(arg1, arg2)`
|
|
187
|
+
* Variables, numbers, strings, booleans
|
|
188
|
+
* Enum support with shorthand (`MyEnum.Case`)
|
|
183
189
|
|
|
184
190
|
### Commands
|
|
185
191
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
192
|
+
* `CommandHandler` — Command handler registry
|
|
193
|
+
* Built-in: `<<set variable = value>>`, `<<declare $var = expr>>`
|
|
194
|
+
* Register custom handlers: `handler.register("mycommand", (args) => { ... })`
|
|
195
|
+
* `parseCommand(content: string): ParsedCommand` — Parse command string
|
|
190
196
|
|
|
191
197
|
### Built-in Functions
|
|
192
198
|
|
|
193
199
|
The runtime includes these built-in functions:
|
|
194
200
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
201
|
+
* `visited(nodeName)` — Check if a node was visited
|
|
202
|
+
* `visited_count(nodeName)` — Get visit count for a node
|
|
203
|
+
* `random()` — Random float 0-1
|
|
204
|
+
* `random_range(min, max)` — Random integer in range
|
|
205
|
+
* `dice(sides)` — Roll a die
|
|
206
|
+
* `min(a, b)`, `max(a, b)` — Min/max values
|
|
207
|
+
* `round(n)`, `round_places(n, places)` — Rounding
|
|
208
|
+
* `floor(n)`, `ceil(n)` — Floor/ceiling
|
|
209
|
+
* `inc(n)`, `dec(n)` — Increment/decrement
|
|
210
|
+
* `decimal(n)` — Convert to decimal
|
|
211
|
+
* `int(n)` — Convert to integer
|
|
212
|
+
* `string(n)`, `number(n)`, `bool(n)` — Type conversions
|
|
207
213
|
|
|
208
214
|
## Example Yarn Script
|
|
209
215
|
|
|
@@ -326,13 +332,13 @@ npm run demo:build # Build browser demo
|
|
|
326
332
|
|
|
327
333
|
Tests are located in `src/tests/` and cover:
|
|
328
334
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
335
|
+
* Basic dialogue flow
|
|
336
|
+
* Options and branching
|
|
337
|
+
* Variables and flow control
|
|
338
|
+
* Commands (`<<set>>`, `<<declare>>`, etc.)
|
|
339
|
+
* `<<once>>` blocks
|
|
340
|
+
* `<<jump>>` and `<<detour>>`
|
|
341
|
+
* Full featured Yarn scripts
|
|
336
342
|
|
|
337
343
|
Run tests:
|
|
338
344
|
|
|
@@ -344,21 +350,24 @@ npm test
|
|
|
344
350
|
|
|
345
351
|
Additional documentation is available in the `docs/` folder:
|
|
346
352
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
353
|
+
* [Lines, Nodes, and Options](./docs/lines-nodes-and-options.md)
|
|
354
|
+
* [Options](./docs/options.md)
|
|
355
|
+
* [Jumps](./docs/jumps.md)
|
|
356
|
+
* [Detour](./docs/detour.md)
|
|
357
|
+
* [Logic and Variables](./docs/logic-and-variables.md)
|
|
358
|
+
* [Flow Control](./docs/flow-control.md)
|
|
359
|
+
* [Once Blocks](./docs/once.md)
|
|
360
|
+
* [Smart Variables](./docs/smart-variables.md)
|
|
361
|
+
* [Enums](./docs/enums.md)
|
|
362
|
+
* [Commands](./docs/commands.md)
|
|
363
|
+
* [Functions](./docs/functions.md)
|
|
364
|
+
* [Node Groups](./docs/node-groups.md)
|
|
365
|
+
* [Tags and Metadata](./docs/tags-metadata.md)
|
|
366
|
+
* [CSS Attribute](./docs/css-attribute.md)
|
|
367
|
+
* [Typing Animation (React)](./docs/typing-animation.md)
|
|
368
|
+
* [Markup (Yarn Spinner)](./docs/markup.md)
|
|
369
|
+
* [Actor Image Transitions](./docs/actor-transition.md)
|
|
370
|
+
* [Scene and Actor Setup](./docs/scenes-actors-setup.md)
|
|
362
371
|
|
|
363
372
|
## License
|
|
364
373
|
|
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"}
|