@sharpee/event-processor 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/LICENSE +21 -0
- package/README.md +43 -0
- package/dist-npm/effects/effect-processor.d.ts +50 -0
- package/dist-npm/effects/effect-processor.d.ts.map +1 -0
- package/dist-npm/effects/effect-processor.js +255 -0
- package/dist-npm/effects/effect-processor.js.map +1 -0
- package/dist-npm/effects/index.d.ts +10 -0
- package/dist-npm/effects/index.d.ts.map +1 -0
- package/dist-npm/effects/index.js +29 -0
- package/dist-npm/effects/index.js.map +1 -0
- package/dist-npm/effects/types.d.ts +119 -0
- package/dist-npm/effects/types.d.ts.map +1 -0
- package/dist-npm/effects/types.js +9 -0
- package/dist-npm/effects/types.js.map +1 -0
- package/dist-npm/effects/world-query.d.ts +70 -0
- package/dist-npm/effects/world-query.d.ts.map +1 -0
- package/dist-npm/effects/world-query.js +34 -0
- package/dist-npm/effects/world-query.js.map +1 -0
- package/dist-npm/handler-types.d.ts +67 -0
- package/dist-npm/handler-types.d.ts.map +1 -0
- package/dist-npm/handler-types.js +8 -0
- package/dist-npm/handler-types.js.map +1 -0
- package/dist-npm/handlers/complex-manipulation.d.ts +31 -0
- package/dist-npm/handlers/complex-manipulation.d.ts.map +1 -0
- package/dist-npm/handlers/complex-manipulation.js +87 -0
- package/dist-npm/handlers/complex-manipulation.js.map +1 -0
- package/dist-npm/handlers/device/index.d.ts +28 -0
- package/dist-npm/handlers/device/index.d.ts.map +1 -0
- package/dist-npm/handlers/device/index.js +172 -0
- package/dist-npm/handlers/device/index.js.map +1 -0
- package/dist-npm/handlers/index.d.ts +17 -0
- package/dist-npm/handlers/index.d.ts.map +1 -0
- package/dist-npm/handlers/index.js +48 -0
- package/dist-npm/handlers/index.js.map +1 -0
- package/dist-npm/handlers/meta.d.ts +59 -0
- package/dist-npm/handlers/meta.d.ts.map +1 -0
- package/dist-npm/handlers/meta.js +129 -0
- package/dist-npm/handlers/meta.js.map +1 -0
- package/dist-npm/handlers/movement.d.ts +51 -0
- package/dist-npm/handlers/movement.d.ts.map +1 -0
- package/dist-npm/handlers/movement.js +176 -0
- package/dist-npm/handlers/movement.js.map +1 -0
- package/dist-npm/handlers/observation/index.d.ts +6 -0
- package/dist-npm/handlers/observation/index.d.ts.map +1 -0
- package/dist-npm/handlers/observation/index.js +22 -0
- package/dist-npm/handlers/observation/index.js.map +1 -0
- package/dist-npm/handlers/observation/observation-handlers.d.ts +96 -0
- package/dist-npm/handlers/observation/observation-handlers.d.ts.map +1 -0
- package/dist-npm/handlers/observation/observation-handlers.js +162 -0
- package/dist-npm/handlers/observation/observation-handlers.js.map +1 -0
- package/dist-npm/handlers/observation/sensory.d.ts +29 -0
- package/dist-npm/handlers/observation/sensory.d.ts.map +1 -0
- package/dist-npm/handlers/observation/sensory.js +77 -0
- package/dist-npm/handlers/observation/sensory.js.map +1 -0
- package/dist-npm/handlers/state-change.d.ts +47 -0
- package/dist-npm/handlers/state-change.d.ts.map +1 -0
- package/dist-npm/handlers/state-change.js +166 -0
- package/dist-npm/handlers/state-change.js.map +1 -0
- package/dist-npm/index.d.ts +14 -0
- package/dist-npm/index.d.ts.map +1 -0
- package/dist-npm/index.js +32 -0
- package/dist-npm/index.js.map +1 -0
- package/dist-npm/processor.d.ts +62 -0
- package/dist-npm/processor.d.ts.map +1 -0
- package/dist-npm/processor.js +332 -0
- package/dist-npm/processor.js.map +1 -0
- package/dist-npm/types.d.ts +6 -0
- package/dist-npm/types.d.ts.map +1 -0
- package/dist-npm/types.js +6 -0
- package/dist-npm/types.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Event processor implementation
|
|
4
|
+
*
|
|
5
|
+
* Applies semantic events to the world model through registered handlers.
|
|
6
|
+
* ADR-075: Entity handlers receive WorldQuery and return Effect[].
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.EventProcessor = void 0;
|
|
10
|
+
const handlers_1 = require("./handlers");
|
|
11
|
+
const effects_1 = require("./effects");
|
|
12
|
+
// Simple ID generator for error events
|
|
13
|
+
let eventCounter = 0;
|
|
14
|
+
function generateEventId() {
|
|
15
|
+
return `evt_${Date.now()}_${(++eventCounter).toString(36)}`;
|
|
16
|
+
}
|
|
17
|
+
class EventProcessor {
|
|
18
|
+
world;
|
|
19
|
+
options;
|
|
20
|
+
effectProcessor;
|
|
21
|
+
worldQuery;
|
|
22
|
+
// Story-level handlers: multiple handlers per event type
|
|
23
|
+
storyHandlers = new Map();
|
|
24
|
+
constructor(world, options = {}) {
|
|
25
|
+
this.world = world;
|
|
26
|
+
this.options = {
|
|
27
|
+
validate: options.validate ?? true,
|
|
28
|
+
preview: options.preview ?? false,
|
|
29
|
+
maxReactionDepth: options.maxReactionDepth ?? 10
|
|
30
|
+
};
|
|
31
|
+
// Create WorldQuery and EffectProcessor
|
|
32
|
+
this.worldQuery = (0, effects_1.createWorldQuery)(world);
|
|
33
|
+
this.effectProcessor = new effects_1.EffectProcessor(world, (events) => {
|
|
34
|
+
// Recursively process emitted events
|
|
35
|
+
this.processEvents(events);
|
|
36
|
+
});
|
|
37
|
+
// Register standard handlers on creation
|
|
38
|
+
(0, handlers_1.registerStandardHandlers)(world);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Register a story-level event handler
|
|
42
|
+
* Multiple handlers can be registered for the same event type
|
|
43
|
+
*/
|
|
44
|
+
registerHandler(eventType, handler) {
|
|
45
|
+
const handlers = this.storyHandlers.get(eventType) || [];
|
|
46
|
+
handlers.push(handler);
|
|
47
|
+
this.storyHandlers.set(eventType, handlers);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Unregister a story-level event handler
|
|
51
|
+
*/
|
|
52
|
+
unregisterHandler(eventType, handler) {
|
|
53
|
+
const handlers = this.storyHandlers.get(eventType);
|
|
54
|
+
if (handlers) {
|
|
55
|
+
const index = handlers.indexOf(handler);
|
|
56
|
+
if (index !== -1) {
|
|
57
|
+
handlers.splice(index, 1);
|
|
58
|
+
}
|
|
59
|
+
if (handlers.length === 0) {
|
|
60
|
+
this.storyHandlers.delete(eventType);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Process a batch of events
|
|
66
|
+
*/
|
|
67
|
+
processEvents(events) {
|
|
68
|
+
const results = {
|
|
69
|
+
applied: [],
|
|
70
|
+
failed: [],
|
|
71
|
+
changes: [],
|
|
72
|
+
reactions: []
|
|
73
|
+
};
|
|
74
|
+
// Process each event
|
|
75
|
+
for (const event of events) {
|
|
76
|
+
const processed = this.processSingleEvent(event);
|
|
77
|
+
if (processed.success) {
|
|
78
|
+
results.applied.push(event);
|
|
79
|
+
results.changes.push(...processed.changes);
|
|
80
|
+
// Process any reactions
|
|
81
|
+
if (processed.reactions && processed.reactions.length > 0) {
|
|
82
|
+
const reactionResults = this.processReactions(processed.reactions, 0);
|
|
83
|
+
results.reactions.push(...reactionResults.reactions);
|
|
84
|
+
results.applied.push(...reactionResults.applied);
|
|
85
|
+
results.failed.push(...reactionResults.failed);
|
|
86
|
+
results.changes.push(...reactionResults.changes);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
results.failed.push({
|
|
91
|
+
event,
|
|
92
|
+
reason: processed.reason || 'Unknown failure'
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return results;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Process a single event
|
|
100
|
+
*/
|
|
101
|
+
processSingleEvent(event) {
|
|
102
|
+
// Validate if required
|
|
103
|
+
if (this.options.validate) {
|
|
104
|
+
if (!this.world.canApplyEvent(event)) {
|
|
105
|
+
return {
|
|
106
|
+
success: false,
|
|
107
|
+
reason: 'Event validation failed',
|
|
108
|
+
changes: []
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Preview changes if required
|
|
113
|
+
let changes = [];
|
|
114
|
+
if (this.options.preview) {
|
|
115
|
+
changes = this.world.previewEvent(event);
|
|
116
|
+
}
|
|
117
|
+
// Apply the event
|
|
118
|
+
try {
|
|
119
|
+
this.world.applyEvent(event);
|
|
120
|
+
// Invoke entity handlers (ADR-052)
|
|
121
|
+
const reactions = this.invokeEntityHandlers(event);
|
|
122
|
+
return {
|
|
123
|
+
success: true,
|
|
124
|
+
changes,
|
|
125
|
+
reactions
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return {
|
|
130
|
+
success: false,
|
|
131
|
+
reason: error instanceof Error ? error.message : 'Unknown error',
|
|
132
|
+
changes: []
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Process reaction events with depth limiting
|
|
138
|
+
*/
|
|
139
|
+
processReactions(reactions, depth) {
|
|
140
|
+
const results = {
|
|
141
|
+
applied: [],
|
|
142
|
+
failed: [],
|
|
143
|
+
changes: [],
|
|
144
|
+
reactions: []
|
|
145
|
+
};
|
|
146
|
+
// Check depth limit
|
|
147
|
+
if (depth >= this.options.maxReactionDepth) {
|
|
148
|
+
console.warn('Maximum reaction depth reached, stopping processing');
|
|
149
|
+
return results;
|
|
150
|
+
}
|
|
151
|
+
// Process each reaction
|
|
152
|
+
for (const reaction of reactions) {
|
|
153
|
+
const processed = this.processSingleEvent(reaction);
|
|
154
|
+
if (processed.success) {
|
|
155
|
+
results.applied.push(reaction);
|
|
156
|
+
results.changes.push(...processed.changes);
|
|
157
|
+
// Recursively process nested reactions
|
|
158
|
+
if (processed.reactions && processed.reactions.length > 0) {
|
|
159
|
+
const nestedResults = this.processReactions(processed.reactions, depth + 1);
|
|
160
|
+
results.reactions.push(...nestedResults.reactions);
|
|
161
|
+
results.applied.push(...nestedResults.applied);
|
|
162
|
+
results.failed.push(...nestedResults.failed);
|
|
163
|
+
results.changes.push(...nestedResults.changes);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
results.failed.push({
|
|
168
|
+
event: reaction,
|
|
169
|
+
reason: processed.reason || 'Unknown failure'
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
results.reactions.push(...reactions);
|
|
174
|
+
return results;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if a result is an array of Effects (ADR-075 pattern)
|
|
178
|
+
*/
|
|
179
|
+
isEffectArray(result) {
|
|
180
|
+
if (!Array.isArray(result) || result.length === 0)
|
|
181
|
+
return false;
|
|
182
|
+
// Check first element for Effect signature (has 'type' that's one of our effect types)
|
|
183
|
+
const first = result[0];
|
|
184
|
+
if (typeof first !== 'object' || first === null)
|
|
185
|
+
return false;
|
|
186
|
+
const effectTypes = ['score', 'flag', 'message', 'emit', 'schedule', 'unblock', 'block', 'move_entity', 'update_entity', 'set_state', 'update_exits'];
|
|
187
|
+
return 'type' in first && effectTypes.includes(first.type);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Invoke entity and story handlers for an event (ADR-075)
|
|
191
|
+
*
|
|
192
|
+
* Collects effects from all handlers and processes them through EffectProcessor.
|
|
193
|
+
* Supports multiple handlers per event type.
|
|
194
|
+
* Also supports legacy handlers that return ISemanticEvent[] during migration.
|
|
195
|
+
*/
|
|
196
|
+
invokeEntityHandlers(event) {
|
|
197
|
+
const allEffects = [];
|
|
198
|
+
const legacyReactions = [];
|
|
199
|
+
// Convert to IGameEvent for handlers
|
|
200
|
+
const gameEvent = {
|
|
201
|
+
...event,
|
|
202
|
+
data: event.data || {}
|
|
203
|
+
};
|
|
204
|
+
// 1. Invoke entity handlers on the target entity
|
|
205
|
+
if (event.entities?.target) {
|
|
206
|
+
const target = this.world.getEntity(event.entities.target);
|
|
207
|
+
if (target?.on?.[event.type]) {
|
|
208
|
+
const handlerOrHandlers = target.on[event.type];
|
|
209
|
+
const handlers = Array.isArray(handlerOrHandlers)
|
|
210
|
+
? handlerOrHandlers
|
|
211
|
+
: [handlerOrHandlers];
|
|
212
|
+
for (const handler of handlers) {
|
|
213
|
+
try {
|
|
214
|
+
// Try calling with WorldQuery first (ADR-075 pattern)
|
|
215
|
+
const result = handler(gameEvent, this.worldQuery);
|
|
216
|
+
if (result && Array.isArray(result)) {
|
|
217
|
+
if (this.isEffectArray(result)) {
|
|
218
|
+
// ADR-075 Effect-returning handler
|
|
219
|
+
allEffects.push(...result);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Legacy handler returning ISemanticEvent[]
|
|
223
|
+
legacyReactions.push(...result);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
console.error(`Entity handler error for ${event.type} on ${target.id}:`, error instanceof Error ? error.message : error);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
// 2. Invoke story-level handlers (ADR-075 only - use registerHandler)
|
|
234
|
+
const storyHandlers = this.storyHandlers.get(event.type);
|
|
235
|
+
if (storyHandlers) {
|
|
236
|
+
for (const handler of storyHandlers) {
|
|
237
|
+
try {
|
|
238
|
+
const effects = handler(gameEvent, this.worldQuery);
|
|
239
|
+
if (effects && Array.isArray(effects)) {
|
|
240
|
+
allEffects.push(...effects);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.error(`Story handler error for ${event.type}:`, error instanceof Error ? error.message : error);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// 3. Process all collected effects through EffectProcessor
|
|
249
|
+
if (allEffects.length > 0) {
|
|
250
|
+
const result = this.effectProcessor.process(allEffects);
|
|
251
|
+
if (!result.success) {
|
|
252
|
+
console.error('Effect processing failed:', result.errors);
|
|
253
|
+
}
|
|
254
|
+
// Add emitted events to reactions so they appear in turn events
|
|
255
|
+
if (result.emittedEvents && result.emittedEvents.length > 0) {
|
|
256
|
+
legacyReactions.push(...result.emittedEvents);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// 4. Process game.message overrides
|
|
260
|
+
// When entity handlers return game.message, it overrides the original event's message
|
|
261
|
+
// rather than being rendered as a separate event (ADR-106 domain events)
|
|
262
|
+
const gameMessages = legacyReactions.filter(r => r.type === 'game.message');
|
|
263
|
+
let filteredReactions = legacyReactions;
|
|
264
|
+
if (gameMessages.length > 1) {
|
|
265
|
+
// Error: multiple game.message reactions - this should never happen
|
|
266
|
+
console.error(`Multiple game.message reactions for ${event.type} on ${event.entities?.target}:`, gameMessages.map(m => m.data?.messageId));
|
|
267
|
+
filteredReactions.push({
|
|
268
|
+
id: generateEventId(),
|
|
269
|
+
type: 'if.event.error',
|
|
270
|
+
entities: event.entities,
|
|
271
|
+
data: {
|
|
272
|
+
message: `Multiple game.message reactions returned for ${event.type}`,
|
|
273
|
+
sourceEvent: event.type,
|
|
274
|
+
targetId: event.entities?.target,
|
|
275
|
+
count: gameMessages.length,
|
|
276
|
+
messageIds: gameMessages.map(m => m.data?.messageId)
|
|
277
|
+
},
|
|
278
|
+
timestamp: Date.now()
|
|
279
|
+
});
|
|
280
|
+
// Filter out the game.message events - use first one as override
|
|
281
|
+
const firstOverride = gameMessages[0];
|
|
282
|
+
const overrideData = firstOverride.data;
|
|
283
|
+
const eventData = event.data;
|
|
284
|
+
if (overrideData.messageId) {
|
|
285
|
+
eventData.messageId = overrideData.messageId;
|
|
286
|
+
}
|
|
287
|
+
if (overrideData.text) {
|
|
288
|
+
eventData.text = overrideData.text;
|
|
289
|
+
}
|
|
290
|
+
if (overrideData.params) {
|
|
291
|
+
eventData.params = overrideData.params;
|
|
292
|
+
}
|
|
293
|
+
filteredReactions = legacyReactions.filter(r => r.type !== 'game.message');
|
|
294
|
+
}
|
|
295
|
+
else if (gameMessages.length === 1) {
|
|
296
|
+
// Normal case: single game.message overrides original event's message
|
|
297
|
+
const override = gameMessages[0];
|
|
298
|
+
const overrideData = override.data;
|
|
299
|
+
const eventData = event.data;
|
|
300
|
+
if (overrideData.messageId) {
|
|
301
|
+
eventData.messageId = overrideData.messageId;
|
|
302
|
+
}
|
|
303
|
+
if (overrideData.text) {
|
|
304
|
+
eventData.text = overrideData.text;
|
|
305
|
+
}
|
|
306
|
+
if (overrideData.params) {
|
|
307
|
+
eventData.params = overrideData.params;
|
|
308
|
+
}
|
|
309
|
+
// Filter out game.message - it's been consumed as an override
|
|
310
|
+
filteredReactions = legacyReactions.filter(r => r.type !== 'game.message');
|
|
311
|
+
}
|
|
312
|
+
// Return filtered reactions (game.message consumed as override)
|
|
313
|
+
return filteredReactions;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Get the world model
|
|
317
|
+
*/
|
|
318
|
+
getWorld() {
|
|
319
|
+
return this.world;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Update processor options
|
|
323
|
+
*/
|
|
324
|
+
setOptions(options) {
|
|
325
|
+
this.options = {
|
|
326
|
+
...this.options,
|
|
327
|
+
...options
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
exports.EventProcessor = EventProcessor;
|
|
332
|
+
//# sourceMappingURL=processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,yCAAsD;AACtD,uCAKmB;AAOnB,uCAAuC;AACvC,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,SAAS,eAAe;IACtB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,MAAa,cAAc;IACjB,KAAK,CAAa;IAClB,OAAO,CAA6B;IACpC,eAAe,CAAkB;IACjC,UAAU,CAAa;IAE/B,yDAAyD;IACjD,aAAa,GAAqC,IAAI,GAAG,EAAE,CAAC;IAEpE,YAAY,KAAiB,EAAE,UAA4B,EAAE;QAC3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;SACjD,CAAC;QAEF,wCAAwC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAe,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3D,qCAAqC;YACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAA,mCAAwB,EAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,SAAiB,EAAE,OAA0B;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,SAAiB,EAAE,OAA0B;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,MAAM,OAAO,GAAoB;YAC/B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,qBAAqB;QACrB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEjD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBAE3C,wBAAwB;gBACxB,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAC3C,SAAS,CAAC,SAAS,EACnB,CAAC,CACF,CAAC;oBACF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;oBACrD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;oBACjD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;oBAClB,KAAK;oBACL,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,iBAAiB;iBAC9C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,KAAqB;QAM9C,uBAAuB;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,yBAAyB;oBACjC,OAAO,EAAE,EAAE;iBACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,GAAkB,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE7B,mCAAmC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,SAAS;aACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBAChE,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,SAA2B,EAC3B,KAAa;QAEb,MAAM,OAAO,GAAoB;YAC/B,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,oBAAoB;QACpB,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACpE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBAE3C,uCAAuC;gBACvC,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CACzC,SAAS,CAAC,SAAS,EACnB,KAAK,GAAG,CAAC,CACV,CAAC;oBACF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;oBACnD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC7C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,iBAAiB;iBAC9C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAe;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChE,uFAAuF;QACvF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACtJ,OAAO,MAAM,IAAI,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAE,KAA0B,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,KAAqB;QAChD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,qCAAqC;QACrC,MAAM,SAAS,GAAe;YAC5B,GAAG,KAAK;YACR,IAAI,EAAG,KAAK,CAAC,IAAgC,IAAI,EAAE;SACpD,CAAC;QAEF,iDAAiD;QACjD,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC/C,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAExB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,sDAAsD;wBACtD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;wBAEnD,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;4BACpC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC/B,mCAAmC;gCACnC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;4BAC7B,CAAC;iCAAM,CAAC;gCACN,4CAA4C;gCAC5C,eAAe,CAAC,IAAI,CAAC,GAAI,MAA2B,CAAC,CAAC;4BACxD,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CACX,4BAA4B,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,GAAG,EACzD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBACpD,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBACtC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,2BAA2B,KAAK,CAAC,IAAI,GAAG,EACxC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;YACD,gEAAgE;YAChE,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,eAAe,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,sFAAsF;QACtF,yEAAyE;QACzE,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC5E,IAAI,iBAAiB,GAAG,eAAe,CAAC;QAExC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,oEAAoE;YACpE,OAAO,CAAC,KAAK,CACX,uCAAuC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,EACjF,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,IAAgC,EAAE,SAAS,CAAC,CACtE,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,eAAe,EAAE;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE;oBACJ,OAAO,EAAE,gDAAgD,KAAK,CAAC,IAAI,EAAE;oBACrE,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM;oBAChC,KAAK,EAAE,YAAY,CAAC,MAAM;oBAC1B,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,IAAgC,EAAE,SAAS,CAAC;iBAClF;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YACH,iEAAiE;YACjE,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,aAAa,CAAC,IAA+E,CAAC;YACnH,MAAM,SAAS,GAAG,KAAK,CAAC,IAA+B,CAAC;YACxD,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC3B,SAAS,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YAC/C,CAAC;YACD,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACrC,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YACzC,CAAC;YACD,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,sEAAsE;YACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAA+E,CAAC;YAC9G,MAAM,SAAS,GAAG,KAAK,CAAC,IAA+B,CAAC;YAExD,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC3B,SAAS,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YAC/C,CAAC;YACD,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACrC,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YACzC,CAAC;YAED,8DAA8D;YAC9D,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC7E,CAAC;QAED,gEAAgE;QAChE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAkC;QAC3C,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;CACF;AA5WD,wCA4WC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sharpee/event-processor",
|
|
3
|
+
"version": "0.9.61-beta",
|
|
4
|
+
"description": "Event processor for applying semantic events to the world model",
|
|
5
|
+
"main": "dist-npm/index.js",
|
|
6
|
+
"types": "dist-npm/index.d.ts",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@sharpee/core": "0.9.61-beta",
|
|
9
|
+
"@sharpee/if-domain": "0.9.61-beta",
|
|
10
|
+
"@sharpee/world-model": "0.9.61-beta"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@types/node": "^20.11.19",
|
|
14
|
+
"cross-env": "^7.0.3",
|
|
15
|
+
"rimraf": "^5.0.5",
|
|
16
|
+
"typescript": "^5.3.3"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist-npm"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"sharpee",
|
|
23
|
+
"interactive-fiction",
|
|
24
|
+
"if",
|
|
25
|
+
"events",
|
|
26
|
+
"event-processor"
|
|
27
|
+
],
|
|
28
|
+
"author": "Sharpee Team",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"types": "./dist-npm/index.d.ts",
|
|
36
|
+
"import": "./dist-npm/index.js",
|
|
37
|
+
"require": "./dist-npm/index.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build": "tsc",
|
|
42
|
+
"test": "vitest",
|
|
43
|
+
"test:ci": "vitest run",
|
|
44
|
+
"test:verbose": "vitest run --reporter=verbose",
|
|
45
|
+
"clean": "rimraf dist",
|
|
46
|
+
"build:npm": "tsc --outDir dist-npm"
|
|
47
|
+
}
|
|
48
|
+
}
|