@sebbo2002/node-pyatv 5.1.2-develop.3 → 6.0.0-develop.2

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 (57) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +1 -1
  3. package/dist/lib/device-events.d.ts +1 -1
  4. package/dist/lib/device-events.js +3 -0
  5. package/dist/lib/device-events.js.map +1 -1
  6. package/dist/lib/device.d.ts +13 -2
  7. package/dist/lib/device.js +37 -0
  8. package/dist/lib/device.js.map +1 -1
  9. package/dist/lib/fake-spawn.d.ts +3 -3
  10. package/dist/lib/tools.d.ts +2 -2
  11. package/dist/lib/types.d.ts +7 -2
  12. package/docs/coverage/cobertura-coverage.xml +846 -783
  13. package/docs/coverage/device-event.ts.html +1 -1
  14. package/docs/coverage/device-events.ts.html +24 -15
  15. package/docs/coverage/device.ts.html +138 -21
  16. package/docs/coverage/fake-spawn.ts.html +40 -40
  17. package/docs/coverage/index.html +28 -28
  18. package/docs/coverage/index.ts.html +1 -1
  19. package/docs/coverage/instance.ts.html +1 -1
  20. package/docs/coverage/tools.ts.html +251 -251
  21. package/docs/coverage/types.ts.html +23 -5
  22. package/docs/reference/assets/main.js +56 -52
  23. package/docs/reference/assets/search.js +1 -1
  24. package/docs/reference/assets/style.css +23 -0
  25. package/docs/reference/classes/NodePyATVDevice.html +112 -74
  26. package/docs/reference/classes/NodePyATVDeviceEvent.html +10 -10
  27. package/docs/reference/classes/NodePyATVInstance.html +14 -14
  28. package/docs/reference/enums/NodePyATVDeviceState.html +11 -11
  29. package/docs/reference/enums/NodePyATVExecutableType.html +7 -7
  30. package/docs/reference/enums/NodePyATVKeys.html +28 -28
  31. package/docs/reference/enums/NodePyATVListenerState.html +9 -9
  32. package/docs/reference/enums/NodePyATVMediaType.html +9 -9
  33. package/docs/reference/enums/NodePyATVPowerState.html +7 -7
  34. package/docs/reference/enums/NodePyATVProtocol.html +9 -9
  35. package/docs/reference/enums/NodePyATVRepeatState.html +8 -8
  36. package/docs/reference/enums/NodePyATVShuffleState.html +8 -8
  37. package/docs/reference/index.html +5 -5
  38. package/docs/reference/interfaces/NodePyATVDeviceOptions.html +27 -27
  39. package/docs/reference/interfaces/NodePyATVFindAndInstanceOptions.html +21 -21
  40. package/docs/reference/interfaces/NodePyATVFindOptions.html +14 -14
  41. package/docs/reference/interfaces/NodePyATVGetStateOptions.html +6 -6
  42. package/docs/reference/interfaces/NodePyATVInstanceOptions.html +12 -12
  43. package/docs/reference/interfaces/NodePyATVService.html +7 -7
  44. package/docs/reference/interfaces/NodePyATVState.html +20 -20
  45. package/docs/reference/interfaces/NodePyATVVersionResponse.html +7 -7
  46. package/docs/reference/modules.html +4 -4
  47. package/docs/reference/types/NodePyATVEventValueType.html +5 -5
  48. package/docs/tests/index.html +1 -1
  49. package/docs/tests/mochawesome.json +740 -662
  50. package/package.json +14 -14
  51. package/release.config.cjs +1 -6
  52. package/src/lib/device-events.ts +3 -0
  53. package/src/lib/device.ts +40 -1
  54. package/src/lib/tools.ts +1 -1
  55. package/src/lib/types.ts +7 -1
  56. package/test/device.ts +42 -0
  57. package/tsconfig.json +1 -1
