stelar-time-real 3.2.1 → 3.3.1
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/package.json +1 -1
- package/src/client.d.ts +56 -61
- package/src/client.d.ts.map +1 -1
- package/src/client.js +461 -736
- package/src/client.ts +364 -905
- package/src/index.d.ts +88 -126
- package/src/index.d.ts.map +1 -1
- package/src/index.js +812 -1181
- package/src/index.ts +608 -1582
- package/src/logger.d.ts +11 -17
- package/src/logger.d.ts.map +1 -1
- package/src/logger.js +31 -90
- package/src/logger.ts +35 -106
- package/src/protocol.d.ts +20 -38
- package/src/protocol.d.ts.map +1 -1
- package/src/protocol.js +83 -161
- package/src/protocol.ts +79 -211
- package/src/websocket.d.ts +31 -47
- package/src/websocket.d.ts.map +1 -1
- package/src/websocket.js +161 -222
- package/src/websocket.ts +115 -278
package/src/logger.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @stelar-time-real Logger
|
|
3
|
-
* Zero-dependency structured logger with levels. Works in Node.js and browser.
|
|
4
|
-
*/
|
|
1
|
+
/** @stelar-time-real Logger */
|
|
5
2
|
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
6
3
|
export interface LoggerOptions {
|
|
7
4
|
level?: LogLevel;
|
|
@@ -11,19 +8,16 @@ export interface LoggerOptions {
|
|
|
11
8
|
}
|
|
12
9
|
export declare class Logger {
|
|
13
10
|
private level;
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
constructor(
|
|
18
|
-
setLevel(
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
warn(message: string, meta?: Record<string, unknown>): void;
|
|
25
|
-
error(message: string, meta?: Record<string, unknown>): void;
|
|
11
|
+
private ts;
|
|
12
|
+
private pfx;
|
|
13
|
+
private color;
|
|
14
|
+
constructor(o?: LoggerOptions);
|
|
15
|
+
setLevel(l: LogLevel): this;
|
|
16
|
+
private w;
|
|
17
|
+
debug(m: string, meta?: Record<string, unknown>): void;
|
|
18
|
+
info(m: string, meta?: Record<string, unknown>): void;
|
|
19
|
+
warn(m: string, meta?: Record<string, unknown>): void;
|
|
20
|
+
error(m: string, meta?: Record<string, unknown>): void;
|
|
26
21
|
}
|
|
27
|
-
/** No-op logger for zero overhead when logging is disabled */
|
|
28
22
|
export declare const NULL_LOGGER: Logger;
|
|
29
23
|
//# sourceMappingURL=logger.d.ts.map
|
package/src/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["logger.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["logger.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAMtE,MAAM,WAAW,aAAa;IAAG,KAAK,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAAE;AAE9G,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,EAAE,CAAU;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAU;gBAEX,CAAC,GAAE,aAAkB;IAOjC,QAAQ,CAAC,CAAC,EAAE,QAAQ;IAEpB,OAAO,CAAC,CAAC;IAYT,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/C,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9C,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAChD;AAED,eAAO,MAAM,WAAW,QAAkC,CAAC"}
|
package/src/logger.js
CHANGED
|
@@ -1,98 +1,39 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
const LEVEL_PRIORITY = {
|
|
6
|
-
debug: 0,
|
|
7
|
-
info: 1,
|
|
8
|
-
warn: 2,
|
|
9
|
-
error: 3,
|
|
10
|
-
silent: 4,
|
|
11
|
-
};
|
|
12
|
-
const COLORS = {
|
|
13
|
-
debug: '\x1b[36m',
|
|
14
|
-
info: '\x1b[32m',
|
|
15
|
-
warn: '\x1b[33m',
|
|
16
|
-
error: '\x1b[31m',
|
|
17
|
-
reset: '\x1b[0m',
|
|
18
|
-
};
|
|
1
|
+
/** @stelar-time-real Logger */
|
|
2
|
+
const P = { debug: 0, info: 1, warn: 2, error: 3, silent: 4 };
|
|
3
|
+
const C = { debug: '\x1b[36m', info: '\x1b[32m', warn: '\x1b[33m', error: '\x1b[31m', reset: '\x1b[0m' };
|
|
19
4
|
const isBrowser = typeof window !== 'undefined' && typeof process === 'undefined';
|
|
20
5
|
export class Logger {
|
|
21
|
-
constructor(
|
|
22
|
-
this.level =
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
}
|
|
27
|
-
setLevel(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
parts.push(new Date().toISOString());
|
|
38
|
-
}
|
|
39
|
-
if (this.colorize) {
|
|
40
|
-
const c = COLORS[level] || '';
|
|
41
|
-
parts.push(`${c}[${this.prefix}:${level}]${COLORS.reset}`);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
parts.push(`[${this.prefix}:${level}]`);
|
|
45
|
-
}
|
|
46
|
-
parts.push(message);
|
|
47
|
-
if (meta && Object.keys(meta).length > 0) {
|
|
6
|
+
constructor(o = {}) {
|
|
7
|
+
this.level = o.level || 'info';
|
|
8
|
+
this.ts = o.timestamp !== false;
|
|
9
|
+
this.pfx = o.prefix || 'stelar';
|
|
10
|
+
this.color = isBrowser ? false : o.colorize !== false;
|
|
11
|
+
}
|
|
12
|
+
setLevel(l) { this.level = l; return this; }
|
|
13
|
+
w(lvl, err, msg, meta) {
|
|
14
|
+
if (P[lvl] < P[this.level])
|
|
15
|
+
return;
|
|
16
|
+
const p = [];
|
|
17
|
+
if (this.ts)
|
|
18
|
+
p.push(new Date().toISOString());
|
|
19
|
+
p.push(this.color ? `${C[lvl] || ''}[${this.pfx}:${lvl}]${C.reset}` : `[${this.pfx}:${lvl}]`);
|
|
20
|
+
p.push(msg);
|
|
21
|
+
if (meta && Object.keys(meta).length)
|
|
48
22
|
try {
|
|
49
|
-
|
|
23
|
+
p.push(JSON.stringify(meta));
|
|
50
24
|
}
|
|
51
25
|
catch {
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return parts.join(' ');
|
|
56
|
-
}
|
|
57
|
-
_write(level, target, message, meta) {
|
|
58
|
-
const formatted = this.format(level, message, meta);
|
|
59
|
-
if (isBrowser) {
|
|
60
|
-
switch (level) {
|
|
61
|
-
case 'debug':
|
|
62
|
-
console.debug(formatted);
|
|
63
|
-
break;
|
|
64
|
-
case 'info':
|
|
65
|
-
console.info(formatted);
|
|
66
|
-
break;
|
|
67
|
-
case 'warn':
|
|
68
|
-
console.warn(formatted);
|
|
69
|
-
break;
|
|
70
|
-
case 'error':
|
|
71
|
-
console.error(formatted);
|
|
72
|
-
break;
|
|
26
|
+
p.push('[circular]');
|
|
73
27
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
debug(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
info(message, meta) {
|
|
85
|
-
if (this.shouldLog('info'))
|
|
86
|
-
this._write('info', 'stdout', message, meta);
|
|
87
|
-
}
|
|
88
|
-
warn(message, meta) {
|
|
89
|
-
if (this.shouldLog('warn'))
|
|
90
|
-
this._write('warn', 'stderr', message, meta);
|
|
91
|
-
}
|
|
92
|
-
error(message, meta) {
|
|
93
|
-
if (this.shouldLog('error'))
|
|
94
|
-
this._write('error', 'stderr', message, meta);
|
|
95
|
-
}
|
|
28
|
+
const f = p.join(' ');
|
|
29
|
+
if (isBrowser)
|
|
30
|
+
console[lvl]?.(f);
|
|
31
|
+
else
|
|
32
|
+
(err ? process.stderr : process.stdout).write(f + '\n');
|
|
33
|
+
}
|
|
34
|
+
debug(m, meta) { this.w('debug', false, m, meta); }
|
|
35
|
+
info(m, meta) { this.w('info', false, m, meta); }
|
|
36
|
+
warn(m, meta) { this.w('warn', true, m, meta); }
|
|
37
|
+
error(m, meta) { this.w('error', true, m, meta); }
|
|
96
38
|
}
|
|
97
|
-
/** No-op logger for zero overhead when logging is disabled */
|
|
98
39
|
export const NULL_LOGGER = new Logger({ level: 'silent' });
|
package/src/logger.ts
CHANGED
|
@@ -1,115 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @stelar-time-real Logger
|
|
3
|
-
* Zero-dependency structured logger with levels. Works in Node.js and browser.
|
|
4
|
-
*/
|
|
1
|
+
/** @stelar-time-real Logger */
|
|
5
2
|
|
|
6
3
|
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
7
4
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
info: 1,
|
|
11
|
-
warn: 2,
|
|
12
|
-
error: 3,
|
|
13
|
-
silent: 4,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export interface LoggerOptions {
|
|
17
|
-
level?: LogLevel;
|
|
18
|
-
timestamp?: boolean;
|
|
19
|
-
prefix?: string;
|
|
20
|
-
colorize?: boolean;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const COLORS: Record<string, string> = {
|
|
24
|
-
debug: '\x1b[36m',
|
|
25
|
-
info: '\x1b[32m',
|
|
26
|
-
warn: '\x1b[33m',
|
|
27
|
-
error: '\x1b[31m',
|
|
28
|
-
reset: '\x1b[0m',
|
|
29
|
-
};
|
|
30
|
-
|
|
5
|
+
const P: Record<LogLevel, number> = { debug: 0, info: 1, warn: 2, error: 3, silent: 4 };
|
|
6
|
+
const C = { debug: '\x1b[36m', info: '\x1b[32m', warn: '\x1b[33m', error: '\x1b[31m', reset: '\x1b[0m' };
|
|
31
7
|
const isBrowser = typeof window !== 'undefined' && typeof process === 'undefined';
|
|
32
8
|
|
|
9
|
+
export interface LoggerOptions { level?: LogLevel; timestamp?: boolean; prefix?: string; colorize?: boolean; }
|
|
10
|
+
|
|
33
11
|
export class Logger {
|
|
34
12
|
private level: LogLevel;
|
|
35
|
-
private
|
|
36
|
-
private
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
constructor(
|
|
40
|
-
this.level =
|
|
41
|
-
this.
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
setLevel(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
parts.push(`${c}[${this.prefix}:${level}]${COLORS.reset}`);
|
|
65
|
-
} else {
|
|
66
|
-
parts.push(`[${this.prefix}:${level}]`);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
parts.push(message);
|
|
70
|
-
|
|
71
|
-
if (meta && Object.keys(meta).length > 0) {
|
|
72
|
-
try {
|
|
73
|
-
parts.push(JSON.stringify(meta));
|
|
74
|
-
} catch {
|
|
75
|
-
parts.push('[meta: circular]');
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return parts.join(' ');
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
private _write(level: string, target: 'stdout' | 'stderr', message: string, meta?: Record<string, unknown>): void {
|
|
83
|
-
const formatted = this.format(level, message, meta);
|
|
84
|
-
if (isBrowser) {
|
|
85
|
-
switch (level) {
|
|
86
|
-
case 'debug': console.debug(formatted); break;
|
|
87
|
-
case 'info': console.info(formatted); break;
|
|
88
|
-
case 'warn': console.warn(formatted); break;
|
|
89
|
-
case 'error': console.error(formatted); break;
|
|
90
|
-
}
|
|
91
|
-
} else {
|
|
92
|
-
const stream = target === 'stderr' ? process.stderr : process.stdout;
|
|
93
|
-
stream.write(formatted + '\n');
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
debug(message: string, meta?: Record<string, unknown>): void {
|
|
98
|
-
if (this.shouldLog('debug')) this._write('debug', 'stdout', message, meta);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
info(message: string, meta?: Record<string, unknown>): void {
|
|
102
|
-
if (this.shouldLog('info')) this._write('info', 'stdout', message, meta);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
warn(message: string, meta?: Record<string, unknown>): void {
|
|
106
|
-
if (this.shouldLog('warn')) this._write('warn', 'stderr', message, meta);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
error(message: string, meta?: Record<string, unknown>): void {
|
|
110
|
-
if (this.shouldLog('error')) this._write('error', 'stderr', message, meta);
|
|
111
|
-
}
|
|
13
|
+
private ts: boolean;
|
|
14
|
+
private pfx: string;
|
|
15
|
+
private color: boolean;
|
|
16
|
+
|
|
17
|
+
constructor(o: LoggerOptions = {}) {
|
|
18
|
+
this.level = o.level || 'info';
|
|
19
|
+
this.ts = o.timestamp !== false;
|
|
20
|
+
this.pfx = o.prefix || 'stelar';
|
|
21
|
+
this.color = isBrowser ? false : o.colorize !== false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
setLevel(l: LogLevel) { this.level = l; return this; }
|
|
25
|
+
|
|
26
|
+
private w(lvl: string, err: boolean, msg: string, meta?: Record<string, unknown>) {
|
|
27
|
+
if (P[lvl as LogLevel] < P[this.level]) return;
|
|
28
|
+
const p: string[] = [];
|
|
29
|
+
if (this.ts) p.push(new Date().toISOString());
|
|
30
|
+
p.push(this.color ? `${C[lvl as keyof typeof C] || ''}[${this.pfx}:${lvl}]${C.reset}` : `[${this.pfx}:${lvl}]`);
|
|
31
|
+
p.push(msg);
|
|
32
|
+
if (meta && Object.keys(meta).length) try { p.push(JSON.stringify(meta)); } catch { p.push('[circular]'); }
|
|
33
|
+
const f = p.join(' ');
|
|
34
|
+
if (isBrowser) (console as any)[lvl]?.(f);
|
|
35
|
+
else (err ? process.stderr : process.stdout).write(f + '\n');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
debug(m: string, meta?: Record<string, unknown>) { this.w('debug', false, m, meta); }
|
|
39
|
+
info(m: string, meta?: Record<string, unknown>) { this.w('info', false, m, meta); }
|
|
40
|
+
warn(m: string, meta?: Record<string, unknown>) { this.w('warn', true, m, meta); }
|
|
41
|
+
error(m: string, meta?: Record<string, unknown>) { this.w('error', true, m, meta); }
|
|
112
42
|
}
|
|
113
43
|
|
|
114
|
-
|
|
115
|
-
export const NULL_LOGGER: Logger = new Logger({ level: 'silent' });
|
|
44
|
+
export const NULL_LOGGER = new Logger({ level: 'silent' });
|
package/src/protocol.d.ts
CHANGED
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Frame format:
|
|
5
|
-
* [4B totalLen BE][1B type][2B eventLen BE][eventLen bytes event][payload]
|
|
6
|
-
*
|
|
7
|
-
* Min frame: 7 bytes (header only). Max event name: 256 bytes.
|
|
8
|
-
*/
|
|
9
|
-
export declare const FRAME_JSON = 1;
|
|
10
|
-
export declare const FRAME_BINARY = 2;
|
|
11
|
-
export declare const FRAME_PING = 3;
|
|
12
|
-
export declare const FRAME_PONG = 4;
|
|
13
|
-
export declare const FRAME_ACK_REQ = 5;
|
|
14
|
-
export declare const FRAME_ACK_RES = 6;
|
|
15
|
-
export declare const FRAME_CONNECT = 7;
|
|
16
|
-
export declare const FRAME_DISCONNECT = 8;
|
|
17
|
-
export declare const FRAME_JOIN = 9;
|
|
18
|
-
export declare const FRAME_LEAVE = 10;
|
|
19
|
-
export declare const FRAME_ERROR = 11;
|
|
20
|
-
/** Max event name length in bytes */
|
|
1
|
+
/** @stelar-time-real Binary Protocol — Frame: [4B totalLen BE][1B type][2B eventLen BE][event][payload] */
|
|
2
|
+
export declare const FRAME_JSON = 1, FRAME_BINARY = 2, FRAME_PING = 3, FRAME_PONG = 4, FRAME_ACK_REQ = 5, FRAME_ACK_RES = 6, FRAME_CONNECT = 7, FRAME_DISCONNECT = 8, FRAME_JOIN = 9, FRAME_LEAVE = 10, FRAME_ERROR = 11;
|
|
21
3
|
export declare const MAX_EVENT_LENGTH = 256;
|
|
22
|
-
/** Default max frame size: 10 MB */
|
|
23
4
|
export declare const DEFAULT_MAX_FRAME_SIZE: number;
|
|
24
5
|
export declare const HEADER_SIZE = 7;
|
|
25
6
|
export interface ParsedFrame {
|
|
@@ -31,25 +12,26 @@ export declare class ProtocolError extends Error {
|
|
|
31
12
|
code: string;
|
|
32
13
|
constructor(message: string, code?: string);
|
|
33
14
|
}
|
|
34
|
-
/** Validates event name format. Throws ProtocolError on invalid input. */
|
|
35
15
|
export declare function validateEventName(event: string): void;
|
|
36
|
-
export declare
|
|
37
|
-
export declare
|
|
38
|
-
export declare
|
|
39
|
-
export declare
|
|
40
|
-
export declare
|
|
41
|
-
export declare
|
|
42
|
-
export declare
|
|
43
|
-
export declare
|
|
44
|
-
export declare
|
|
45
|
-
export declare
|
|
46
|
-
export declare
|
|
47
|
-
/**
|
|
16
|
+
export declare const encodeJsonFrame: (event: string, data: unknown, max?: number) => Buffer<ArrayBufferLike>;
|
|
17
|
+
export declare const encodeBinaryFrame: (event: string, data: Uint8Array | Buffer, max?: number) => Buffer<ArrayBufferLike>;
|
|
18
|
+
export declare const encodePingFrame: () => Buffer<ArrayBufferLike>;
|
|
19
|
+
export declare const encodePongFrame: () => Buffer<ArrayBufferLike>;
|
|
20
|
+
export declare const encodeAckReqFrame: (name: string, data: unknown, max?: number) => Buffer<ArrayBufferLike>;
|
|
21
|
+
export declare const encodeAckResFrame: (name: string, data: unknown, max?: number) => Buffer<ArrayBufferLike>;
|
|
22
|
+
export declare const encodeConnectFrame: (id: string) => Buffer<ArrayBufferLike>;
|
|
23
|
+
export declare const encodeDisconnectFrame: () => Buffer<ArrayBufferLike>;
|
|
24
|
+
export declare const encodeJoinFrame: (room: string, max?: number) => Buffer<ArrayBufferLike>;
|
|
25
|
+
export declare const encodeLeaveFrame: (room: string) => Buffer<ArrayBufferLike>;
|
|
26
|
+
export declare const encodeErrorFrame: (msg: string) => Buffer<ArrayBufferLike>;
|
|
27
|
+
/** O(1) append streaming parser — avoids Buffer.concat O(n²) on many small chunks */
|
|
48
28
|
export declare class FrameParser {
|
|
49
|
-
private
|
|
50
|
-
private
|
|
51
|
-
private
|
|
52
|
-
|
|
29
|
+
private chunks;
|
|
30
|
+
private len;
|
|
31
|
+
private max;
|
|
32
|
+
private received;
|
|
33
|
+
constructor(max?: number);
|
|
34
|
+
private _compact;
|
|
53
35
|
feed(data: Buffer): ParsedFrame[];
|
|
54
36
|
reset(): void;
|
|
55
37
|
getBytesReceived(): number;
|
package/src/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAE3G,eAAO,MAAM,UAAU,IAAO,EAAE,YAAY,IAAO,EAAE,UAAU,IAAO,EACpE,UAAU,IAAO,EAAE,aAAa,IAAO,EAAE,aAAa,IAAO,EAC7D,aAAa,IAAO,EAAE,gBAAgB,IAAO,EAAE,UAAU,IAAO,EAChE,WAAW,KAAO,EAAE,WAAW,KAAO,CAAC;AAEzC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAE9E,qBAAa,aAAc,SAAQ,KAAK;IACtC,IAAI,EAAE,MAAM,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,IAAI,SAAmB;CACrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMrD;AAoBD,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,MAAM,4BAC6B,CAAC;AAExG,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,MAAM,4BACP,CAAC;AAElF,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,MAAM,4BACE,CAAC;AAC9E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,MAAM,4BACE,CAAC;AAC9E,eAAO,MAAM,kBAAkB,GAAI,IAAI,MAAM,4BAA8D,CAAC;AAC5G,eAAO,MAAM,qBAAqB,+BAAqC,CAAC;AACxE,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,4BAAoE,CAAC;AAC/H,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,4BAA0F,CAAC;AACxI,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,4BAA2D,CAAC;AAExG,qFAAqF;AACrF,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAK;gBAET,GAAG,SAAyB;IAExC,OAAO,CAAC,QAAQ;IAOhB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAwBjC,KAAK;IACL,gBAAgB;CACjB"}
|