@sharpee/transcript-tester 0.9.61-beta
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/.turbo/turbo-build.log +4 -0
- package/LICENSE +21 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +367 -0
- package/dist/cli.js.map +1 -0
- package/dist/condition-evaluator.d.ts +30 -0
- package/dist/condition-evaluator.d.ts.map +1 -0
- package/dist/condition-evaluator.js +314 -0
- package/dist/condition-evaluator.js.map +1 -0
- package/dist/fast-cli.d.ts +13 -0
- package/dist/fast-cli.d.ts.map +1 -0
- package/dist/fast-cli.js +363 -0
- package/dist/fast-cli.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/navigator.d.ts +27 -0
- package/dist/navigator.d.ts.map +1 -0
- package/dist/navigator.js +303 -0
- package/dist/navigator.js.map +1 -0
- package/dist/parser.d.ts +19 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +453 -0
- package/dist/parser.js.map +1 -0
- package/dist/reporter.d.ts +41 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +386 -0
- package/dist/reporter.js.map +1 -0
- package/dist/runner.d.ts +44 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +977 -0
- package/dist/runner.js.map +1 -0
- package/dist/story-loader.d.ts +31 -0
- package/dist/story-loader.d.ts.map +1 -0
- package/dist/story-loader.js +169 -0
- package/dist/story-loader.js.map +1 -0
- package/dist/types.d.ts +204 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist-esm/cli.d.ts +11 -0
- package/dist-esm/cli.d.ts.map +1 -0
- package/dist-esm/cli.js +332 -0
- package/dist-esm/cli.js.map +1 -0
- package/dist-esm/condition-evaluator.d.ts +30 -0
- package/dist-esm/condition-evaluator.d.ts.map +1 -0
- package/dist-esm/condition-evaluator.js +311 -0
- package/dist-esm/condition-evaluator.js.map +1 -0
- package/dist-esm/fast-cli.d.ts +13 -0
- package/dist-esm/fast-cli.d.ts.map +1 -0
- package/dist-esm/fast-cli.js +328 -0
- package/dist-esm/fast-cli.js.map +1 -0
- package/dist-esm/index.d.ts +17 -0
- package/dist-esm/index.d.ts.map +1 -0
- package/dist-esm/index.js +21 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/navigator.d.ts +27 -0
- package/dist-esm/navigator.d.ts.map +1 -0
- package/dist-esm/navigator.js +300 -0
- package/dist-esm/navigator.js.map +1 -0
- package/dist-esm/parser.d.ts +19 -0
- package/dist-esm/parser.d.ts.map +1 -0
- package/dist-esm/parser.js +415 -0
- package/dist-esm/parser.js.map +1 -0
- package/dist-esm/reporter.d.ts +41 -0
- package/dist-esm/reporter.d.ts.map +1 -0
- package/dist-esm/reporter.js +342 -0
- package/dist-esm/reporter.js.map +1 -0
- package/dist-esm/runner.d.ts +44 -0
- package/dist-esm/runner.d.ts.map +1 -0
- package/dist-esm/runner.js +941 -0
- package/dist-esm/runner.js.map +1 -0
- package/dist-esm/story-loader.d.ts +31 -0
- package/dist-esm/story-loader.d.ts.map +1 -0
- package/dist-esm/story-loader.js +131 -0
- package/dist-esm/story-loader.js.map +1 -0
- package/dist-esm/types.d.ts +204 -0
- package/dist-esm/types.d.ts.map +1 -0
- package/dist-esm/types.js +7 -0
- package/dist-esm/types.js.map +1 -0
- package/dist-npm/cli.d.ts +11 -0
- package/dist-npm/cli.d.ts.map +1 -0
- package/dist-npm/cli.js +367 -0
- package/dist-npm/cli.js.map +1 -0
- package/dist-npm/condition-evaluator.d.ts +30 -0
- package/dist-npm/condition-evaluator.d.ts.map +1 -0
- package/dist-npm/condition-evaluator.js +314 -0
- package/dist-npm/condition-evaluator.js.map +1 -0
- package/dist-npm/fast-cli.d.ts +13 -0
- package/dist-npm/fast-cli.d.ts.map +1 -0
- package/dist-npm/fast-cli.js +363 -0
- package/dist-npm/fast-cli.js.map +1 -0
- package/dist-npm/index.d.ts +17 -0
- package/dist-npm/index.d.ts.map +1 -0
- package/dist-npm/index.js +48 -0
- package/dist-npm/index.js.map +1 -0
- package/dist-npm/navigator.d.ts +27 -0
- package/dist-npm/navigator.d.ts.map +1 -0
- package/dist-npm/navigator.js +303 -0
- package/dist-npm/navigator.js.map +1 -0
- package/dist-npm/parser.d.ts +19 -0
- package/dist-npm/parser.d.ts.map +1 -0
- package/dist-npm/parser.js +453 -0
- package/dist-npm/parser.js.map +1 -0
- package/dist-npm/reporter.d.ts +41 -0
- package/dist-npm/reporter.d.ts.map +1 -0
- package/dist-npm/reporter.js +386 -0
- package/dist-npm/reporter.js.map +1 -0
- package/dist-npm/runner.d.ts +44 -0
- package/dist-npm/runner.d.ts.map +1 -0
- package/dist-npm/runner.js +977 -0
- package/dist-npm/runner.js.map +1 -0
- package/dist-npm/story-loader.d.ts +31 -0
- package/dist-npm/story-loader.d.ts.map +1 -0
- package/dist-npm/story-loader.js +169 -0
- package/dist-npm/story-loader.js.map +1 -0
- package/dist-npm/types.d.ts +204 -0
- package/dist-npm/types.d.ts.map +1 -0
- package/dist-npm/types.js +8 -0
- package/dist-npm/types.js.map +1 -0
- package/package.json +49 -0
- package/src/cli.ts +385 -0
- package/src/condition-evaluator.ts +382 -0
- package/src/fast-cli.ts +403 -0
- package/src/index.ts +26 -0
- package/src/navigator.ts +365 -0
- package/src/parser.ts +488 -0
- package/src/reporter.ts +409 -0
- package/src/runner.ts +1152 -0
- package/src/story-loader.ts +168 -0
- package/src/types.ts +244 -0
- package/tsconfig.esm.json +11 -0
- package/tsconfig.esm.tsbuildinfo +1 -0
- package/tsconfig.json +22 -0
- package/tsconfig.tsbuildinfo +1 -0
package/dist-esm/cli.js
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Transcript Tester CLI
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* transcript-test <story-path> [transcript-files...]
|
|
7
|
+
* transcript-test <story-path> --all
|
|
8
|
+
* transcript-test <story-path> --verbose
|
|
9
|
+
*/
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import * as fs from 'fs';
|
|
12
|
+
import * as readline from 'readline';
|
|
13
|
+
import { parseTranscriptFile, validateTranscript } from './parser';
|
|
14
|
+
import { runTranscript } from './runner';
|
|
15
|
+
import { reportTranscript, reportTestRun, getExitCode, generateTimestamp, writeResultsToJson, writeReportToFile } from './reporter';
|
|
16
|
+
import { loadStory, findTranscripts } from './story-loader';
|
|
17
|
+
/**
|
|
18
|
+
* Parse command line arguments
|
|
19
|
+
*/
|
|
20
|
+
function parseArgs(args) {
|
|
21
|
+
const options = {
|
|
22
|
+
storyPath: '',
|
|
23
|
+
transcriptPaths: [],
|
|
24
|
+
verbose: false,
|
|
25
|
+
stopOnFailure: false,
|
|
26
|
+
all: false,
|
|
27
|
+
chain: false,
|
|
28
|
+
outputDir: null,
|
|
29
|
+
play: false
|
|
30
|
+
};
|
|
31
|
+
let i = 0;
|
|
32
|
+
while (i < args.length) {
|
|
33
|
+
const arg = args[i];
|
|
34
|
+
if (arg === '--verbose' || arg === '-v') {
|
|
35
|
+
options.verbose = true;
|
|
36
|
+
}
|
|
37
|
+
else if (arg === '--stop-on-failure' || arg === '-s') {
|
|
38
|
+
options.stopOnFailure = true;
|
|
39
|
+
}
|
|
40
|
+
else if (arg === '--all' || arg === '-a') {
|
|
41
|
+
options.all = true;
|
|
42
|
+
}
|
|
43
|
+
else if (arg === '--chain' || arg === '-c') {
|
|
44
|
+
options.chain = true;
|
|
45
|
+
}
|
|
46
|
+
else if (arg === '--play' || arg === '-p') {
|
|
47
|
+
options.play = true;
|
|
48
|
+
}
|
|
49
|
+
else if (arg === '--output-dir' || arg === '-o') {
|
|
50
|
+
i++;
|
|
51
|
+
if (i < args.length) {
|
|
52
|
+
options.outputDir = args[i];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else if (arg === '--help' || arg === '-h') {
|
|
56
|
+
printHelp();
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
else if (!arg.startsWith('-')) {
|
|
60
|
+
if (!options.storyPath) {
|
|
61
|
+
options.storyPath = arg;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
options.transcriptPaths.push(arg);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
i++;
|
|
68
|
+
}
|
|
69
|
+
return options;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Print help message
|
|
73
|
+
*/
|
|
74
|
+
function printHelp() {
|
|
75
|
+
console.log(`
|
|
76
|
+
Transcript Tester - Test Sharpee stories with transcript files
|
|
77
|
+
|
|
78
|
+
Usage:
|
|
79
|
+
transcript-test <story-path> [transcript-files...] [options]
|
|
80
|
+
transcript-test <story-path> --play
|
|
81
|
+
|
|
82
|
+
Arguments:
|
|
83
|
+
story-path Path to the story directory (e.g., stories/dungeo)
|
|
84
|
+
transcript-files One or more .transcript files to run
|
|
85
|
+
|
|
86
|
+
Options:
|
|
87
|
+
-p, --play Interactive play mode (REPL)
|
|
88
|
+
-a, --all Run all transcripts in the story's tests/ directory
|
|
89
|
+
-c, --chain Chain transcripts (don't reset game state between them)
|
|
90
|
+
-v, --verbose Show detailed output for each command
|
|
91
|
+
-s, --stop-on-failure Stop on first failure
|
|
92
|
+
-o, --output-dir <dir> Write timestamped results to directory (JSON + text report)
|
|
93
|
+
-h, --help Show this help message
|
|
94
|
+
|
|
95
|
+
Examples:
|
|
96
|
+
transcript-test stories/dungeo --play
|
|
97
|
+
transcript-test stories/dungeo tests/navigation.transcript
|
|
98
|
+
transcript-test stories/dungeo --all
|
|
99
|
+
transcript-test stories/dungeo tests/*.transcript --verbose
|
|
100
|
+
transcript-test stories/dungeo --all -o test-results
|
|
101
|
+
transcript-test stories/dungeo --chain tests/setup.transcript tests/puzzle.transcript
|
|
102
|
+
`);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Run interactive play mode (REPL)
|
|
106
|
+
*/
|
|
107
|
+
async function runInteractiveMode(game) {
|
|
108
|
+
const rl = readline.createInterface({
|
|
109
|
+
input: process.stdin,
|
|
110
|
+
output: process.stdout
|
|
111
|
+
});
|
|
112
|
+
let debugMode = false;
|
|
113
|
+
let traceMode = false;
|
|
114
|
+
console.log('\n--- Interactive Mode ---');
|
|
115
|
+
console.log('Type commands to play. Special commands:');
|
|
116
|
+
console.log(' /quit, /q - Exit the game');
|
|
117
|
+
console.log(' /debug - Toggle debug mode (show events after each command)');
|
|
118
|
+
console.log(' /trace - Toggle parser trace mode (show grammar matching)');
|
|
119
|
+
console.log(' /events - Show events from last command');
|
|
120
|
+
console.log(' /look, /l - Shortcut for "look"');
|
|
121
|
+
console.log(' /inv, /i - Shortcut for "inventory"');
|
|
122
|
+
console.log('');
|
|
123
|
+
// Show initial room description
|
|
124
|
+
const initialOutput = await game.executeCommand('look');
|
|
125
|
+
console.log(initialOutput);
|
|
126
|
+
const prompt = () => {
|
|
127
|
+
rl.question('\n> ', async (input) => {
|
|
128
|
+
const trimmed = input.trim();
|
|
129
|
+
if (!trimmed) {
|
|
130
|
+
prompt();
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// Handle special commands
|
|
134
|
+
if (trimmed === '/quit' || trimmed === '/q') {
|
|
135
|
+
console.log('Goodbye!');
|
|
136
|
+
rl.close();
|
|
137
|
+
process.exit(0);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (trimmed === '/restart') {
|
|
141
|
+
console.log('(Restart not yet implemented - please exit and rerun)');
|
|
142
|
+
prompt();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (trimmed === '/debug') {
|
|
146
|
+
debugMode = !debugMode;
|
|
147
|
+
console.log(`Debug mode: ${debugMode ? 'ON' : 'OFF'}`);
|
|
148
|
+
prompt();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (trimmed === '/trace') {
|
|
152
|
+
traceMode = !traceMode;
|
|
153
|
+
process.env.PARSER_DEBUG = traceMode ? 'true' : '';
|
|
154
|
+
console.log(`Parser trace: ${traceMode ? 'ON' : 'OFF'}`);
|
|
155
|
+
prompt();
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (trimmed === '/events') {
|
|
159
|
+
if (game.lastEvents && game.lastEvents.length > 0) {
|
|
160
|
+
console.log('\nEvents from last command:');
|
|
161
|
+
for (const event of game.lastEvents) {
|
|
162
|
+
console.log(` ${event.type}`);
|
|
163
|
+
if (event.data && Object.keys(event.data).length > 0) {
|
|
164
|
+
console.log(` ${JSON.stringify(event.data)}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
console.log('(No events from last command)');
|
|
170
|
+
}
|
|
171
|
+
prompt();
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
// Shortcuts
|
|
175
|
+
let command = trimmed;
|
|
176
|
+
if (trimmed === '/look' || trimmed === '/l') {
|
|
177
|
+
command = 'look';
|
|
178
|
+
}
|
|
179
|
+
else if (trimmed === '/inv' || trimmed === '/i') {
|
|
180
|
+
command = 'inventory';
|
|
181
|
+
}
|
|
182
|
+
// Execute the command
|
|
183
|
+
try {
|
|
184
|
+
const output = await game.executeCommand(command);
|
|
185
|
+
console.log(output);
|
|
186
|
+
// Show events in debug mode
|
|
187
|
+
if (debugMode && game.lastEvents && game.lastEvents.length > 0) {
|
|
188
|
+
console.log('\n[Events]');
|
|
189
|
+
for (const event of game.lastEvents) {
|
|
190
|
+
const data = event.data && Object.keys(event.data).length > 0
|
|
191
|
+
? ` ${JSON.stringify(event.data)}`
|
|
192
|
+
: '';
|
|
193
|
+
console.log(` ${event.type}${data}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
console.error(`Error: ${error instanceof Error ? error.message : error}`);
|
|
199
|
+
}
|
|
200
|
+
prompt();
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
prompt();
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Main entry point
|
|
207
|
+
*/
|
|
208
|
+
async function main() {
|
|
209
|
+
const args = process.argv.slice(2);
|
|
210
|
+
if (args.length === 0) {
|
|
211
|
+
printHelp();
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
const options = parseArgs(args);
|
|
215
|
+
if (!options.storyPath) {
|
|
216
|
+
console.error('Error: Story path is required');
|
|
217
|
+
printHelp();
|
|
218
|
+
process.exit(1);
|
|
219
|
+
}
|
|
220
|
+
// Interactive play mode
|
|
221
|
+
if (options.play) {
|
|
222
|
+
console.log(`Loading story from: ${options.storyPath}`);
|
|
223
|
+
let game;
|
|
224
|
+
try {
|
|
225
|
+
game = await loadStory(options.storyPath);
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
console.error(`Error loading story: ${error}`);
|
|
229
|
+
process.exit(3);
|
|
230
|
+
}
|
|
231
|
+
await runInteractiveMode(game);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
// Find transcript files
|
|
235
|
+
let transcriptPaths = options.transcriptPaths;
|
|
236
|
+
if (options.all || transcriptPaths.length === 0) {
|
|
237
|
+
const testsDir = path.join(options.storyPath, 'tests');
|
|
238
|
+
if (fs.existsSync(testsDir)) {
|
|
239
|
+
transcriptPaths = findTranscripts(testsDir);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// Check for transcripts directory
|
|
243
|
+
const transcriptsDir = path.join(options.storyPath, 'tests', 'transcripts');
|
|
244
|
+
if (fs.existsSync(transcriptsDir)) {
|
|
245
|
+
transcriptPaths = findTranscripts(transcriptsDir);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Deduplicate paths
|
|
250
|
+
transcriptPaths = [...new Set(transcriptPaths)];
|
|
251
|
+
if (transcriptPaths.length === 0) {
|
|
252
|
+
console.error('Error: No transcript files found');
|
|
253
|
+
console.error(`Looked in: ${path.join(options.storyPath, 'tests')}`);
|
|
254
|
+
process.exit(2);
|
|
255
|
+
}
|
|
256
|
+
console.log(`Loading story from: ${options.storyPath}`);
|
|
257
|
+
// Load the story
|
|
258
|
+
let game;
|
|
259
|
+
try {
|
|
260
|
+
game = await loadStory(options.storyPath);
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
console.error(`Error loading story: ${error}`);
|
|
264
|
+
process.exit(3);
|
|
265
|
+
}
|
|
266
|
+
console.log(`Found ${transcriptPaths.length} transcript(s) to run`);
|
|
267
|
+
if (options.chain) {
|
|
268
|
+
console.log(`Chain mode: Game state will persist between transcripts`);
|
|
269
|
+
}
|
|
270
|
+
// Run all transcripts
|
|
271
|
+
const results = [];
|
|
272
|
+
for (const transcriptPath of transcriptPaths) {
|
|
273
|
+
// Parse the transcript
|
|
274
|
+
const transcript = parseTranscriptFile(transcriptPath);
|
|
275
|
+
// Validate
|
|
276
|
+
const errors = validateTranscript(transcript);
|
|
277
|
+
if (errors.length > 0) {
|
|
278
|
+
console.error(`\nErrors in ${transcriptPath}:`);
|
|
279
|
+
for (const err of errors) {
|
|
280
|
+
console.error(` - ${err}`);
|
|
281
|
+
}
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
// Reload story for each transcript to reset state (unless chaining)
|
|
285
|
+
if (!options.chain) {
|
|
286
|
+
game = await loadStory(options.storyPath);
|
|
287
|
+
}
|
|
288
|
+
// Run the transcript
|
|
289
|
+
const result = await runTranscript(transcript, game, {
|
|
290
|
+
verbose: options.verbose,
|
|
291
|
+
stopOnFailure: options.stopOnFailure
|
|
292
|
+
});
|
|
293
|
+
results.push(result);
|
|
294
|
+
// Report individual transcript results
|
|
295
|
+
reportTranscript(result, { verbose: options.verbose });
|
|
296
|
+
// Stop if requested and there was a failure
|
|
297
|
+
if (options.stopOnFailure && result.failed > 0) {
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// Aggregate results
|
|
302
|
+
const runResult = {
|
|
303
|
+
transcripts: results,
|
|
304
|
+
totalPassed: results.reduce((sum, r) => sum + r.passed, 0),
|
|
305
|
+
totalFailed: results.reduce((sum, r) => sum + r.failed, 0),
|
|
306
|
+
totalExpectedFailures: results.reduce((sum, r) => sum + r.expectedFailures, 0),
|
|
307
|
+
totalSkipped: results.reduce((sum, r) => sum + r.skipped, 0),
|
|
308
|
+
totalDuration: results.reduce((sum, r) => sum + r.duration, 0)
|
|
309
|
+
};
|
|
310
|
+
// Final report if multiple transcripts
|
|
311
|
+
if (results.length > 1) {
|
|
312
|
+
reportTestRun(runResult, { verbose: options.verbose });
|
|
313
|
+
}
|
|
314
|
+
// Write results to files if output directory specified
|
|
315
|
+
if (options.outputDir) {
|
|
316
|
+
const timestamp = generateTimestamp();
|
|
317
|
+
const jsonPath = writeResultsToJson(runResult, options.outputDir, timestamp);
|
|
318
|
+
const reportPath = writeReportToFile(runResult, options.outputDir, timestamp);
|
|
319
|
+
console.log();
|
|
320
|
+
console.log(`Results written to:`);
|
|
321
|
+
console.log(` JSON: ${jsonPath}`);
|
|
322
|
+
console.log(` Report: ${reportPath}`);
|
|
323
|
+
}
|
|
324
|
+
// Exit with appropriate code
|
|
325
|
+
process.exit(getExitCode(runResult));
|
|
326
|
+
}
|
|
327
|
+
// Run
|
|
328
|
+
main().catch(error => {
|
|
329
|
+
console.error('Fatal error:', error);
|
|
330
|
+
process.exit(1);
|
|
331
|
+
});
|
|
332
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAc1E;;GAEG;AACH,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAe;QAC1B,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,KAAK;QACpB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACvD,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAClD,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAAkB;IAClD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,gCAAgC;IAChC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxB,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;gBACrE,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,SAAS,GAAG,CAAC,SAAS,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvD,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,SAAS,GAAG,CAAC,SAAS,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;oBAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC/B,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACrD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,YAAY;YACZ,IAAI,OAAO,GAAG,OAAO,CAAC;YACtB,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO,GAAG,MAAM,CAAC;YACnB,CAAC;iBAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAClD,OAAO,GAAG,WAAW,CAAC;YACxB,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEpB,4BAA4B;gBAC5B,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;4BAC3D,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;4BAClC,CAAC,CAAC,EAAE,CAAC;wBACP,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,EAAE,CAAC;AACX,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,IAAI,IAAkB,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAE9C,IAAI,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAC5E,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAExD,iBAAiB;IACjB,IAAI,IAAkB,CAAC;IACvB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,MAAM,uBAAuB,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,uBAAuB;QACvB,MAAM,UAAU,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEvD,WAAW;QACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,eAAe,cAAc,GAAG,CAAC,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE;YACnD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,uCAAuC;QACvC,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvD,4CAA4C;QAC5C,IAAI,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM;QACR,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAkB;QAC/B,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9E,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC/D,CAAC;IAEF,uCAAuC;IACvC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,aAAa,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,6BAA6B;IAC7B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM;AACN,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Condition Evaluator for Smart Transcript Directives (ADR-092)
|
|
3
|
+
*
|
|
4
|
+
* Evaluates condition expressions against game state.
|
|
5
|
+
*
|
|
6
|
+
* Supported expressions:
|
|
7
|
+
* - location = "Room Name" - Player is in room with that name
|
|
8
|
+
* - room contains "entity" - Entity with that name is in current room
|
|
9
|
+
* - inventory contains "item" - Player has item with that name
|
|
10
|
+
* - not inventory contains "item" - Player does NOT have item
|
|
11
|
+
* - entity "X" exists - Entity with name X exists anywhere
|
|
12
|
+
* - entity "X" alive - NPC entity is not dead
|
|
13
|
+
* - entity "X" in "Room" - Entity X is in specified room
|
|
14
|
+
*/
|
|
15
|
+
import { ConditionResult } from './types';
|
|
16
|
+
interface WorldModelLike {
|
|
17
|
+
getLocation(entityId: string): string | null;
|
|
18
|
+
getContents(containerId: string, options?: {
|
|
19
|
+
includeWorn?: boolean;
|
|
20
|
+
}): any[];
|
|
21
|
+
getEntity(entityId: string): any | null;
|
|
22
|
+
findWhere(predicate: (entity: any) => boolean): any[];
|
|
23
|
+
getAllEntities(): any[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse and evaluate a condition expression
|
|
27
|
+
*/
|
|
28
|
+
export declare function evaluateCondition(condition: string, world: WorldModelLike, playerId: string): ConditionResult;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=condition-evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-evaluator.d.ts","sourceRoot":"","sources":["../src/condition-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,UAAU,cAAc;IACtB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,GAAG,EAAE,CAAC;IAC7E,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,GAAG,EAAE,CAAC;IACtD,cAAc,IAAI,GAAG,EAAE,CAAC;CACzB;AAsHD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,GACf,eAAe,CA+BjB"}
|