@explorins/pers-shared 2.1.114 → 2.1.116
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/dist/cjs/shared-lib/dto/chain-data.dto.d.ts +1 -1
- package/dist/cjs/shared-lib/dto/chain-data.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/chain-data.dto.js +1 -1
- package/dist/cjs/shared-lib/dto/chain-data.dto.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/index.d.ts +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/index.js +1 -0
- package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/ws-relay.types.d.ts +193 -0
- package/dist/cjs/shared-lib/interfaces/ws-relay.types.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/ws-relay.types.js +65 -0
- package/dist/cjs/shared-lib/interfaces/ws-relay.types.js.map +1 -0
- package/dist/esm/shared-lib/dto/chain-data.dto.d.ts +1 -1
- package/dist/esm/shared-lib/dto/chain-data.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/chain-data.dto.js +1 -1
- package/dist/esm/shared-lib/dto/chain-data.dto.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/index.d.ts +1 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/index.js +1 -0
- package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/ws-relay.types.d.ts +193 -0
- package/dist/esm/shared-lib/interfaces/ws-relay.types.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/ws-relay.types.js +56 -0
- package/dist/esm/shared-lib/interfaces/ws-relay.types.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-data.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,qBAAa,YAAY;IAQrB,IAAI,
|
|
1
|
+
{"version":3,"file":"chain-data.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,qBAAa,YAAY;IAQrB,IAAI,EAAG,MAAM,CAAC;IAQd,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAQf,OAAO,CAAC,EAAE,MAAM,CAAC;IAQjB,OAAO,EAAG,MAAM,CAAC;IAQjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAQrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,MAAM,EAAG,MAAM,CAAC;IAQhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAQf,UAAU,CAAC,EAAE,MAAM,CAAC;IAOpB,SAAS,EAAE,SAAS,CAAsB;CAE7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-data.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sDAAmD;AACnD,6CAAmE;AAGnE,MAAa,YAAY;IAQrB,IAAI,CAAU;IAQd,SAAS,CAAU;IAQnB,KAAK,CAAU;IAQf,OAAO,CAAU;IAQjB,OAAO,CAAU;IAQjB,WAAW,CAAU;IAQrB,SAAS,CAAU;IAQnB,MAAM,CAAU;IAQhB,KAAK,CAAU;IAQf,UAAU,CAAU;IAOpB,SAAS,GAAc,uBAAU,CAAC,OAAO,CAAC;CAE7C;AAzFD,oCAyFC;AAjFG;IANC,IAAA,
|
|
1
|
+
{"version":3,"file":"chain-data.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sDAAmD;AACnD,6CAAmE;AAGnE,MAAa,YAAY;IAQrB,IAAI,CAAU;IAQd,SAAS,CAAU;IAQnB,KAAK,CAAU;IAQf,OAAO,CAAU;IAQjB,OAAO,CAAU;IAQjB,WAAW,CAAU;IAQrB,SAAS,CAAU;IAQnB,MAAM,CAAU;IAQhB,KAAK,CAAU;IAQf,UAAU,CAAU;IAOpB,SAAS,GAAc,uBAAU,CAAC,OAAO,CAAC;CAE7C;AAzFD,oCAyFC;AAjFG;IANC,IAAA,qBAAW,EACR;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,mBAAmB;KACnC,CACJ;;0CACa;AAQd;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,yBAAyB;KACzC,CACJ;;+CACkB;AAQnB;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;KAC5B,CACJ;;2CACc;AAQf;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc;KAC9B,CACJ;;6CACgB;AAQjB;IANC,IAAA,qBAAW,EACR;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,UAAU;KAC1B,CACJ;;6CACgB;AAQjB;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc;KAC9B,CACJ;;iDACoB;AAQrB;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;KAC5B,CACJ;;+CACkB;AAQnB;IANC,IAAA,qBAAW,EACR;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,SAAS;KACzB,CACJ;;4CACe;AAQhB;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,eAAe;KAC/B,CACJ;;2CACc;AAQf;IANC,IAAA,6BAAmB,EAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,sBAAsB;KACtC,CACJ;;gDACmB;AAOpB;IALC,IAAA,qBAAW,EACR;QACI,WAAW,EAAE,YAAY;KAC5B,CACJ;;+CACyC"}
|
|
@@ -19,4 +19,5 @@ export * from './counterfactual-wallet-response.interface';
|
|
|
19
19
|
export * from './campaign';
|
|
20
20
|
export * from './ai-prompt-config.interface';
|
|
21
21
|
export * from './balance-filter-options.interface';
|
|
22
|
+
export * from './ws-relay.types';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,kBAAkB,CAAC"}
|
|
@@ -36,4 +36,5 @@ __exportStar(require("./counterfactual-wallet-response.interface"), exports);
|
|
|
36
36
|
__exportStar(require("./campaign"), exports);
|
|
37
37
|
__exportStar(require("./ai-prompt-config.interface"), exports);
|
|
38
38
|
__exportStar(require("./balance-filter-options.interface"), exports);
|
|
39
|
+
__exportStar(require("./ws-relay.types"), exports);
|
|
39
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,mEAAiD;AACjD,uEAAqD;AACrD,iEAA+C;AAC/C,iEAA+C;AAC/C,0DAAwC;AACxC,+DAA6C;AAC7C,2EAAyD;AACzD,iEAA+C;AAC/C,qDAAmC;AACnC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,8DAA4C;AAC5C,kEAAgD;AAChD,4EAA0D;AAC1D,mEAAiD;AAEjD,0DAAwC;AAExC,6EAA2D;AAE3D,6CAA2B;AAE3B,+DAA6C;AAC7C,qEAAmD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,mEAAiD;AACjD,uEAAqD;AACrD,iEAA+C;AAC/C,iEAA+C;AAC/C,0DAAwC;AACxC,+DAA6C;AAC7C,2EAAyD;AACzD,iEAA+C;AAC/C,qDAAmC;AACnC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,8DAA4C;AAC5C,kEAAgD;AAChD,4EAA0D;AAC1D,mEAAiD;AAEjD,0DAAwC;AAExC,6EAA2D;AAE3D,6CAA2B;AAE3B,+DAA6C;AAC7C,qEAAmD;AAEnD,mDAAiC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PERS WS-Relay Shared Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe WebSocket communication types for the PERS event relay system.
|
|
5
|
+
*
|
|
6
|
+
* @version 1.2.0
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Wallet information for subscription
|
|
10
|
+
*/
|
|
11
|
+
export interface WalletInfo {
|
|
12
|
+
/** Ethereum address (0x...) */
|
|
13
|
+
address: string;
|
|
14
|
+
/** Chain ID (e.g., 39123 for PERS testnet) */
|
|
15
|
+
chainId: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Base client message
|
|
19
|
+
*/
|
|
20
|
+
export interface WSClientMessageBase {
|
|
21
|
+
type: 'subscribe' | 'unsubscribe' | 'pong';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Subscribe to wallet addresses (filtered events) or chains (all events)
|
|
25
|
+
*
|
|
26
|
+
* @example Subscribe to wallets (User SDK)
|
|
27
|
+
* ```typescript
|
|
28
|
+
* ws.send(JSON.stringify({
|
|
29
|
+
* type: 'subscribe',
|
|
30
|
+
* wallets: [{ address: '0x...', chainId: 39123 }]
|
|
31
|
+
* }));
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example Subscribe to chains (Admin Dashboard - all events)
|
|
35
|
+
* ```typescript
|
|
36
|
+
* ws.send(JSON.stringify({
|
|
37
|
+
* type: 'subscribe',
|
|
38
|
+
* chains: [39123]
|
|
39
|
+
* }));
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export interface SubscribeMessage extends WSClientMessageBase {
|
|
43
|
+
type: 'subscribe';
|
|
44
|
+
/** Wallet addresses to subscribe (filtered events) */
|
|
45
|
+
wallets?: WalletInfo[];
|
|
46
|
+
/** Chain IDs for full chain subscription (all events - admin mode) */
|
|
47
|
+
chains?: number[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Unsubscribe from wallets or chains
|
|
51
|
+
*/
|
|
52
|
+
export interface UnsubscribeMessage extends WSClientMessageBase {
|
|
53
|
+
type: 'unsubscribe';
|
|
54
|
+
/** Wallet addresses to unsubscribe */
|
|
55
|
+
wallets?: WalletInfo[];
|
|
56
|
+
/** Chain IDs to unsubscribe */
|
|
57
|
+
chains?: number[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Pong response to server ping
|
|
61
|
+
*/
|
|
62
|
+
export interface PongMessage extends WSClientMessageBase {
|
|
63
|
+
type: 'pong';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* All client message types
|
|
67
|
+
*/
|
|
68
|
+
export type WSClientMessage = SubscribeMessage | UnsubscribeMessage | PongMessage;
|
|
69
|
+
/**
|
|
70
|
+
* Connection confirmation (sent immediately after auth)
|
|
71
|
+
*/
|
|
72
|
+
export interface ConnectedPayload {
|
|
73
|
+
userId: string;
|
|
74
|
+
wallets: WalletInfo[];
|
|
75
|
+
activeChains: number[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Subscription confirmation
|
|
79
|
+
*/
|
|
80
|
+
export interface SubscribedPayload {
|
|
81
|
+
/** Currently subscribed wallets */
|
|
82
|
+
wallets: WalletInfo[];
|
|
83
|
+
/** Currently subscribed chains (admin mode) */
|
|
84
|
+
chains: number[];
|
|
85
|
+
/** All active chain IDs */
|
|
86
|
+
activeChains: number[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Unsubscription confirmation
|
|
90
|
+
*/
|
|
91
|
+
export interface UnsubscribedPayload {
|
|
92
|
+
/** Remaining subscribed wallets */
|
|
93
|
+
wallets: WalletInfo[];
|
|
94
|
+
/** Remaining subscribed chains */
|
|
95
|
+
chains: number[];
|
|
96
|
+
/** All active chain IDs */
|
|
97
|
+
activeChains: number[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Error payload
|
|
101
|
+
*/
|
|
102
|
+
export interface ErrorPayload {
|
|
103
|
+
code: string;
|
|
104
|
+
message: string;
|
|
105
|
+
details?: unknown;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Blockchain event types
|
|
109
|
+
*/
|
|
110
|
+
export type BlockchainEventType = 'Transfer' | 'Approval' | 'Mint' | 'Burn' | 'Swap' | 'Unknown';
|
|
111
|
+
/**
|
|
112
|
+
* Blockchain event payload
|
|
113
|
+
*/
|
|
114
|
+
export interface BlockchainEvent {
|
|
115
|
+
chainId: number;
|
|
116
|
+
type: BlockchainEventType;
|
|
117
|
+
txHash: string;
|
|
118
|
+
blockNumber: number;
|
|
119
|
+
timestamp: number;
|
|
120
|
+
contractAddress: string;
|
|
121
|
+
data: {
|
|
122
|
+
from?: string;
|
|
123
|
+
to?: string;
|
|
124
|
+
value?: string;
|
|
125
|
+
[key: string]: unknown;
|
|
126
|
+
};
|
|
127
|
+
userMessage: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Server message types
|
|
131
|
+
*/
|
|
132
|
+
export interface WSServerMessageConnected {
|
|
133
|
+
type: 'connected';
|
|
134
|
+
payload: ConnectedPayload;
|
|
135
|
+
timestamp: number;
|
|
136
|
+
}
|
|
137
|
+
export interface WSServerMessageSubscribed {
|
|
138
|
+
type: 'subscribed';
|
|
139
|
+
payload: SubscribedPayload;
|
|
140
|
+
timestamp: number;
|
|
141
|
+
}
|
|
142
|
+
export interface WSServerMessageUnsubscribed {
|
|
143
|
+
type: 'unsubscribed';
|
|
144
|
+
payload: UnsubscribedPayload;
|
|
145
|
+
timestamp: number;
|
|
146
|
+
}
|
|
147
|
+
export interface WSServerMessageEvent {
|
|
148
|
+
type: 'event';
|
|
149
|
+
payload: BlockchainEvent;
|
|
150
|
+
timestamp: number;
|
|
151
|
+
}
|
|
152
|
+
export interface WSServerMessageError {
|
|
153
|
+
type: 'error';
|
|
154
|
+
payload: ErrorPayload;
|
|
155
|
+
timestamp: number;
|
|
156
|
+
}
|
|
157
|
+
export interface WSServerMessagePing {
|
|
158
|
+
type: 'ping';
|
|
159
|
+
timestamp: number;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* All server message types
|
|
163
|
+
*/
|
|
164
|
+
export type WSServerMessage = WSServerMessageConnected | WSServerMessageSubscribed | WSServerMessageUnsubscribed | WSServerMessageEvent | WSServerMessageError | WSServerMessagePing;
|
|
165
|
+
/**
|
|
166
|
+
* Type guard for server messages
|
|
167
|
+
*/
|
|
168
|
+
export declare function isServerMessage(data: unknown): data is WSServerMessage;
|
|
169
|
+
/**
|
|
170
|
+
* Type guard for event messages
|
|
171
|
+
*/
|
|
172
|
+
export declare function isEventMessage(msg: WSServerMessage): msg is WSServerMessageEvent;
|
|
173
|
+
/**
|
|
174
|
+
* Type guard for connected messages
|
|
175
|
+
*/
|
|
176
|
+
export declare function isConnectedMessage(msg: WSServerMessage): msg is WSServerMessageConnected;
|
|
177
|
+
/**
|
|
178
|
+
* Type guard for subscribed messages
|
|
179
|
+
*/
|
|
180
|
+
export declare function isSubscribedMessage(msg: WSServerMessage): msg is WSServerMessageSubscribed;
|
|
181
|
+
/**
|
|
182
|
+
* Type guard for unsubscribed messages
|
|
183
|
+
*/
|
|
184
|
+
export declare function isUnsubscribedMessage(msg: WSServerMessage): msg is WSServerMessageUnsubscribed;
|
|
185
|
+
/**
|
|
186
|
+
* Type guard for error messages
|
|
187
|
+
*/
|
|
188
|
+
export declare function isErrorMessage(msg: WSServerMessage): msg is WSServerMessageError;
|
|
189
|
+
/**
|
|
190
|
+
* Type guard for ping messages
|
|
191
|
+
*/
|
|
192
|
+
export declare function isPingMessage(msg: WSServerMessage): msg is WSServerMessagePing;
|
|
193
|
+
//# sourceMappingURL=ws-relay.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-relay.types.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/ws-relay.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PERS WS-Relay Shared Types
|
|
4
|
+
*
|
|
5
|
+
* Type-safe WebSocket communication types for the PERS event relay system.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.2.0
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.isServerMessage = isServerMessage;
|
|
11
|
+
exports.isEventMessage = isEventMessage;
|
|
12
|
+
exports.isConnectedMessage = isConnectedMessage;
|
|
13
|
+
exports.isSubscribedMessage = isSubscribedMessage;
|
|
14
|
+
exports.isUnsubscribedMessage = isUnsubscribedMessage;
|
|
15
|
+
exports.isErrorMessage = isErrorMessage;
|
|
16
|
+
exports.isPingMessage = isPingMessage;
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// HELPER FUNCTIONS (TYPE GUARDS)
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Type guard for server messages
|
|
22
|
+
*/
|
|
23
|
+
function isServerMessage(data) {
|
|
24
|
+
return (typeof data === 'object' &&
|
|
25
|
+
data !== null &&
|
|
26
|
+
'type' in data &&
|
|
27
|
+
'timestamp' in data);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Type guard for event messages
|
|
31
|
+
*/
|
|
32
|
+
function isEventMessage(msg) {
|
|
33
|
+
return msg.type === 'event';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Type guard for connected messages
|
|
37
|
+
*/
|
|
38
|
+
function isConnectedMessage(msg) {
|
|
39
|
+
return msg.type === 'connected';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Type guard for subscribed messages
|
|
43
|
+
*/
|
|
44
|
+
function isSubscribedMessage(msg) {
|
|
45
|
+
return msg.type === 'subscribed';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Type guard for unsubscribed messages
|
|
49
|
+
*/
|
|
50
|
+
function isUnsubscribedMessage(msg) {
|
|
51
|
+
return msg.type === 'unsubscribed';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Type guard for error messages
|
|
55
|
+
*/
|
|
56
|
+
function isErrorMessage(msg) {
|
|
57
|
+
return msg.type === 'error';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Type guard for ping messages
|
|
61
|
+
*/
|
|
62
|
+
function isPingMessage(msg) {
|
|
63
|
+
return msg.type === 'ping';
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=ws-relay.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-relay.types.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/ws-relay.types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAiNH,0CAOC;AAKD,wCAEC;AAKD,gDAEC;AAKD,kDAEC;AAKD,sDAEC;AAKD,wCAEC;AAKD,sCAEC;AAxDD,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAa;IAC3C,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,WAAW,IAAI,IAAI,CACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAoB;IACjD,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,GAAoB;IACtD,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,GAAoB;IACxD,OAAO,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAoB;IACjD,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAoB;IAChD,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-data.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,qBAAa,YAAY;IAQrB,IAAI,
|
|
1
|
+
{"version":3,"file":"chain-data.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,qBAAa,YAAY;IAQrB,IAAI,EAAG,MAAM,CAAC;IAQd,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAQf,OAAO,CAAC,EAAE,MAAM,CAAC;IAQjB,OAAO,EAAG,MAAM,CAAC;IAQjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAQrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,MAAM,EAAG,MAAM,CAAC;IAQhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAQf,UAAU,CAAC,EAAE,MAAM,CAAC;IAOpB,SAAS,EAAE,SAAS,CAAsB;CAE7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-data.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGnE,MAAM,OAAO,YAAY;IAQrB,IAAI,CAAU;IAQd,SAAS,CAAU;IAQnB,KAAK,CAAU;IAQf,OAAO,CAAU;IAQjB,OAAO,CAAU;IAQjB,WAAW,CAAU;IAQrB,SAAS,CAAU;IAQnB,MAAM,CAAU;IAQhB,KAAK,CAAU;IAQf,UAAU,CAAU;IAOpB,SAAS,GAAc,UAAU,CAAC,OAAO,CAAC;CAE7C;AAjFG;IANC,
|
|
1
|
+
{"version":3,"file":"chain-data.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/chain-data.dto.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGnE,MAAM,OAAO,YAAY;IAQrB,IAAI,CAAU;IAQd,SAAS,CAAU;IAQnB,KAAK,CAAU;IAQf,OAAO,CAAU;IAQjB,OAAO,CAAU;IAQjB,WAAW,CAAU;IAQrB,SAAS,CAAU;IAQnB,MAAM,CAAU;IAQhB,KAAK,CAAU;IAQf,UAAU,CAAU;IAOpB,SAAS,GAAc,UAAU,CAAC,OAAO,CAAC;CAE7C;AAjFG;IANC,WAAW,CACR;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,mBAAmB;KACnC,CACJ;0CACa;AAQd;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,yBAAyB;KACzC,CACJ;+CACkB;AAQnB;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;KAC5B,CACJ;2CACc;AAQf;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc;KAC9B,CACJ;6CACgB;AAQjB;IANC,WAAW,CACR;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,UAAU;KAC1B,CACJ;6CACgB;AAQjB;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc;KAC9B,CACJ;iDACoB;AAQrB;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;KAC5B,CACJ;+CACkB;AAQnB;IANC,WAAW,CACR;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,SAAS;KACzB,CACJ;4CACe;AAQhB;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,eAAe;KAC/B,CACJ;2CACc;AAQf;IANC,mBAAmB,CAChB;QACI,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,sBAAsB;KACtC,CACJ;gDACmB;AAOpB;IALC,WAAW,CACR;QACI,WAAW,EAAE,YAAY;KAC5B,CACJ;+CACyC"}
|
|
@@ -19,4 +19,5 @@ export * from './counterfactual-wallet-response.interface';
|
|
|
19
19
|
export * from './campaign';
|
|
20
20
|
export * from './ai-prompt-config.interface';
|
|
21
21
|
export * from './balance-filter-options.interface';
|
|
22
|
+
export * from './ws-relay.types';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,kBAAkB,CAAC"}
|
|
@@ -20,4 +20,5 @@ export * from './counterfactual-wallet-response.interface.js';
|
|
|
20
20
|
export * from './campaign/index.js';
|
|
21
21
|
export * from './ai-prompt-config.interface.js';
|
|
22
22
|
export * from './balance-filter-options.interface.js';
|
|
23
|
+
export * from './ws-relay.types.js';
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PERS WS-Relay Shared Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe WebSocket communication types for the PERS event relay system.
|
|
5
|
+
*
|
|
6
|
+
* @version 1.2.0
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Wallet information for subscription
|
|
10
|
+
*/
|
|
11
|
+
export interface WalletInfo {
|
|
12
|
+
/** Ethereum address (0x...) */
|
|
13
|
+
address: string;
|
|
14
|
+
/** Chain ID (e.g., 39123 for PERS testnet) */
|
|
15
|
+
chainId: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Base client message
|
|
19
|
+
*/
|
|
20
|
+
export interface WSClientMessageBase {
|
|
21
|
+
type: 'subscribe' | 'unsubscribe' | 'pong';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Subscribe to wallet addresses (filtered events) or chains (all events)
|
|
25
|
+
*
|
|
26
|
+
* @example Subscribe to wallets (User SDK)
|
|
27
|
+
* ```typescript
|
|
28
|
+
* ws.send(JSON.stringify({
|
|
29
|
+
* type: 'subscribe',
|
|
30
|
+
* wallets: [{ address: '0x...', chainId: 39123 }]
|
|
31
|
+
* }));
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example Subscribe to chains (Admin Dashboard - all events)
|
|
35
|
+
* ```typescript
|
|
36
|
+
* ws.send(JSON.stringify({
|
|
37
|
+
* type: 'subscribe',
|
|
38
|
+
* chains: [39123]
|
|
39
|
+
* }));
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export interface SubscribeMessage extends WSClientMessageBase {
|
|
43
|
+
type: 'subscribe';
|
|
44
|
+
/** Wallet addresses to subscribe (filtered events) */
|
|
45
|
+
wallets?: WalletInfo[];
|
|
46
|
+
/** Chain IDs for full chain subscription (all events - admin mode) */
|
|
47
|
+
chains?: number[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Unsubscribe from wallets or chains
|
|
51
|
+
*/
|
|
52
|
+
export interface UnsubscribeMessage extends WSClientMessageBase {
|
|
53
|
+
type: 'unsubscribe';
|
|
54
|
+
/** Wallet addresses to unsubscribe */
|
|
55
|
+
wallets?: WalletInfo[];
|
|
56
|
+
/** Chain IDs to unsubscribe */
|
|
57
|
+
chains?: number[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Pong response to server ping
|
|
61
|
+
*/
|
|
62
|
+
export interface PongMessage extends WSClientMessageBase {
|
|
63
|
+
type: 'pong';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* All client message types
|
|
67
|
+
*/
|
|
68
|
+
export type WSClientMessage = SubscribeMessage | UnsubscribeMessage | PongMessage;
|
|
69
|
+
/**
|
|
70
|
+
* Connection confirmation (sent immediately after auth)
|
|
71
|
+
*/
|
|
72
|
+
export interface ConnectedPayload {
|
|
73
|
+
userId: string;
|
|
74
|
+
wallets: WalletInfo[];
|
|
75
|
+
activeChains: number[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Subscription confirmation
|
|
79
|
+
*/
|
|
80
|
+
export interface SubscribedPayload {
|
|
81
|
+
/** Currently subscribed wallets */
|
|
82
|
+
wallets: WalletInfo[];
|
|
83
|
+
/** Currently subscribed chains (admin mode) */
|
|
84
|
+
chains: number[];
|
|
85
|
+
/** All active chain IDs */
|
|
86
|
+
activeChains: number[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Unsubscription confirmation
|
|
90
|
+
*/
|
|
91
|
+
export interface UnsubscribedPayload {
|
|
92
|
+
/** Remaining subscribed wallets */
|
|
93
|
+
wallets: WalletInfo[];
|
|
94
|
+
/** Remaining subscribed chains */
|
|
95
|
+
chains: number[];
|
|
96
|
+
/** All active chain IDs */
|
|
97
|
+
activeChains: number[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Error payload
|
|
101
|
+
*/
|
|
102
|
+
export interface ErrorPayload {
|
|
103
|
+
code: string;
|
|
104
|
+
message: string;
|
|
105
|
+
details?: unknown;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Blockchain event types
|
|
109
|
+
*/
|
|
110
|
+
export type BlockchainEventType = 'Transfer' | 'Approval' | 'Mint' | 'Burn' | 'Swap' | 'Unknown';
|
|
111
|
+
/**
|
|
112
|
+
* Blockchain event payload
|
|
113
|
+
*/
|
|
114
|
+
export interface BlockchainEvent {
|
|
115
|
+
chainId: number;
|
|
116
|
+
type: BlockchainEventType;
|
|
117
|
+
txHash: string;
|
|
118
|
+
blockNumber: number;
|
|
119
|
+
timestamp: number;
|
|
120
|
+
contractAddress: string;
|
|
121
|
+
data: {
|
|
122
|
+
from?: string;
|
|
123
|
+
to?: string;
|
|
124
|
+
value?: string;
|
|
125
|
+
[key: string]: unknown;
|
|
126
|
+
};
|
|
127
|
+
userMessage: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Server message types
|
|
131
|
+
*/
|
|
132
|
+
export interface WSServerMessageConnected {
|
|
133
|
+
type: 'connected';
|
|
134
|
+
payload: ConnectedPayload;
|
|
135
|
+
timestamp: number;
|
|
136
|
+
}
|
|
137
|
+
export interface WSServerMessageSubscribed {
|
|
138
|
+
type: 'subscribed';
|
|
139
|
+
payload: SubscribedPayload;
|
|
140
|
+
timestamp: number;
|
|
141
|
+
}
|
|
142
|
+
export interface WSServerMessageUnsubscribed {
|
|
143
|
+
type: 'unsubscribed';
|
|
144
|
+
payload: UnsubscribedPayload;
|
|
145
|
+
timestamp: number;
|
|
146
|
+
}
|
|
147
|
+
export interface WSServerMessageEvent {
|
|
148
|
+
type: 'event';
|
|
149
|
+
payload: BlockchainEvent;
|
|
150
|
+
timestamp: number;
|
|
151
|
+
}
|
|
152
|
+
export interface WSServerMessageError {
|
|
153
|
+
type: 'error';
|
|
154
|
+
payload: ErrorPayload;
|
|
155
|
+
timestamp: number;
|
|
156
|
+
}
|
|
157
|
+
export interface WSServerMessagePing {
|
|
158
|
+
type: 'ping';
|
|
159
|
+
timestamp: number;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* All server message types
|
|
163
|
+
*/
|
|
164
|
+
export type WSServerMessage = WSServerMessageConnected | WSServerMessageSubscribed | WSServerMessageUnsubscribed | WSServerMessageEvent | WSServerMessageError | WSServerMessagePing;
|
|
165
|
+
/**
|
|
166
|
+
* Type guard for server messages
|
|
167
|
+
*/
|
|
168
|
+
export declare function isServerMessage(data: unknown): data is WSServerMessage;
|
|
169
|
+
/**
|
|
170
|
+
* Type guard for event messages
|
|
171
|
+
*/
|
|
172
|
+
export declare function isEventMessage(msg: WSServerMessage): msg is WSServerMessageEvent;
|
|
173
|
+
/**
|
|
174
|
+
* Type guard for connected messages
|
|
175
|
+
*/
|
|
176
|
+
export declare function isConnectedMessage(msg: WSServerMessage): msg is WSServerMessageConnected;
|
|
177
|
+
/**
|
|
178
|
+
* Type guard for subscribed messages
|
|
179
|
+
*/
|
|
180
|
+
export declare function isSubscribedMessage(msg: WSServerMessage): msg is WSServerMessageSubscribed;
|
|
181
|
+
/**
|
|
182
|
+
* Type guard for unsubscribed messages
|
|
183
|
+
*/
|
|
184
|
+
export declare function isUnsubscribedMessage(msg: WSServerMessage): msg is WSServerMessageUnsubscribed;
|
|
185
|
+
/**
|
|
186
|
+
* Type guard for error messages
|
|
187
|
+
*/
|
|
188
|
+
export declare function isErrorMessage(msg: WSServerMessage): msg is WSServerMessageError;
|
|
189
|
+
/**
|
|
190
|
+
* Type guard for ping messages
|
|
191
|
+
*/
|
|
192
|
+
export declare function isPingMessage(msg: WSServerMessage): msg is WSServerMessagePing;
|
|
193
|
+
//# sourceMappingURL=ws-relay.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-relay.types.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/ws-relay.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PERS WS-Relay Shared Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe WebSocket communication types for the PERS event relay system.
|
|
5
|
+
*
|
|
6
|
+
* @version 1.2.0
|
|
7
|
+
*/
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// HELPER FUNCTIONS (TYPE GUARDS)
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Type guard for server messages
|
|
13
|
+
*/
|
|
14
|
+
export function isServerMessage(data) {
|
|
15
|
+
return (typeof data === 'object' &&
|
|
16
|
+
data !== null &&
|
|
17
|
+
'type' in data &&
|
|
18
|
+
'timestamp' in data);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Type guard for event messages
|
|
22
|
+
*/
|
|
23
|
+
export function isEventMessage(msg) {
|
|
24
|
+
return msg.type === 'event';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Type guard for connected messages
|
|
28
|
+
*/
|
|
29
|
+
export function isConnectedMessage(msg) {
|
|
30
|
+
return msg.type === 'connected';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Type guard for subscribed messages
|
|
34
|
+
*/
|
|
35
|
+
export function isSubscribedMessage(msg) {
|
|
36
|
+
return msg.type === 'subscribed';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Type guard for unsubscribed messages
|
|
40
|
+
*/
|
|
41
|
+
export function isUnsubscribedMessage(msg) {
|
|
42
|
+
return msg.type === 'unsubscribed';
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Type guard for error messages
|
|
46
|
+
*/
|
|
47
|
+
export function isErrorMessage(msg) {
|
|
48
|
+
return msg.type === 'error';
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Type guard for ping messages
|
|
52
|
+
*/
|
|
53
|
+
export function isPingMessage(msg) {
|
|
54
|
+
return msg.type === 'ping';
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=ws-relay.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-relay.types.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/ws-relay.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0MH,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,WAAW,IAAI,IAAI,CACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAoB;IACxD,OAAO,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAoB;IAChD,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;AAC7B,CAAC"}
|
package/package.json
CHANGED