@waterloorocketry/omnibus-ts 0.1.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=canMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canMessage.js","sourceRoot":"","sources":["../../src/data/canMessage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=daqMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daqMessage.js","sourceRoot":"","sources":["../../src/data/daqMessage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import _ from 'lodash';
2
+ export const toSnakeCase = (obj) => _.transform(obj, (result, value, key) => {
3
+ const snakeKey = _.snakeCase(String(key));
4
+ result[snakeKey] =
5
+ _.isObject(value) && !_.isArray(value) ? toSnakeCase(value) : value;
6
+ });
7
+ export const toCamelCase = (obj) => _.transform(obj, (result, value, key) => {
8
+ const camelKey = _.camelCase(String(key));
9
+ result[camelKey] =
10
+ _.isObject(value) && !_.isArray(value) ? toCamelCase(value) : value;
11
+ });
12
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAoBtB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,GAAM,EAAE,EAAE,CACpD,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAwB,EAAE,KAAU,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAA2B,CAAA;IACnE,MAAM,CAAC,QAAQ,CAAC;QACZ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC3E,CAAC,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,GAAM,EAAE,EAAE,CACpD,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAwB,EAAE,KAAU,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAA2B,CAAA;IACnE,MAAM,CAAC,QAAQ,CAAC;QACZ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC3E,CAAC,CAAC,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ import { getOmnibusSenderReceiver } from './message.js';
2
+ const communicator = ({ serverURL, allowUnsafe = false, allowExposeSocket = false, }) => {
3
+ const fns = getOmnibusSenderReceiver(serverURL);
4
+ const res = {
5
+ sender: fns.sender,
6
+ receiver: fns.receiver,
7
+ disconnect: fns.disconnect,
8
+ };
9
+ if (allowUnsafe) {
10
+ res.unsafeReceiveGenericMessage = fns.unsafeReceiveGenericMessage;
11
+ }
12
+ if (allowExposeSocket) {
13
+ res.socket = fns.socket;
14
+ }
15
+ return res;
16
+ };
17
+ export { communicator };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,YAAY,GAAG,CAAC,EAClB,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,iBAAiB,GAAG,KAAK,GAK5B,EAAE,EAAE;IACD,MAAM,GAAG,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAA;IAC/C,MAAM,GAAG,GAML;QACA,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;KAC7B,CAAA;IACD,IAAI,WAAW,EAAE,CAAC;QACd,GAAG,CAAC,2BAA2B,GAAG,GAAG,CAAC,2BAA2B,CAAA;IACrE,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACpB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,63 @@
1
+ import { io } from 'socket.io-client';
2
+ import msgpackParser from 'socket.io-msgpack-parser';
3
+ import { toCamelCase, toSnakeCase } from './helpers.js';
4
+ export const socketCallbackBuilder = (channel, afterMessageReceived) => {
5
+ const buildMessageObject = (channel, timestamp, payload) => {
6
+ return {
7
+ channel: channel,
8
+ timestamp: timestamp,
9
+ payload: toCamelCase(payload),
10
+ };
11
+ };
12
+ return (event, timestamp, payload) => {
13
+ if (typeof timestamp !== 'number' ||
14
+ typeof payload !== 'object' ||
15
+ !payload) {
16
+ console.warn(`[Omnibus] Malformed Message! ${[event, timestamp, payload]}`);
17
+ return;
18
+ }
19
+ if (event.toLowerCase().startsWith(channel.toLowerCase()) ||
20
+ channel === '') {
21
+ afterMessageReceived(buildMessageObject(event, timestamp, payload));
22
+ }
23
+ };
24
+ };
25
+ export function getOmnibusSenderReceiver(serverURL) {
26
+ const socket = io(serverURL, {
27
+ parser: msgpackParser,
28
+ transports: ['websocket'],
29
+ upgrade: false,
30
+ });
31
+ const send = (msg) => {
32
+ socket.emit(msg.channel, msg.timestamp, toSnakeCase(msg.payload));
33
+ };
34
+ const _attachReceiver = (channel, callback) => {
35
+ socket.onAny(socketCallbackBuilder(channel, callback));
36
+ };
37
+ const receive = (channel, callback) => {
38
+ _attachReceiver(channel, callback);
39
+ };
40
+ const receiveAll = (callback) => {
41
+ _attachReceiver('', callback);
42
+ };
43
+ // No static type checking or runtime sanity checks
44
+ const unsafeReceiveGenericMessage = (callback) => {
45
+ socket.onAny((event, timestamp, payload) => {
46
+ callback({ channel: event, timestamp, payload });
47
+ });
48
+ };
49
+ const disconnect = () => {
50
+ socket.disconnect();
51
+ };
52
+ return {
53
+ socket,
54
+ sender: { send },
55
+ receiver: {
56
+ receive,
57
+ receiveAll,
58
+ },
59
+ unsafeReceiveGenericMessage,
60
+ disconnect,
61
+ };
62
+ }
63
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,aAAa,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAmCvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,OAAe,EACf,oBAA+C,EACjD,EAAE;IACA,MAAM,kBAAkB,GAAG,CACvB,OAAe,EACf,SAAiB,EACjB,OAAe,EACjB,EAAE;QACA,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAM;SACrC,CAAA;IACL,CAAC,CAAA;IACD,OAAO,CAAC,KAAa,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QACzD,IACI,OAAO,SAAS,KAAK,QAAQ;YAC7B,OAAO,OAAO,KAAK,QAAQ;YAC3B,CAAC,OAAO,EACV,CAAC;YACC,OAAO,CAAC,IAAI,CACR,gCAAgC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAChE,CAAA;YACD,OAAM;QACV,CAAC;QAED,IACI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrD,OAAO,KAAK,EAAE,EAChB,CAAC;YACC,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QACvE,CAAC;IACL,CAAC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACtD,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE;QACzB,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,CAAC,WAAW,CAAC;QACzB,OAAO,EAAE,KAAK;KACjB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,CAAuB,GAAqB,EAAE,EAAE;QACzD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACrE,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,CACpB,OAAoB,EACpB,QAAmC,EACrC,EAAE;QACA,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAI,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CACZ,OAAuC,EACvC,QAAmC,EACrC,EAAE;QACA,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,QAA4C,EAAE,EAAE;QAChE,eAAe,CAAa,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,mDAAmD;IACnD,MAAM,2BAA2B,GAAG,CAChC,QAQU,EACZ,EAAE;QACA,MAAM,CAAC,KAAK,CAAC,CAAC,KAAa,EAAE,SAAiB,EAAE,OAAU,EAAE,EAAE;YAC1D,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,MAAM,CAAC,UAAU,EAAE,CAAA;IACvB,CAAC,CAAA;IAED,OAAO;QACH,MAAM;QACN,MAAM,EAAE,EAAE,IAAI,EAAE;QAChB,QAAQ,EAAE;YACN,OAAO;YACP,UAAU;SACb;QACD,2BAA2B;QAC3B,UAAU;KACb,CAAA;AACL,CAAC"}
@@ -0,0 +1,26 @@
1
+ export interface ParsleyMessage<T = unknown> {
2
+ boardTypeId: string;
3
+ boardInstId: string;
4
+ msgPrio: 'LOW' | 'MEDIUM' | 'HIGH' | 'HIGHEST';
5
+ msgType: string;
6
+ data: T | null;
7
+ parsley: string;
8
+ messageVersion: number;
9
+ }
10
+ export interface CANCommandMessage<T = unknown> {
11
+ boardTypeId: string;
12
+ boardInstId: string;
13
+ msgPrio: 'LOW' | 'MEDIUM' | 'HIGH' | 'HIGHEST';
14
+ msgType: string;
15
+ canMsg: T | null;
16
+ parsley: string;
17
+ messageVersion: number;
18
+ }
19
+ type RLCSSensorName = string;
20
+ export type RLCSv3Message = Map<RLCSSensorName, number | string>;
21
+ export interface ParsleyHeartbeatMessage {
22
+ id: string;
23
+ health: string;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=canMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canMessage.d.ts","sourceRoot":"","sources":["../../../src/data/canMessage.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACzB;AAGD,KAAK,cAAc,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAEhE,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,10 @@
1
+ type SensorName = string;
2
+ export interface DAQMessage extends Record<string, unknown> {
3
+ timestamp: number;
4
+ data: Record<SensorName, number[]>;
5
+ relativeTimestamps: number[];
6
+ sampleRate: number;
7
+ messageVersion: number;
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=daqMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daqMessage.d.ts","sourceRoot":"","sources":["../../../src/data/daqMessage.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,MAAM,CAAA;AAExB,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;CACzB"}
@@ -0,0 +1,12 @@
1
+ type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : S;
2
+ type CamelToSnakeCase<S extends string> = S extends `${infer First}${infer Rest}` ? `${First extends Lowercase<First> ? First : `_${Lowercase<First>}`}${CamelToSnakeCase<Rest>}` : S;
3
+ type CamelCaseKeys<T extends object> = {
4
+ [K in keyof T as K extends string ? SnakeToCamelCase<K> : K]: T[K];
5
+ };
6
+ type SnakeCaseKeys<T extends object> = {
7
+ [K in keyof T as K extends string ? CamelToSnakeCase<K> : K]: T[K];
8
+ };
9
+ export declare const toSnakeCase: <T extends object>(obj: T) => SnakeCaseKeys<T>;
10
+ export declare const toCamelCase: <T extends object>(obj: T) => CamelCaseKeys<T>;
11
+ export {};
12
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAGA,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAClC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,GACxE,CAAC,CAAA;AAET,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAClC,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,GACnC,GAAG,KAAK,SAAS,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAC7F,CAAC,CAAA;AAET,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrE,CAAA;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrE,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,qBAK9C,CAAA;AAEN,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,qBAK9C,CAAA"}
@@ -0,0 +1,22 @@
1
+ declare const communicator: ({ serverURL, allowUnsafe, allowExposeSocket, }: {
2
+ serverURL: string;
3
+ allowUnsafe?: boolean;
4
+ allowExposeSocket?: boolean;
5
+ }) => {
6
+ socket?: import("socket.io-client").Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
7
+ sender: {
8
+ send: <T extends import("./message.js").AnyPayload>(msg: import("./message.js").MessageToSend<T>) => void;
9
+ };
10
+ receiver: {
11
+ receive: <T extends import("./message.js").AnyPayload>(channel: T extends import("./data/daqMessage.js").DAQMessage ? `DAQ${string}` : T extends import("./data/canMessage.js").ParsleyMessage<unknown> ? `CAN/Parsley${string}` : T extends import("./data/canMessage.js").CANCommandMessage<unknown> ? `CAN/Commands${string}` : T extends import("./data/canMessage.js").ParsleyHeartbeatMessage ? `Parsley/Health${string}` : T extends import("./data/canMessage.js").RLCSv3Message ? `RLCS${string}` : never, callback: (msg: import("./message.js").Message<T>) => void) => void;
12
+ receiveAll: (callback: (msg: import("./message.js").Message<import("./message.js").AnyPayload>) => void) => void;
13
+ };
14
+ unsafeReceiveGenericMessage?: <T = unknown>(callback: ({ channel, timestamp, payload, }: {
15
+ channel: string;
16
+ timestamp: number;
17
+ payload: T;
18
+ }) => void) => void;
19
+ disconnect: () => void;
20
+ };
21
+ export { communicator };
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,YAAY,GAAI,gDAInB;IACC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC9B;;;;;;;;;;;;;;;CAqBA,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,31 @@
1
+ import type { DAQMessage } from './data/daqMessage.ts';
2
+ import type { ParsleyMessage, CANCommandMessage, RLCSv3Message, ParsleyHeartbeatMessage } from './data/canMessage.ts';
3
+ export type AnyPayload = DAQMessage | ParsleyMessage | CANCommandMessage | RLCSv3Message | ParsleyHeartbeatMessage;
4
+ type ChannelLiteralToPayloadType<T extends AnyPayload> = T extends DAQMessage ? `DAQ${string}` : T extends ParsleyMessage ? `CAN/Parsley${string}` : T extends CANCommandMessage ? `CAN/Commands${string}` : T extends ParsleyHeartbeatMessage ? `Parsley/Health${string}` : T extends RLCSv3Message ? `RLCS${string}` : never;
5
+ export interface Message<T extends AnyPayload> {
6
+ channel: string;
7
+ timestamp: number;
8
+ payload: T;
9
+ }
10
+ export interface MessageToSend<T extends AnyPayload> extends Message<T> {
11
+ channel: ChannelLiteralToPayloadType<T>;
12
+ }
13
+ export declare const socketCallbackBuilder: <T extends AnyPayload>(channel: string, afterMessageReceived: (msg: Message<T>) => void) => (event: string, timestamp: number, payload: object) => void;
14
+ export declare function getOmnibusSenderReceiver(serverURL: string): {
15
+ socket: import("socket.io-client").Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
16
+ sender: {
17
+ send: <T extends AnyPayload>(msg: MessageToSend<T>) => void;
18
+ };
19
+ receiver: {
20
+ receive: <T extends AnyPayload>(channel: ChannelLiteralToPayloadType<T>, callback: (msg: Message<T>) => void) => void;
21
+ receiveAll: (callback: (msg: Message<AnyPayload>) => void) => void;
22
+ };
23
+ unsafeReceiveGenericMessage: <T = unknown>(callback: ({ channel, timestamp, payload, }: {
24
+ channel: string;
25
+ timestamp: number;
26
+ payload: T;
27
+ }) => void) => void;
28
+ disconnect: () => void;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACR,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EAC1B,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,UAAU,GAChB,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,uBAAuB,CAAA;AAE7B,KAAK,2BAA2B,CAAC,CAAC,SAAS,UAAU,IACjD,CAAC,SAAS,UAAU,GAAG,MAAM,MAAM,EAAE,GACnC,CAAC,SAAS,cAAc,GAAG,cAAc,MAAM,EAAE,GACjD,CAAC,SAAS,iBAAiB,GAAG,eAAe,MAAM,EAAE,GACrD,CAAC,SAAS,uBAAuB,GAAG,iBAAiB,MAAM,EAAE,GAC7D,CAAC,SAAS,aAAa,GAAG,OAAO,MAAM,EAAE,GACzC,KAAK,CAAA;AAEX,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,UAAU;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,CAAC,CAAA;CACb;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;CAC1C;AAED,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,UAAU,EACtD,SAAS,MAAM,EACf,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,MAavC,OAAO,MAAM,EAAE,WAAW,MAAM,EAAE,SAAS,MAAM,SAmB5D,CAAA;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM;;;eAOxC,CAAC,SAAS,UAAU,OAAO,aAAa,CAAC,CAAC,CAAC;;;kBAWxC,CAAC,SAAS,UAAU,WACxB,2BAA2B,CAAC,CAAC,CAAC,YAC7B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;+BAKT,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI;;kCAK3B,CAAC,sBACxB,CAAC,EACP,OAAO,EACP,SAAS,EACT,OAAO,GACV,EAAE;QACC,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,CAAC,CAAA;KACb,KAAK,IAAI;;EAqBjB"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@waterloorocketry/omnibus-ts",
3
+ "public": true,
4
+ "version": "0.1.0",
5
+ "description": "Omnibus Message bindings for TypeScript and SocketIO",
6
+ "license": "MIT",
7
+ "author": "Waterloo Rocketry",
8
+ "type": "module",
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/types/index.d.ts",
11
+ "scripts": {
12
+ "test": "vitest",
13
+ "build": "tsc",
14
+ "format": "prettier --write .",
15
+ "lint": "eslint . --ext .ts",
16
+ "coverage": "vitest run --coverage"
17
+ },
18
+ "devDependencies": {
19
+ "@eslint/js": "^9.39.0",
20
+ "@eslint/json": "^0.13.2",
21
+ "@types/express": "^5.0.5",
22
+ "@types/lodash": "^4.17.20",
23
+ "@types/node": "^24.9.2",
24
+ "@vitest/coverage-v8": "^4.0.6",
25
+ "eslint": "^9.39.0",
26
+ "express": "^4.21.2",
27
+ "globals": "^16.5.0",
28
+ "jiti": "^2.6.1",
29
+ "prettier": "^3.6.2",
30
+ "socket.io": "^4.8.1",
31
+ "typescript": "^5.9.3",
32
+ "typescript-eslint": "^8.46.2",
33
+ "vitest": "^4.0.6"
34
+ },
35
+ "dependencies": {
36
+ "lodash": "^4.17.21",
37
+ "socket.io-client": "^4.8.1",
38
+ "socket.io-msgpack-parser": "^3.0.2"
39
+ },
40
+ "files": [
41
+ "dist/**/*"
42
+ ]
43
+ }