@rpckit/core 0.9.99

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.
Files changed (58) hide show
  1. package/README.md +131 -0
  2. package/dist/batch.d.ts +17 -0
  3. package/dist/batch.d.ts.map +1 -0
  4. package/dist/batch.js +59 -0
  5. package/dist/batch.js.map +1 -0
  6. package/dist/electrum-cash/index.d.ts +3 -0
  7. package/dist/electrum-cash/index.d.ts.map +1 -0
  8. package/dist/electrum-cash/index.js +2 -0
  9. package/dist/electrum-cash/index.js.map +1 -0
  10. package/dist/electrum-cash/parse.d.ts +27 -0
  11. package/dist/electrum-cash/parse.d.ts.map +1 -0
  12. package/dist/electrum-cash/parse.js +32 -0
  13. package/dist/electrum-cash/parse.js.map +1 -0
  14. package/dist/electrum-cash/schema.d.ts +517 -0
  15. package/dist/electrum-cash/schema.d.ts.map +1 -0
  16. package/dist/electrum-cash/schema.js +2 -0
  17. package/dist/electrum-cash/schema.js.map +1 -0
  18. package/dist/ethereum/index.d.ts +3 -0
  19. package/dist/ethereum/index.d.ts.map +1 -0
  20. package/dist/ethereum/index.js +2 -0
  21. package/dist/ethereum/index.js.map +1 -0
  22. package/dist/ethereum/parse.d.ts +22 -0
  23. package/dist/ethereum/parse.d.ts.map +1 -0
  24. package/dist/ethereum/parse.js +26 -0
  25. package/dist/ethereum/parse.js.map +1 -0
  26. package/dist/ethereum/schema.d.ts +530 -0
  27. package/dist/ethereum/schema.d.ts.map +1 -0
  28. package/dist/ethereum/schema.js +8 -0
  29. package/dist/ethereum/schema.js.map +1 -0
  30. package/dist/index.d.ts +10 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +4 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/parse.d.ts +74 -0
  35. package/dist/parse.d.ts.map +1 -0
  36. package/dist/parse.js +310 -0
  37. package/dist/parse.js.map +1 -0
  38. package/dist/protocol.d.ts +22 -0
  39. package/dist/protocol.d.ts.map +1 -0
  40. package/dist/protocol.js +2 -0
  41. package/dist/protocol.js.map +1 -0
  42. package/dist/retry.d.ts +9 -0
  43. package/dist/retry.d.ts.map +1 -0
  44. package/dist/retry.js +26 -0
  45. package/dist/retry.js.map +1 -0
  46. package/dist/schema-utils.d.ts +28 -0
  47. package/dist/schema-utils.d.ts.map +1 -0
  48. package/dist/schema-utils.js +2 -0
  49. package/dist/schema-utils.js.map +1 -0
  50. package/dist/schema.d.ts +32 -0
  51. package/dist/schema.d.ts.map +1 -0
  52. package/dist/schema.js +2 -0
  53. package/dist/schema.js.map +1 -0
  54. package/dist/types.d.ts +187 -0
  55. package/dist/types.d.ts.map +1 -0
  56. package/dist/types.js +2 -0
  57. package/dist/types.js.map +1 -0
  58. package/package.json +51 -0
