@smarthome.exchange/integrations 1.0.0 → 2.0.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 (294) hide show
  1. package/changelog.md +49 -0
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/core/classes.configstore.d.ts +2 -0
  4. package/dist_ts/core/classes.configstore.js +84 -27
  5. package/dist_ts/core/classes.nativehomeadmission.d.ts +19 -0
  6. package/dist_ts/core/classes.nativehomeadmission.js +84 -0
  7. package/dist_ts/core/classes.nativeintegrationowner.d.ts +79 -0
  8. package/dist_ts/core/classes.nativeintegrationowner.js +269 -0
  9. package/dist_ts/core/index.d.ts +2 -0
  10. package/dist_ts/core/index.js +3 -1
  11. package/dist_ts/core/types.d.ts +14 -0
  12. package/dist_ts/integrations/braviatv/braviatv.classes.client.d.ts +23 -72
  13. package/dist_ts/integrations/braviatv/braviatv.classes.client.js +265 -625
  14. package/dist_ts/integrations/braviatv/braviatv.classes.configflow.d.ts +7 -7
  15. package/dist_ts/integrations/braviatv/braviatv.classes.configflow.js +51 -68
  16. package/dist_ts/integrations/braviatv/braviatv.classes.integration.d.ts +8 -11
  17. package/dist_ts/integrations/braviatv/braviatv.classes.integration.js +186 -135
  18. package/dist_ts/integrations/braviatv/braviatv.discovery.js +12 -11
  19. package/dist_ts/integrations/braviatv/braviatv.mapper.d.ts +6 -14
  20. package/dist_ts/integrations/braviatv/braviatv.mapper.js +37 -131
  21. package/dist_ts/integrations/braviatv/braviatv.types.d.ts +55 -133
  22. package/dist_ts/integrations/braviatv/braviatv.validation.d.ts +7 -0
  23. package/dist_ts/integrations/braviatv/braviatv.validation.js +72 -0
  24. package/dist_ts/integrations/broadlink/broadlink.actions.d.ts +2 -0
  25. package/dist_ts/integrations/broadlink/broadlink.actions.js +36 -0
  26. package/dist_ts/integrations/broadlink/broadlink.classes.client.d.ts +21 -19
  27. package/dist_ts/integrations/broadlink/broadlink.classes.client.js +185 -124
  28. package/dist_ts/integrations/broadlink/broadlink.classes.configflow.d.ts +5 -4
  29. package/dist_ts/integrations/broadlink/broadlink.classes.configflow.js +64 -83
  30. package/dist_ts/integrations/broadlink/broadlink.classes.integration.d.ts +16 -19
  31. package/dist_ts/integrations/broadlink/broadlink.classes.integration.js +114 -59
  32. package/dist_ts/integrations/broadlink/broadlink.mapper.d.ts +3 -2
  33. package/dist_ts/integrations/broadlink/broadlink.mapper.js +2 -1
  34. package/dist_ts/integrations/broadlink/broadlink.selected.mapper.d.ts +10 -0
  35. package/dist_ts/integrations/broadlink/broadlink.selected.mapper.js +41 -0
  36. package/dist_ts/integrations/broadlink/broadlink.types.d.ts +43 -7
  37. package/dist_ts/integrations/broadlink/broadlink.validation.d.ts +7 -0
  38. package/dist_ts/integrations/broadlink/broadlink.validation.js +63 -0
  39. package/dist_ts/integrations/daikin/daikin.classes.client.d.ts +10 -52
  40. package/dist_ts/integrations/daikin/daikin.classes.client.js +55 -614
  41. package/dist_ts/integrations/daikin/daikin.classes.configflow.d.ts +8 -12
  42. package/dist_ts/integrations/daikin/daikin.classes.configflow.js +77 -138
  43. package/dist_ts/integrations/daikin/daikin.classes.integration.d.ts +7 -24
  44. package/dist_ts/integrations/daikin/daikin.classes.integration.js +175 -67
  45. package/dist_ts/integrations/daikin/daikin.discovery.d.ts +11 -24
  46. package/dist_ts/integrations/daikin/daikin.discovery.js +98 -305
  47. package/dist_ts/integrations/daikin/daikin.mapper.d.ts +6 -7
  48. package/dist_ts/integrations/daikin/daikin.mapper.js +95 -155
  49. package/dist_ts/integrations/daikin/daikin.types.d.ts +24 -44
  50. package/dist_ts/integrations/daikin/daikin.types.js +1 -1
  51. package/dist_ts/integrations/daikin/daikin.validation.d.ts +5 -0
  52. package/dist_ts/integrations/daikin/daikin.validation.js +53 -0
  53. package/dist_ts/integrations/denonavr/denonavr.classes.client.d.ts +31 -40
  54. package/dist_ts/integrations/denonavr/denonavr.classes.client.js +149 -404
  55. package/dist_ts/integrations/denonavr/denonavr.classes.configflow.d.ts +7 -2
  56. package/dist_ts/integrations/denonavr/denonavr.classes.configflow.js +44 -36
  57. package/dist_ts/integrations/denonavr/denonavr.classes.integration.d.ts +6 -11
  58. package/dist_ts/integrations/denonavr/denonavr.classes.integration.js +192 -113
  59. package/dist_ts/integrations/denonavr/denonavr.discovery.d.ts +10 -18
  60. package/dist_ts/integrations/denonavr/denonavr.discovery.js +71 -193
  61. package/dist_ts/integrations/denonavr/denonavr.mapper.d.ts +5 -13
  62. package/dist_ts/integrations/denonavr/denonavr.mapper.js +35 -159
  63. package/dist_ts/integrations/denonavr/denonavr.types.d.ts +55 -90
  64. package/dist_ts/integrations/denonavr/denonavr.validation.d.ts +10 -0
  65. package/dist_ts/integrations/denonavr/denonavr.validation.js +86 -0
  66. package/dist_ts/integrations/kodi/kodi.classes.client.d.ts +11 -45
  67. package/dist_ts/integrations/kodi/kodi.classes.client.js +84 -310
  68. package/dist_ts/integrations/kodi/kodi.classes.configflow.d.ts +9 -8
  69. package/dist_ts/integrations/kodi/kodi.classes.configflow.js +53 -48
  70. package/dist_ts/integrations/kodi/kodi.classes.integration.d.ts +11 -11
  71. package/dist_ts/integrations/kodi/kodi.classes.integration.js +114 -171
  72. package/dist_ts/integrations/kodi/kodi.discovery.js +53 -29
  73. package/dist_ts/integrations/kodi/kodi.mapper.d.ts +7 -2
  74. package/dist_ts/integrations/kodi/kodi.mapper.js +48 -10
  75. package/dist_ts/integrations/kodi/kodi.types.d.ts +32 -28
  76. package/dist_ts/integrations/kodi/kodi.validation.d.ts +9 -0
  77. package/dist_ts/integrations/kodi/kodi.validation.js +62 -0
  78. package/dist_ts/integrations/modbus/modbus.classes.client.d.ts +15 -61
  79. package/dist_ts/integrations/modbus/modbus.classes.client.js +117 -776
  80. package/dist_ts/integrations/modbus/modbus.classes.configflow.d.ts +9 -5
  81. package/dist_ts/integrations/modbus/modbus.classes.configflow.js +70 -38
  82. package/dist_ts/integrations/modbus/modbus.classes.integration.d.ts +6 -17
  83. package/dist_ts/integrations/modbus/modbus.classes.integration.js +133 -57
  84. package/dist_ts/integrations/modbus/modbus.discovery.d.ts +5 -8
  85. package/dist_ts/integrations/modbus/modbus.discovery.js +38 -93
  86. package/dist_ts/integrations/modbus/modbus.mapper.d.ts +8 -32
  87. package/dist_ts/integrations/modbus/modbus.mapper.js +71 -431
  88. package/dist_ts/integrations/modbus/modbus.types.d.ts +82 -332
  89. package/dist_ts/integrations/modbus/modbus.validation.d.ts +10 -0
  90. package/dist_ts/integrations/modbus/modbus.validation.js +128 -0
  91. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.client.d.ts +12 -34
  92. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.client.js +143 -231
  93. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.configflow.d.ts +6 -1
  94. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.configflow.js +105 -18
  95. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.integration.d.ts +8 -8
  96. package/dist_ts/integrations/nanoleaf/nanoleaf.classes.integration.js +141 -155
  97. package/dist_ts/integrations/nanoleaf/nanoleaf.credentials.d.ts +9 -0
  98. package/dist_ts/integrations/nanoleaf/nanoleaf.credentials.js +35 -0
  99. package/dist_ts/integrations/nanoleaf/nanoleaf.mapper.d.ts +6 -18
  100. package/dist_ts/integrations/nanoleaf/nanoleaf.mapper.js +45 -220
  101. package/dist_ts/integrations/nanoleaf/nanoleaf.types.d.ts +33 -147
  102. package/dist_ts/integrations/nanoleaf/nanoleaf.validation.d.ts +6 -0
  103. package/dist_ts/integrations/nanoleaf/nanoleaf.validation.js +82 -0
  104. package/dist_ts/integrations/onkyo/onkyo.classes.client.d.ts +15 -20
  105. package/dist_ts/integrations/onkyo/onkyo.classes.client.js +161 -404
  106. package/dist_ts/integrations/onkyo/onkyo.classes.configflow.d.ts +9 -4
  107. package/dist_ts/integrations/onkyo/onkyo.classes.configflow.js +51 -6
  108. package/dist_ts/integrations/onkyo/onkyo.classes.integration.d.ts +22 -6
  109. package/dist_ts/integrations/onkyo/onkyo.classes.integration.js +144 -11
  110. package/dist_ts/integrations/onkyo/onkyo.discovery.d.ts +6 -1
  111. package/dist_ts/integrations/onkyo/onkyo.discovery.js +40 -4
  112. package/dist_ts/integrations/onkyo/onkyo.mapper.d.ts +7 -8
  113. package/dist_ts/integrations/onkyo/onkyo.mapper.js +45 -12
  114. package/dist_ts/integrations/onkyo/onkyo.types.d.ts +58 -8
  115. package/dist_ts/integrations/onkyo/onkyo.types.js +13 -102
  116. package/dist_ts/integrations/onkyo/onkyo.validation.d.ts +16 -0
  117. package/dist_ts/integrations/onkyo/onkyo.validation.js +77 -0
  118. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.client.d.ts +25 -25
  119. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.client.js +116 -360
  120. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.d.ts +11 -3
  121. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.js +76 -6
  122. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.integration.d.ts +26 -4
  123. package/dist_ts/integrations/panasonic_viera/panasonic_viera.classes.integration.js +142 -9
  124. package/dist_ts/integrations/panasonic_viera/panasonic_viera.discovery.d.ts +2 -1
  125. package/dist_ts/integrations/panasonic_viera/panasonic_viera.discovery.js +31 -4
  126. package/dist_ts/integrations/panasonic_viera/panasonic_viera.mapper.d.ts +9 -9
  127. package/dist_ts/integrations/panasonic_viera/panasonic_viera.mapper.js +31 -149
  128. package/dist_ts/integrations/panasonic_viera/panasonic_viera.types.d.ts +51 -11
  129. package/dist_ts/integrations/panasonic_viera/panasonic_viera.types.js +22 -87
  130. package/dist_ts/integrations/panasonic_viera/panasonic_viera.validation.d.ts +6 -0
  131. package/dist_ts/integrations/panasonic_viera/panasonic_viera.validation.js +56 -0
  132. package/dist_ts/integrations/pioneer/pioneer.classes.client.d.ts +31 -16
  133. package/dist_ts/integrations/pioneer/pioneer.classes.client.js +167 -409
  134. package/dist_ts/integrations/pioneer/pioneer.classes.configflow.d.ts +10 -3
  135. package/dist_ts/integrations/pioneer/pioneer.classes.configflow.js +66 -6
  136. package/dist_ts/integrations/pioneer/pioneer.classes.integration.d.ts +13 -5
  137. package/dist_ts/integrations/pioneer/pioneer.classes.integration.js +239 -11
  138. package/dist_ts/integrations/pioneer/pioneer.discovery.d.ts +14 -1
  139. package/dist_ts/integrations/pioneer/pioneer.discovery.js +51 -4
  140. package/dist_ts/integrations/pioneer/pioneer.mapper.d.ts +14 -8
  141. package/dist_ts/integrations/pioneer/pioneer.mapper.js +54 -12
  142. package/dist_ts/integrations/pioneer/pioneer.types.d.ts +79 -12
  143. package/dist_ts/integrations/pioneer/pioneer.types.js +12 -76
  144. package/dist_ts/integrations/pioneer/pioneer.validation.d.ts +10 -0
  145. package/dist_ts/integrations/pioneer/pioneer.validation.js +85 -0
  146. package/dist_ts/integrations/soundtouch/soundtouch.classes.client.d.ts +13 -36
  147. package/dist_ts/integrations/soundtouch/soundtouch.classes.client.js +179 -502
  148. package/dist_ts/integrations/soundtouch/soundtouch.classes.configflow.d.ts +6 -1
  149. package/dist_ts/integrations/soundtouch/soundtouch.classes.configflow.js +50 -40
  150. package/dist_ts/integrations/soundtouch/soundtouch.classes.integration.d.ts +14 -15
  151. package/dist_ts/integrations/soundtouch/soundtouch.classes.integration.js +108 -128
  152. package/dist_ts/integrations/soundtouch/soundtouch.discovery.d.ts +2 -20
  153. package/dist_ts/integrations/soundtouch/soundtouch.discovery.js +23 -113
  154. package/dist_ts/integrations/soundtouch/soundtouch.mapper.d.ts +3 -12
  155. package/dist_ts/integrations/soundtouch/soundtouch.mapper.js +35 -189
  156. package/dist_ts/integrations/soundtouch/soundtouch.types.d.ts +57 -142
  157. package/dist_ts/integrations/soundtouch/soundtouch.types.js +18 -3
  158. package/dist_ts/integrations/soundtouch/soundtouch.validation.d.ts +22 -0
  159. package/dist_ts/integrations/soundtouch/soundtouch.validation.js +65 -0
  160. package/dist_ts/integrations/wiz/index.d.ts +1 -0
  161. package/dist_ts/integrations/wiz/index.js +2 -1
  162. package/dist_ts/integrations/wiz/wiz.classes.client.d.ts +14 -28
  163. package/dist_ts/integrations/wiz/wiz.classes.client.js +93 -229
  164. package/dist_ts/integrations/wiz/wiz.classes.configflow.d.ts +6 -4
  165. package/dist_ts/integrations/wiz/wiz.classes.configflow.js +38 -67
  166. package/dist_ts/integrations/wiz/wiz.classes.integration.d.ts +10 -21
  167. package/dist_ts/integrations/wiz/wiz.classes.integration.js +204 -44
  168. package/dist_ts/integrations/wiz/wiz.discovery.d.ts +10 -31
  169. package/dist_ts/integrations/wiz/wiz.discovery.js +48 -249
  170. package/dist_ts/integrations/wiz/wiz.mapper.d.ts +7 -51
  171. package/dist_ts/integrations/wiz/wiz.mapper.js +82 -668
  172. package/dist_ts/integrations/wiz/wiz.types.d.ts +34 -208
  173. package/dist_ts/integrations/wiz/wiz.validation.d.ts +8 -0
  174. package/dist_ts/integrations/wiz/wiz.validation.js +72 -0
  175. package/dist_ts/integrations/yamaha/index.d.ts +1 -0
  176. package/dist_ts/integrations/yamaha/index.js +2 -1
  177. package/dist_ts/integrations/yamaha/yamaha.classes.client.d.ts +30 -4
  178. package/dist_ts/integrations/yamaha/yamaha.classes.client.js +162 -6
  179. package/dist_ts/integrations/yamaha/yamaha.classes.configflow.d.ts +10 -3
  180. package/dist_ts/integrations/yamaha/yamaha.classes.configflow.js +106 -6
  181. package/dist_ts/integrations/yamaha/yamaha.classes.integration.d.ts +22 -4
  182. package/dist_ts/integrations/yamaha/yamaha.classes.integration.js +243 -8
  183. package/dist_ts/integrations/yamaha/yamaha.discovery.d.ts +13 -1
  184. package/dist_ts/integrations/yamaha/yamaha.discovery.js +57 -4
  185. package/dist_ts/integrations/yamaha/yamaha.mapper.d.ts +16 -8
  186. package/dist_ts/integrations/yamaha/yamaha.mapper.js +58 -12
  187. package/dist_ts/integrations/yamaha/yamaha.types.d.ts +73 -6
  188. package/dist_ts/integrations/yamaha/yamaha.types.js +8 -94
  189. package/dist_ts/integrations/yamaha/yamaha.validation.d.ts +12 -0
  190. package/dist_ts/integrations/yamaha/yamaha.validation.js +89 -0
  191. package/package.json +3 -3
  192. package/readme.md +514 -2
  193. package/ts/00_commitinfo_data.ts +1 -1
  194. package/ts/core/classes.configstore.ts +84 -27
  195. package/ts/core/classes.nativehomeadmission.ts +96 -0
  196. package/ts/core/classes.nativeintegrationowner.ts +297 -0
  197. package/ts/core/index.ts +2 -0
  198. package/ts/core/types.ts +16 -0
  199. package/ts/integrations/braviatv/braviatv.classes.client.ts +245 -709
  200. package/ts/integrations/braviatv/braviatv.classes.configflow.ts +47 -76
  201. package/ts/integrations/braviatv/braviatv.classes.integration.ts +167 -147
  202. package/ts/integrations/braviatv/braviatv.discovery.ts +11 -10
  203. package/ts/integrations/braviatv/braviatv.mapper.ts +39 -142
  204. package/ts/integrations/braviatv/braviatv.types.ts +53 -173
  205. package/ts/integrations/braviatv/braviatv.validation.ts +68 -0
  206. package/ts/integrations/broadlink/broadlink.actions.ts +31 -0
  207. package/ts/integrations/broadlink/broadlink.classes.client.ts +170 -144
  208. package/ts/integrations/broadlink/broadlink.classes.configflow.ts +59 -89
  209. package/ts/integrations/broadlink/broadlink.classes.integration.ts +110 -64
  210. package/ts/integrations/broadlink/broadlink.mapper.ts +5 -4
  211. package/ts/integrations/broadlink/broadlink.selected.mapper.ts +46 -0
  212. package/ts/integrations/broadlink/broadlink.types.ts +48 -8
  213. package/ts/integrations/broadlink/broadlink.validation.ts +66 -0
  214. package/ts/integrations/daikin/daikin.classes.client.ts +52 -661
  215. package/ts/integrations/daikin/daikin.classes.configflow.ts +72 -152
  216. package/ts/integrations/daikin/daikin.classes.integration.ts +166 -71
  217. package/ts/integrations/daikin/daikin.discovery.ts +94 -346
  218. package/ts/integrations/daikin/daikin.mapper.ts +83 -166
  219. package/ts/integrations/daikin/daikin.types.ts +27 -48
  220. package/ts/integrations/daikin/daikin.validation.ts +51 -0
  221. package/ts/integrations/daikin/readme.md +83 -0
  222. package/ts/integrations/denonavr/denonavr.classes.client.ts +132 -421
  223. package/ts/integrations/denonavr/denonavr.classes.configflow.ts +44 -37
  224. package/ts/integrations/denonavr/denonavr.classes.integration.ts +171 -117
  225. package/ts/integrations/denonavr/denonavr.discovery.ts +67 -220
  226. package/ts/integrations/denonavr/denonavr.mapper.ts +36 -182
  227. package/ts/integrations/denonavr/denonavr.types.ts +48 -111
  228. package/ts/integrations/denonavr/denonavr.validation.ts +87 -0
  229. package/ts/integrations/kodi/kodi.classes.client.ts +72 -352
  230. package/ts/integrations/kodi/kodi.classes.configflow.ts +52 -55
  231. package/ts/integrations/kodi/kodi.classes.integration.ts +97 -178
  232. package/ts/integrations/kodi/kodi.discovery.ts +49 -28
  233. package/ts/integrations/kodi/kodi.mapper.ts +52 -10
  234. package/ts/integrations/kodi/kodi.types.ts +33 -58
  235. package/ts/integrations/kodi/kodi.validation.ts +60 -0
  236. package/ts/integrations/modbus/modbus.classes.client.ts +100 -842
  237. package/ts/integrations/modbus/modbus.classes.configflow.ts +70 -41
  238. package/ts/integrations/modbus/modbus.classes.integration.ts +115 -60
  239. package/ts/integrations/modbus/modbus.discovery.ts +38 -106
  240. package/ts/integrations/modbus/modbus.mapper.ts +64 -467
  241. package/ts/integrations/modbus/modbus.types.ts +64 -381
  242. package/ts/integrations/modbus/modbus.validation.ts +119 -0
  243. package/ts/integrations/nanoleaf/nanoleaf.classes.client.ts +115 -249
  244. package/ts/integrations/nanoleaf/nanoleaf.classes.configflow.ts +90 -19
  245. package/ts/integrations/nanoleaf/nanoleaf.classes.integration.ts +130 -181
  246. package/ts/integrations/nanoleaf/nanoleaf.credentials.ts +39 -0
  247. package/ts/integrations/nanoleaf/nanoleaf.mapper.ts +47 -260
  248. package/ts/integrations/nanoleaf/nanoleaf.types.ts +29 -147
  249. package/ts/integrations/nanoleaf/nanoleaf.validation.ts +77 -0
  250. package/ts/integrations/onkyo/onkyo.classes.client.ts +148 -457
  251. package/ts/integrations/onkyo/onkyo.classes.configflow.ts +52 -6
  252. package/ts/integrations/onkyo/onkyo.classes.integration.ts +121 -12
  253. package/ts/integrations/onkyo/onkyo.discovery.ts +41 -3
  254. package/ts/integrations/onkyo/onkyo.mapper.ts +46 -19
  255. package/ts/integrations/onkyo/onkyo.types.ts +55 -110
  256. package/ts/integrations/onkyo/onkyo.validation.ts +85 -0
  257. package/ts/integrations/onkyo/readme.md +126 -0
  258. package/ts/integrations/panasonic_viera/panasonic_viera.classes.client.ts +101 -398
  259. package/ts/integrations/panasonic_viera/panasonic_viera.classes.configflow.ts +69 -5
  260. package/ts/integrations/panasonic_viera/panasonic_viera.classes.integration.ts +141 -9
  261. package/ts/integrations/panasonic_viera/panasonic_viera.discovery.ts +32 -3
  262. package/ts/integrations/panasonic_viera/panasonic_viera.mapper.ts +34 -161
  263. package/ts/integrations/panasonic_viera/panasonic_viera.types.ts +52 -96
  264. package/ts/integrations/panasonic_viera/panasonic_viera.validation.ts +56 -0
  265. package/ts/integrations/pioneer/pioneer.classes.client.ts +132 -428
  266. package/ts/integrations/pioneer/pioneer.classes.configflow.ts +67 -5
  267. package/ts/integrations/pioneer/pioneer.classes.integration.ts +225 -11
  268. package/ts/integrations/pioneer/pioneer.discovery.ts +45 -3
  269. package/ts/integrations/pioneer/pioneer.mapper.ts +57 -13
  270. package/ts/integrations/pioneer/pioneer.types.ts +87 -85
  271. package/ts/integrations/pioneer/pioneer.validation.ts +84 -0
  272. package/ts/integrations/soundtouch/soundtouch.classes.client.ts +152 -571
  273. package/ts/integrations/soundtouch/soundtouch.classes.configflow.ts +47 -42
  274. package/ts/integrations/soundtouch/soundtouch.classes.integration.ts +95 -150
  275. package/ts/integrations/soundtouch/soundtouch.discovery.ts +21 -133
  276. package/ts/integrations/soundtouch/soundtouch.mapper.ts +36 -207
  277. package/ts/integrations/soundtouch/soundtouch.types.ts +50 -195
  278. package/ts/integrations/soundtouch/soundtouch.validation.ts +60 -0
  279. package/ts/integrations/wiz/index.ts +1 -0
  280. package/ts/integrations/wiz/wiz.classes.client.ts +84 -254
  281. package/ts/integrations/wiz/wiz.classes.configflow.ts +39 -70
  282. package/ts/integrations/wiz/wiz.classes.integration.ts +189 -45
  283. package/ts/integrations/wiz/wiz.discovery.ts +48 -291
  284. package/ts/integrations/wiz/wiz.mapper.ts +81 -754
  285. package/ts/integrations/wiz/wiz.types.ts +24 -224
  286. package/ts/integrations/wiz/wiz.validation.ts +73 -0
  287. package/ts/integrations/yamaha/index.ts +1 -0
  288. package/ts/integrations/yamaha/yamaha.classes.client.ts +150 -6
  289. package/ts/integrations/yamaha/yamaha.classes.configflow.ts +100 -5
  290. package/ts/integrations/yamaha/yamaha.classes.integration.ts +236 -8
  291. package/ts/integrations/yamaha/yamaha.discovery.ts +52 -3
  292. package/ts/integrations/yamaha/yamaha.mapper.ts +65 -13
  293. package/ts/integrations/yamaha/yamaha.types.ts +77 -97
  294. package/ts/integrations/yamaha/yamaha.validation.ts +86 -0
