stelar-time-real 3.2.0 → 3.3.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.
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,17 @@ export interface LoggerOptions {
11
8
  }
12
9
  export declare class Logger {
13
10
  private level;
14
- private timestamp;
15
- private prefix;
16
- private colorize;
17
- constructor(options?: LoggerOptions);
18
- setLevel(level: LogLevel): this;
19
- private shouldLog;
20
- private format;
21
- private _write;
22
- debug(message: string, meta?: Record<string, unknown>): void;
23
- info(message: string, meta?: Record<string, unknown>): void;
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 fmt;
17
+ private w;
18
+ debug(m: string, meta?: Record<string, unknown>): void;
19
+ info(m: string, meta?: Record<string, unknown>): void;
20
+ warn(m: string, meta?: Record<string, unknown>): void;
21
+ error(m: string, meta?: Record<string, unknown>): void;
26
22
  }
27
- /** No-op logger for zero overhead when logging is disabled */
28
23
  export declare const NULL_LOGGER: Logger;
29
24
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAUtE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,GAAE,aAAkB;IAOvC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAK/B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;IA2Bd,OAAO,CAAC,MAAM;IAed,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG7D;AAED,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,MAAwC,CAAC"}
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,GAAG;IASX,OAAO,CAAC,CAAC;IAOT,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,42 @@
1
- /**
2
- * @stelar-time-real Logger
3
- * Zero-dependency structured logger with levels. Works in Node.js and browser.
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 PRIORITY = { 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(options = {}) {
22
- this.level = options.level || 'info';
23
- this.timestamp = options.timestamp !== false;
24
- this.prefix = options.prefix || 'stelar';
25
- this.colorize = isBrowser ? false : (options.colorize !== false);
26
- }
27
- setLevel(level) {
28
- this.level = level;
29
- return this;
30
- }
31
- shouldLog(level) {
32
- return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[this.level];
33
- }
34
- format(level, message, meta) {
35
- const parts = [];
36
- if (this.timestamp) {
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
+ fmt(lvl, msg, meta) {
14
+ const p = [];
15
+ if (this.ts)
16
+ p.push(new Date().toISOString());
17
+ p.push(this.color ? `${C[lvl] || ''}[${this.pfx}:${lvl}]${C.reset}` : `[${this.pfx}:${lvl}]`);
18
+ p.push(msg);
19
+ if (meta && Object.keys(meta).length)
48
20
  try {
49
- parts.push(JSON.stringify(meta));
21
+ p.push(JSON.stringify(meta));
50
22
  }
51
23
  catch {
52
- parts.push('[meta: circular]');
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;
24
+ p.push('[circular]');
73
25
  }
74
- }
75
- else {
76
- const stream = target === 'stderr' ? process.stderr : process.stdout;
77
- stream.write(formatted + '\n');
78
- }
79
- }
80
- debug(message, meta) {
81
- if (this.shouldLog('debug'))
82
- this._write('debug', 'stdout', message, meta);
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
- }
26
+ return p.join(' ');
27
+ }
28
+ w(lvl, err, msg, meta) {
29
+ if (PRIORITY[lvl] < PRIORITY[this.level])
30
+ return;
31
+ const f = this.fmt(lvl, msg, meta);
32
+ if (isBrowser)
33
+ console[lvl]?.(f);
34
+ else
35
+ (err ? process.stderr : process.stdout).write(f + '\n');
36
+ }
37
+ debug(m, meta) { this.w('debug', false, m, meta); }
38
+ info(m, meta) { this.w('info', false, m, meta); }
39
+ warn(m, meta) { this.w('warn', true, m, meta); }
40
+ error(m, meta) { this.w('error', true, m, meta); }
96
41
  }
97
- /** No-op logger for zero overhead when logging is disabled */
98
42
  export const NULL_LOGGER = new Logger({ level: 'silent' });
