script-engine-lib 0.3.0

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 (91) hide show
  1. package/.eslintrc.js +177 -0
  2. package/.vscode/launch.json +15 -0
  3. package/.vscode/settings.json +15 -0
  4. package/dist/decorators/action-before-testing.d.ts +2 -0
  5. package/dist/decorators/action-before-testing.js +23 -0
  6. package/dist/decorators/action-before-testing.js.map +1 -0
  7. package/dist/decorators/action-before-testing.test.d.ts +1 -0
  8. package/dist/decorators/action-before-testing.test.js +82 -0
  9. package/dist/decorators/action-before-testing.test.js.map +1 -0
  10. package/dist/engine/script-engine.d.ts +35 -0
  11. package/dist/engine/script-engine.js +175 -0
  12. package/dist/engine/script-engine.js.map +1 -0
  13. package/dist/engine/script-engine.test.d.ts +1 -0
  14. package/dist/engine/script-engine.test.js +1277 -0
  15. package/dist/engine/script-engine.test.js.map +1 -0
  16. package/dist/engine/story-engine.d.ts +35 -0
  17. package/dist/engine/story-engine.js +175 -0
  18. package/dist/engine/story-engine.js.map +1 -0
  19. package/dist/engine/story-engine.test.d.ts +1 -0
  20. package/dist/engine/story-engine.test.js +1277 -0
  21. package/dist/engine/story-engine.test.js.map +1 -0
  22. package/dist/index.d.ts +5 -0
  23. package/dist/index.js +29 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/interfaces.d.ts +51 -0
  26. package/dist/interfaces.js +27 -0
  27. package/dist/interfaces.js.map +1 -0
  28. package/dist/simulator/decorators.d.ts +2 -0
  29. package/dist/simulator/decorators.js +23 -0
  30. package/dist/simulator/decorators.js.map +1 -0
  31. package/dist/simulator/decorators.test.d.ts +1 -0
  32. package/dist/simulator/decorators.test.js +81 -0
  33. package/dist/simulator/decorators.test.js.map +1 -0
  34. package/dist/simulator/event-branches-map.d.ts +16 -0
  35. package/dist/simulator/event-branches-map.js +114 -0
  36. package/dist/simulator/event-branches-map.js.map +1 -0
  37. package/dist/simulator/event-branches-map.test.d.ts +1 -0
  38. package/dist/simulator/event-branches-map.test.js +120 -0
  39. package/dist/simulator/event-branches-map.test.js.map +1 -0
  40. package/dist/simulator/event-test-simulator.d.ts +42 -0
  41. package/dist/simulator/event-test-simulator.js +373 -0
  42. package/dist/simulator/event-test-simulator.js.map +1 -0
  43. package/dist/simulator/event-test-simulator.test.d.ts +1 -0
  44. package/dist/simulator/event-test-simulator.test.js +1960 -0
  45. package/dist/simulator/event-test-simulator.test.js.map +1 -0
  46. package/dist/simulator/execution-history.d.ts +6 -0
  47. package/dist/simulator/execution-history.js +22 -0
  48. package/dist/simulator/execution-history.js.map +1 -0
  49. package/dist/simulator/helpers/event-branches-map.d.ts +16 -0
  50. package/dist/simulator/helpers/event-branches-map.js +114 -0
  51. package/dist/simulator/helpers/event-branches-map.js.map +1 -0
  52. package/dist/simulator/helpers/event-branches-map.test.d.ts +1 -0
  53. package/dist/simulator/helpers/event-branches-map.test.js +120 -0
  54. package/dist/simulator/helpers/event-branches-map.test.js.map +1 -0
  55. package/dist/simulator/helpers/execution-history.d.ts +6 -0
  56. package/dist/simulator/helpers/execution-history.js +22 -0
  57. package/dist/simulator/helpers/execution-history.js.map +1 -0
  58. package/dist/simulator/helpers/script-branches-map.d.ts +16 -0
  59. package/dist/simulator/helpers/script-branches-map.js +114 -0
  60. package/dist/simulator/helpers/script-branches-map.js.map +1 -0
  61. package/dist/simulator/helpers/script-branches-map.test.d.ts +1 -0
  62. package/dist/simulator/helpers/script-branches-map.test.js +120 -0
  63. package/dist/simulator/helpers/script-branches-map.test.js.map +1 -0
  64. package/dist/simulator/script-test-simulator.d.ts +42 -0
  65. package/dist/simulator/script-test-simulator.js +373 -0
  66. package/dist/simulator/script-test-simulator.js.map +1 -0
  67. package/dist/simulator/script-test-simulator.test.d.ts +1 -0
  68. package/dist/simulator/script-test-simulator.test.js +1960 -0
  69. package/dist/simulator/script-test-simulator.test.js.map +1 -0
  70. package/dist/structured-text/index.d.ts +9 -0
  71. package/dist/structured-text/index.js +8 -0
  72. package/dist/structured-text/index.js.map +1 -0
  73. package/dist/structured-text/rich-text-separator.d.ts +48 -0
  74. package/dist/structured-text/rich-text-separator.js +146 -0
  75. package/dist/structured-text/rich-text-separator.js.map +1 -0
  76. package/dist/structured-text/rich-text-separator.test.d.ts +1 -0
  77. package/dist/structured-text/rich-text-separator.test.js +166 -0
  78. package/dist/structured-text/rich-text-separator.test.js.map +1 -0
  79. package/dist/structured-text/rich-text-validator.d.ts +19 -0
  80. package/dist/structured-text/rich-text-validator.js +73 -0
  81. package/dist/structured-text/rich-text-validator.js.map +1 -0
  82. package/dist/structured-text/rich-text-validator.test.d.ts +1 -0
  83. package/dist/structured-text/rich-text-validator.test.js +59 -0
  84. package/dist/structured-text/rich-text-validator.test.js.map +1 -0
  85. package/dist/test.spec.js.map +1 -0
  86. package/dist/test.test.d.ts +1 -0
  87. package/dist/test.test.js +9 -0
  88. package/dist/test.test.js.map +1 -0
  89. package/package.json +47 -0
  90. package/tsconfig.json +24 -0
  91. package/vitest.config.ts +1 -0