@@ -1,25 +1,65 @@
1
- import type { ISimpleLocalConfig, ISimpleLocalIntegrationProfile, ISimpleLocalSnapshot, TSimpleLocalRawData } from '../../core/index.js';
1
+ import type * as plugins from '../../plugins.js';
2
+ import type { ISimpleLocalConfig, ISimpleLocalSnapshot, TSimpleLocalRawData } from '../../core/index.js';
3
+ import type { INativeIntegrationSetupContext } from '../../core/types.js';
2
4
  export declare const panasonicVieraDomain = "panasonic_viera";
3
5
  export declare const panasonicVieraDefaultName = "Panasonic Viera";
4
6
  export declare const panasonicVieraDefaultPort = 55000;
5
7
  export declare const panasonicVieraDefaultTimeoutMs = 5000;
8
+ export type TPanasonicVieraKey = plugins.ecobridgeDeviceManager.TPanasonicKey;
9
+ export type TPanasonicVieraKeyReceipt = plugins.ecobridgeDeviceManager.IPanasonicKeyReceipt;
10
+ export interface IPanasonicVieraConfig {
11
+ readonly homeId: string;
12
+ readonly host: string;
13
+ readonly descriptionUrl: string;
14
+ readonly expectedUdn: string;
15
+ readonly expectedModelName: string;
16
+ readonly allowUnencryptedLan: true;
17
+ readonly name?: string;
18
+ readonly timeoutMs?: number;
19
+ readonly maxResponseBytes?: number;
20
+ }
21
+ export interface IPanasonicVieraClientOptions extends INativeIntegrationSetupContext {
22
+ readonly onDestroyed?: () => void;
23
+ }
24
+ export interface IPanasonicVieraSnapshot {
25
+ readonly homeId: string;
26
+ readonly name: string;
27
+ readonly profile: plugins.ecobridgeDeviceManager.IPanasonicProfile;
28
+ }
29
+ /** Explicit data conversion only; this input cannot start the native integration. */
30
+ export interface IPanasonicVieraOfflineConfig extends ISimpleLocalConfig {
31
+ }
6
32
  export interface IPanasonicVieraRawApiData extends Record<string, unknown> {
7
33
  deviceInfo?: Record<string, unknown>;
8
34
  volume?: number | null;
9
35
  muted?: boolean | null;
10
- tvType?: 'encrypted' | 'non_encrypted' | 'unknown';
11
36
  fetchedAt?: string;
12
37
  }
