@hsuite/native-connect-client 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/coverage/coverage-summary.json +9 -9
  2. package/coverage/index.html +24 -24
  3. package/coverage/lcov-report/index.html +24 -24
  4. package/coverage/lcov-report/src/handlers/index.html +9 -9
  5. package/coverage/lcov-report/src/handlers/session-handler.ts.html +6 -57
  6. package/coverage/lcov-report/src/handlers/signing-handler.ts.html +6 -57
  7. package/coverage/lcov-report/src/handlers/wallet-handler.ts.html +5 -56
  8. package/coverage/lcov-report/src/harness/index.html +10 -10
  9. package/coverage/lcov-report/src/harness/signing-harness.ts.html +25 -37
  10. package/coverage/lcov-report/src/index.html +15 -15
  11. package/coverage/lcov-report/src/memory-transport.ts.html +23 -44
  12. package/coverage/lcov-report/src/protocol/e2e-harness.ts.html +39 -30
  13. package/coverage/lcov-report/src/protocol/index.html +11 -11
  14. package/coverage/lcov-report/src/query-client.ts.html +17 -53
  15. package/coverage/lcov-report/src/reference-client.ts.html +35 -47
  16. package/coverage/lcov.info +259 -334
  17. package/coverage/src/handlers/index.html +9 -9
  18. package/coverage/src/handlers/session-handler.ts.html +6 -57
  19. package/coverage/src/handlers/signing-handler.ts.html +6 -57
  20. package/coverage/src/handlers/wallet-handler.ts.html +5 -56
  21. package/coverage/src/harness/index.html +10 -10
  22. package/coverage/src/harness/signing-harness.ts.html +25 -37
  23. package/coverage/src/index.html +15 -15
  24. package/coverage/src/memory-transport.ts.html +23 -44
  25. package/coverage/src/protocol/e2e-harness.ts.html +39 -30
  26. package/coverage/src/protocol/index.html +11 -11
  27. package/coverage/src/query-client.ts.html +17 -53
  28. package/coverage/src/reference-client.ts.html +35 -47
  29. package/package.json +3 -3
  30. package/tsconfig.build.tsbuildinfo +1 -1
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">81.98% </span>
26
+ <span class="strong">82.31% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>132/161</span>
28
+ <span class='fraction'>135/164</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.98% </span>
47
+ <span class="strong">82.31% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>132/161</span>
49
+ <span class='fraction'>135/164</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="e2e-harness.ts"><a href="e2e-harness.ts.html">e2e-harness.ts</a></td>
83
- <td data-value="81.98" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
83
+ <td data-value="82.31" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
85
85
  </td>
86
- <td data-value="81.98" class="pct high">81.98%</td>
87
- <td data-value="161" class="abs high">132/161</td>
86
+ <td data-value="82.31" class="pct high">82.31%</td>
87
+ <td data-value="164" class="abs high">135/164</td>
88
88
  <td data-value="66.66" class="pct medium">66.66%</td>
89
89
  <td data-value="6" class="abs medium">4/6</td>
90
90
  <td data-value="21.05" class="pct low">21.05%</td>
91
91
  <td data-value="19" class="abs low">4/19</td>
92
- <td data-value="81.98" class="pct high">81.98%</td>
93
- <td data-value="161" class="abs high">132/161</td>
92
+ <td data-value="82.31" class="pct high">82.31%</td>
93
+ <td data-value="164" class="abs high">135/164</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-02T14:29:49.152Z
104
+ at 2026-01-12T14:27:06.745Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/64</span>
28
+ <span class='fraction'>0/52</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/64</span>
49
+ <span class='fraction'>0/52</span>
50
50
  </div>
51
51
 
52
52
 
@@ -115,19 +115,7 @@
115
115
  <a name='L50'></a><a href='#L50'>50</a>
116
116
  <a name='L51'></a><a href='#L51'>51</a>
117
117
  <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