@@ -0,0 +1,373 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventTestSimulator = exports.StoryEngineSimulatorFunctions = void 0;
4
+ const helpers_lib_1 = require("helpers-lib");
5
+ const action_before_testing_1 = require("../decorators/action-before-testing");
6
+ const interfaces_1 = require("../interfaces");
7
+ const structured_text_1 = require("../structured-text");
8
+ const event_branches_map_1 = require("./helpers/event-branches-map");
9
+ const execution_history_1 = require("./helpers/execution-history");
10
+ class StoryEngineSimulatorFunctions {
11
+ }
12
+ exports.StoryEngineSimulatorFunctions = StoryEngineSimulatorFunctions;
13
+ const MAX_CALL_STACK_DEPTH = 100;
14
+ class EventTestSimulator {
15
+ constructor(eventDefinitions, options = { preventTypeChanges: true, richTextTags: undefined }) {
16
+ this.eventDefinitions = eventDefinitions;
17
+ this.options = options;
18
+ this.visitedBranchStates = new Map();
19
+ this.eventBranchesMap = new event_branches_map_1.EventBranchesMap(this.eventDefinitions);
20
+ if (this.options.preventTypeChanges) {
21
+ this.globalNameSpace = new Map();
22
+ }
23
+ }
24
+ /**
25
+ * @throws SimulationError, ActionsBeforeTestingError, BranchingBeforeTestingError
26
+ */
27
+ simulateEvent(eventDefinition, jsEngine, actionsBeforeTesting) {
28
+ if (this.options.preventTypeChanges) {
29
+ jsEngine.globalNameSpace = this.globalNameSpace;
30
+ }
31
+ let initialContext = {
32
+ executionHistory: new execution_history_1.ExecutionHistory(),
33
+ stack: new helpers_lib_1.Stack(),
34
+ jsEngine,
35
+ depth: 0,
36
+ lastExecutedAction: undefined
37
+ };
38
+ let allPossibleStates = [initialContext];
39
+ this.processActionsBeforeTesting(actionsBeforeTesting, allPossibleStates);
40
+ this.visitedBranchStates.clear();
41
+ this.executeEvent(eventDefinition, allPossibleStates);
42
+ this.visitedBranchStates.clear();
43
+ }
44
+ getUnvisitedBranchLocations() {
45
+ return this.eventBranchesMap.getUnvisitedBranchLocations();
46
+ }
47
+ processActionsBeforeTesting(actionsBeforeTesting, allPossibleStates) {
48
+ actionsBeforeTesting.forEach((action, index) => {
49
+ switch (action.type) {
50
+ case 'command':
51
+ this.executeActionBeforeTesting(action, allPossibleStates, index);
52
+ break;
53
+ case 'runEvent':
54
+ this.branchOutFromEvent(action, allPossibleStates, index);
55
+ break;
56
+ default:
57
+ throw new Error(`Unknown action before testing type: ${action.type}`);
58
+ }
59
+ });
60
+ }
61
+ executeActionBeforeTesting(action, allPossibleStates, index) {
62
+ try {
63
+ allPossibleStates.forEach(state => {
64
+ Reflect.defineMetadata(action_before_testing_1.ActionBeforeTestingFlag, true, state.jsEngine.functions);
65
+ state.jsEngine.execute(action.value);
66
+ });
67
+ }
68
+ catch (e) {
69
+ let errorMessage = this.prepareErrorMessage(`${e}`, allPossibleStates[0].executionHistory);
70
+ throw new interfaces_1.ActionsBeforeTestingError(errorMessage, index);
71
+ }
72
+ }
73
+ branchOutFromEvent(action, allPossibleStates, index) {
74
+ let allPossibleEndings = [];
75
+ let targetEvent = this.eventBranchesMap.getEvent(action.value);
76
+ if (!targetEvent) {
77
+ throw new Error(`Target event is not found: ${action.value}`);
78
+ }
79
+ try {
80
+ this.visitedBranchStates.clear();
81
+ allPossibleStates.forEach(state => {
82
+ state.executionHistory.addEntry(`Branching out from event: ${action.value}`);
83
+ state.depth = 0;
84
+ Reflect.defineMetadata(action_before_testing_1.ActionBeforeTestingFlag, false, state.jsEngine.functions);
85
+ let executionResult = this.executeBranch(targetEvent, state, false);
86
+ if (!executionResult.exitFound) {
87
+ let errorMessage = this.prepareErrorMessage(`All possible paths are creating infinite loops, no exit found while executing: ${action.value}`, state.executionHistory);
88
+ throw new interfaces_1.SimulationError(errorMessage, this.eventBranchesMap.getRootBranchLocation(targetEvent));
89
+ }
90
+ executionResult.allEndings.forEach(ending => {
91
+ allPossibleEndings.push(ending);
92
+ });
93
+ });
94
+ let uniqueEndings = this.removeDuplicateEndings(allPossibleEndings);
95
+ allPossibleStates.length = 0;
96
+ allPossibleStates.push(...uniqueEndings);
97
+ allPossibleStates.forEach(ending => {
98
+ ending.executionHistory
99
+ .addEntry(`${uniqueEndings.length} unique ending${uniqueEndings.length > 1 ? 's' : ''} generated.`)
100
+ .addEntry('');
101
+ if (!ending.lastExecutedAction) {
102
+ throw new Error('Event execution is ended without executing any command!');
103
+ }
104
+ else {
105
+ try {
106
+ ending.jsEngine.functions.onEventBranchingEnd();
107
+ }
108
+ catch (e) {
109
+ let path = this.eventBranchesMap.getActionLocation(ending.lastExecutedAction);
110
+ let errorMessage = this.prepareErrorMessage(`${e}`, ending.executionHistory);
111
+ throw new interfaces_1.SimulationError(errorMessage, path);
112
+ }
113
+ }
114
+ });
115
+ }
116
+ catch (e) {
117
+ if (e instanceof interfaces_1.SimulationError) {
118
+ throw new interfaces_1.BranchingBeforeTestingError(`${e.message}`, index, e.location);
119
+ }
120
+ else {
121
+ throw e;
122
+ }
123
+ }
124
+ }
125
+ executeEvent(eventDefinition, allPossibleStates) {
126
+ allPossibleStates.forEach(state => {
127
+ state.executionHistory.addEntry(`Running event: ${eventDefinition.id}`);
128
+ state.depth = 0;
129
+ Reflect.defineMetadata(action_before_testing_1.ActionBeforeTestingFlag, false, state.jsEngine.functions);
130
+ let executionResult = this.executeBranch(eventDefinition, state, true);
131
+ if (!executionResult.exitFound) {
132
+ let errorMessage = this.prepareErrorMessage(`All possible paths are creating infinite loops, no exit found while executing: ${eventDefinition.id}`, state.executionHistory);
133
+ throw new interfaces_1.SimulationError(errorMessage, this.eventBranchesMap.getRootBranchLocation(eventDefinition));
134
+ }
135
+ executionResult.allEndings.forEach(ending => {
136
+ if (!ending.lastExecutedAction) {
137
+ throw new Error('Event execution is ended without executing any command!');
138
+ }
139
+ else {
140
+ try {
141
+ ending.jsEngine.functions.onEnd();
142
+ }
143
+ catch (e) {
144
+ let path = this.eventBranchesMap.getActionLocation(ending.lastExecutedAction);
145
+ let errorMessage = this.prepareErrorMessage(`${e}`, ending.executionHistory);
146
+ throw new interfaces_1.SimulationError(errorMessage, path);
147
+ }
148
+ }
149
+ });
150
+ });
151
+ }
152
+ executeBranch(branch, context, registerVisitedBranches) {
153
+ if (!this.isBranchVisitedAndRegister(branch, context)) {
154
+ return {
155
+ allEndings: [],
156
+ exitFound: false
157
+ };
158
+ }
159
+ let allPossibleEndings = [];
160
+ let exitFound = true;
161
+ if (registerVisitedBranches) {
162
+ this.eventBranchesMap.setVisited(branch);
163
+ }
164
+ context.depth++;
165
+ if (context.depth > MAX_CALL_STACK_DEPTH) {
166
+ let errorMessage = this.prepareErrorMessage(`Maximum depth "${MAX_CALL_STACK_DEPTH}" is reached. Try to reduce the event branching tree or check infinite loops with trivial state changes.`, context.executionHistory);
167
+ throw new interfaces_1.SimulationError(errorMessage, this.eventBranchesMap.getRootBranchLocation(branch));
168
+ }
169
+ context.stack.add(...branch.actions);
170
+ while (!context.stack.isEmpty) {
171
+ let action = context.stack.pop();
172
+ let executionResult = this.executeAction(action, context, registerVisitedBranches);
173
+ if (context.stack.isEmpty) {
174
+ allPossibleEndings.push(...executionResult.allEndings);
175
+ exitFound = executionResult.exitFound && exitFound;
176
+ }
177
+ }
178
+ allPossibleEndings = allPossibleEndings.length > 0 ? this.removeDuplicateEndings(allPossibleEndings) : [];
179
+ return {
180
+ allEndings: allPossibleEndings,
181
+ exitFound
182
+ };
183
+ }
184
+ executeAction(action, context, registerVisitedBranches) {
185
+ context.lastExecutedAction = action;
186
+ switch (action.type) {
187
+ case 'command':
188
+ return this.executeActionCommand(action, context);
189
+ case 'dialog':
190
+ return this.executeDialogCommand(action, context);
191
+ case 'jumpToEvent':
192
+ return this.executeActionJumpToEvent(action, context, registerVisitedBranches);
193
+ case 'branchByCondition':
194
+ return this.executeActionBranchByCondition(action, context, registerVisitedBranches);
195
+ case 'branchByChance':
196
+ return this.executeActionBranchByChance(action, context, registerVisitedBranches);
197
+ case 'branchByPlayerChoice':
198
+ return this.executeActionBranchByPlayerChoice(action, context, registerVisitedBranches);
199
+ default:
200
+ throw new Error(`Unknown action type: ${action.type}`);
201
+ }
202
+ }
203
+ executeActionCommand(action, context) {
204
+ try {
205
+ context.jsEngine.execute(action.value);
206
+ }
207
+ catch (e) {
208
+ let path = this.eventBranchesMap.getActionLocation(action);
209
+ let errorMessage = this.prepareErrorMessage(`${e}`, context.executionHistory);
210
+ throw new interfaces_1.SimulationError(errorMessage, path);
211
+ }
212
+ return {
213
+ allEndings: [context],
214
+ exitFound: true
215
+ };
216
+ }
217
+ executeDialogCommand(action, context) {
218
+ let dialogItem = action.value;
219
+ let text;
220
+ try {
221
+ text = context.jsEngine.string(dialogItem.text);
222
+ this.options.richTextTags && structured_text_1.RichTextValidator.validate(text, this.options.richTextTags);
223
+ context.jsEngine.functions.onDialog(text, dialogItem.speaker);
224
+ }
225
+ catch (e) {
226
+ let path = this.eventBranchesMap.getActionLocation(action);
227
+ let errorMessage = this.prepareErrorMessage(`${e}`, context.executionHistory);
228
+ throw new interfaces_1.SimulationError(errorMessage, path);
229
+ }
230
+ return {
231
+ allEndings: [context],
232
+ exitFound: true
233
+ };
234
+ }
235
+ executeActionJumpToEvent(action, context, registerVisitedBranches) {
236
+ let targetEvent = this.eventBranchesMap.getEvent(action.value);
237
+ context.executionHistory.addEntry(`Jumping to event: ${action.value}`);
238
+ return this.executeBranch(targetEvent, context, registerVisitedBranches);
239
+ }
240
+ executeActionBranchByCondition(action, context, registerVisitedBranches) {
241
+ let subBranches = action.value;
242
+ let validBranch = subBranches.find(subBranch => this.checkBranchCondition(subBranch, context));
243
+ if (!validBranch) {
244
+ let path = this.eventBranchesMap.getActionLocation(action);
245
+ let errorMessage = this.prepareErrorMessage(`No option is fulfilled the condition during branching.`, context.executionHistory);
246
+ throw new interfaces_1.SimulationError(errorMessage, path);
247
+ }
248
+ context.executionHistory.addEntry(`Branching by condition: ${validBranch.condition ? validBranch.condition : 'default'}`);
249
+ return this.executeBranch(validBranch, context, registerVisitedBranches);
250
+ }
251
+ executeActionBranchByChance(action, context, registerVisitedBranches) {
252
+ let subBranches = action.value;
253
+ let validItems = subBranches
254
+ .map((subBranch, index) => ({ index, subBranch }))
255
+ .filter(item => this.checkBranchCondition(item.subBranch, context));
256
+ if (validItems.length === 0) {
257
+ let path = this.eventBranchesMap.getActionLocation(action);
258
+ let errorMessage = this.prepareErrorMessage(`No option is fulfilled the condition during branching.`, context.executionHistory);
259
+ throw new interfaces_1.SimulationError(errorMessage, path);
260
+ }
261
+ let allExecutionResults = validItems.map(item => {
262
+ try {
263
+ let weight = helpers_lib_1.Comparator.isString(item.subBranch.weight)
264
+ ? context.jsEngine.number(item.subBranch.weight)
265
+ : item.subBranch.weight;
266
+ if (!helpers_lib_1.Comparator.isNumber(weight) || weight < 0) {
267
+ throw new Error(`Weight of branch ${item.index} is not a valid number: "${item.subBranch.weight}" -> ${weight}.`);
268
+ }
269
+ }
270
+ catch (e) {
271
+ let path = this.eventBranchesMap.getActionLocation(action);
272
+ let errorMessage = this.prepareErrorMessage(`${e}`, context.executionHistory);
273
+ throw new interfaces_1.SimulationError(errorMessage, path);
274
+ }
275
+ let newContext = this.duplicateContext(context);
276
+ newContext.executionHistory.addEntry(`Branching by chance: ${item.index}`);
277
+ return this.executeBranch(item.subBranch, newContext, registerVisitedBranches);
278
+ });
279
+ return {
280
+ allEndings: allExecutionResults.flatMap(result => result.allEndings),
281
+ exitFound: allExecutionResults.some(result => result.exitFound)
282
+ };
283
+ }
284
+ executeActionBranchByPlayerChoice(action, context, registerVisitedBranches) {
285
+ let subBranches = action.value;
286
+ let validBranches = subBranches.filter(subBranch => this.checkBranchCondition(subBranch, context));
287
+ if (validBranches.length === 0) {
288
+ let path = this.eventBranchesMap.getActionLocation(action);
289
+ let errorMessage = this.prepareErrorMessage(`No option is fulfilled the condition during branching.`, context.executionHistory);
290
+ throw new interfaces_1.SimulationError(errorMessage, path);
291
+ }
292
+ try {
293
+ context.jsEngine.functions.onPlayerChoice(validBranches.map(branch => context.jsEngine.string(branch.text)));
294
+ }
295
+ catch (e) {
296
+ let path = this.eventBranchesMap.getActionLocation(action);
297
+ let errorMessage = this.prepareErrorMessage(`${e}`, context.executionHistory);
298
+ throw new interfaces_1.SimulationError(errorMessage, path);
299
+ }
300
+ let allExecutionResults = validBranches.map(subBranch => {
301
+ let newContext = this.duplicateContext(context);
302
+ newContext.executionHistory.addEntry(`Player choice: ${subBranch.text}`);
303
+ return this.executeBranch(subBranch, newContext, registerVisitedBranches);
304
+ });
305
+ return {
306
+ allEndings: allExecutionResults.flatMap(result => result.allEndings),
307
+ exitFound: allExecutionResults.some(result => result.exitFound)
308
+ };
309
+ }
310
+ checkBranchCondition(branch, context) {
311
+ if (!branch.condition) {
312
+ return true;
313
+ }
314
+ else {
315
+ try {
316
+ return context.jsEngine.boolean(branch.condition);
317
+ }
318
+ catch (e) {
319
+ let path = this.eventBranchesMap.getBranchLocation(branch);
320
+ let errorMessage = this.prepareErrorMessage(`${e}`, context.executionHistory);
321
+ throw new interfaces_1.SimulationError(errorMessage, path);
322
+ }
323
+ }
324
+ }
325
+ removeDuplicateEndings(allPossibleEndings) {
326
+ let uniqueEndings = [];
327
+ let processedEndings = allPossibleEndings.map(ending => ({
328
+ ending: ending,
329
+ variablesString: JSON.stringify(ending.jsEngine.variables),
330
+ functionsString: JSON.stringify(ending.jsEngine.functions)
331
+ }));
332
+ processedEndings.forEach(data => {
333
+ let isUnique = uniqueEndings.every(uniqueEnding => data.functionsString !== uniqueEnding.functionsString || data.variablesString !== uniqueEnding.variablesString);
334
+ if (isUnique) {
335
+ uniqueEndings.push({
336
+ ending: data.ending,
337
+ variablesString: data.variablesString,
338
+ functionsString: data.functionsString
339
+ });
340
+ }
341
+ });
342
+ return uniqueEndings.map(data => data.ending);
343
+ }
344
+ isBranchVisitedAndRegister(branch, context) {
345
+ let stateString = JSON.stringify(context.jsEngine.variables) + JSON.stringify(context.jsEngine.functions);
346
+ let branchStates = this.visitedBranchStates.get(branch);
347
+ if (!branchStates) {
348
+ branchStates = new Set();
349
+ this.visitedBranchStates.set(branch, branchStates);
350
+ }
351
+ if (branchStates.has(stateString)) {
352
+ return false;
353
+ }
354
+ else {
355
+ branchStates.add(stateString);
356
+ return true;
357
+ }
358
+ }
359
+ duplicateContext(context) {
360
+ return {
361
+ executionHistory: context.executionHistory.duplicate(),
362
+ stack: context.stack.duplicate(),
363
+ jsEngine: context.jsEngine.duplicate(),
364
+ depth: context.depth,
365
+ lastExecutedAction: context.lastExecutedAction
366
+ };
367
+ }
368
+ prepareErrorMessage(errorMessage, executionHistory) {
369
+ return `${errorMessage}\n\n----Execution history----\n${executionHistory.toString()}`;
370
+ }
371
+ }
372
+ exports.EventTestSimulator = EventTestSimulator;
373
+ //# sourceMappingURL=event-test-simulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-test-simulator.js","sourceRoot":"","sources":["../../src/simulator/event-test-simulator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};