package/dist/parse.js ADDED
@@ -0,0 +1,310 @@
1
+ function parseOptions(query) {
2
+ const options = {};
3
+ if (!query)
4
+ return options;
5
+ for (const pair of query.split('&')) {
6
+ const [key, value] = pair.split('=');
7
+ if (key && value !== undefined) {
8
+ options[key] = decodeURIComponent(value);
9
+ }
10
+ }
11
+ return options;
12
+ }
13
+ function inferType(scheme) {
14
+ switch (scheme) {
15
+ case 'ws':
16
+ case 'wss':
17
+ return 'websocket';
18
+ case 'tcp':
19
+ case 'tcp+tls':
20
+ return 'tcp';
21
+ case 'http':
22
+ case 'https':
23
+ return 'http';
24
+ default:
25
+ throw new Error(`Unknown scheme: ${scheme}`);
26
+ }
27
+ }
28
+ function findMatchingParen(str, start) {
29
+ let depth = 1;
30
+ for (let i = start; i < str.length; i++) {
31
+ if (str[i] === '(')
32
+ depth++;
33
+ else if (str[i] === ')') {
34
+ depth--;
35
+ if (depth === 0)
36
+ return i;
37
+ }
38
+ }
39
+ return -1;
40
+ }
41
+ function splitArgs(str) {
42
+ const args = [];
43
+ let current = '';
44
+ let depth = 0;
45
+ for (const char of str) {
46
+ if (char === '(') {
47
+ depth++;
48
+ current += char;
49
+ }
50
+ else if (char === ')') {
51
+ depth--;
52
+ current += char;
53
+ }
54
+ else if (char === ',' && depth === 0) {
55
+ args.push(current.trim());
56
+ current = '';
57
+ }
58
+ else {
59
+ current += char;
60
+ }
61
+ }
62
+ if (current.trim()) {
63
+ args.push(current.trim());
64
+ }
65
+ return args;
66
+ }
67
+ function parseTransport(input) {
68
+ input = input.trim();
69
+ // Check for meta-transports: fallback(...) or cluster(...)
70
+ const metaMatch = input.match(/^(fallback|cluster)\(/);
71
+ if (metaMatch) {
72
+ const type = metaMatch[1];
73
+ const argsStart = metaMatch[0].length;
74
+ const argsEnd = findMatchingParen(input, argsStart);
75
+ if (argsEnd === -1) {
76
+ throw new Error(`Unmatched parenthesis in: ${input}`);
77
+ }
78
+ const argsStr = input.slice(argsStart, argsEnd);
79
+ const afterParen = input.slice(argsEnd + 1);
80
+ // Parse options after closing paren: cluster(...)?timeout=1000
81
+ let options = {};
82
+ if (afterParen.startsWith('?')) {
83
+ options = parseOptions(afterParen.slice(1));
84
+ }
85
+ const args = splitArgs(argsStr);
86
+ if (type === 'cluster') {
87
+ // First arg is quorum number
88
+ const quorum = Number.parseInt(args[0], 10);
89
+ if (Number.isNaN(quorum) || quorum < 1) {
90
+ throw new Error(`Invalid quorum value: ${args[0]}`);
91
+ }
92
+ const children = args.slice(1).map(parseTransport);
93
+ return { type, options, children, quorum };
94
+ }
95
+ const children = args.map(parseTransport);
96
+ return { type, options, children };
97
+ }
98
+ // Simple transport URL: wss://host:port?timeout=1000
99
+ const urlMatch = input.match(/^([a-z+]+):\/\/([^?]+)(?:\?(.*))?$/);
100
+ if (!urlMatch) {
101
+ throw new Error(`Invalid transport URL: ${input}`);
102
+ }
103
+ const [, scheme, rest, query] = urlMatch;
104
+ const type = inferType(scheme);
105
+ const url = `${scheme}://${rest}`;
106
+ const options = parseOptions(query || '');
107
+ return { type, url, options };
108
+ }
109
+ const KEY_ALIASES = { webSocket: 'websocket' };
110
+ function normalizeKeys(map) {
111
+ const result = {};
112
+ for (const [key, value] of Object.entries(map)) {
113
+ result[KEY_ALIASES[key] ?? key] = value;
114
+ }
115
+ return result;
116
+ }
117
+ const DEFAULT_PACKAGE_MAP = {
118
+ websocket: '@rpckit/websocket',
119
+ tcp: '@rpckit/tcp',
120
+ http: '@rpckit/http',
121
+ fallback: '@rpckit/fallback',
122
+ cluster: '@rpckit/cluster',
123
+ };
124
+ const EXPORT_MAP = {
125
+ websocket: 'webSocket',
126
+ tcp: 'tcp',
127
+ http: 'http',
128
+ fallback: 'fallback',
129
+ cluster: 'cluster',
130
+ };
131
+ async function loadFactory(type, packageMap) {
132
+ const pkg = packageMap[type];
133
+ const exportName = EXPORT_MAP[type];
134
+ try {
135
+ const module = await import(pkg);
136
+ return module[exportName];
137
+ }
138
+ catch {
139
+ throw new Error(`Package ${pkg} is not installed. Run: npm install ${pkg}`);
140
+ }
141
+ }
142
+ function buildOptions(options) {
143
+ const result = {};
144
+ for (const [key, value] of Object.entries(options)) {
145
+ // Parse numeric values
146
+ if (key === 'timeout' ||
147
+ key === 'connectTimeout' ||
148
+ key === 'keepAlive' ||
149
+ key === 'quorum' ||
150
+ key === 'retryCount' ||
151
+ key === 'retryDelay') {
152
+ result[key] = Number.parseInt(value, 10);
153
+ }
154
+ // Parse boolean values
155
+ else if (key === 'rank' || key === 'eagerConnect') {
156
+ result[key] = value === 'true';
157
+ }
158
+ // batch can be boolean or will be built from batchSize/batchWait
159
+ else if (key === 'batch') {
160
+ result[key] = value === 'true';
161
+ }
162
+ // Skip batchSize/batchWait - handled below
163
+ else if (key === 'batchSize' || key === 'batchWait') {
164
+ // handled after loop
165
+ }
166
+ // Keep strings as-is
167
+ else {
168
+ result[key] = value;
169
+ }
170
+ }
171
+ // Build batch config from batchSize/batchWait
172
+ if (options.batchSize || options.batchWait) {
173
+ const batchConfig = {};
174
+ if (options.batchSize) {
175
+ batchConfig.batchSize = Number.parseInt(options.batchSize, 10);
176
+ }
177
+ if (options.batchWait) {
178
+ batchConfig.wait = Number.parseInt(options.batchWait, 10);
179
+ }
180
+ result.batch = batchConfig;
181
+ }
182
+ return result;
183
+ }
184
+ function createBuildTransport(packageMap) {
185
+ async function buildTransport(parsed) {
186
+ const factory = await loadFactory(parsed.type, packageMap);
187
+ const options = buildOptions(parsed.options);
188
+ if (parsed.type === 'fallback' && parsed.children) {
189
+ const transports = await Promise.all(parsed.children.map(buildTransport));
190
+ return factory(transports, options);
191
+ }
192
+ if (parsed.type === 'cluster' && parsed.children) {
193
+ const transports = await Promise.all(parsed.children.map(buildTransport));
194
+ return factory(transports, { quorum: parsed.quorum, ...options });
195
+ }
196
+ // Simple transport
197
+ if (!parsed.url) {
198
+ throw new Error(`Missing URL for ${parsed.type} transport`);
199
+ }
200
+ return factory(parsed.url, options);
201
+ }
202
+ return buildTransport;
203
+ }
204
+ /**
205
+ * Create a `parse` function that uses a custom package map for dynamic imports.
206
+ *
207
+ * Override specific transport types while keeping defaults for the rest.
208
+ * Useful for creating protocol-specific parse variants (e.g. electrum-cash).
209
+ */
210
+ export function createParse(overrides) {
211
+ const packageMap = { ...DEFAULT_PACKAGE_MAP, ...normalizeKeys(overrides) };
212
+ const buildTransport = createBuildTransport(packageMap);
213
+ return async (input) => {
214
+ const parsed = parseTransport(input);
215
+ const transport = await buildTransport(parsed);
216
+ return transport;
217
+ };
218
+ }
219
+ /**
220
+ * Create a synchronous `parse` function using pre-imported factory functions.
221
+ *
222
+ * Unlike `createParse` which uses dynamic imports, this variant accepts
223
+ * already-loaded factory functions, making it fully synchronous.
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * import { webSocket } from '@rpckit/websocket/electrum-cash'
228
+ * import { fallback } from '@rpckit/fallback'
229
+ * import { createParseSync } from '@rpckit/core'
230
+ *
231
+ * const parseSync = createParseSync({ webSocket, fallback })
232
+ * const transport = parseSync('fallback(wss://a.com,wss://b.com)?eagerConnect=true')
233
+ * ```
234
+ */
235
+ export function createParseSync(factories) {
236
+ const normalized = normalizeKeys(factories);
237
+ function buildTransport(parsed) {
238
+ const factory = normalized[parsed.type];
239
+ if (!factory) {
240
+ throw new Error(`No factory for transport type "${parsed.type}". Available: ${Object.keys(normalized).join(', ')}`);
241
+ }
242
+ const options = buildOptions(parsed.options);
243
+ if (parsed.type === 'fallback' && parsed.children) {
244
+ const transports = parsed.children.map(buildTransport);
245
+ return factory(transports, options);
246
+ }
247
+ if (parsed.type === 'cluster' && parsed.children) {
248
+ const transports = parsed.children.map(buildTransport);
249
+ return factory(transports, { quorum: parsed.quorum, ...options });
250
+ }
251
+ if (!parsed.url) {
252
+ throw new Error(`Missing URL for ${parsed.type} transport`);
253
+ }
254
+ return factory(parsed.url, options);
255
+ }
256
+ return (input) => {
257
+ const parsed = parseTransport(input);
258
+ const transport = buildTransport(parsed);
259
+ return transport;
260
+ };
261
+ }
262
+ /**
263
+ * Parse a transport one-liner string into a Transport instance.
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * // Simple transports
268
+ * const ws = await parse('wss://example.com')
269
+ * const tcp = await parse('tcp+tls://host:50002?timeout=10000')
270
+ *
271
+ * // Meta-transports
272
+ * const fb = await parse('fallback(wss://a.com,tcp://b.com)')
273
+ * const cl = await parse('cluster(2,ws://1.com,ws://2.com,ws://3.com)')
274
+ *
275
+ * // Nested
276
+ * const nested = await parse('fallback(wss://a.com,cluster(2,ws://1.com,ws://2.com))')
277
+ *
278
+ * // With options
279
+ * const withOpts = await parse('wss://example.com?timeout=10000&keepAlive=30000')
280
+ * const batched = await parse('wss://example.com?batchSize=10&batchWait=50')
281
+ * const fbRanked = await parse('fallback(wss://a.com,tcp://b.com)?rank=true')
282
+ * ```
283
+ *
284
+ * Supported schemes:
285
+ * - `wss://`, `ws://` → @rpckit/websocket
286
+ * - `tcp://`, `tcp+tls://` → @rpckit/tcp
287
+ * - `http://`, `https://` → @rpckit/http
288
+ * - `fallback(...)` → @rpckit/fallback
289
+ * - `cluster(quorum,...)` → @rpckit/cluster
290
+ *
291
+ * Supported options (via query params):
292
+ * - `timeout` - Request timeout in ms
293
+ * - `keepAlive` - Keep-alive ping interval in ms
294
+ * - `batch` - Enable batching (true/false)
295
+ * - `batchSize` - Max requests per batch
296
+ * - `batchWait` - Max wait time before flushing batch (ms)
297
+ * - `rank` - Enable health ranking for fallback (true/false)
298
+ * - `eagerConnect` - Connect all fallback transports in parallel (true/false)
299
+ * - `clientName` - Client name for electrum-cash handshake (default: 'rpckit')
300
+ * - `protocolVersion` - Protocol version for electrum-cash handshake (default: '1.6')
301
+ *
302
+ * Packages are loaded dynamically at runtime. Missing packages throw an error.
303
+ */
304
+ export async function parse(input) {
305
+ const buildTransport = createBuildTransport(DEFAULT_PACKAGE_MAP);
306
+ const parsed = parseTransport(input);
307
+ const transport = await buildTransport(parsed);
308
+ return transport;
309
+ }
310
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface RpcRequest {
2
+ jsonrpc: '2.0';
3
+ method: string;
4
+ params?: unknown[];
5
+ id: number;
6
+ }
7
+ export interface RpcResponse {
8
+ jsonrpc: '2.0';
9
+ result?: unknown;
10
+ error?: {
11
+ code: number;
12
+ message: string;
13
+ data?: unknown;
14
+ };
15
+ id: number;
16
+ }
17
+ export interface SubscriptionNotification {
18
+ jsonrpc: '2.0';
19
+ method: string;
20
+ params: unknown[];
21
+ }
22
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACzD,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export interface RetryOptions {
2
+ retryCount?: number;
3
+ retryDelay?: number;
4
+ }
5
+ /**
6
+ * Execute an async function with exponential backoff retry.
7
+ */
8
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
9
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAKD;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAuBZ"}
package/dist/retry.js ADDED
@@ -0,0 +1,26 @@
1
+ const DEFAULT_RETRY_COUNT = 3;
2
+ const DEFAULT_RETRY_DELAY = 150;
3
+ /**
4
+ * Execute an async function with exponential backoff retry.
5
+ */
6
+ export async function withRetry(fn, options = {}) {
7
+ const maxAttempts = (options.retryCount ?? DEFAULT_RETRY_COUNT) + 1;
8
+ const baseDelay = options.retryDelay ?? DEFAULT_RETRY_DELAY;
9
+ let lastError;
10
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
11
+ try {
12
+ return await fn();
13
+ }
14
+ catch (error) {
15
+ lastError = error;
16
+ if (attempt === maxAttempts) {
17
+ break;
18
+ }
19
+ // Exponential backoff: delay * 2^(attempt-1)
20
+ const delay = baseDelay * 2 ** (attempt - 1);
21
+ await new Promise((resolve) => setTimeout(resolve, delay));
22
+ }
23
+ }
24
+ throw lastError;
25
+ }
26
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAKA,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,UAAwB,EAAE;IAE1B,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAA;IAE3D,IAAI,SAAkB,CAAA;IAEtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAA;YAEjB,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAK;YACP,CAAC;YAED,6CAA6C;YAC7C,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;YAC5C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAA;AACjB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** Filter out entries with a specific method from a tuple */
2
+ export type FilterMethod<T extends readonly unknown[], M extends string> = T extends readonly [infer Head, ...infer Tail] ? Head extends {
3
+ method: M;
4
+ } ? FilterMethod<Tail, M> : [Head, ...FilterMethod<Tail, M>] : [];
5
+ /** Filter out multiple methods from a tuple */
6
+ export type FilterMethods<T extends readonly unknown[], Entries extends readonly {
7
+ method: string;
8
+ }[]> = Entries extends readonly [
9
+ infer E extends {
10
+ method: string;
11
+ },
12
+ ...infer Rest extends {
13
+ method: string;
14
+ }[]
15
+ ] ? FilterMethods<FilterMethod<T, E['method']>, Rest> : T;
16
+ /** Override request methods in a schema */
17
+ export type OverrideRequests<S extends {
18
+ requests: readonly unknown[];
19
+ subscriptions: readonly unknown[];
20
+ }, NewEntries extends readonly {
21
+ method: string;
22
+ params: unknown[];
23
+ return: unknown;
24
+ }[]> = {
25
+ requests: [...FilterMethods<S['requests'], NewEntries>, ...NewEntries];
26
+ subscriptions: S['subscriptions'];
27
+ };
28
+ //# sourceMappingURL=schema-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../src/schema-utils.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,MAAM,YAAY,CACtB,CAAC,SAAS,SAAS,OAAO,EAAE,EAC5B,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9C,IAAI,SAAS;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GACxB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GACrB,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAClC,EAAE,CAAA;AAEN,+CAA+C;AAC/C,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,SAAS,OAAO,EAAE,EAC5B,OAAO,SAAS,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,IAC3C,OAAO,SAAS,SAAS;IAC3B,MAAM,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAClC,GAAG,MAAM,IAAI,SAAS;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE;CAC3C,GACG,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GACjD,CAAC,CAAA;AAEL,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS;IAAE,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,aAAa,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,EAC7E,UAAU,SAAS,SAAS;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,EAAE,IACD;IACF,QAAQ,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAA;IACtE,aAAa,EAAE,CAAC,CAAC,eAAe,CAAC,CAAA;CAClC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../src/schema-utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ export type SchemaEntry = {
2
+ method: string;
3
+ params: unknown[];
4
+ return: unknown;
5
+ };
6
+ export type Schema = {
7
+ requests: SchemaEntry[];
8
+ subscriptions: SchemaEntry[];
9
+ };
10
+ export type AnySchema = {
11
+ requests: [{
12
+ method: string;
13
+ params: unknown[];
14
+ return: unknown;
15
+ }];
16
+ subscriptions: [{
17
+ method: string;
18
+ params: unknown[];
19
+ return: unknown;
20
+ }];
21
+ };
22
+ type AllEntries<S extends Schema> = [...S['requests'], ...S['subscriptions']];
23
+ export type ExtractMethod<S extends Schema> = AllEntries<S>[number]['method'];
24
+ export type ExtractRequestMethod<S extends Schema> = S['requests'][number]['method'];
25
+ export type ExtractSubscriptionMethod<S extends Schema> = S['subscriptions'][number]['method'];
26
+ export type ExtractEntry<S extends Schema, M extends string> = Extract<AllEntries<S>[number], {
27
+ method: M;
28
+ }>;
29
+ export type ExtractReturn<S extends Schema, M extends string> = ExtractEntry<S, M> extends never ? unknown : ExtractEntry<S, M>['return'];
30
+ export type ExtractParams<S extends Schema, M extends string> = ExtractEntry<S, M> extends never ? unknown[] : ExtractEntry<S, M>['params'];
31
+ export {};
32
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,aAAa,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAG9E,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAClE,aAAa,EAAE,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACxE,CAAA;AAED,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;AAE7E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;AAE7E,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC/C,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;AAEjC,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,MAAM,IACpD,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;AAEtC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,OAAO,CACpE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACrB;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CACd,CAAA;AAGD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,YAAY,CAC1E,CAAC,EACD,CAAC,CACF,SAAS,KAAK,GACX,OAAO,GACP,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AAEhC,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,YAAY,CAC1E,CAAC,EACD,CAAC,CACF,SAAS,KAAK,GACX,OAAO,EAAE,GACT,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA"}
package/dist/schema.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":""}