118
+ <a name='L53'></a><a href='#L53'>53</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
131
119
  <span class="cline-any cline-no">&nbsp;</span>
132
120
  <span class="cline-any cline-no">&nbsp;</span>
133
121
  <span class="cline-any cline-no">&nbsp;</span>
@@ -179,46 +167,22 @@
179
167
  <span class="cline-any cline-no">&nbsp;</span>
180
168
  <span class="cline-any cline-no">&nbsp;</span>
181
169
  <span class="cline-any cline-no">&nbsp;</span>
182
- <span class="cline-any cline-no">&nbsp;</span>
183
- <span class="cline-any cline-no">&nbsp;</span>
184
- <span class="cline-any cline-no">&nbsp;</span>
185
- <span class="cline-any cline-no">&nbsp;</span>
186
- <span class="cline-any cline-no">&nbsp;</span>
187
- <span class="cline-any cline-no">&nbsp;</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
189
- <span class="cline-any cline-no">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
- <span class="cline-any cline-no">&nbsp;</span>
192
- <span class="cline-any cline-no">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >/**<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
195
- <span class="cstat-no" title="statement not covered" > * HSuite Native Connect</span>
196
- <span class="cstat-no" title="statement not covered" > * Copyright 2024-2025 HSuite (https://hsuite.finance)</span>
197
- <span class="cstat-no" title="statement not covered" > *</span>
198
- <span class="cstat-no" title="statement not covered" > * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0</span>
199
- <span class="cstat-no" title="statement not covered" > *</span>
200
- <span class="cstat-no" title="statement not covered" > * This file is part of HSuite Native Connect. For commercial licensing,</span>
201
- <span class="cstat-no" title="statement not covered" > * visit https://hsuite.finance/licensing</span>
202
- <span class="cstat-no" title="statement not covered" > */</span>
203
- <span class="cstat-no" title="statement not covered" ></span>
204
- <span class="cstat-no" title="statement not covered" >/**</span>
205
- <span class="cstat-no" title="statement not covered" > * @file High-level query client for common wallet RPC methods.</span>
206
- <span class="cstat-no" title="statement not covered" > * Provides convenience methods wrapping ReferenceClient for typical</span>
207
- <span class="cstat-no" title="statement not covered" > * wallet operations like account discovery and configuration retrieval.</span>
208
- <span class="cstat-no" title="statement not covered" > *</span>
209
- <span class="cstat-no" title="statement not covered" > * @module @hsuite/native-connect-client/query-client</span>
210
- <span class="cstat-no" title="statement not covered" > */</span>
211
- <span class="cstat-no" title="statement not covered" ></span>
212
- <span class="cstat-no" title="statement not covered" >import { ReferenceClient } from './reference-client';</span>
213
- <span class="cstat-no" title="statement not covered" >import type { RpcRequest, RpcResponse } from '@hsuite/native-connect-types';</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { ReferenceClient } from './reference-client';<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
171
+ <span class="cstat-no" title="statement not covered" >import type { RpcRequest, RpcResponse } from '@hsuite/connect-types';</span>
214
172
  <span class="cstat-no" title="statement not covered" ></span>