@@ -241,7 +241,7 @@ export default class NodePyATVDeviceEvent {
241
241
  <div class='footer quiet pad2 space-top1 center small'>
242
242
  Code coverage generated by
243
243
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
244
- at 2022-12-07T11:11:50.939Z
244
+ at 2023-03-21T19:06:29.919Z
245
245
  </div>
246
246
  <script src="prettify.js"></script>
247
247
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.52% </span>
26
+ <span class="strong">93.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>276/292</span>
28
+ <span class='fraction'>277/295</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">91.66% </span>
33
+ <span class="strong">90.16% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>55/60</span>
35
+ <span class='fraction'>55/61</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.52% </span>
47
+ <span class="strong">93.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>276/292</span>
49
+ <span class='fraction'>277/295</span>
50
50
  </div>
51
51
 
52
52
 
@@ -355,7 +355,10 @@
355
355
  <a name='L290'></a><a href='#L290'>290</a>
356
356
  <a name='L291'></a><a href='#L291'>291</a>
357
357
  <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
359
362
  <span class="cline-any cline-yes">1x</span>
360
363
  <span class="cline-any cline-yes">1x</span>
361
364
  <span class="cline-any cline-yes">1x</span>
@@ -384,13 +387,13 @@
384
387
  <span class="cline-any cline-yes">1x</span>
385
388
  <span class="cline-any cline-yes">1x</span>
386
389
  <span class="cline-any cline-yes">1x</span>
387
- <span class="cline-any cline-yes">99x</span>
388
- <span class="cline-any cline-yes">99x</span>
389
- <span class="cline-any cline-yes">99x</span>
390
- <span class="cline-any cline-yes">99x</span>
391
- <span class="cline-any cline-yes">99x</span>
392
- <span class="cline-any cline-yes">99x</span>
393
- <span class="cline-any cline-yes">99x</span>
390
+ <span class="cline-any cline-yes">101x</span>
391
+ <span class="cline-any cline-yes">101x</span>
392
+ <span class="cline-any cline-yes">101x</span>
393
+ <span class="cline-any cline-yes">101x</span>
394
+ <span class="cline-any cline-yes">101x</span>
395
+ <span class="cline-any cline-yes">101x</span>
396
+ <span class="cline-any cline-yes">101x</span>
394
397
  <span class="cline-any cline-yes">1x</span>
395
398
  <span class="cline-any cline-yes">1x</span>
396
399
  <span class="cline-any cline-yes">31x</span>
@@ -492,6 +495,9 @@
492
495
  <span class="cline-any cline-yes">19x</span>
493
496
  <span class="cline-any cline-yes">19x</span>
494
497
  <span class="cline-any cline-yes">19x</span>
498
+ <span class="cline-any cline-no">&nbsp;</span>
499
+ <span class="cline-any cline-no">&nbsp;</span>
500
+ <span class="cline-any cline-yes">19x</span>
495
501
  <span class="cline-any cline-yes">19x</span>
496
502
  <span class="cline-any cline-yes">1x</span>
497
503
  <span class="cline-any cline-yes">1x</span>
@@ -783,6 +789,9 @@ export default class NodePyATVDeviceEvents extends EventEmitter {
783
789
  const listenStart = new Date().getTime();
784
790
  const parameters = getParamters(this.options);
785
791
  this.pyatv = execute(reqId, NodePyATVExecutableType.atvscript, [...parameters, 'push_updates'], this.options);
792
+ if(!this.pyatv) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
793
+ <span class="cstat-no" title="statement not covered" > throw new Error('Unable to start listener: Unable to start atvscript');</span>
794
+ <span class="cstat-no" title="statement not covered" > }</span>
786
795
  &nbsp;
787
796
  const onError = (error: Error) =&gt; {
788
797
  debug(reqId, `Got error from child process: ${error}`, this.options);
@@ -946,7 +955,7 @@ export default class NodePyATVDeviceEvents extends EventEmitter {
946
955
  <div class='footer quiet pad2 space-top1 center small'>
947
956
  Code coverage generated by
948
957
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
949
- at 2022-12-07T11:11:50.939Z
958
+ at 2023-03-21T19:06:29.919Z
950
959
  </div>
951
960
  <script src="prettify.js"></script>
952
961
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">99.61% </span>
26
+ <span class="strong">99.38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>769/772</span>
28
+ <span class='fraction'>806/811</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">97.67% </span>
33
+ <span class="strong">96.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>84/86</span>
35
+ <span class='fraction'>87/90</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">98.59% </span>
40
+ <span class="strong">97.29% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>70/71</span>
42
+ <span class='fraction'>72/74</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">99.61% </span>
47
+ <span class="strong">99.38% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>769/772</span>
49
+ <span class='fraction'>806/811</span>
50
50
  </div>
51
51
 
52
52
 
@@ -835,7 +835,46 @@
835
835
  <a name='L770'></a><a href='#L770'>770</a>
836
836
  <a name='L771'></a><a href='#L771'>771</a>
837
837
  <a name='L772'></a><a href='#L772'>772</a>
838
- <a name='L773'></a><a href='#L773'>773</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
839
878
  <span class="cline-any cline-yes">1x</span>
840
879
  <span class="cline-any cline-yes">1x</span>
841
880
  <span class="cline-any cline-yes">1x</span>
@@ -869,12 +908,13 @@
869
908
  <span class="cline-any cline-yes">1x</span>
870
909
  <span class="cline-any cline-yes">1x</span>
871
910
  <span class="cline-any cline-yes">1x</span>
872
- <span class="cline-any cline-yes">99x</span>
873
- <span class="cline-any cline-yes">99x</span>
874
- <span class="cline-any cline-yes">99x</span>
875
- <span class="cline-any cline-yes">99x</span>
876
- <span class="cline-any cline-yes">99x</span>
877
- <span class="cline-any cline-yes">99x</span>
911
+ <span class="cline-any cline-yes">1x</span>
912
+ <span class="cline-any cline-yes">101x</span>
913
+ <span class="cline-any cline-yes">101x</span>
914
+ <span class="cline-any cline-yes">101x</span>
915
+ <span class="cline-any cline-yes">101x</span>
916
+ <span class="cline-any cline-yes">101x</span>
917
+ <span class="cline-any cline-yes">101x</span>
878
918
  <span class="cline-any cline-yes">1x</span>
879
919
  <span class="cline-any cline-yes">1x</span>
880
920
  <span class="cline-any cline-yes">1x</span>
@@ -1216,19 +1256,48 @@
1216
1256
  <span class="cline-any cline-yes">1x</span>
1217
1257
  <span class="cline-any cline-yes">1x</span>
1218
1258
  <span class="cline-any cline-yes">1x</span>
1259
+ <span class="cline-any cline-yes">1x</span>
1260
+ <span class="cline-any cline-yes">1x</span>
1261
+ <span class="cline-any cline-yes">1x</span>
1262
+ <span class="cline-any cline-yes">1x</span>
1263
+ <span class="cline-any cline-yes">1x</span>
1264
+ <span class="cline-any cline-yes">1x</span>
1265
+ <span class="cline-any cline-yes">1x</span>
1266
+ <span class="cline-any cline-yes">1x</span>
1267
+ <span class="cline-any cline-yes">1x</span>
1268
+ <span class="cline-any cline-no">&nbsp;</span>
1269
+ <span class="cline-any cline-no">&nbsp;</span>
1270
+ <span class="cline-any cline-yes">1x</span>
1271
+ <span class="cline-any cline-yes">1x</span>
1272
+ <span class="cline-any cline-yes">1x</span>
1273
+ <span class="cline-any cline-yes">1x</span>
1219
1274
  <span class="cline-any cline-yes">25x</span>
1220
1275
  <span class="cline-any cline-yes">25x</span>
1221
1276
  <span class="cline-any cline-yes">25x</span>
1222
1277
  <span class="cline-any cline-yes">25x</span>
1223
1278
  <span class="cline-any cline-yes">25x</span>
1224
1279
  <span class="cline-any cline-yes">25x</span>
1225
- <span class="cline-any cline-yes">23x</span>
1226
1280
  <span class="cline-any cline-yes">25x</span>
1281
+ <span class="cline-any cline-yes">25x</span>
1282
+ <span class="cline-any cline-yes">1x</span>
1283
+ <span class="cline-any cline-yes">1x</span>
1227
1284
  <span class="cline-any cline-yes">1x</span>
1228
1285
  <span class="cline-any cline-yes">1x</span>
1229
- <span class="cline-any cline-yes">24x</span>
1230
- <span class="cline-any cline-yes">24x</span>
1231
- <span class="cline-any cline-yes">24x</span>
1286
+ <span class="cline-any cline-yes">1x</span>
1287
+ <span class="cline-any cline-yes">1x</span>
1288
+ <span class="cline-any cline-yes">26x</span>
1289
+ <span class="cline-any cline-yes">26x</span>
1290
+ <span class="cline-any cline-yes">26x</span>
1291
+ <span class="cline-any cline-yes">26x</span>
1292
+ <span class="cline-any cline-yes">26x</span>
1293
+ <span class="cline-any cline-yes">26x</span>
1294
+ <span class="cline-any cline-yes">23x</span>
1295
+ <span class="cline-any cline-yes">26x</span>
1296
+ <span class="cline-any cline-yes">1x</span>
1297
+ <span class="cline-any cline-yes">1x</span>
1298
+ <span class="cline-any cline-yes">25x</span>
1299
+ <span class="cline-any cline-yes">25x</span>
1300
+ <span class="cline-any cline-yes">25x</span>
1232
1301
  <span class="cline-any cline-yes">1x</span>
1233
1302
  <span class="cline-any cline-yes">1x</span>
1234
1303
  <span class="cline-any cline-yes">1x</span>
@@ -1456,6 +1525,15 @@
1456
1525
  <span class="cline-any cline-yes">1x</span>
1457
1526
  <span class="cline-any cline-yes">1x</span>
1458
1527
  <span class="cline-any cline-yes">1x</span>
1528
+ <span class="cline-any cline-yes">1x</span>
1529
+ <span class="cline-any cline-yes">1x</span>
1530
+ <span class="cline-any cline-yes">1x</span>
1531
+ <span class="cline-any cline-yes">1x</span>
1532
+ <span class="cline-any cline-yes">1x</span>
1533
+ <span class="cline-any cline-yes">1x</span>
1534
+ <span class="cline-any cline-yes">1x</span>
1535
+ <span class="cline-any cline-yes">1x</span>
1536
+ <span class="cline-any cline-yes">1x</span>
1459
1537
  <span class="cline-any cline-yes">2x</span>
1460
1538
  <span class="cline-any cline-yes">2x</span>
1461
1539
  <span class="cline-any cline-yes">2x</span>
@@ -1610,6 +1688,7 @@
1610
1688
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
1611
1689
  &nbsp;
1612
1690
  import {
1691
+ NodePyATVApp,
1613
1692
  NodePyATVDeviceOptions,
1614
1693
  NodePyATVDeviceState,
1615
1694
  NodePyATVExecutableType,
@@ -1987,7 +2066,36 @@ export default class NodePyATVDevice implements EventEmitter{
1987
2066
  return state.appId;
1988
2067
  }
1989
2068
  &nbsp;
1990
- private async _pressKey(key: NodePyATVInternalKeys, executableType: NodePyATVExecutableType) {
2069
+ /**
2070
+ * Returns the list of installed apps on the Apple TV. Probably requires `companionCredentials`,
2071
+ * see https://pyatv.dev/documentation/atvremote/#apps for more details.
2072
+ */
2073
+ async listApps(): Promise&lt;NodePyATVApp[]&gt; {
2074
+ const id = addRequestId();
2075
+ const parameters = getParamters(this.options);
2076
+ &nbsp;
2077
+ const result = await request(id, NodePyATVExecutableType.atvremote, [...parameters, 'app_list'], this.options);
2078
+ if(typeof result !== 'string' || !result.startsWith('App: ')) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2079
+ <span class="cstat-no" title="statement not covered" > throw new Error('Unexpected atvremote response: ' + result);</span>
2080
+ <span class="cstat-no" title="statement not covered" > }</span>
2081
+ &nbsp;
2082
+ removeRequestId(id);
2083
+ const regex = /(.+) \(([^\)]+)\)$/i;
2084
+ const items = result.substring(5, ).split(', App: ').map(i =&gt; {
2085
+ const m = i.match(regex);
2086
+ if (m !== null) {
2087
+ return {
2088
+ id: m[2],
2089
+ name: m[1],
2090
+ launch: <span class="fstat-no" title="function not covered" >() =&gt; this.launchApp(m[2])</span>
2091
+ };
2092
+ }
2093
+ }) as Array&lt;NodePyATVApp | undefined&gt;;
2094
+ &nbsp;
2095
+ return items.filter(Boolean) as NodePyATVApp[];
2096
+ }
2097
+ &nbsp;
2098
+ private async _pressKey(key: NodePyATVInternalKeys | string, executableType: NodePyATVExecutableType) {
1991
2099
  const id = addRequestId();
1992
2100
  const parameters = getParamters(this.options);
1993
2101
  &nbsp;
@@ -2219,6 +2327,15 @@ export default class NodePyATVDevice implements EventEmitter{
2219
2327
  async turnOn(): Promise&lt;void&gt; {
2220
2328
  await this._pressKey(NodePyATVInternalKeys.turnOn, NodePyATVExecutableType.atvremote);
2221
2329
  }
2330
+ &nbsp;
2331
+ /**
2332
+ * Launch an application. Probably requires `companionCredentials`, see
2333
+ * https://pyatv.dev/documentation/atvremote/#apps for more details.
2334
+ * @param id App identifier, e.g. `com.netflix.Netflix`
2335
+ */
2336
+ async launchApp(id: string): Promise&lt;void&gt; {
2337
+ await this._pressKey('launch_app=' + id, NodePyATVExecutableType.atvremote);
2338
+ }
2222
2339
  &nbsp;
2223
2340
  /**
2224
2341
  * Add an event listener. Will start the event subscription with the
@@ -2386,7 +2503,7 @@ export default class NodePyATVDevice implements EventEmitter{
2386
2503
  <div class='footer quiet pad2 space-top1 center small'>
2387
2504
  Code coverage generated by
2388
2505
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2389
- at 2022-12-07T11:11:50.939Z
2506
+ at 2023-03-21T19:06:29.919Z
2390
2507
  </div>
2391
2508
  <script src="prettify.js"></script>
2392
2509
  <script>
@@ -191,17 +191,17 @@
191
191
  <span class="cline-any cline-yes">1x</span>
192
192
  <span class="cline-any cline-yes">1x</span>
193
193
  <span class="cline-any cline-yes">1x</span>
194
- <span class="cline-any cline-yes">86x</span>
195
- <span class="cline-any cline-yes">86x</span>
196
- <span class="cline-any cline-yes">86x</span>
197
- <span class="cline-any cline-yes">86x</span>
198
- <span class="cline-any cline-yes">86x</span>
199
194
  <span class="cline-any cline-yes">88x</span>
200
195
  <span class="cline-any cline-yes">88x</span>
201
196
  <span class="cline-any cline-yes">88x</span>
202
197
  <span class="cline-any cline-yes">88x</span>
203
- <span class="cline-any cline-yes">86x</span>
204
- <span class="cline-any cline-yes">86x</span>
198
+ <span class="cline-any cline-yes">88x</span>
199
+ <span class="cline-any cline-yes">90x</span>
200
+ <span class="cline-any cline-yes">90x</span>
201
+ <span class="cline-any cline-yes">90x</span>
202
+ <span class="cline-any cline-yes">90x</span>
203
+ <span class="cline-any cline-yes">88x</span>
204
+ <span class="cline-any cline-yes">88x</span>
205
205
  <span class="cline-any cline-yes">1x</span>
206
206
  <span class="cline-any cline-yes">1x</span>
207
207
  <span class="cline-any cline-yes">1x</span>
@@ -224,21 +224,21 @@
224
224
  <span class="cline-any cline-yes">1x</span>
225
225
  <span class="cline-any cline-yes">1x</span>
226
226
  <span class="cline-any cline-yes">1x</span>
227
- <span class="cline-any cline-yes">88x</span>
228
- <span class="cline-any cline-yes">88x</span>
229
- <span class="cline-any cline-yes">88x</span>
230
- <span class="cline-any cline-yes">88x</span>
231
- <span class="cline-any cline-yes">88x</span>
227
+ <span class="cline-any cline-yes">90x</span>
228
+ <span class="cline-any cline-yes">90x</span>
229
+ <span class="cline-any cline-yes">90x</span>
230
+ <span class="cline-any cline-yes">90x</span>
231
+ <span class="cline-any cline-yes">90x</span>
232
232
  <span class="cline-any cline-no">&nbsp;</span>
233
- <span class="cline-any cline-yes">88x</span>
234
- <span class="cline-any cline-yes">88x</span>
235
- <span class="cline-any cline-yes">88x</span>
236
- <span class="cline-any cline-yes">88x</span>
237
- <span class="cline-any cline-yes">88x</span>
238
- <span class="cline-any cline-yes">88x</span>
239
- <span class="cline-any cline-yes">88x</span>
240
- <span class="cline-any cline-yes">88x</span>
241
- <span class="cline-any cline-yes">88x</span>
233
+ <span class="cline-any cline-yes">90x</span>
234
+ <span class="cline-any cline-yes">90x</span>
235
+ <span class="cline-any cline-yes">90x</span>
236
+ <span class="cline-any cline-yes">90x</span>
237
+ <span class="cline-any cline-yes">90x</span>
238
+ <span class="cline-any cline-yes">90x</span>
239
+ <span class="cline-any cline-yes">90x</span>
240
+ <span class="cline-any cline-yes">90x</span>
241
+ <span class="cline-any cline-yes">90x</span>
242
242
  <span class="cline-any cline-yes">1x</span>
243
243
  <span class="cline-any cline-yes">1x</span>
244
244
  <span class="cline-any cline-yes">7x</span>
@@ -257,18 +257,18 @@
257
257
  <span class="cline-any cline-yes">1x</span>
258
258
  <span class="cline-any cline-yes">1x</span>
259
259
  <span class="cline-any cline-yes">1x</span>
260
- <span class="cline-any cline-yes">88x</span>
261
- <span class="cline-any cline-yes">88x</span>
262
- <span class="cline-any cline-yes">88x</span>
260
+ <span class="cline-any cline-yes">90x</span>
261
+ <span class="cline-any cline-yes">90x</span>
262
+ <span class="cline-any cline-yes">90x</span>
263
263
  <span class="cline-any cline-yes">1x</span>
264
264
  <span class="cline-any cline-yes">1x</span>
265
265
  <span class="cline-any cline-yes">5x</span>
266
266
  <span class="cline-any cline-yes">5x</span>
267
267
  <span class="cline-any cline-yes">1x</span>
268
268
  <span class="cline-any cline-yes">1x</span>
269
- <span class="cline-any cline-yes">69x</span>
270
- <span class="cline-any cline-yes">69x</span>
271
- <span class="cline-any cline-yes">69x</span>
269
+ <span class="cline-any cline-yes">71x</span>
270
+ <span class="cline-any cline-yes">71x</span>
271
+ <span class="cline-any cline-yes">71x</span>
272
272
  <span class="cline-any cline-yes">1x</span>
273
273
  <span class="cline-any cline-yes">1x</span>
274
274
  <span class="cline-any cline-yes">3x</span>
@@ -292,18 +292,18 @@
292
292
  <span class="cline-any cline-yes">19x</span>
293
293
  <span class="cline-any cline-yes">1x</span>
294
294
  <span class="cline-any cline-yes">1x</span>
295
- <span class="cline-any cline-yes">81x</span>
296
- <span class="cline-any cline-yes">46x</span>
297
- <span class="cline-any cline-yes">46x</span>
298
- <span class="cline-any cline-yes">81x</span>
299
- <span class="cline-any cline-yes">81x</span>
300
- <span class="cline-any cline-yes">81x</span>
301
- <span class="cline-any cline-yes">81x</span>
302
- <span class="cline-any cline-yes">81x</span>
303
- <span class="cline-any cline-yes">81x</span>
304
- <span class="cline-any cline-yes">81x</span>
305
- <span class="cline-any cline-yes">81x</span>
306
- <span class="cline-any cline-yes">81x</span>
295
+ <span class="cline-any cline-yes">83x</span>
296
+ <span class="cline-any cline-yes">48x</span>
297
+ <span class="cline-any cline-yes">48x</span>
298
+ <span class="cline-any cline-yes">83x</span>
299
+ <span class="cline-any cline-yes">83x</span>
300
+ <span class="cline-any cline-yes">83x</span>
301
+ <span class="cline-any cline-yes">83x</span>
302
+ <span class="cline-any cline-yes">83x</span>
303
+ <span class="cline-any cline-yes">83x</span>
304
+ <span class="cline-any cline-yes">83x</span>
305
+ <span class="cline-any cline-yes">83x</span>
306
+ <span class="cline-any cline-yes">83x</span>
307
307
  <span class="cline-any cline-yes">1x</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {SpawnOptions} from 'child_process';
309
309
  import {EventEmitter} from 'events';
@@ -433,7 +433,7 @@ export class FakeChildProcessController {
433
433
  <div class='footer quiet pad2 space-top1 center small'>
434
434
  Code coverage generated by
435
435
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
436
- at 2022-12-07T11:11:50.939Z
436
+ at 2023-03-21T19:06:29.919Z
437
437
  </div>
438
438
  <script src="prettify.js"></script>
439
439
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.65% </span>
26
+ <span class="strong">98.49% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>2057/2085</span>
28
+ <span class='fraction'>2101/2133</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">95.97% </span>
33
+ <span class="strong">95.42% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>310/323</span>
35
+ <span class='fraction'>313/328</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">99.26% </span>
40
+ <span class="strong">98.56% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>135/136</span>
42
+ <span class='fraction'>137/139</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">98.65% </span>
47
+ <span class="strong">98.49% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>2057/2085</span>
49
+ <span class='fraction'>2101/2133</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,32 +95,32 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="device-events.ts"><a href="device-events.ts.html">device-events.ts</a></td>
98
- <td data-value="94.52" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
98
+ <td data-value="93.89" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
100
100
  </td>
101
- <td data-value="94.52" class="pct high">94.52%</td>
102
- <td data-value="292" class="abs high">276/292</td>
103
- <td data-value="91.66" class="pct high">91.66%</td>
104
- <td data-value="60" class="abs high">55/60</td>
101
+ <td data-value="93.89" class="pct high">93.89%</td>
102
+ <td data-value="295" class="abs high">277/295</td>
103
+ <td data-value="90.16" class="pct high">90.16%</td>
104
+ <td data-value="61" class="abs high">55/61</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
106
  <td data-value="19" class="abs high">19/19</td>
107
- <td data-value="94.52" class="pct high">94.52%</td>
108
- <td data-value="292" class="abs high">276/292</td>
107
+ <td data-value="93.89" class="pct high">93.89%</td>
108
+ <td data-value="295" class="abs high">277/295</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
112
  <td class="file high" data-value="device.ts"><a href="device.ts.html">device.ts</a></td>
113
- <td data-value="99.61" class="pic high">
113
+ <td data-value="99.38" class="pic high">
114
114
  <div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
115
115
  </td>
116
- <td data-value="99.61" class="pct high">99.61%</td>
117
- <td data-value="772" class="abs high">769/772</td>
118
- <td data-value="97.67" class="pct high">97.67%</td>
119
- <td data-value="86" class="abs high">84/86</td>
120
- <td data-value="98.59" class="pct high">98.59%</td>
121
- <td data-value="71" class="abs high">70/71</td>
122
- <td data-value="99.61" class="pct high">99.61%</td>
123
- <td data-value="772" class="abs high">769/772</td>
116
+ <td data-value="99.38" class="pct high">99.38%</td>
117
+ <td data-value="811" class="abs high">806/811</td>
118
+ <td data-value="96.66" class="pct high">96.66%</td>
119
+ <td data-value="90" class="abs high">87/90</td>
120
+ <td data-value="97.29" class="pct high">97.29%</td>
121
+ <td data-value="74" class="abs high">72/74</td>
122
+ <td data-value="99.38" class="pct high">99.38%</td>
123
+ <td data-value="811" class="abs high">806/811</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
@@ -189,13 +189,13 @@
189
189
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
190
190
  </td>
191
191
  <td data-value="100" class="pct high">100%</td>
192
- <td data-value="224" class="abs high">224/224</td>
192
+ <td data-value="230" class="abs high">230/230</td>
193
193
  <td data-value="100" class="pct high">100%</td>
194
194
  <td data-value="10" class="abs high">10/10</td>
195
195
  <td data-value="100" class="pct high">100%</td>
196
196
  <td data-value="0" class="abs high">0/0</td>
197
197
  <td data-value="100" class="pct high">100%</td>
198
- <td data-value="224" class="abs high">224/224</td>
198
+ <td data-value="230" class="abs high">230/230</td>
199
199
  </tr>
200
200
 
201
201
  </tbody>
@@ -206,7 +206,7 @@
206
206
  <div class='footer quiet pad2 space-top1 center small'>
207
207
  Code coverage generated by
208
208
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
209
- at 2022-12-07T11:11:50.939Z
209
+ at 2023-03-21T19:06:29.919Z
210
210
  </div>
211
211
  <script src="prettify.js"></script>
212
212
  <script>
@@ -157,7 +157,7 @@ export {default} from './instance.js';
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
160
- at 2022-12-07T11:11:50.939Z
160
+ at 2023-03-21T19:06:29.919Z
161
161
  </div>
162
162
  <script src="prettify.js"></script>
163
163
  <script>
@@ -703,7 +703,7 @@ export default class NodePyATVInstance {
703
703
  <div class='footer quiet pad2 space-top1 center small'>
704
704
  Code coverage generated by
705
705
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
706
- at 2022-12-07T11:11:50.939Z
706
+ at 2023-03-21T19:06:29.919Z
707
707
  </div>
708
708
  <script src="prettify.js"></script>
709
709
  <script>