package/src/logger.ts CHANGED
@@ -1,115 +1,48 @@
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 LEVEL_PRIORITY: Record<LogLevel, number> = {
9
- debug: 0,
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 PRIORITY: Record<LogLevel, number> = { debug: 0, info: 1, warn: 2, error: 3, silent: 4 };
6
+ const C: Record<string, string> = { 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 timestamp: boolean;
36
- private prefix: string;
37
- private colorize: boolean;
38
-
39
- constructor(options: LoggerOptions = {}) {
40
- this.level = options.level || 'info';
41
- this.timestamp = options.timestamp !== false;
42
- this.prefix = options.prefix || 'stelar';
43
- this.colorize = isBrowser ? false : (options.colorize !== false);
44
- }
45
-
46
- setLevel(level: LogLevel): this {
47
- this.level = level;
48
- return this;
49
- }
50
-
51
- private shouldLog(level: LogLevel): boolean {
52
- return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[this.level];
53
- }
54
-
55
- private format(level: string, message: string, meta?: Record<string, unknown>): string {
56
- const parts: string[] = [];
57
-
58
- if (this.timestamp) {
59
- parts.push(new Date().toISOString());
60
- }
61
-
62
- if (this.colorize) {
63
- const c = COLORS[level] || '';
64
- parts.push(`${c}[${this.prefix}:${level}]${COLORS.reset}`);
65
- } else {
66
- parts.push(`[${this.prefix}:${level}]`);
67
- }
68
-
69
- parts.push(message);
13
+ private ts: boolean;
14
+ private pfx: string;
15
+ private color: boolean;
70
16
 
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(' ');
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;
80
22
  }
81
23
 
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
- }
24
+ setLevel(l: LogLevel) { this.level = l; return this; }
96
25
 
97
- debug(message: string, meta?: Record<string, unknown>): void {
98
- if (this.shouldLog('debug')) this._write('debug', 'stdout', message, meta);
26
+ private fmt(lvl: string, msg: string, meta?: Record<string, unknown>): string {
27
+ const p: string[] = [];
28
+ if (this.ts) p.push(new Date().toISOString());
29
+ p.push(this.color ? `${C[lvl] || ''}[${this.pfx}:${lvl}]${C.reset}` : `[${this.pfx}:${lvl}]`);
30
+ p.push(msg);
31
+ if (meta && Object.keys(meta).length) try { p.push(JSON.stringify(meta)); } catch { p.push('[circular]'); }
32
+ return p.join(' ');
99
33
  }
100
34
 
101
- info(message: string, meta?: Record<string, unknown>): void {
102
- if (this.shouldLog('info')) this._write('info', 'stdout', message, meta);
35
+ private w(lvl: string, err: boolean, msg: string, meta?: Record<string, unknown>) {
36
+ if (PRIORITY[lvl as LogLevel] < PRIORITY[this.level]) return;
37
+ const f = this.fmt(lvl, msg, meta);
38
+ if (isBrowser) (console as any)[lvl]?.(f);
39
+ else (err ? process.stderr : process.stdout).write(f + '\n');
103
40
  }
104
41
 
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
- }
42
+ debug(m: string, meta?: Record<string, unknown>) { this.w('debug', false, m, meta); }
43
+ info(m: string, meta?: Record<string, unknown>) { this.w('info', false, m, meta); }
44
+ warn(m: string, meta?: Record<string, unknown>) { this.w('warn', true, m, meta); }
45
+ error(m: string, meta?: Record<string, unknown>) { this.w('error', true, m, meta); }
112
46
  }
113
47
 
114
- /** No-op logger for zero overhead when logging is disabled */
115
- export const NULL_LOGGER: Logger = new Logger({ level: 'silent' });
48
+ export const NULL_LOGGER = new Logger({ level: 'silent' });
package/src/protocol.d.ts CHANGED
@@ -1,25 +1,9 @@
1
1
  /**
2
2
  * @stelar-time-real Binary Protocol
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.
3
+ * Frame: [4B totalLen BE][1B type][2B eventLen BE][event][payload]
8
4
  */
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 */
5
+ 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
6
  export declare const MAX_EVENT_LENGTH = 256;
22
- /** Default max frame size: 10 MB */
23
7
  export declare const DEFAULT_MAX_FRAME_SIZE: number;
24
8
  export declare const HEADER_SIZE = 7;
25
9
  export interface ParsedFrame {
@@ -31,25 +15,23 @@ export declare class ProtocolError extends Error {
31
15
  code: string;
32
16
  constructor(message: string, code?: string);
33
17
  }
34
- /** Validates event name format. Throws ProtocolError on invalid input. */
35
18
  export declare function validateEventName(event: string): void;
36
- export declare function encodeJsonFrame(event: string, data: unknown, maxFrameSize?: number): Buffer;
37
- export declare function encodeBinaryFrame(event: string, data: Uint8Array | Buffer, maxFrameSize?: number): Buffer;
38
- export declare function encodePingFrame(): Buffer;
39
- export declare function encodePongFrame(): Buffer;
40
- export declare function encodeAckReqFrame(ackName: string, data: unknown, maxFrameSize?: number): Buffer;
41
- export declare function encodeAckResFrame(ackName: string, data: unknown, maxFrameSize?: number): Buffer;
42
- export declare function encodeConnectFrame(clientId: string): Buffer;
43
- export declare function encodeDisconnectFrame(): Buffer;
44
- export declare function encodeJoinFrame(room: string, maxFrameSize?: number): Buffer;
45
- export declare function encodeLeaveFrame(room: string): Buffer;
46
- export declare function encodeErrorFrame(message: string): Buffer;
47
- /** Streaming frame parser for TCP connections. Buffers partial data and emits complete frames. */
19
+ export declare const encodeJsonFrame: (event: string, data: unknown, max?: number) => Buffer<ArrayBufferLike>;
20
+ export declare const encodeBinaryFrame: (event: string, data: Uint8Array | Buffer, max?: number) => Buffer<ArrayBufferLike>;
21
+ export declare const encodePingFrame: () => Buffer<ArrayBufferLike>;
22
+ export declare const encodePongFrame: () => Buffer<ArrayBufferLike>;
23
+ export declare const encodeAckReqFrame: (name: string, data: unknown, max?: number) => Buffer<ArrayBufferLike>;
24
+ export declare const encodeAckResFrame: (name: string, data: unknown, max?: number) => Buffer<ArrayBufferLike>;
25
+ export declare const encodeConnectFrame: (id: string) => Buffer<ArrayBufferLike>;
26
+ export declare const encodeDisconnectFrame: () => Buffer<ArrayBufferLike>;
27
+ export declare const encodeJoinFrame: (room: string, max?: number) => Buffer<ArrayBufferLike>;
28
+ export declare const encodeLeaveFrame: (room: string) => Buffer<ArrayBufferLike>;
29
+ export declare const encodeErrorFrame: (msg: string) => Buffer<ArrayBufferLike>;
48
30
  export declare class FrameParser {
49
31
  private buf;
50
- private maxFrameSize;
51
- private totalBytesReceived;
52
- constructor(maxFrameSize?: number);
32
+ private max;
33
+ private received;
34
+ constructor(max?: number);
53
35
  feed(data: Buffer): ParsedFrame[];
54
36
  reset(): void;
55
37
  getBytesReceived(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,IAAa,CAAC;AACrC,eAAO,MAAM,YAAY,IAAW,CAAC;AACrC,eAAO,MAAM,UAAU,IAAa,CAAC;AACrC,eAAO,MAAM,UAAU,IAAa,CAAC;AACrC,eAAO,MAAM,aAAa,IAAU,CAAC;AACrC,eAAO,MAAM,aAAa,IAAU,CAAC;AACrC,eAAO,MAAM,aAAa,IAAU,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAO,CAAC;AACrC,eAAO,MAAM,UAAU,IAAa,CAAC;AACrC,eAAO,MAAM,WAAW,KAAY,CAAC;AACrC,eAAO,MAAM,WAAW,KAAY,CAAC;AAErC,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,oCAAoC;AACpC,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,KAAK;IAC/B,IAAI,EAAE,MAAM,CAAC;gBACR,OAAO,EAAE,MAAM,EAAE,IAAI,SAAmB;CAKrD;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAgBrD;AA6BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzG;AAED,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/F;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/F;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,kGAAkG;AAClG,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAK;gBAEnB,YAAY,SAAyB;IAIjD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IA8DjC,KAAK,IAAI,IAAI;IAKb,gBAAgB,IAAI,MAAM;CAG3B"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,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;CAKrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMrD;AAwBD,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;AAE9E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,MAAM,4BACE,CAAC;AAE9E,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,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAK;gBAET,GAAG,SAAyB;IAExC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IA8BjC,KAAK;IACL,gBAAgB;CACjB"}