215
173
  <span class="cstat-no" title="statement not covered" >/**</span>
216
- <span class="cstat-no" title="statement not covered" > * @class QueryClient</span>
217
- <span class="cstat-no" title="statement not covered" > * @description High-level query client for common wallet RPC methods.</span>
218
- <span class="cstat-no" title="statement not covered" > *</span>
174
+ <span class="cstat-no" title="statement not covered" > * @description High-level query client for common wallet RPC methods</span>
175
+ <span class="cstat-no" title="statement not covered" > * </span>
219
176
  <span class="cstat-no" title="statement not covered" > * Provides convenience methods for:</span>
220
- <span class="cstat-no" title="statement not covered" > * - Account discovery via `wallet/accounts` RPC method</span>
221
- <span class="cstat-no" title="statement not covered" > * - Configuration retrieval via `wallet/get-config` RPC method</span>
177
+ <span class="cstat-no" title="statement not covered" > * - Account discovery</span>
178
+ <span class="cstat-no" title="statement not covered" > * - Configuration retrieval</span>
179
+ <span class="cstat-no" title="statement not covered" > * </span>
180
+ <span class="cstat-no" title="statement not covered" > * @example</span>
181
+ <span class="cstat-no" title="statement not covered" > * ```typescript</span>
182
+ <span class="cstat-no" title="statement not covered" > * const queryClient = new QueryClient(referenceClient);</span>
183
+ <span class="cstat-no" title="statement not covered" > * const accounts = await queryClient.getAccounts();</span>
184
+ <span class="cstat-no" title="statement not covered" > * const config = await queryClient.getConfig();</span>
185
+ <span class="cstat-no" title="statement not covered" > * ```</span>
222
186
  <span class="cstat-no" title="statement not covered" > */</span>
