🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@ixo/oracles-events

Package Overview
Dependencies
Maintainers
2
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ixo/oracles-events - npm Package Compare versions

Comparing version
1.0.3
to
1.0.4
+1
-1
dist/events/action-call/action-call.event.d.ts
import { BaseEvent, type WithRequiredEventProps } from '../base-event/base-event';
import { IActionCallEvent } from './types';
import { type IActionCallEvent } from './types';
export declare class ActionCallEvent extends BaseEvent<IActionCallEvent> {

@@ -4,0 +4,0 @@ payload: WithRequiredEventProps<IActionCallEvent>;

@@ -1,1 +0,1 @@

{"version":3,"file":"action-call.event.d.ts","sourceRoot":"","sources":["../../../src/events/action-call/action-call.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IAC3C,OAAO,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;gBAAjD,OAAO,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;IAK7D,SAAS,gBAAc;IAE9B,MAAM,CAAC,SAAS,gBAAc;CAC/B"}
{"version":3,"file":"action-call.event.d.ts","sourceRoot":"","sources":["../../../src/events/action-call/action-call.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,qBAAa,eAAgB,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IAC3C,OAAO,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;gBAAjD,OAAO,EAAE,sBAAsB,CAAC,gBAAgB,CAAC;IAK7D,SAAS,gBAAc;IAE9B,MAAM,CAAC,SAAS,gBAAc;CAC/B"}

@@ -5,4 +5,4 @@ export declare const EVENT_NAME = "browser_tool_call";

toolName: string;
args: any;
args: Record<string, unknown>;
}
//# sourceMappingURL=types.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/browser-tool-call/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;CACX"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/browser-tool-call/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B"}
import { BaseEvent, type WithRequiredEventProps } from '../base-event/base-event';
import { IReasoningEvent } from './types';
import { type IReasoningEvent } from './types';
export declare class ReasoningEvent extends BaseEvent<IReasoningEvent> {

@@ -4,0 +4,0 @@ static readonly eventName: "reasoning";

@@ -1,1 +0,1 @@

{"version":3,"file":"reasoning-event.d.ts","sourceRoot":"","sources":["../../../src/events/reasoning-event/reasoning-event.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,eAAe,EAAE,MAAM,SAAS,CAAC;AAEtD,qBAAa,cAAe,SAAQ,SAAS,CAAC,eAAe,CAAC;IAC5D,gBAAyB,SAAS,cAAc;IAChD,QAAQ,CAAC,SAAS,cAA4B;IACvC,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;gBAE5C,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC;IAc5D;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C;;OAEG;IACI,YAAY,IAAI,IAAI;IAI3B;;OAEG;WACW,WAAW,CACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,EACtD,UAAU,UAAQ,GACjB,cAAc;CAUlB"}
{"version":3,"file":"reasoning-event.d.ts","sourceRoot":"","sources":["../../../src/events/reasoning-event/reasoning-event.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,cAAe,SAAQ,SAAS,CAAC,eAAe,CAAC;IAC5D,gBAAyB,SAAS,cAAc;IAChD,QAAQ,CAAC,SAAS,cAA4B;IACvC,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;gBAE5C,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC;IAc5D;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C;;OAEG;IACI,YAAY,IAAI,IAAI;IAI3B;;OAEG;WACW,WAAW,CACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,EACtD,UAAU,UAAQ,GACjB,cAAc;CAUlB"}
import { BaseEvent, type WithRequiredEventProps } from '../base-event/base-event';
import { IToolCallEvent } from './types';
import { type IToolCallEvent } from './types';
export declare class ToolCallEvent extends BaseEvent<IToolCallEvent> {

@@ -4,0 +4,0 @@ payload: WithRequiredEventProps<IToolCallEvent>;

@@ -1,1 +0,1 @@

{"version":3,"file":"tool-call.event.d.ts","sourceRoot":"","sources":["../../../src/events/tool-call/tool-call.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,cAAc,EAAE,MAAM,SAAS,CAAC;AAErD,qBAAa,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC;gBAA/C,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAK3D,SAAS,cAAc;IAE9B,MAAM,CAAC,SAAS,cAAc;CAC/B"}
{"version":3,"file":"tool-call.event.d.ts","sourceRoot":"","sources":["../../../src/events/tool-call/tool-call.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC;gBAA/C,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAK3D,SAAS,cAAc;IAE9B,MAAM,CAAC,SAAS,cAAc;CAC/B"}

@@ -1,1 +0,1 @@

{"version":3,"file":"graph-event-emitter.d.ts","sourceRoot":"","sources":["../src/graph-event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAY/D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GACjD,IAAI;CASR"}
{"version":3,"file":"graph-event-emitter.d.ts","sourceRoot":"","sources":["../src/graph-event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAW/D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GACjD,IAAI;CASR"}

@@ -8,3 +8,2 @@ "use strict";

const tool_call_event_1 = require("./events/tool-call/tool-call.event");
// eslint-disable-next-line @typescript-eslint/no-extraneous-class -- this class is used in the gateway
class GraphEventEmitter {

@@ -11,0 +10,0 @@ static registerEventHandlers(server) {

@@ -1,1 +0,1 @@

{"version":3,"file":"root-event-emitter.d.ts","sourceRoot":"","sources":["../../src/root-event-emitter/root-event-emitter.ts"],"names":[],"mappings":"AAEA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC,OAAO;WAIO,WAAW,IAAI,gBAAgB;IAWtC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAIxC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAI/D,cAAc,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GACrC,IAAI;CAGR;AAED,eAAO,MAAM,gBAAgB,kBAAiC,CAAC"}
{"version":3,"file":"root-event-emitter.d.ts","sourceRoot":"","sources":["../../src/root-event-emitter/root-event-emitter.ts"],"names":[],"mappings":"AAIA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC,OAAO;WAIO,WAAW,IAAI,gBAAgB;IAmBtC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAIxC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAI/D,cAAc,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GACrC,IAAI;CAGR;AAED,eAAO,MAAM,gBAAgB,kBAAiC,CAAC"}

@@ -8,2 +8,3 @@ "use strict";

const eventemitter2_1 = __importDefault(require("eventemitter2"));
const GLOBAL_KEY = Symbol.for('@ixo/oracles-events:root-event-emitter');
class RootEventEmitter {

@@ -19,5 +20,12 @@ static instance = null;

}
// Use a process-global symbol to ensure a single instance across
// duplicate copies of this package (npm + workspace link)
const globalRegistry = globalThis;
if (globalRegistry[GLOBAL_KEY]) {
return globalRegistry[GLOBAL_KEY];
}
if (!RootEventEmitter.instance) {
RootEventEmitter.instance = new RootEventEmitter();
}
globalRegistry[GLOBAL_KEY] = RootEventEmitter.instance;
return RootEventEmitter.instance;

@@ -24,0 +32,0 @@ }

{
"name": "@ixo/oracles-events",
"version": "1.0.3",
"description": "Events for the IXO Oracles",
"version": "1.0.4",
"description": "Events for QiForge",
"private": false,

@@ -33,10 +33,7 @@ "main": "./dist/server.js",

"devDependencies": {
"@types/jest": "^29.5.2",
"jest": "^29.5.0",
"socket.io": "4.8.0",
"ts-jest": "^29.1.0",
"typescript": "^5.3.3",
"@ixo/eslint-config": "1.0.0",
"@ixo/jest-config": "0.0.0",
"@ixo/typescript-config": "1.0.0"
"@ixo/eslint-config": "2.0.0",
"@ixo/typescript-config": "1.0.0",
"@ixo/vitest-config": "1.0.0"
},

@@ -48,4 +45,4 @@ "dependencies": {

"build": "tsc",
"test": "jest"
"test": "vitest run"
}
}
# `@ixo/oracles-events`
Real-time event system for the IXO Oracles Framework. Handles streaming communication between your oracle (server) and client applications via **Server-Sent Events (SSE)** and **WebSocket (WS)** connections.
Real-time event system for QiForge. Handles streaming communication between your oracle (server) and client applications via **Server-Sent Events (SSE)** and **WebSocket (WS)** connections.

@@ -387,3 +387,2 @@ **Table of Contents**

### Required Payload Properties

@@ -390,0 +389,0 @@

export {};
//# sourceMappingURL=base-event.test.d.ts.map
{"version":3,"file":"base-event.test.d.ts","sourceRoot":"","sources":["../../../src/events/base-event/base-event.test.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const root_event_emitter_1 = require("../../root-event-emitter/root-event-emitter");
const base_event_1 = require("./base-event");
describe('BaseEvent', () => {
class TestEvent extends base_event_1.BaseEvent {
payload;
static eventName = 'testEvent';
eventName = TestEvent.eventName;
constructor(payload) {
super();
this.payload = payload;
}
}
it('should throw an error if used in the browser', () => {
const originalWindow = global.window;
global.window = {};
expect(() => new TestEvent({
sessionId: '456',
requestId: '789',
})).toThrow('Events should not be used in the browser.');
global.window = originalWindow;
});
it('should throw an error if eventName is not defined', () => {
class InvalidEvent extends base_event_1.BaseEvent {
payload;
eventName = '';
constructor(payload) {
super();
this.payload = payload;
}
}
expect(() => new InvalidEvent({
sessionId: '456',
requestId: '789',
})).toThrow('Derived classes must define a static eventName property of type string.');
});
it('should emit an event with the correct payload', () => {
const payload = { sessionId: '456', requestId: '789' };
const event = new TestEvent(payload);
const emitSpy = jest.spyOn(root_event_emitter_1.rootEventEmitter, 'emit');
event.emit();
expect(emitSpy).toHaveBeenCalledWith(TestEvent.eventName, payload);
});
it('should register event handlers correctly', () => {
const payload = { sessionId: '456', requestId: '789' };
const server = {
to: jest.fn().mockReturnThis(),
emit: jest.fn(),
};
const logSpy = jest.spyOn(console, 'log');
TestEvent.registerEventHandlers(server);
root_event_emitter_1.rootEventEmitter.emit(TestEvent.eventName, payload);
expect(logSpy).toHaveBeenCalled();
expect(server.to).toHaveBeenCalledWith(payload.sessionId);
expect(server.emit).toHaveBeenCalledWith(TestEvent.eventName, payload);
});
});
describe('shouldHaveSessionId', () => {
it('should throw an error if payload is null or undefined', () => {
expect(() => (0, base_event_1.shouldHaveSessionId)(null)).toThrow('Payload must be provided and cannot be null or undefined.');
expect(() => (0, base_event_1.shouldHaveSessionId)(undefined)).toThrow('Payload must be provided and cannot be null or undefined.');
});
it('should throw an error if payload is not an object', () => {
expect(() => (0, base_event_1.shouldHaveSessionId)(123)).toThrow('Payload must be an object. Received: number');
expect(() => (0, base_event_1.shouldHaveSessionId)('string')).toThrow('Payload must be an object. Received: string');
});
it('should throw an error if payload does not include sessionId', () => {
expect(() => (0, base_event_1.shouldHaveSessionId)({})).toThrow('Payload must include a sessionId property.');
});
it('should return the payload if it includes connectionId', () => {
const payload = { connectionId: '123', sessionId: '456', requestId: '789' };
expect((0, base_event_1.shouldHaveSessionId)(payload)).toBe(payload);
});
});
export {};
//# sourceMappingURL=render-component.event.test.d.ts.map
{"version":3,"file":"render-component.event.test.d.ts","sourceRoot":"","sources":["../../../src/events/render-component/render-component.event.test.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const root_event_emitter_1 = require("../../root-event-emitter/root-event-emitter");
const test_utils_1 = require("../test-utils");
const render_component_event_1 = require("./render-component.event");
describe('RenderComponentEvent', () => {
it('should have a default status of "isRunning" if not provided', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
componentName: 'testComponent',
eventId: '101112',
};
const event = new render_component_event_1.RenderComponentEvent(payload);
expect(event.payload.status).toBe('isRunning');
});
it('should retain the provided status', () => {
const payload = {
sessionId: '456',
requestId: '789',
componentName: 'testComponent',
status: 'done',
eventId: '101112',
};
const event = new render_component_event_1.RenderComponentEvent(payload);
expect(event.payload.status).toBe('done');
});
it('should have the correct eventName', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
componentName: 'testComponent',
eventId: '101112',
};
const event = new render_component_event_1.RenderComponentEvent(payload);
expect(event.eventName).toBe('render_component');
expect(render_component_event_1.RenderComponentEvent.eventName).toBe('render_component');
});
it('should emit an event with the correct payload', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
componentName: 'testComponent',
eventId: '101112',
};
const event = new render_component_event_1.RenderComponentEvent(payload);
const emitSpy = jest.spyOn(root_event_emitter_1.rootEventEmitter, 'emit');
event.emit();
expect(emitSpy).toHaveBeenCalledWith(render_component_event_1.RenderComponentEvent.eventName, payload);
});
it('should register event handlers correctly', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
componentName: 'testComponent',
eventId: '101112',
};
expect((0, test_utils_1.shouldRegisterEvent)(render_component_event_1.RenderComponentEvent, payload)).toBe(true);
});
});
export {};
//# sourceMappingURL=router.test.d.ts.map
{"version":3,"file":"router.test.d.ts","sourceRoot":"","sources":["../../../src/events/router-event/router.test.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const root_event_emitter_1 = require("../../root-event-emitter/root-event-emitter");
const test_utils_1 = require("../test-utils");
const router_event_1 = require("./router.event");
describe('RouterEvent', () => {
it('should initialize with the correct payload and eventName', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
step: 'initial',
};
const event = new router_event_1.RouterEvent(payload);
expect(event.payload).toEqual(payload);
expect(event.eventName).toBe(router_event_1.RouterEvent.eventName);
});
it('should update the step in the payload', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
step: 'initial',
};
const event = new router_event_1.RouterEvent(payload);
event.updateStep('nextStep');
expect(event.payload.step).toBe('nextStep');
});
it('should emit an event with the correct payload', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
step: 'initial',
};
const event = new router_event_1.RouterEvent(payload);
const emitSpy = jest.spyOn(root_event_emitter_1.rootEventEmitter, 'emit');
event.emit();
expect(emitSpy).toHaveBeenCalledWith(router_event_1.RouterEvent.eventName, payload);
});
it('should register event handlers correctly', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
step: 'initial',
};
expect((0, test_utils_1.shouldRegisterEvent)(router_event_1.RouterEvent, payload)).toBe(true);
});
});
import { type AllEventsAsClass } from 'src/types';
/**
* Utility function to test if an event should be registered.
*
* @param EventClass - The class of the event to be registered.
* @param payload - The payload of the event.
*
* @remarks
* This function mocks a socket and spies on the Logger's `info` method to verify
* that event handlers are registered correctly. It emits the event using the
* `rootEventEmitter` and checks that the appropriate log message is generated
* and that the socket's `to` and `emit` methods are called with the correct arguments.
*/
export declare const shouldRegisterEvent: <C extends (typeof AllEventsAsClass)[number]>(EventClass: C, payload: InstanceType<C>["payload"]) => boolean;
//# sourceMappingURL=test-utils.d.ts.map
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/events/test-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,CAAC,SAAS,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,EAE3C,YAAY,CAAC,EACb,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAClC,OAeF,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.shouldRegisterEvent = void 0;
const root_event_emitter_1 = require("src/root-event-emitter");
/**
* Utility function to test if an event should be registered.
*
* @param EventClass - The class of the event to be registered.
* @param payload - The payload of the event.
*
* @remarks
* This function mocks a socket and spies on the Logger's `info` method to verify
* that event handlers are registered correctly. It emits the event using the
* `rootEventEmitter` and checks that the appropriate log message is generated
* and that the socket's `to` and `emit` methods are called with the correct arguments.
*/
const shouldRegisterEvent = (EventClass, payload) => {
const server = {
to: jest.fn().mockReturnThis(),
emit: jest.fn(),
};
const logSpy = jest.spyOn(console, 'log');
EventClass.registerEventHandlers(server);
root_event_emitter_1.rootEventEmitter.emit(EventClass.eventName, payload);
expect(logSpy).toHaveBeenCalled();
expect(server.to).toHaveBeenCalledWith(payload.sessionId);
expect(server.emit).toHaveBeenCalledWith(EventClass.eventName, payload);
return true;
};
exports.shouldRegisterEvent = shouldRegisterEvent;
export {};
//# sourceMappingURL=tool-call.event.test.d.ts.map
{"version":3,"file":"tool-call.event.test.d.ts","sourceRoot":"","sources":["../../../src/events/tool-call/tool-call.event.test.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const root_event_emitter_1 = require("../../root-event-emitter/root-event-emitter");
const test_utils_1 = require("../test-utils");
const tool_call_event_1 = require("./tool-call.event");
describe('ToolCallEvent', () => {
it('should have a default status of "isRunning" if not provided', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
toolName: 'testTool',
eventId: '101112',
};
const event = new tool_call_event_1.ToolCallEvent(payload);
expect(event.payload.status).toBe('isRunning');
});
it('should retain the provided status', () => {
const payload = {
sessionId: '456',
requestId: '789',
toolName: 'testTool',
status: 'done',
eventId: '101112',
};
const event = new tool_call_event_1.ToolCallEvent(payload);
expect(event.payload.status).toBe('done');
});
it('should have the correct eventName', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
toolName: 'testTool',
eventId: '101112',
};
const event = new tool_call_event_1.ToolCallEvent(payload);
expect(event.eventName).toBe('tool_call');
expect(tool_call_event_1.ToolCallEvent.eventName).toBe('tool_call');
});
it('should emit an event with the correct payload', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
toolName: 'testTool',
eventId: '101112',
};
const event = new tool_call_event_1.ToolCallEvent(payload);
const emitSpy = jest.spyOn(root_event_emitter_1.rootEventEmitter, 'emit');
event.emit();
expect(emitSpy).toHaveBeenCalledWith(tool_call_event_1.ToolCallEvent.eventName, payload);
});
it('should register event handlers correctly', () => {
const payload = {
connectionId: '123',
sessionId: '456',
requestId: '789',
toolName: 'testTool',
eventId: '101112',
};
expect((0, test_utils_1.shouldRegisterEvent)(tool_call_event_1.ToolCallEvent, payload)).toBe(true);
});
});
export {};
//# sourceMappingURL=root-event-emitter.test.d.ts.map
{"version":3,"file":"root-event-emitter.test.d.ts","sourceRoot":"","sources":["../../src/root-event-emitter/root-event-emitter.test.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const root_event_emitter_1 = require("./root-event-emitter");
describe('RootEventEmitter', () => {
it('should return the same instance on multiple calls', () => {
const instance1 = root_event_emitter_1.rootEventEmitter;
const instance2 = root_event_emitter_1.RootEventEmitter.getInstance();
expect(instance1).toBe(instance2);
});
it('should throw an error if used in the browser', () => {
const originalWindow = global.window;
global.window = {};
expect(() => root_event_emitter_1.RootEventEmitter.getInstance()).toThrow('RootEventEmitter should not be used in the browser.');
global.window = originalWindow;
});
it('should emit and listen to events', () => {
const event = 'testEvent';
const data = { key: 'value' };
const listener = jest.fn();
root_event_emitter_1.rootEventEmitter.on(event, listener);
root_event_emitter_1.rootEventEmitter.emit(event, data);
expect(listener).toHaveBeenCalledWith(data);
});
it('should remove event listeners', () => {
const event = 'testEvent';
const listener = jest.fn();
root_event_emitter_1.rootEventEmitter.on(event, listener);
root_event_emitter_1.rootEventEmitter.removeListener(event, listener);
root_event_emitter_1.rootEventEmitter.emit(event, {});
expect(listener).not.toHaveBeenCalled();
});
});