script-engine-lib 0.4.2 → 1.0.0-rc0

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 (94) hide show
  1. package/dist/index.d.mts +191 -0
  2. package/dist/index.d.ts +191 -5
  3. package/dist/index.js +21 -29
  4. package/dist/index.mjs +21 -0
  5. package/package.json +56 -47
  6. package/src/index.ts +10 -0
  7. package/.eslintrc.js +0 -212
  8. package/.vscode/launch.json +0 -15
  9. package/.vscode/settings.json +0 -15
  10. package/dist/decorators/action-before-testing.d.ts +0 -2
  11. package/dist/decorators/action-before-testing.js +0 -23
  12. package/dist/decorators/action-before-testing.js.map +0 -1
  13. package/dist/decorators/action-before-testing.test.d.ts +0 -1
  14. package/dist/decorators/action-before-testing.test.js +0 -82
  15. package/dist/decorators/action-before-testing.test.js.map +0 -1
  16. package/dist/engine/script-engine.d.ts +0 -35
  17. package/dist/engine/script-engine.js +0 -175
  18. package/dist/engine/script-engine.js.map +0 -1
  19. package/dist/engine/script-engine.test.d.ts +0 -1
  20. package/dist/engine/script-engine.test.js +0 -1277
  21. package/dist/engine/script-engine.test.js.map +0 -1
  22. package/dist/engine/story-engine.d.ts +0 -35
  23. package/dist/engine/story-engine.js +0 -175
  24. package/dist/engine/story-engine.js.map +0 -1
  25. package/dist/engine/story-engine.test.d.ts +0 -1
  26. package/dist/engine/story-engine.test.js +0 -1277
  27. package/dist/engine/story-engine.test.js.map +0 -1
  28. package/dist/index.js.map +0 -1
  29. package/dist/interfaces.d.ts +0 -51
  30. package/dist/interfaces.js +0 -27
  31. package/dist/interfaces.js.map +0 -1
  32. package/dist/simulator/decorators.d.ts +0 -2
  33. package/dist/simulator/decorators.js +0 -23
  34. package/dist/simulator/decorators.js.map +0 -1
  35. package/dist/simulator/decorators.test.d.ts +0 -1
  36. package/dist/simulator/decorators.test.js +0 -81
  37. package/dist/simulator/decorators.test.js.map +0 -1
  38. package/dist/simulator/event-branches-map.d.ts +0 -16
  39. package/dist/simulator/event-branches-map.js +0 -114
  40. package/dist/simulator/event-branches-map.js.map +0 -1
  41. package/dist/simulator/event-branches-map.test.d.ts +0 -1
  42. package/dist/simulator/event-branches-map.test.js +0 -120
  43. package/dist/simulator/event-branches-map.test.js.map +0 -1
  44. package/dist/simulator/event-test-simulator.d.ts +0 -42
  45. package/dist/simulator/event-test-simulator.js +0 -373
  46. package/dist/simulator/event-test-simulator.js.map +0 -1
  47. package/dist/simulator/event-test-simulator.test.d.ts +0 -1
  48. package/dist/simulator/event-test-simulator.test.js +0 -1960
  49. package/dist/simulator/event-test-simulator.test.js.map +0 -1
  50. package/dist/simulator/execution-history.d.ts +0 -6
  51. package/dist/simulator/execution-history.js +0 -22
  52. package/dist/simulator/execution-history.js.map +0 -1
  53. package/dist/simulator/helpers/event-branches-map.d.ts +0 -16
  54. package/dist/simulator/helpers/event-branches-map.js +0 -114
  55. package/dist/simulator/helpers/event-branches-map.js.map +0 -1
  56. package/dist/simulator/helpers/event-branches-map.test.d.ts +0 -1
  57. package/dist/simulator/helpers/event-branches-map.test.js +0 -120
  58. package/dist/simulator/helpers/event-branches-map.test.js.map +0 -1
  59. package/dist/simulator/helpers/execution-history.d.ts +0 -6
  60. package/dist/simulator/helpers/execution-history.js +0 -22
  61. package/dist/simulator/helpers/execution-history.js.map +0 -1
  62. package/dist/simulator/helpers/script-branches-map.d.ts +0 -16
  63. package/dist/simulator/helpers/script-branches-map.js +0 -114
  64. package/dist/simulator/helpers/script-branches-map.js.map +0 -1
  65. package/dist/simulator/helpers/script-branches-map.test.d.ts +0 -1
  66. package/dist/simulator/helpers/script-branches-map.test.js +0 -120
  67. package/dist/simulator/helpers/script-branches-map.test.js.map +0 -1
  68. package/dist/simulator/script-test-simulator.d.ts +0 -42
  69. package/dist/simulator/script-test-simulator.js +0 -373
  70. package/dist/simulator/script-test-simulator.js.map +0 -1
  71. package/dist/simulator/script-test-simulator.test.d.ts +0 -1
  72. package/dist/simulator/script-test-simulator.test.js +0 -2013
  73. package/dist/simulator/script-test-simulator.test.js.map +0 -1
  74. package/dist/structured-text/index.d.ts +0 -9
  75. package/dist/structured-text/index.js +0 -8
  76. package/dist/structured-text/index.js.map +0 -1
  77. package/dist/structured-text/rich-text-separator.d.ts +0 -48
  78. package/dist/structured-text/rich-text-separator.js +0 -146
  79. package/dist/structured-text/rich-text-separator.js.map +0 -1
  80. package/dist/structured-text/rich-text-separator.test.d.ts +0 -1
  81. package/dist/structured-text/rich-text-separator.test.js +0 -166
  82. package/dist/structured-text/rich-text-separator.test.js.map +0 -1
  83. package/dist/structured-text/rich-text-validator.d.ts +0 -19
  84. package/dist/structured-text/rich-text-validator.js +0 -73
  85. package/dist/structured-text/rich-text-validator.js.map +0 -1
  86. package/dist/structured-text/rich-text-validator.test.d.ts +0 -1
  87. package/dist/structured-text/rich-text-validator.test.js +0 -59
  88. package/dist/structured-text/rich-text-validator.test.js.map +0 -1
  89. package/dist/test.spec.js.map +0 -1
  90. package/dist/test.test.d.ts +0 -1
  91. package/dist/test.test.js +0 -9
  92. package/dist/test.test.js.map +0 -1
  93. package/tsconfig.json +0 -24
  94. package/vitest.config.ts +0 -1
@@ -1,373 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-test-simulator.js","sourceRoot":"","sources":["../../src/simulator/event-test-simulator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};