@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.
- package/coverage/coverage-summary.json +9 -9
- package/coverage/index.html +24 -24
- package/coverage/lcov-report/index.html +24 -24
- package/coverage/lcov-report/src/handlers/index.html +9 -9
- package/coverage/lcov-report/src/handlers/session-handler.ts.html +6 -57
- package/coverage/lcov-report/src/handlers/signing-handler.ts.html +6 -57
- package/coverage/lcov-report/src/handlers/wallet-handler.ts.html +5 -56
- package/coverage/lcov-report/src/harness/index.html +10 -10
- package/coverage/lcov-report/src/harness/signing-harness.ts.html +25 -37
- package/coverage/lcov-report/src/index.html +15 -15
- package/coverage/lcov-report/src/memory-transport.ts.html +23 -44
- package/coverage/lcov-report/src/protocol/e2e-harness.ts.html +39 -30
- package/coverage/lcov-report/src/protocol/index.html +11 -11
- package/coverage/lcov-report/src/query-client.ts.html +17 -53
- package/coverage/lcov-report/src/reference-client.ts.html +35 -47
- package/coverage/lcov.info +259 -334
- package/coverage/src/handlers/index.html +9 -9
- package/coverage/src/handlers/session-handler.ts.html +6 -57
- package/coverage/src/handlers/signing-handler.ts.html +6 -57
- package/coverage/src/handlers/wallet-handler.ts.html +5 -56
- package/coverage/src/harness/index.html +10 -10
- package/coverage/src/harness/signing-harness.ts.html +25 -37
- package/coverage/src/index.html +15 -15
- package/coverage/src/memory-transport.ts.html +23 -44
- package/coverage/src/protocol/e2e-harness.ts.html +39 -30
- package/coverage/src/protocol/index.html +11 -11
- package/coverage/src/query-client.ts.html +17 -53
- package/coverage/src/reference-client.ts.html +35 -47
- package/package.json +3 -3
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -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/
|
|
28
|
+
<span class='fraction'>0/19</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/
|
|
49
|
+
<span class='fraction'>0/19</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -82,24 +82,7 @@
|
|
|
82
82
|
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
83
|
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
84
|
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
103
86
|
<span class="cline-any cline-no"> </span>
|
|
104
87
|
<span class="cline-any cline-no"> </span>
|
|
105
88
|
<span class="cline-any cline-no"> </span>
|
|
@@ -118,41 +101,7 @@
|
|
|
118
101
|
<span class="cline-any cline-no"> </span>
|
|
119
102
|
<span class="cline-any cline-no"> </span>
|
|
120
103
|
<span class="cline-any cline-no"> </span>
|
|
121
|
-
<span class="cline-any cline-
|
|
122
|
-
<span class="cline-any cline-no"> </span>
|
|
123
|
-
<span class="cline-any cline-no"> </span>
|
|
124
|
-
<span class="cline-any cline-no"> </span>
|
|
125
|
-
<span class="cline-any cline-no"> </span>
|
|
126
|
-
<span class="cline-any cline-no"> </span>
|
|
127
|
-
<span class="cline-any cline-no"> </span>
|
|
128
|
-
<span class="cline-any cline-no"> </span>
|
|
129
|
-
<span class="cline-any cline-no"> </span>
|
|
130
|
-
<span class="cline-any cline-no"> </span>
|
|
131
|
-
<span class="cline-any cline-no"> </span>
|
|
132
|
-
<span class="cline-any cline-no"> </span>
|
|
133
|
-
<span class="cline-any cline-no"> </span>
|
|
134
|
-
<span class="cline-any cline-no"> </span>
|
|
135
|
-
<span class="cline-any cline-no"> </span>
|
|
136
|
-
<span class="cline-any cline-no"> </span>
|
|
137
|
-
<span class="cline-any cline-no"> </span>
|
|
138
|
-
<span class="cline-any cline-neutral"> </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>
|
|
139
|
-
<span class="cstat-no" title="statement not covered" > * HSuite Native Connect</span>
|
|
140
|
-
<span class="cstat-no" title="statement not covered" > * Copyright 2024-2025 HSuite (https://hsuite.finance)</span>
|
|
141
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
142
|
-
<span class="cstat-no" title="statement not covered" > * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0</span>
|
|
143
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
144
|
-
<span class="cstat-no" title="statement not covered" > * This file is part of HSuite Native Connect. For commercial licensing,</span>
|
|
145
|
-
<span class="cstat-no" title="statement not covered" > * visit https://hsuite.finance/licensing</span>
|
|
146
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
147
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
148
|
-
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
149
|
-
<span class="cstat-no" title="statement not covered" > * @file Wallet RPC handler registration for reference client.</span>
|
|
150
|
-
<span class="cstat-no" title="statement not covered" > * Provides handlers for account and configuration query methods.</span>
|
|
151
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
152
|
-
<span class="cstat-no" title="statement not covered" > * @module @hsuite/native-connect-client/handlers/wallet-handler</span>
|
|
153
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
154
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
155
|
-
<span class="cstat-no" title="statement not covered" >import { RpcRouter, getLogger } from '@hsuite/native-connect-sdk';</span>
|
|
104
|
+
<span class="cline-any cline-neutral"> </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" >import { RpcRouter, getLogger } from '@hsuite/connect-sdk';</span></span></span>
|
|
156
105
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
157
106
|
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
158
107
|
<span class="cstat-no" title="statement not covered" > * @description Register wallet RPC handlers for account and config queries</span>
|
|
@@ -178,7 +127,7 @@
|
|
|
178
127
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
179
128
|
Code coverage generated by
|
|
180
129
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
181
|
-
at 2026-
|
|
130
|
+
at 2026-01-12T14:27:06.745Z
|
|
182
131
|
</div>
|
|
183
132
|
<script src="../../prettify.js"></script>
|
|
184
133
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">97.
|
|
26
|
+
<span class="strong">97.64% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>83/85</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">97.
|
|
47
|
+
<span class="strong">97.64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>83/85</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="signing-harness.ts"><a href="signing-harness.ts.html">signing-harness.ts</a></td>
|
|
83
|
-
<td data-value="97.
|
|
83
|
+
<td data-value="97.64" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="97.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="97.64" class="pct high">97.64%</td>
|
|
87
|
+
<td data-value="85" class="abs high">83/85</td>
|
|
88
88
|
<td data-value="91.66" class="pct high">91.66%</td>
|
|
89
89
|
<td data-value="12" class="abs high">11/12</td>
|
|
90
90
|
<td data-value="84.61" class="pct high">84.61%</td>
|
|
91
91
|
<td data-value="13" class="abs high">11/13</td>
|
|
92
|
-
<td data-value="97.
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="97.64" class="pct high">97.64%</td>
|
|
93
|
+
<td data-value="85" class="abs high">83/85</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-
|
|
104
|
+
at 2026-01-12T14:27:06.745Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">97.
|
|
26
|
+
<span class="strong">97.64% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>83/85</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">97.
|
|
47
|
+
<span class="strong">97.64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>83/85</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -148,15 +148,7 @@
|
|
|
148
148
|
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
149
|
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
150
|
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
156
|
-
<span class="cline-any cline-yes">1x</span>
|
|
157
|
-
<span class="cline-any cline-yes">1x</span>
|
|
158
|
-
<span class="cline-any cline-yes">1x</span>
|
|
159
|
-
<span class="cline-any cline-yes">1x</span>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
160
152
|
<span class="cline-any cline-yes">1x</span>
|
|
161
153
|
<span class="cline-any cline-yes">1x</span>
|
|
162
154
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -241,36 +233,32 @@
|
|
|
241
233
|
<span class="cline-any cline-yes">1x</span>
|
|
242
234
|
<span class="cline-any cline-yes">1x</span>
|
|
243
235
|
<span class="cline-any cline-yes">1x</span>
|
|
244
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
245
|
-
* HSuite Native Connect
|
|
246
|
-
* Copyright 2024-2025 HSuite (https://hsuite.finance)
|
|
247
|
-
*
|
|
248
|
-
* SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
|
|
249
|
-
*
|
|
250
|
-
* This file is part of HSuite Native Connect. For commercial licensing,
|
|
251
|
-
* visit https://hsuite.finance/licensing
|
|
252
|
-
*/
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* @file Test harness wiring reference client to in-memory transport.
|
|
256
|
-
* Provides complete RPC client/server setup for testing signing flows.
|
|
257
|
-
*
|
|
258
|
-
* @module @hsuite/native-connect-client/harness/signing-harness
|
|
259
|
-
*/
|
|
260
|
-
|
|
261
|
-
import { ReferenceClient } from '../reference-client';
|
|
236
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ReferenceClient } from '../reference-client';
|
|
262
237
|
import { MemoryTransport } from '../memory-transport';
|
|
263
|
-
import { RpcServer, RpcRouter, RpcCodec } from '@hsuite/
|
|
264
|
-
import type { RpcRequest, RpcResponse, RpcEnvelope } from '@hsuite/
|
|
238
|
+
import { RpcServer, RpcRouter, RpcCodec } from '@hsuite/connect-sdk';
|
|
239
|
+
import type { RpcRequest, RpcResponse, RpcEnvelope } from '@hsuite/connect-types';
|
|
265
240
|
|
|
266
241
|
/**
|
|
267
|
-
* @
|
|
268
|
-
*
|
|
269
|
-
*
|
|
242
|
+
* @description Test harness wiring reference client to in-memory transport
|
|
243
|
+
*
|
|
270
244
|
* Provides:
|
|
271
245
|
* - Complete RPC client/server setup for testing
|
|
272
246
|
* - Router-based request handling
|
|
273
247
|
* - Automatic transport wiring for bidirectional communication
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```typescript
|
|
251
|
+
* const router = new RpcRouter();
|
|
252
|
+
* router.register('test/method', async () => ({ result: 'ok' }));
|
|
253
|
+
*
|
|
254
|
+
* const harness = new SigningHarness(router);
|
|
255
|
+
* const response = await harness.send({
|
|
256
|
+
* id: '1',
|
|
257
|
+
* jsonrpc: '2.0',
|
|
258
|
+
* method: 'test/method',
|
|
259
|
+
* params: {}
|
|
260
|
+
* });
|
|
261
|
+
* ```
|
|
274
262
|
*/
|
|
275
263
|
export class SigningHarness {
|
|
276
264
|
private readonly transport = new MemoryTransport();
|
|
@@ -337,7 +325,7 @@ export class SigningHarness {
|
|
|
337
325
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
338
326
|
Code coverage generated by
|
|
339
327
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
340
|
-
at 2026-
|
|
328
|
+
at 2026-01-12T14:27:06.745Z
|
|
341
329
|
</div>
|
|
342
330
|
<script src="../../prettify.js"></script>
|
|
343
331
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">83.83% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>280/334</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">
|
|
47
|
+
<span class="strong">83.83% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>280/334</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -84,13 +84,13 @@
|
|
|
84
84
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
85
85
|
</td>
|
|
86
86
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
87
|
+
<td data-value="84" class="abs high">84/84</td>
|
|
88
88
|
<td data-value="100" class="pct high">100%</td>
|
|
89
89
|
<td data-value="11" class="abs high">11/11</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
91
|
<td data-value="8" class="abs high">8/8</td>
|
|
92
92
|
<td data-value="100" class="pct high">100%</td>
|
|
93
|
-
<td data-value="
|
|
93
|
+
<td data-value="84" class="abs high">84/84</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -99,28 +99,28 @@
|
|
|
99
99
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
100
100
|
</td>
|
|
101
101
|
<td data-value="0" class="pct low">0%</td>
|
|
102
|
-
<td data-value="
|
|
102
|
+
<td data-value="52" class="abs low">0/52</td>
|
|
103
103
|
<td data-value="0" class="pct low">0%</td>
|
|
104
104
|
<td data-value="1" class="abs low">0/1</td>
|
|
105
105
|
<td data-value="0" class="pct low">0%</td>
|
|
106
106
|
<td data-value="1" class="abs low">0/1</td>
|
|
107
107
|
<td data-value="0" class="pct low">0%</td>
|
|
108
|
-
<td data-value="
|
|
108
|
+
<td data-value="52" class="abs low">0/52</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
112
112
|
<td class="file high" data-value="reference-client.ts"><a href="reference-client.ts.html">reference-client.ts</a></td>
|
|
113
|
-
<td data-value="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
113
|
+
<td data-value="98.98" class="pic high">
|
|
114
|
+
<div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
|
|
115
115
|
</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="98.98" class="pct high">98.98%</td>
|
|
117
|
+
<td data-value="198" class="abs high">196/198</td>
|
|
118
118
|
<td data-value="91.42" class="pct high">91.42%</td>
|
|
119
119
|
<td data-value="35" class="abs high">32/35</td>
|
|
120
120
|
<td data-value="90" class="pct high">90%</td>
|
|
121
121
|
<td data-value="10" class="abs high">9/10</td>
|
|
122
|
-
<td data-value="
|
|
123
|
-
<td data-value="
|
|
122
|
+
<td data-value="98.98" class="pct high">98.98%</td>
|
|
123
|
+
<td data-value="198" class="abs high">196/198</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
</tbody>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2026-
|
|
134
|
+
at 2026-01-12T14:27:06.745Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>84/84</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">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>84/84</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -147,23 +147,12 @@
|
|
|
147
147
|
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
148
|
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
149
|
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
158
|
-
<span class="cline-any cline-yes">1x</span>
|
|
159
|
-
<span class="cline-any cline-yes">1x</span>
|
|
160
|
-
<span class="cline-any cline-yes">1x</span>
|
|
161
|
-
<span class="cline-any cline-yes">1x</span>
|
|
162
|
-
<span class="cline-any cline-yes">1x</span>
|
|
163
|
-
<span class="cline-any cline-yes">1x</span>
|
|
164
|
-
<span class="cline-any cline-yes">1x</span>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
165
151
|
<span class="cline-any cline-yes">1x</span>
|
|
166
152
|
<span class="cline-any cline-yes">1x</span>
|
|
153
|
+
<span class="cline-any cline-yes">3x</span>
|
|
154
|
+
<span class="cline-any cline-yes">3x</span>
|
|
155
|
+
<span class="cline-any cline-yes">3x</span>
|
|
167
156
|
<span class="cline-any cline-yes">1x</span>
|
|
168
157
|
<span class="cline-any cline-yes">1x</span>
|
|
169
158
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -174,9 +163,6 @@
|
|
|
174
163
|
<span class="cline-any cline-yes">1x</span>
|
|
175
164
|
<span class="cline-any cline-yes">1x</span>
|
|
176
165
|
<span class="cline-any cline-yes">1x</span>
|
|
177
|
-
<span class="cline-any cline-yes">3x</span>
|
|
178
|
-
<span class="cline-any cline-yes">3x</span>
|
|
179
|
-
<span class="cline-any cline-yes">3x</span>
|
|
180
166
|
<span class="cline-any cline-yes">1x</span>
|
|
181
167
|
<span class="cline-any cline-yes">1x</span>
|
|
182
168
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -245,38 +231,31 @@
|
|
|
245
231
|
<span class="cline-any cline-yes">1x</span>
|
|
246
232
|
<span class="cline-any cline-yes">1x</span>
|
|
247
233
|
<span class="cline-any cline-yes">2x</span>
|
|
248
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
249
|
-
|
|
250
|
-
* Copyright 2024-2025 HSuite (https://hsuite.finance)
|
|
251
|
-
*
|
|
252
|
-
* SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
|
|
253
|
-
*
|
|
254
|
-
* This file is part of HSuite Native Connect. For commercial licensing,
|
|
255
|
-
* visit https://hsuite.finance/licensing
|
|
256
|
-
*/
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* @file In-memory transport implementation for testing RPC communication.
|
|
260
|
-
* Provides isolated message delivery between client and server without network I/O.
|
|
261
|
-
*
|
|
262
|
-
* @module @hsuite/native-connect-client/memory-transport
|
|
263
|
-
*/
|
|
264
|
-
|
|
265
|
-
import { EventEmitter } from 'eventemitter3';
|
|
266
|
-
import type { RpcEnvelope } from '@hsuite/native-connect-types';
|
|
234
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { EventEmitter } from 'eventemitter3';
|
|
235
|
+
import type { RpcEnvelope } from '@hsuite/connect-types';
|
|
267
236
|
|
|
268
237
|
function cloneEnvelope(envelope: RpcEnvelope): RpcEnvelope {
|
|
269
238
|
return JSON.parse(JSON.stringify(envelope)) as RpcEnvelope;
|
|
270
239
|
}
|
|
271
240
|
|
|
272
241
|
/**
|
|
273
|
-
* @
|
|
274
|
-
*
|
|
275
|
-
*
|
|
242
|
+
* @description In-memory transport for testing RPC communication
|
|
243
|
+
*
|
|
276
244
|
* Provides:
|
|
277
245
|
* - Synchronous message delivery between client and server emitters
|
|
278
|
-
* - Message isolation via deep cloning
|
|
246
|
+
* - Message isolation via deep cloning
|
|
279
247
|
* - Pending promise queue for ordered delivery
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```typescript
|
|
251
|
+
* const transport = new MemoryTransport();
|
|
252
|
+
*
|
|
253
|
+
* transport.onMessage((msg) => console.log('Client received:', msg));
|
|
254
|
+
* transport.onServerMessage((msg) => console.log('Server received:', msg));
|
|
255
|
+
*
|
|
256
|
+
* await transport.send(envelope, 'client');
|
|
257
|
+
* await transport.drain();
|
|
258
|
+
* ```
|
|
280
259
|
*/
|
|
281
260
|
export class MemoryTransport {
|
|
282
261
|
private readonly clientEmitter = new EventEmitter();
|
|
@@ -343,7 +322,7 @@ export class MemoryTransport {
|
|
|
343
322
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
344
323
|
Code coverage generated by
|
|
345
324
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
346
|
-
at 2026-
|
|
325
|
+
at 2026-01-12T14:27:06.745Z
|
|
347
326
|
</div>
|
|
348
327
|
<script src="../prettify.js"></script>
|
|
349
328
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">82.31% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">82.31% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>135/164</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -224,7 +224,13 @@
|
|
|
224
224
|
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
225
|
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
226
|
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
231
|
+
<span class="cline-any cline-yes">1x</span>
|
|
232
|
+
<span class="cline-any cline-yes">1x</span>
|
|
233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
228
234
|
<span class="cline-any cline-yes">1x</span>
|
|
229
235
|
<span class="cline-any cline-yes">1x</span>
|
|
230
236
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -385,25 +391,7 @@
|
|
|
385
391
|
<span class="cline-any cline-yes">1x</span>
|
|
386
392
|
<span class="cline-any cline-yes">1x</span>
|
|
387
393
|
<span class="cline-any cline-yes">1x</span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
389
|
-
* HSuite Native Connect
|
|
390
|
-
* Copyright 2024-2025 HSuite (https://hsuite.finance)
|
|
391
|
-
*
|
|
392
|
-
* SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
|
|
393
|
-
*
|
|
394
|
-
* This file is part of HSuite Native Connect. For commercial licensing,
|
|
395
|
-
* visit https://hsuite.finance/licensing
|
|
396
|
-
*/
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* @file End-to-end test harness with full wallet SDK integration.
|
|
400
|
-
* Provides complete WalletCore, ledger registration, and session management
|
|
401
|
-
* for comprehensive integration testing.
|
|
402
|
-
*
|
|
403
|
-
* @module @hsuite/native-connect-client/protocol/e2e-harness
|
|
404
|
-
*/
|
|
405
|
-
|
|
406
|
-
import { ReferenceClient } from '../reference-client';
|
|
394
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ReferenceClient } from '../reference-client';
|
|
407
395
|
import { MemoryTransport } from '../memory-transport';
|
|
408
396
|
import {
|
|
409
397
|
WalletCore,
|
|
@@ -412,9 +400,9 @@ import {
|
|
|
412
400
|
KeyVaultService,
|
|
413
401
|
CryptoService,
|
|
414
402
|
createChannelInvite,
|
|
415
|
-
} from '@hsuite/
|
|
403
|
+
} from '@hsuite/connect-sdk';
|
|
416
404
|
import { base64 } from '@scure/base';
|
|
417
|
-
import type { LedgerAdapter, ChannelInvite } from '@hsuite/
|
|
405
|
+
import type { LedgerAdapter, ChannelInvite } from '@hsuite/connect-sdk';
|
|
418
406
|
|
|
419
407
|
/**
|
|
420
408
|
* @description Configuration options for end-to-end test harness
|
|
@@ -431,14 +419,35 @@ export interface HarnessOptions {
|
|
|
431
419
|
}
|
|
432
420
|
|
|
433
421
|
/**
|
|
434
|
-
* @
|
|
435
|
-
*
|
|
436
|
-
*
|
|
422
|
+
* @description End-to-end test harness with full wallet SDK integration
|
|
423
|
+
*
|
|
437
424
|
* Provides:
|
|
438
425
|
* - Complete WalletCore instance with ledger registration
|
|
439
426
|
* - Reference client for RPC communication
|
|
440
427
|
* - In-memory transport for isolated testing
|
|
441
428
|
* - Session establishment utilities
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```typescript
|
|
432
|
+
* import { createChannelInvite } from '@hsuite/connect-sdk';
|
|
433
|
+
*
|
|
434
|
+
* const invite = createChannelInvite({
|
|
435
|
+
* type: 'session',
|
|
436
|
+
* app: { id: 'my-dapp', name: 'My DApp' },
|
|
437
|
+
* context: { ledgerId: 'hedera', networkId: 'hedera:testnet' },
|
|
438
|
+
* permissions: [],
|
|
439
|
+
* });
|
|
440
|
+
*
|
|
441
|
+
* const harness = new EndToEndHarness({
|
|
442
|
+
* ledgerAdapter: new HederaLedgerAdapter(),
|
|
443
|
+
* session: {
|
|
444
|
+
* request: invite,
|
|
445
|
+
* }
|
|
446
|
+
* });
|
|
447
|
+
*
|
|
448
|
+
* const sessionId = await harness.establishSession();
|
|
449
|
+
* await harness.teardown();
|
|
450
|
+
* ```
|
|
442
451
|
*/
|
|
443
452
|
export class EndToEndHarness {
|
|
444
453
|
readonly client: ReferenceClient;
|
|
@@ -553,7 +562,7 @@ export class EndToEndHarness {
|
|
|
553
562
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
554
563
|
Code coverage generated by
|
|
555
564
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
556
|
-
at 2026-
|
|
565
|
+
at 2026-01-12T14:27:06.745Z
|
|
557
566
|
</div>
|
|
558
567
|
<script src="../../prettify.js"></script>
|
|
559
568
|
<script>
|