13
38
  export type TPanasonicVieraRawData = TSimpleLocalRawData | IPanasonicVieraRawApiData;
14
- export interface IPanasonicVieraSnapshot extends ISimpleLocalSnapshot {
15
- }
16
- export interface IPanasonicVieraConfig extends ISimpleLocalConfig {
17
- url?: string;
18
- macAddress?: string;
19
- deviceId?: string;
20
- appId?: string;
21
- encryptionKey?: string;
39
+ export interface IPanasonicVieraOfflineSnapshot extends ISimpleLocalSnapshot {
22
40
  }
23
41
  export interface IHomeAssistantPanasonicVieraConfig extends IPanasonicVieraConfig {
24
42
  }
25
- export declare const panasonicVieraProfile: ISimpleLocalIntegrationProfile;
43
+ export declare const panasonicVieraProfile: Readonly<{
44
+ domain: "panasonic_viera";
45
+ displayName: "Panasonic Viera";
46
+ manufacturer: "Panasonic";
47
+ status: 'control-runtime';
48
+ platforms: string[];
49
+ controlServices: string[];
50
+ discoverySources: string[];
51
+ metadata: {
52
+ source: string;
53
+ upstreamPath: string;
54
+ upstreamDomain: string;
55
+ integrationType: string;
56
+ iotClass: string;
57
+ configFlow: boolean;
58
+ documentation: string;
59
+ runtime: {
60
+ type: string;
61
+ controls: string;
62
+ explicitUnsupported: string[];
63
+ };
64
+ };
65
+ }>;
@@ -1,93 +1,28 @@
1
- export const panasonicVieraDomain = "panasonic_viera";
2
- export const panasonicVieraDefaultName = "Panasonic Viera";
1
+ export const panasonicVieraDomain = 'panasonic_viera';
2
+ export const panasonicVieraDefaultName = 'Panasonic Viera';
3
3
  export const panasonicVieraDefaultPort = 55000;
4
4
  export const panasonicVieraDefaultTimeoutMs = 5000;
5
- export const panasonicVieraProfile = {
5
+ export const panasonicVieraProfile = Object.freeze({
6
6
  domain: panasonicVieraDomain,
7
- displayName: "Panasonic Viera",
8
- manufacturer: "Panasonic Viera",
9
- model: "Panasonic Viera local integration",
10
- defaultName: panasonicVieraDefaultName,
11
- defaultPort: panasonicVieraDefaultPort,
12
- defaultProtocol: 'http',
13
- status: "control-runtime",
14
- platforms: [
15
- "button",
16
- "media_player",
17
- ],
18
- serviceDomains: [
19
- "button",
20
- "media_player",
21
- ],
22
- controlServices: [
23
- "media_pause",
24
- "media_next_track",
25
- "media_play",
26
- "media_previous_track",
27
- "media_stop",
28
- "press",
29
- "turn_off",
30
- "turn_on",
31
- "volume_down",
32
- "volume_mute",
33
- "volume_set",
34
- "volume_up",
35
- ],
36
- discoverySources: [
37
- 'manual',
38
- 'custom',
39
- ],
40
- discoveryKeywords: [
41
- "panasonic_viera",
42
- "Panasonic Viera",
43
- "Panasonic",
44
- "Viera",
45
- ],
7
+ displayName: panasonicVieraDefaultName,
8
+ manufacturer: 'Panasonic',
9
+ status: 'control-runtime',
10
+ platforms: ['button'],
11
+ controlServices: ['press'],
12
+ discoverySources: ['manual', 'custom'],
46
13
  metadata: {
47
- "source": "home-assistant/core",
48
- "upstreamPath": "homeassistant/components/panasonic_viera",
49
- "upstreamDomain": "panasonic_viera",
50
- "integrationType": "device",
51
- "iotClass": "local_polling",
52
- "requirements": [
53
- "panasonic-viera==0.4.4",
54
- ],
55
- "configFlow": true,
56
- "documentation": "https://www.home-assistant.io/integrations/panasonic_viera",
57
- "loggers": [
58
- "panasonic_viera",
59
- ],
60
- "runtime": {
61
- "type": "control-runtime",
62
- "services": [
63
- "snapshot",
64
- "status",
65
- "refresh",
66
- "media_pause",
67
- "media_play",
68
- "press",
69
- "volume_down",
70
- "volume_up",
71
- ],
72
- "platforms": [
73
- "button",
74
- "media_player",
75
- ],
76
- "controls": "native SOAP-over-HTTP when config.host/config.url is provided; injected executors remain supported",
77
- },
78
- "localApi": {
79
- "implemented": [
80
- "native SOAP-over-HTTP polling against /nrc/ddd.xml and /dmr/control_0 on port 55000",
81
- "native SOAP-over-HTTP remote key, volume, and mute commands against /nrc/control_0 and /dmr/control_0",
82
- "encrypted command transport when appId and encryptionKey are supplied",
83
- "manual snapshots, rawData, snapshotProvider, and injected native clients remain supported",
84
- ],
85
- "explicitUnsupported": [
86
- "interactive encrypted TV pairing/PIN enrollment is not exposed by this TypeScript config flow; provide appId and encryptionKey from an already paired client",
87
- "UPnP event subscription callback server support from panasonic-viera is not implemented",
88
- "Home Assistant entity registry migrations and repair flows",
89
- ],
14
+ source: 'home-assistant/core',
15
+ upstreamPath: 'homeassistant/components/panasonic_viera',
16
+ upstreamDomain: panasonicVieraDomain,
17
+ integrationType: 'device',
18
+ iotClass: 'local_polling',
19
+ configFlow: true,
20
+ documentation: 'https://www.home-assistant.io/integrations/panasonic_viera',
21
+ runtime: {
22
+ type: 'control-runtime',
23
+ controls: 'Selected plaintext NRC, currently advertised finite keys, matching SOAP acknowledgements only.',
24
+ explicitUnsupported: ['PIN/encrypted families', 'pairing', 'power state', 'current input', 'absolute volume/mute', 'media playback', 'arbitrary SOAP'],
90
25
  },
91
26
  },
92
- };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuYXNvbmljX3ZpZXJhLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaW50ZWdyYXRpb25zL3BhbmFzb25pY192aWVyYS9wYW5hc29uaWNfdmllcmEudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsaUJBQWlCLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksQ0FBQztBQW9CbkQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW1DO0lBQ25FLE1BQU0sRUFBRSxvQkFBb0I7SUFDNUIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLEtBQUssRUFBRSxtQ0FBbUM7SUFDMUMsV0FBVyxFQUFFLHlCQUF5QjtJQUN0QyxXQUFXLEVBQUUseUJBQXlCO0lBQ3RDLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsU0FBUyxFQUFFO1FBQ1QsUUFBUTtRQUNSLGNBQWM7S0FDZjtJQUNELGNBQWMsRUFBRTtRQUNkLFFBQVE7UUFDUixjQUFjO0tBQ2Y7SUFDRCxlQUFlLEVBQUU7UUFDZixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsWUFBWTtRQUNaLE9BQU87UUFDUCxVQUFVO1FBQ1YsU0FBUztRQUNULGFBQWE7UUFDYixhQUFhO1FBQ2IsWUFBWTtRQUNaLFdBQVc7S0FDWjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLFFBQVE7UUFDUixRQUFRO0tBQ1Q7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLFdBQVc7UUFDWCxPQUFPO0tBQ1I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUscUJBQXFCO1FBQy9CLGNBQWMsRUFBRSwwQ0FBMEM7UUFDMUQsZ0JBQWdCLEVBQUUsaUJBQWlCO1FBQ25DLGlCQUFpQixFQUFFLFFBQVE7UUFDM0IsVUFBVSxFQUFFLGVBQWU7UUFDM0IsY0FBYyxFQUFFO1lBQ2Qsd0JBQXdCO1NBQ3pCO1FBQ0QsWUFBWSxFQUFFLElBQUk7UUFDbEIsZUFBZSxFQUFFLDREQUE0RDtRQUM3RSxTQUFTLEVBQUU7WUFDVCxpQkFBaUI7U0FDbEI7UUFDRCxTQUFTLEVBQUU7WUFDVCxNQUFNLEVBQUUsaUJBQWlCO1lBQ3pCLFVBQVUsRUFBRTtnQkFDVixVQUFVO2dCQUNWLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxhQUFhO2dCQUNiLFlBQVk7Z0JBQ1osT0FBTztnQkFDUCxhQUFhO2dCQUNiLFdBQVc7YUFDWjtZQUNELFdBQVcsRUFBRTtnQkFDWCxRQUFRO2dCQUNSLGNBQWM7YUFDZjtZQUNELFVBQVUsRUFBRSxvR0FBb0c7U0FDakg7UUFDRCxVQUFVLEVBQUU7WUFDVixhQUFhLEVBQUU7Z0JBQ2IscUZBQXFGO2dCQUNyRix1R0FBdUc7Z0JBQ3ZHLHVFQUF1RTtnQkFDdkUsMkZBQTJGO2FBQzVGO1lBQ0QscUJBQXFCLEVBQUU7Z0JBQ3JCLDhKQUE4SjtnQkFDOUoseUZBQXlGO2dCQUN6Riw0REFBNEQ7YUFDN0Q7U0FDRjtLQUNGO0NBQ0YsQ0FBQyJ9
27
+ });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuYXNvbmljX3ZpZXJhLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvaW50ZWdyYXRpb25zL3BhbmFzb25pY192aWVyYS9wYW5hc29uaWNfdmllcmEudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsaUJBQWlCLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksQ0FBQztBQXVDbkQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqRCxNQUFNLEVBQUUsb0JBQW9CO0lBQzVCLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsWUFBWSxFQUFFLFdBQVc7SUFDekIsTUFBTSxFQUFFLGlCQUEwQjtJQUNsQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDckIsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDO0lBQzFCLGdCQUFnQixFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUN0QyxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUscUJBQXFCO1FBQzdCLFlBQVksRUFBRSwwQ0FBMEM7UUFDeEQsY0FBYyxFQUFFLG9CQUFvQjtRQUNwQyxlQUFlLEVBQUUsUUFBUTtRQUN6QixRQUFRLEVBQUUsZUFBZTtRQUN6QixVQUFVLEVBQUUsSUFBSTtRQUNoQixhQUFhLEVBQUUsNERBQTREO1FBQzNFLE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsUUFBUSxFQUFFLGdHQUFnRztZQUMxRyxtQkFBbUIsRUFBRSxDQUFDLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1NBQ3ZKO0tBQ0Y7Q0FDRixDQUFDLENBQUMifQ==
@@ -0,0 +1,6 @@
1
+ import type { IPanasonicVieraConfig } from './panasonic_viera.types.js';
2
+ export declare function panasonicVieraRecord(valueArg: unknown, keysArg?: readonly string[]): Record<string, unknown>;
3
+ export declare function panasonicVieraText(valueArg: unknown, nameArg: string, maximumArg?: number): string;
4
+ export declare function normalizePanasonicVieraConfig(valueArg: unknown): Readonly<IPanasonicVieraConfig>;
5
+ /** Cleanup failures remain observable after every admitted operation has settled. */
6
+ export declare function drainPanasonicVieraCleanup(cleanupsArg: readonly Promise<unknown>[], operationsArg: readonly Promise<unknown>[], messageArg: string): Promise<void>;
@@ -0,0 +1,56 @@
1
+ export function panasonicVieraRecord(valueArg, keysArg) {
2
+ if (!valueArg || typeof valueArg !== 'object' || Array.isArray(valueArg) ||
3
+ ![Object.prototype, null].includes(Object.getPrototypeOf(valueArg))) {
4
+ throw new TypeError('Panasonic Viera input must be a plain data object.');
5
+ }
6
+ const result = {};
7
+ for (const key of Reflect.ownKeys(valueArg)) {
8
+ const descriptor = Object.getOwnPropertyDescriptor(valueArg, key);
9
+ if (typeof key !== 'string' || !descriptor || !('value' in descriptor) || !descriptor.enumerable ||
10
+ keysArg && !keysArg.includes(key))
11
+ throw new TypeError('Panasonic Viera input contains unsupported fields or accessors.');
12
+ Object.defineProperty(result, key, { value: descriptor.value, enumerable: true });
13
+ }
14
+ return result;
15
+ }
16
+ export function panasonicVieraText(valueArg, nameArg, maximumArg = 256) {
17
+ if (typeof valueArg !== 'string' || !valueArg.trim() || valueArg.length > maximumArg || /[\p{Cc}\p{Cs}]/u.test(valueArg)) {
18
+ throw new TypeError(`Panasonic Viera ${nameArg} must be a bounded non-empty string without control characters.`);
19
+ }
20
+ return valueArg;
21
+ }
22
+ function optionalInteger(valueArg, minimumArg, maximumArg) {
23
+ if (valueArg === undefined)
24
+ return undefined;
25
+ if (typeof valueArg !== 'number' || !Number.isSafeInteger(valueArg) || valueArg < minimumArg || valueArg > maximumArg) {
26
+ throw new TypeError('Panasonic Viera numeric bound is invalid.');
27
+ }
28
+ return valueArg;
29
+ }
30
+ export function normalizePanasonicVieraConfig(valueArg) {
31
+ const config = panasonicVieraRecord(valueArg, ['homeId', 'host', 'descriptionUrl', 'expectedUdn', 'expectedModelName', 'allowUnencryptedLan', 'name', 'timeoutMs', 'maxResponseBytes']);
32
+ if (config.allowUnencryptedLan !== true)
33
+ throw new TypeError('Panasonic Viera requires explicit allowUnencryptedLan: true.');
34
+ // The owning protocol validates the selected private address, exact description origin and UPnP identity.
35
+ return Object.freeze({
36
+ homeId: panasonicVieraText(config.homeId, 'homeId'),
37
+ host: panasonicVieraText(config.host, 'host'),
38
+ descriptionUrl: panasonicVieraText(config.descriptionUrl, 'descriptionUrl', 4096),
39
+ expectedUdn: panasonicVieraText(config.expectedUdn, 'expectedUdn'),
40
+ expectedModelName: panasonicVieraText(config.expectedModelName, 'expectedModelName'),
41
+ allowUnencryptedLan: true,
42
+ name: config.name === undefined ? undefined : panasonicVieraText(config.name, 'name'),
43
+ timeoutMs: optionalInteger(config.timeoutMs, 1, 60_000),
44
+ maxResponseBytes: optionalInteger(config.maxResponseBytes, 256, 1024 * 1024),
45
+ });
46
+ }
47
+ /** Cleanup failures remain observable after every admitted operation has settled. */
48
+ export async function drainPanasonicVieraCleanup(cleanupsArg, operationsArg, messageArg) {
49
+ const [cleanups] = await Promise.all([Promise.allSettled(cleanupsArg), Promise.allSettled(operationsArg)]);
50
+ const errors = cleanups.filter((resultArg) => resultArg.status === 'rejected').map((resultArg) => resultArg.reason);
51
+ if (errors.length === 1)
52
+ throw errors[0];
53
+ if (errors.length > 1)
54
+ throw new AggregateError(errors, messageArg);
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuYXNvbmljX3ZpZXJhLnZhbGlkYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9pbnRlZ3JhdGlvbnMvcGFuYXNvbmljX3ZpZXJhL3BhbmFzb25pY192aWVyYS52YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFpQixFQUFFLE9BQTJCO0lBQ2pGLElBQUksQ0FBQyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxNQUFNLElBQUksU0FBUyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUE0QixFQUFFLENBQUM7SUFDM0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVU7WUFDOUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFDNUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsUUFBaUIsRUFBRSxPQUFlLEVBQUUsVUFBVSxHQUFHLEdBQUc7SUFDckYsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxVQUFVLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekgsTUFBTSxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsT0FBTyxpRUFBaUUsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsUUFBaUIsRUFBRSxVQUFrQixFQUFFLFVBQWtCO0lBQ2hGLElBQUksUUFBUSxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM3QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxHQUFHLFVBQVUsSUFBSSxRQUFRLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDdEgsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFFBQWlCO0lBQzdELE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3hMLElBQUksTUFBTSxDQUFDLG1CQUFtQixLQUFLLElBQUk7UUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDN0gsMEdBQTBHO0lBQzFHLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQixNQUFNLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDbkQsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQzdDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQztRQUNqRixXQUFXLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7UUFDbEUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDO1FBQ3BGLG1CQUFtQixFQUFFLElBQUk7UUFDekIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ3JGLFNBQVMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3ZELGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUM7S0FDN0UsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELHFGQUFxRjtBQUNyRixNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUFDLFdBQXdDLEVBQUUsYUFBMEMsRUFBRSxVQUFrQjtJQUN2SixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRyxNQUFNLE1BQU0sR0FBYyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFzQyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE1BQU0sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDdEUsQ0FBQyJ9
@@ -1,17 +1,32 @@
1
- import { SimpleLocalClient, type IServiceCallRequest, type IServiceCallResult } from '../../core/index.js';
2
- import type { IPioneerConfig, IPioneerSnapshot } from './pioneer.types.js';
3
- export declare class PioneerClient extends SimpleLocalClient<IPioneerConfig> {
4
- private readonly configArg;
5
- private liveSnapshot?;
6
- constructor(configArg: IPioneerConfig);
7
- getSnapshot(forceRefreshArg?: boolean): Promise<IPioneerSnapshot>;
8
- refresh(): Promise<IServiceCallResult>;
9
- execute(requestArg: IServiceCallRequest): Promise<IServiceCallResult>;
10
- private shouldUseNativeTelnet;
11
- private fetchSnapshot;
12
- private sourceNameToNumber;
13
- private commandForService;
14
- private requireEndpoint;
15
- private endpoint;
16
- private createOfflineSnapshot;
1
+ import type { INativeIntegrationSetupContext } from '../../core/types.js';
2
+ import type { IPioneerConfig, IPioneerEffectResult, IPioneerSnapshot, TPioneerControl } from './pioneer.types.js';
3
+ import { normalizePioneerConfig } from './pioneer.validation.js';
4
+ /** Home admission and caller work belong here; the published foundation owns the wire. */
5
+ export declare class PioneerClient {
6
+ readonly config: ReturnType<typeof normalizePioneerConfig>;
7
+ private readonly protocol;
8
+ private readonly admission;
9
+ private readonly context;
10
+ private readonly lifetime;
11
+ private operationTail;
12
+ private pendingOperations;
13
+ private startPromise?;
14
+ private snapshot?;
15
+ private closePromise?;
16
+ private retryPromise?;
17
+ constructor(config: IPioneerConfig, context: INativeIntegrationSetupContext);
18
+ isHealthy(): boolean;
19
+ start(signal?: AbortSignal): Promise<IPioneerSnapshot>;
20
+ getObservedSnapshot(): IPioneerSnapshot;
21
+ getSnapshot(signal?: AbortSignal): Promise<IPioneerSnapshot>;
22
+ setControl(input: TPioneerControl, signal?: AbortSignal): Promise<IPioneerEffectResult>;
23
+ destroy(): Promise<void>;
24
+ /** Retries retained terminal cleanup only; never repeats protocol observations or effects. */
25
+ retryCleanup(): Promise<void>;
26
+ private drain;
27
+ private observe;
28
+ private assertOpen;
29
+ private assertSignal;
30
+ /** Scope is checked when adapter work runs, before admission to the foundation's FIFO. */
31
+ private run;
17
32
  }