223
187
  <span class="cstat-no" title="statement not covered" >export class QueryClient {</span>
224
188
  <span class="cstat-no" title="statement not covered" > constructor(private readonly client: ReferenceClient) {}</span>
@@ -262,7 +226,7 @@
262
226
  <div class='footer quiet pad2 space-top1 center small'>
263
227
  Code coverage generated by
264
228
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
265
- at 2026-06-02T14:29:49.152Z
229
+ at 2026-01-12T14:27:06.745Z
266
230
  </div>
267
231
  <script src="../prettify.js"></script>
268
232
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">99% </span>
26
+ <span class="strong">98.98% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>200/202</span>
28
+ <span class='fraction'>196/198</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">99% </span>
47
+ <span class="strong">98.98% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>200/202</span>
49
+ <span class='fraction'>196/198</span>
50
50
  </div>
51
51
 
52
52
 
@@ -261,14 +261,7 @@
261
261
  <a name='L196'></a><a href='#L196'>196</a>
262
262
  <a name='L197'></a><a href='#L197'>197</a>
263
263
  <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
269
- <span class="cline-any cline-yes">1x</span>
270
- <span class="cline-any cline-yes">1x</span>
271
- <span class="cline-any cline-yes">1x</span>
264
+ <a name='L199'></a><a href='#L199'>199</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
272
265
  <span class="cline-any cline-yes">1x</span>
273
266
  <span class="cline-any cline-yes">1x</span>
274
267
  <span class="cline-any cline-yes">1x</span>
@@ -434,7 +427,6 @@
434
427
  <span class="cline-any cline-yes">3x</span>
435
428
  <span class="cline-any cline-yes">8x</span>
436
429
  <span class="cline-any cline-yes">8x</span>
437
- <span class="cline-any cline-yes">8x</span>
438
430
  <span class="cline-any cline-yes">12x</span>
439
431
  <span class="cline-any cline-yes">12x</span>
440
432
  <span class="cline-any cline-yes">12x</span>
@@ -467,28 +459,16 @@
467
459
  <span class="cline-any cline-no">&nbsp;</span>
468
460
  <span class="cline-any cline-no">&nbsp;</span>
469
461
  <span class="cline-any cline-yes">19x</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
471
- * HSuite Native Connect
472
- * Copyright 2024-2025 HSuite (https://hsuite.finance)
473
- *
474
- * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
475
- *
476
- * This file is part of HSuite Native Connect. For commercial licensing,
477
- * visit https://hsuite.finance/licensing
478
- */
479
- &nbsp;
480
- /**
481
- * @file Reference client implementation for dApp developers.
482
- * Provides a complete RPC client with bidirectional message routing,
483
- * timeout protection, and event-driven lifecycle hooks.
484
- *
485
- * @module @hsuite/native-connect-client/reference-client
486
- */
487
- &nbsp;
488
- import EventEmitter from 'eventemitter3';
489
- import { RpcClient, RpcCodec, RpcServer, RpcRouter, getLogger } from '@hsuite/native-connect-sdk';
490
- import type { RpcRequest, RpcResponse, RpcEnvelope } from '@hsuite/native-connect-types';
491
- import { RpcRequestSchema, RpcErrorSchema, RpcSuccessSchema } from '@hsuite/native-connect-types';
462
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import EventEmitter from 'eventemitter3';
463
+ import {
464
+ RpcClient,
465
+ RpcCodec,
466
+ RpcServer,
467
+ RpcRouter,
468
+ getLogger,
469
+ } from '@hsuite/connect-sdk';
470
+ import type { RpcRequest, RpcResponse, RpcEnvelope } from '@hsuite/connect-types';
471
+ import { RpcRequestSchema, RpcErrorSchema, RpcSuccessSchema } from '@hsuite/connect-types';
492
472
  &nbsp;
493
473
  /**
494
474
  * @description Transport abstraction for RPC message exchange
@@ -526,19 +506,28 @@ export interface ReferenceClientOptions {
526
506
  export type ReferenceClientEvent = 'request' | 'response' | 'response:error' | 'error';
527
507
  &nbsp;
528
508
  /**
529
- * @class ReferenceClient
530
- * @augments EventEmitter
531
- * @description Developer-facing RPC client for HSuite SDK integration testing.
532
- *
533
- * This is a reference implementation designed for dApp developers to understand
534
- * and test wallet communication patterns. It demonstrates the complete RPC
535
- * request/response lifecycle with proper timeout handling and error recovery.
536
- *
537
- * Features:
509
+ * @description Developer-facing RPC client for HSuite SDK integration testing
510
+ *
511
+ * Provides:
538
512
  * - Request/response RPC communication with timeout protection
539
513
  * - Bidirectional message routing for client-server scenarios
540
514
  * - Event emission for request/response lifecycle hooks
541
515
  * - Handler registration for incoming RPC methods
516
+ *
517
+ * @example
518
+ * ```typescript
519
+ * const client = new ReferenceClient({
520
+ * transport: new MemoryTransport(),
521
+ * timeoutMs: 5000
522
+ * });
523
+ *
524
+ * const response = await client.send({
525
+ * id: '1',
526
+ * jsonrpc: '2.0',
527
+ * method: 'wallet/accounts',
528
+ * params: {}
529
+ * });
530
+ * ```
542
531
  */
543
532
  export class ReferenceClient extends EventEmitter&lt;ReferenceClientEvent | string&gt; {
544
533
  private readonly rpc: RpcClient;
@@ -636,8 +625,7 @@ export class ReferenceClient extends EventEmitter&lt;ReferenceClientEvent | stri
636
625
  }
637
626
  &nbsp;
638
627
  const result = payload as RpcResponse;
639
- const id =
640
- typeof result.id === <span class="branch-0 cbranch-no" title="branch not covered" >'string' || typeof result.id === 'number' ? r</span>esult.<span class="branch-0 cbranch-no" title="branch not covered" >id : 'unknown';</span>
628
+ const id = typeof result.id === <span class="branch-0 cbranch-no" title="branch not covered" >'string' || typeof result.id === 'number' ? r</span>esult.<span class="branch-0 cbranch-no" title="branch not covered" >id : 'unknown';</span>
641
629
  const callback = this.pending.get(id);
642
630
  &nbsp;
643
631
  if (callback) {
@@ -676,7 +664,7 @@ export class ReferenceClient extends EventEmitter&lt;ReferenceClientEvent | stri
676
664
  <div class='footer quiet pad2 space-top1 center small'>
677
665
  Code coverage generated by
678
666
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
679
- at 2026-06-02T14:29:49.152Z
667
+ at 2026-01-12T14:27:06.745Z
680
668
  </div>
681
669
  <script src="../prettify.js"></script>
682
670
  <script>