@nordicsemiconductor/pc-nrfconnect-shared 78.0.0 → 79.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 (303) hide show
  1. package/.github/ISSUE_TEMPLATE/custom.md +10 -0
  2. package/.husky/pre-push +3 -0
  3. package/.renovaterc.json +10 -0
  4. package/Changelog.md +26 -1
  5. package/azure-pipelines.yml +36 -0
  6. package/{typings/generated/ipc/MetaFiles.d.ts → ipc/MetaFiles.ts} +14 -2
  7. package/ipc/README.md +43 -0
  8. package/ipc/appDetails.ts +47 -0
  9. package/ipc/apps.ts +119 -0
  10. package/ipc/infrastructure/mainToRenderer.ts +49 -0
  11. package/ipc/infrastructure/rendererToMain.ts +51 -0
  12. package/ipc/openWindow.ts +35 -0
  13. package/ipc/preventSleep.ts +23 -0
  14. package/ipc/serialPort.ts +167 -0
  15. package/ipc/sources.ts +19 -0
  16. package/jest.config.js +7 -0
  17. package/package.json +1 -16
  18. package/src/About/DeviceCard.tsx +1 -1
  19. package/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.tsx +2 -2
  20. package/src/Device/deviceInfo/deviceInfo.ts +2 -2
  21. package/src/utils/packageJson.ts +1 -1
  22. package/src/utils/systemReport.ts +3 -3
  23. package/tailwind.config.js +11 -0
  24. package/tsconfig.json +9 -0
  25. package/dist/bootstrap.css +0 -8951
  26. package/scripts/nordic-publish.js +0 -89
  27. package/typings/generated/ipc/MetaFiles.d.ts.map +0 -1
  28. package/typings/generated/ipc/appDetails.d.ts +0 -19
  29. package/typings/generated/ipc/appDetails.d.ts.map +0 -1
  30. package/typings/generated/ipc/apps.d.ts +0 -67
  31. package/typings/generated/ipc/apps.d.ts.map +0 -1
  32. package/typings/generated/ipc/infrastructure/mainToRenderer.d.ts +0 -7
  33. package/typings/generated/ipc/infrastructure/mainToRenderer.d.ts.map +0 -1
  34. package/typings/generated/ipc/infrastructure/rendererToMain.d.ts +0 -7
  35. package/typings/generated/ipc/infrastructure/rendererToMain.d.ts.map +0 -1
  36. package/typings/generated/ipc/openWindow.d.ts +0 -19
  37. package/typings/generated/ipc/openWindow.d.ts.map +0 -1
  38. package/typings/generated/ipc/preventSleep.d.ts +0 -11
  39. package/typings/generated/ipc/preventSleep.d.ts.map +0 -1
  40. package/typings/generated/ipc/serialPort.d.ts +0 -49
  41. package/typings/generated/ipc/serialPort.d.ts.map +0 -1
  42. package/typings/generated/ipc/sources.d.ts +0 -15
  43. package/typings/generated/ipc/sources.d.ts.map +0 -1
  44. package/typings/generated/main/index.d.ts +0 -56
  45. package/typings/generated/main/index.d.ts.map +0 -1
  46. package/typings/generated/src/About/About.d.ts +0 -8
  47. package/typings/generated/src/About/About.d.ts.map +0 -1
  48. package/typings/generated/src/About/AboutButton.d.ts +0 -9
  49. package/typings/generated/src/About/AboutButton.d.ts.map +0 -1
  50. package/typings/generated/src/About/ApplicationCard.d.ts +0 -4
  51. package/typings/generated/src/About/ApplicationCard.d.ts.map +0 -1
  52. package/typings/generated/src/About/DeviceCard.d.ts +0 -4
  53. package/typings/generated/src/About/DeviceCard.d.ts.map +0 -1
  54. package/typings/generated/src/About/DocumentationCard.d.ts +0 -6
  55. package/typings/generated/src/About/DocumentationCard.d.ts.map +0 -1
  56. package/typings/generated/src/About/DocumentationSection.d.ts +0 -10
  57. package/typings/generated/src/About/DocumentationSection.d.ts.map +0 -1
  58. package/typings/generated/src/About/Section.d.ts +0 -8
  59. package/typings/generated/src/About/Section.d.ts.map +0 -1
  60. package/typings/generated/src/About/ShortcutButton.d.ts +0 -7
  61. package/typings/generated/src/About/ShortcutButton.d.ts.map +0 -1
  62. package/typings/generated/src/About/SupportCard.d.ts +0 -4
  63. package/typings/generated/src/About/SupportCard.d.ts.map +0 -1
  64. package/typings/generated/src/About/shortcutSlice.d.ts +0 -12
  65. package/typings/generated/src/About/shortcutSlice.d.ts.map +0 -1
  66. package/typings/generated/src/Alert/Alert.d.ts +0 -11
  67. package/typings/generated/src/Alert/Alert.d.ts.map +0 -1
  68. package/typings/generated/src/App/App.d.ts +0 -31
  69. package/typings/generated/src/App/App.d.ts.map +0 -1
  70. package/typings/generated/src/App/App.test.d.ts +0 -2
  71. package/typings/generated/src/App/App.test.d.ts.map +0 -1
  72. package/typings/generated/src/App/ConnectedToStore.d.ts +0 -8
  73. package/typings/generated/src/App/ConnectedToStore.d.ts.map +0 -1
  74. package/typings/generated/src/App/VisibilityBar.d.ts +0 -7
  75. package/typings/generated/src/App/VisibilityBar.d.ts.map +0 -1
  76. package/typings/generated/src/App/appLayout.d.ts +0 -17
  77. package/typings/generated/src/App/appLayout.d.ts.map +0 -1
  78. package/typings/generated/src/Button/Button.d.ts +0 -14
  79. package/typings/generated/src/Button/Button.d.ts.map +0 -1
  80. package/typings/generated/src/Card/Card.d.ts +0 -8
  81. package/typings/generated/src/Card/Card.d.ts.map +0 -1
  82. package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts +0 -5
  83. package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts.map +0 -1
  84. package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts +0 -13
  85. package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts.map +0 -1
  86. package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts +0 -12
  87. package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts.map +0 -1
  88. package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts +0 -8
  89. package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts.map +0 -1
  90. package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts +0 -11
  91. package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts.map +0 -1
  92. package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts +0 -8
  93. package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts.map +0 -1
  94. package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts +0 -11
  95. package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts.map +0 -1
  96. package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts +0 -11
  97. package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts.map +0 -1
  98. package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts +0 -10
  99. package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts.map +0 -1
  100. package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts +0 -8
  101. package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts.map +0 -1
  102. package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts +0 -7
  103. package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts.map +0 -1
  104. package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts +0 -21
  105. package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts.map +0 -1
  106. package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts +0 -2
  107. package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts.map +0 -1
  108. package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts +0 -10
  109. package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts.map +0 -1
  110. package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts +0 -9
  111. package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts.map +0 -1
  112. package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts +0 -8
  113. package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts.map +0 -1
  114. package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts +0 -4
  115. package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts.map +0 -1
  116. package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts +0 -30
  117. package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts.map +0 -1
  118. package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts +0 -19
  119. package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts.map +0 -1
  120. package/typings/generated/src/Device/deviceLibWrapper.d.ts +0 -9
  121. package/typings/generated/src/Device/deviceLibWrapper.d.ts.map +0 -1
  122. package/typings/generated/src/Device/deviceLibWrapper.test.d.ts +0 -2
  123. package/typings/generated/src/Device/deviceLibWrapper.test.d.ts.map +0 -1
  124. package/typings/generated/src/Device/deviceLister.d.ts +0 -27
  125. package/typings/generated/src/Device/deviceLister.d.ts.map +0 -1
  126. package/typings/generated/src/Device/deviceLister.test.d.ts +0 -3
  127. package/typings/generated/src/Device/deviceLister.test.d.ts.map +0 -1
  128. package/typings/generated/src/Device/deviceSetup.d.ts +0 -41
  129. package/typings/generated/src/Device/deviceSetup.d.ts.map +0 -1
  130. package/typings/generated/src/Device/deviceSetupSlice.d.ts +0 -21
  131. package/typings/generated/src/Device/deviceSetupSlice.d.ts.map +0 -1
  132. package/typings/generated/src/Device/deviceSlice.d.ts +0 -31
  133. package/typings/generated/src/Device/deviceSlice.d.ts.map +0 -1
  134. package/typings/generated/src/Device/dfu-cc.d.ts +0 -4
  135. package/typings/generated/src/Device/dfu-cc.d.ts.map +0 -1
  136. package/typings/generated/src/Device/initPacket.d.ts +0 -110
  137. package/typings/generated/src/Device/initPacket.d.ts.map +0 -1
  138. package/typings/generated/src/Device/jprogOperations.d.ts +0 -3
  139. package/typings/generated/src/Device/jprogOperations.d.ts.map +0 -1
  140. package/typings/generated/src/Device/sdfuOperations.d.ts +0 -15
  141. package/typings/generated/src/Device/sdfuOperations.d.ts.map +0 -1
  142. package/typings/generated/src/Dialog/Dialog.d.ts +0 -65
  143. package/typings/generated/src/Dialog/Dialog.d.ts.map +0 -1
  144. package/typings/generated/src/Dialog/Dialog.test.d.ts +0 -2
  145. package/typings/generated/src/Dialog/Dialog.test.d.ts.map +0 -1
  146. package/typings/generated/src/Dropdown/Dropdown.d.ts +0 -18
  147. package/typings/generated/src/Dropdown/Dropdown.d.ts.map +0 -1
  148. package/typings/generated/src/Dropdown/Dropdown.test.d.ts +0 -2
  149. package/typings/generated/src/Dropdown/Dropdown.test.d.ts.map +0 -1
  150. package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts +0 -27
  151. package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts.map +0 -1
  152. package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts +0 -2
  153. package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts.map +0 -1
  154. package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts +0 -5
  155. package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts.map +0 -1
  156. package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts +0 -2
  157. package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts.map +0 -1
  158. package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts +0 -24
  159. package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts.map +0 -1
  160. package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts +0 -2
  161. package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts.map +0 -1
  162. package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts +0 -13
  163. package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts.map +0 -1
  164. package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts +0 -2
  165. package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts.map +0 -1
  166. package/typings/generated/src/FlashMessage/FlashMessage.d.ts +0 -5
  167. package/typings/generated/src/FlashMessage/FlashMessage.d.ts.map +0 -1
  168. package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts +0 -20
  169. package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts.map +0 -1
  170. package/typings/generated/src/InlineInput/InlineInput.d.ts +0 -15
  171. package/typings/generated/src/InlineInput/InlineInput.d.ts.map +0 -1
  172. package/typings/generated/src/InlineInput/NumberInlineInput.d.ts +0 -13
  173. package/typings/generated/src/InlineInput/NumberInlineInput.d.ts.map +0 -1
  174. package/typings/generated/src/Log/LogEntry.d.ts +0 -8
  175. package/typings/generated/src/Log/LogEntry.d.ts.map +0 -1
  176. package/typings/generated/src/Log/LogViewer.d.ts +0 -6
  177. package/typings/generated/src/Log/LogViewer.d.ts.map +0 -1
  178. package/typings/generated/src/Log/logSlice.d.ts +0 -13
  179. package/typings/generated/src/Log/logSlice.d.ts.map +0 -1
  180. package/typings/generated/src/Log/syncLogToStore.d.ts +0 -12
  181. package/typings/generated/src/Log/syncLogToStore.d.ts.map +0 -1
  182. package/typings/generated/src/Logo/Logo.d.ts +0 -7
  183. package/typings/generated/src/Logo/Logo.d.ts.map +0 -1
  184. package/typings/generated/src/Main/Main.d.ts +0 -7
  185. package/typings/generated/src/Main/Main.d.ts.map +0 -1
  186. package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts +0 -15
  187. package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts.map +0 -1
  188. package/typings/generated/src/NavBar/NavBar.d.ts +0 -7
  189. package/typings/generated/src/NavBar/NavBar.d.ts.map +0 -1
  190. package/typings/generated/src/NavBar/NavMenu.d.ts +0 -4
  191. package/typings/generated/src/NavBar/NavMenu.d.ts.map +0 -1
  192. package/typings/generated/src/NavBar/NavMenu.test.d.ts +0 -2
  193. package/typings/generated/src/NavBar/NavMenu.test.d.ts.map +0 -1
  194. package/typings/generated/src/NavBar/NavMenuItem.d.ts +0 -10
  195. package/typings/generated/src/NavBar/NavMenuItem.d.ts.map +0 -1
  196. package/typings/generated/src/NumberInputWithSlider/NumberInputSliderWithUnit.d.ts +0 -14
  197. package/typings/generated/src/NumberInputWithSlider/NumberInputSliderWithUnit.d.ts.map +0 -1
  198. package/typings/generated/src/Panes/FeedbackPane.d.ts +0 -7
  199. package/typings/generated/src/Panes/FeedbackPane.d.ts.map +0 -1
  200. package/typings/generated/src/PseudoButton/PseudoButton.d.ts +0 -11
  201. package/typings/generated/src/PseudoButton/PseudoButton.d.ts.map +0 -1
  202. package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts +0 -14
  203. package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts.map +0 -1
  204. package/typings/generated/src/SerialPort/SerialPort.d.ts +0 -22
  205. package/typings/generated/src/SerialPort/SerialPort.d.ts.map +0 -1
  206. package/typings/generated/src/SerialPort/SerialPort.test.d.ts +0 -2
  207. package/typings/generated/src/SerialPort/SerialPort.test.d.ts.map +0 -1
  208. package/typings/generated/src/Shortcuts/ShortcutItem.d.ts +0 -9
  209. package/typings/generated/src/Shortcuts/ShortcutItem.d.ts.map +0 -1
  210. package/typings/generated/src/Shortcuts/ShortcutModal.d.ts +0 -9
  211. package/typings/generated/src/Shortcuts/ShortcutModal.d.ts.map +0 -1
  212. package/typings/generated/src/SidePanel/Group.d.ts +0 -17
  213. package/typings/generated/src/SidePanel/Group.d.ts.map +0 -1
  214. package/typings/generated/src/SidePanel/SidePanel.d.ts +0 -8
  215. package/typings/generated/src/SidePanel/SidePanel.d.ts.map +0 -1
  216. package/typings/generated/src/Slider/Bar.d.ts +0 -8
  217. package/typings/generated/src/Slider/Bar.d.ts.map +0 -1
  218. package/typings/generated/src/Slider/Factor.test.d.ts +0 -2
  219. package/typings/generated/src/Slider/Factor.test.d.ts.map +0 -1
  220. package/typings/generated/src/Slider/Handle.d.ts +0 -14
  221. package/typings/generated/src/Slider/Handle.d.ts.map +0 -1
  222. package/typings/generated/src/Slider/Slider.d.ts +0 -16
  223. package/typings/generated/src/Slider/Slider.d.ts.map +0 -1
  224. package/typings/generated/src/Slider/Slider.test.d.ts +0 -2
  225. package/typings/generated/src/Slider/Slider.test.d.ts.map +0 -1
  226. package/typings/generated/src/Slider/Ticks.d.ts +0 -13
  227. package/typings/generated/src/Slider/Ticks.d.ts.map +0 -1
  228. package/typings/generated/src/Slider/factor.d.ts +0 -2
  229. package/typings/generated/src/Slider/factor.d.ts.map +0 -1
  230. package/typings/generated/src/Slider/percentage.d.ts +0 -5
  231. package/typings/generated/src/Slider/percentage.d.ts.map +0 -1
  232. package/typings/generated/src/Slider/range.d.ts +0 -14
  233. package/typings/generated/src/Slider/range.d.ts.map +0 -1
  234. package/typings/generated/src/StartStopButton/StartStopButton.d.ts +0 -17
  235. package/typings/generated/src/StartStopButton/StartStopButton.d.ts.map +0 -1
  236. package/typings/generated/src/StateSelector/StateSelector.d.ts +0 -16
  237. package/typings/generated/src/StateSelector/StateSelector.d.ts.map +0 -1
  238. package/typings/generated/src/Stepper/Stepper.d.ts +0 -27
  239. package/typings/generated/src/Stepper/Stepper.d.ts.map +0 -1
  240. package/typings/generated/src/Toggle/Toggle.d.ts +0 -20
  241. package/typings/generated/src/Toggle/Toggle.d.ts.map +0 -1
  242. package/typings/generated/src/index.d.ts +0 -73
  243. package/typings/generated/src/index.d.ts.map +0 -1
  244. package/typings/generated/src/logging/appTransport.d.ts +0 -13
  245. package/typings/generated/src/logging/appTransport.d.ts.map +0 -1
  246. package/typings/generated/src/logging/appTransport.test.d.ts +0 -2
  247. package/typings/generated/src/logging/appTransport.test.d.ts.map +0 -1
  248. package/typings/generated/src/logging/describeError.d.ts +0 -3
  249. package/typings/generated/src/logging/describeError.d.ts.map +0 -1
  250. package/typings/generated/src/logging/describeError.test.d.ts +0 -2
  251. package/typings/generated/src/logging/describeError.test.d.ts.map +0 -1
  252. package/typings/generated/src/logging/index.d.ts +0 -10
  253. package/typings/generated/src/logging/index.d.ts.map +0 -1
  254. package/typings/generated/src/logging/logBuffer.d.ts +0 -10
  255. package/typings/generated/src/logging/logBuffer.d.ts.map +0 -1
  256. package/typings/generated/src/logging/logBuffer.test.d.ts +0 -2
  257. package/typings/generated/src/logging/logBuffer.test.d.ts.map +0 -1
  258. package/typings/generated/src/logging/sendInitialLogMessages.d.ts +0 -3
  259. package/typings/generated/src/logging/sendInitialLogMessages.d.ts.map +0 -1
  260. package/typings/generated/src/store.d.ts +0 -68
  261. package/typings/generated/src/store.d.ts.map +0 -1
  262. package/typings/generated/src/utils/appDirs.d.ts +0 -36
  263. package/typings/generated/src/utils/appDirs.d.ts.map +0 -1
  264. package/typings/generated/src/utils/bleChannels.d.ts +0 -7
  265. package/typings/generated/src/utils/bleChannels.d.ts.map +0 -1
  266. package/typings/generated/src/utils/classNames.d.ts +0 -18
  267. package/typings/generated/src/utils/classNames.d.ts.map +0 -1
  268. package/typings/generated/src/utils/classNames.test.d.ts +0 -2
  269. package/typings/generated/src/utils/classNames.test.d.ts.map +0 -1
  270. package/typings/generated/src/utils/colors.d.ts +0 -154
  271. package/typings/generated/src/utils/colors.d.ts.map +0 -1
  272. package/typings/generated/src/utils/describeVersion.d.ts +0 -4
  273. package/typings/generated/src/utils/describeVersion.d.ts.map +0 -1
  274. package/typings/generated/src/utils/environment.d.ts +0 -2
  275. package/typings/generated/src/utils/environment.d.ts.map +0 -1
  276. package/typings/generated/src/utils/logLibVersions.d.ts +0 -3
  277. package/typings/generated/src/utils/logLibVersions.d.ts.map +0 -1
  278. package/typings/generated/src/utils/open.d.ts +0 -16
  279. package/typings/generated/src/utils/open.d.ts.map +0 -1
  280. package/typings/generated/src/utils/packageJson.d.ts +0 -5
  281. package/typings/generated/src/utils/packageJson.d.ts.map +0 -1
  282. package/typings/generated/src/utils/persistentStore.d.ts +0 -36
  283. package/typings/generated/src/utils/persistentStore.d.ts.map +0 -1
  284. package/typings/generated/src/utils/systemReport.d.ts +0 -5
  285. package/typings/generated/src/utils/systemReport.d.ts.map +0 -1
  286. package/typings/generated/src/utils/truncateMiddle.d.ts +0 -3
  287. package/typings/generated/src/utils/truncateMiddle.d.ts.map +0 -1
  288. package/typings/generated/src/utils/truncateMiddle.test.d.ts +0 -2
  289. package/typings/generated/src/utils/truncateMiddle.test.d.ts.map +0 -1
  290. package/typings/generated/src/utils/usageData.d.ts +0 -64
  291. package/typings/generated/src/utils/usageData.d.ts.map +0 -1
  292. package/typings/generated/src/utils/useFocusedOnVisible.d.ts +0 -11
  293. package/typings/generated/src/utils/useFocusedOnVisible.d.ts.map +0 -1
  294. package/typings/generated/src/utils/useHotKey.d.ts +0 -7
  295. package/typings/generated/src/utils/useHotKey.d.ts.map +0 -1
  296. package/typings/generated/src/utils/useStopwatch.d.ts +0 -23
  297. package/typings/generated/src/utils/useStopwatch.d.ts.map +0 -1
  298. package/typings/generated/src/utils/useStopwatch.test.d.ts +0 -2
  299. package/typings/generated/src/utils/useStopwatch.test.d.ts.map +0 -1
  300. package/typings/generated/test/dispatchTo.d.ts +0 -4
  301. package/typings/generated/test/dispatchTo.d.ts.map +0 -1
  302. package/typings/generated/test/testrenderer.d.ts +0 -6
  303. package/typings/generated/test/testrenderer.d.ts.map +0 -1
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: Custom issue template
3
+ about: Please report bugs and feedback in DevZone
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ Please use the [Nordic DevZone](https://devzone.nordicsemi.com) portal to report bugs, questions or feedback in general. If you would like to suggest code changes, feel free to submit a pull request.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+ npm run check && npm t
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": ["config:base", "group:allNonMajor"],
3
+ "packageRules": [
4
+ {
5
+ "groupName": "Prettier",
6
+ "matchPackageNames": ["prettier"],
7
+ "matchUpdateTypes": ["minor", "patch"]
8
+ }
9
+ ]
10
+ }
package/Changelog.md CHANGED
@@ -7,7 +7,7 @@ This project does _not_ adhere to
7
7
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html) but contrary to it
8
8
  every new version is a new major version.
9
9
 
10
- ## 78 - 2023-08-02
10
+ ## 79 - Unreleased
11
11
 
12
12
  ### Changed
13
13
 
@@ -16,6 +16,31 @@ every new version is a new major version.
16
16
  and use the new name `@nordicsemiconductor/pc-nrfconnect-shared` when
17
17
  importing components from shared
18
18
 
19
+ ### Steps to upgrade when using this package
20
+
21
+ - Change all references from `pc-nrfconnect-shared` to
22
+ `@nordicsemiconductor/pc-nrfconnect-shared`
23
+
24
+ ```diff
25
+ - import { App } from 'pc-nrfconnect-shared';
26
+ + import { App } from '@nordicsemiconductor/pc-nrfconnect-shared';
27
+ ```
28
+
29
+ - Also check references in `tsconfig.json`, s`jest.config.js` and
30
+ `.scss`-files.
31
+
32
+ ## 78 - 2023-08-03
33
+
34
+ ### Changed
35
+
36
+ - Shared now only uses `device.jlink.boardversion` instead of
37
+ `jlink.boardVersion`.
38
+
39
+ ### Fixed
40
+
41
+ - `deviceInfo` can now be used in applications that don't make use of the
42
+ shared redux store.
43
+
19
44
  ## 77 - 2023-08-01
20
45
 
21
46
  ### Added
@@ -0,0 +1,36 @@
1
+ trigger:
2
+ - main
3
+ pool:
4
+ vmImage: 'ubuntu-latest'
5
+ variables:
6
+ - group: wayland
7
+ steps:
8
+ - task: NodeTool@0
9
+ inputs:
10
+ versionSpec: 18
11
+ - script: |
12
+ set -o errexit -o pipefail
13
+ npm ci
14
+ npm run check
15
+ npm run generate-types
16
+ npm test -- --coverage --coverageReporters=cobertura
17
+ npx esbuild scripts/nordic-publish.ts --bundle --outfile=scripts/nordic-publish.js --platform=node --log-level=warning --minify
18
+ node scripts/esbuild-bootstrap.js
19
+ npm pack
20
+ displayName: 'Build, Test, Compile and Pack'
21
+ - bash: |
22
+ set -o errexit -o pipefail
23
+ cp *.tgz "$(Build.ArtifactStagingDirectory)"
24
+ #Leave for now, testing purposes.
25
+ #condition: ne(variables['Build.Reason'], 'PullRequest')
26
+ displayName: 'Copy Artifacts'
27
+ - task: PublishCodeCoverageResults@1
28
+ displayName: Publish code coverage
29
+ inputs:
30
+ codeCoverageTool: Cobertura
31
+ summaryFileLocation: $(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
32
+ - task: PublishPipelineArtifact@1
33
+ inputs:
34
+ targetPath: $(Build.ArtifactStagingDirectory)
35
+ publishLocation: 'pipeline'
36
+ displayName: 'Publish artifacts to artifact storage'
@@ -1,15 +1,25 @@
1
+ /*
2
+ * Copyright (c) 2022 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
1
7
  export type UrlString = string;
8
+
2
9
  export interface SourceJson {
3
10
  name: string;
4
11
  apps: UrlString[];
5
12
  }
13
+
6
14
  export type WithdrawnJson = UrlString[];
15
+
7
16
  export type AppVersions = {
8
17
  [version: string]: {
9
18
  shasum?: string;
10
19
  tarballUrl: UrlString;
11
20
  };
12
21
  };
22
+
13
23
  export interface AppInfo {
14
24
  name: string;
15
25
  displayName: string;
@@ -24,12 +34,16 @@ export interface AppInfo {
24
34
  shasum?: string;
25
35
  };
26
36
  }
37
+
27
38
  interface ObjectContainingOptionalStrings {
28
39
  [index: string]: string | undefined;
29
40
  }
41
+
30
42
  export interface PackageJson {
31
43
  name: string;
32
44
  version: string;
45
+
46
+ // Several optional properties
33
47
  author?: string;
34
48
  bin?: ObjectContainingOptionalStrings | string;
35
49
  dependencies?: ObjectContainingOptionalStrings;
@@ -48,5 +62,3 @@ export interface PackageJson {
48
62
  };
49
63
  scripts?: ObjectContainingOptionalStrings;
50
64
  }
51
- export {};
52
- //# sourceMappingURL=MetaFiles.d.ts.map
package/ipc/README.md ADDED
@@ -0,0 +1,43 @@
1
+ The folder `ipc/` is meant as a middle layer between the main and renderer
2
+ processes.
3
+
4
+ Some of the code here should be called from the main process, usually to
5
+ register IPC handlers. Other code here should be called from the renderer
6
+ process(es), usually the ones to send IPC messages. They are both kept together
7
+ to keep them in sync, especially that the channel names and the shape of the
8
+ messages are the same.
9
+
10
+ All the code for the main process here is ran by the launcher. The launcher or
11
+ apps can invoke the functions from here, e.g. to do things like opening an app.
12
+ This means, the API must be kept stable here and in the launcher, so that the
13
+ launcher will react in the way the apps expect it.
14
+
15
+ ## Code conventions
16
+
17
+ There are a few conventions we follow with the code here in `ipc/`:
18
+
19
+ - In each file there are pairs of functions: One to send a message over an IPC
20
+ channel (e.g. `openApp`) and another to register a handler for the messages
21
+ on that same channel (e.g. `registerOpenApp`).
22
+
23
+ Usually these two functions utilize a shared signature which is defined in a
24
+ type above them. Usually the functions are defined by invoking functions
25
+ from `infrastructure/mainToRenderer.ts` or
26
+ `infrastructure/rendererToMain.ts` which also use that type.
27
+
28
+ - The functions mentioned before are then exported in objects with the names
29
+ `inMain`, `forRenderer`, `inRenderer`, and `forMain` to signify how the
30
+ functions are supposed to be used. E.g. the mentioned `openApp` is in
31
+ `inMain` because it is called by code in the renderer processes to invoke
32
+ code in the main process to open an window. `registerOpenApp` is in
33
+ `forRenderer` because the handler is registered so that code in the renderer
34
+ processes can invoke it.
35
+
36
+ So, `inMain` and `forRenderer` are used when sending messages from the
37
+ renderer processes to the main process. `inRenderer` and `forMain` are used,
38
+ when sending messages from the main process to the renderer processes.
39
+
40
+ - The code here in `ipc/` must neither reference any code in `src/` (which is
41
+ for code of the renderer processes) nor in `main/` (which is for code in the
42
+ main process). Only the other way around code in those two folders can
43
+ reference code in `ipc/`.
@@ -0,0 +1,47 @@
1
+ /*
2
+ * Copyright (c) 2022 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { ipcMain, WebContents } from 'electron';
8
+
9
+ import { LaunchableApp } from './apps';
10
+ import { handleWithSender, invoke } from './infrastructure/rendererToMain';
11
+
12
+ const channel = {
13
+ request: 'get-app-details',
14
+ response: 'app-details',
15
+ };
16
+
17
+ interface AppDetails {
18
+ coreVersion: string;
19
+ corePath: string;
20
+ homeDir: string;
21
+ tmpDir: string;
22
+ bundledJlink: string;
23
+ path: string;
24
+ }
25
+
26
+ export type AppDetailsFromLauncher = AppDetails & LaunchableApp;
27
+
28
+ type GetAppDetails = () => AppDetailsFromLauncher;
29
+
30
+ const getAppDetails = invoke<GetAppDetails>(channel.request);
31
+
32
+ const registerGetAppDetails = (
33
+ onGetAppDetails: (webContents: WebContents) => AppDetailsFromLauncher
34
+ ) => {
35
+ handleWithSender<GetAppDetails>(channel.request)(onGetAppDetails);
36
+
37
+ // This legacy implementation is still needed, because we currently still
38
+ // send the corresponding message in apps using shared 76 or earlier.
39
+ // When all apps are updated and required a launcher using shared 77 or
40
+ // later, we can remove this.
41
+ ipcMain.on(channel.request, event => {
42
+ event.sender.send(channel.response, onGetAppDetails(event.sender));
43
+ });
44
+ };
45
+
46
+ export const forRenderer = { registerGetAppDetails };
47
+ export const inMain = { getAppDetails };
package/ipc/apps.ts ADDED
@@ -0,0 +1,119 @@
1
+ /*
2
+ * Copyright (c) 2022 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { handle, invoke } from './infrastructure/rendererToMain';
8
+ import { AppVersions, UrlString } from './MetaFiles';
9
+ import { LOCAL, Source, SourceName } from './sources';
10
+
11
+ export interface AppSpec {
12
+ name: string;
13
+ source: SourceName;
14
+ }
15
+
16
+ interface BaseApp {
17
+ name: string;
18
+ displayName: string;
19
+ description: string;
20
+ iconPath: string;
21
+ }
22
+
23
+ interface Downloadable {
24
+ source: SourceName;
25
+ homepage?: UrlString;
26
+ versions?: AppVersions;
27
+ releaseNotes?: string;
28
+ latestVersion: string;
29
+ }
30
+
31
+ interface Installed {
32
+ currentVersion: string;
33
+ engineVersion?: string;
34
+ repositoryUrl?: UrlString;
35
+ html?: string;
36
+ installed: {
37
+ path: string;
38
+ shasum?: string;
39
+ };
40
+ }
41
+
42
+ export interface LocalApp extends Installed, BaseApp {
43
+ source: typeof LOCAL;
44
+ }
45
+
46
+ export interface InstalledDownloadableApp
47
+ extends BaseApp,
48
+ Installed,
49
+ Downloadable {
50
+ isWithdrawn: false;
51
+ }
52
+
53
+ export interface UninstalledDownloadableApp extends BaseApp, Downloadable {
54
+ isWithdrawn: false;
55
+ }
56
+
57
+ export interface WithdrawnApp extends BaseApp, Installed, Downloadable {
58
+ isWithdrawn: true;
59
+ }
60
+
61
+ export type DownloadableApp =
62
+ | InstalledDownloadableApp
63
+ | UninstalledDownloadableApp
64
+ | WithdrawnApp;
65
+
66
+ export type LaunchableApp = LocalApp | InstalledDownloadableApp | WithdrawnApp;
67
+
68
+ export type App = LocalApp | DownloadableApp;
69
+
70
+ export interface AppWithError extends AppSpec {
71
+ reason: unknown;
72
+ path: string;
73
+ }
74
+
75
+ const channel = {
76
+ getDownloadableApps: 'apps:get-downloadable-apps',
77
+ installDownloadableApp: 'apps:install-downloadable-app',
78
+ };
79
+
80
+ export type SourceWithError = { source: Source; reason?: string };
81
+
82
+ // getDownloadableApps
83
+ type GetDownloadableAppsResult = {
84
+ apps: DownloadableApp[];
85
+ appsWithErrors: AppWithError[];
86
+ sourcesWithErrors: SourceWithError[];
87
+ };
88
+
89
+ type GetDownloadableApps = () => GetDownloadableAppsResult;
90
+
91
+ const getDownloadableApps = invoke<GetDownloadableApps>(
92
+ channel.getDownloadableApps
93
+ );
94
+ const registerGetDownloadableApps = handle<GetDownloadableApps>(
95
+ channel.getDownloadableApps
96
+ );
97
+
98
+ // installDownloadableApp
99
+ type InstallDownloadableApp = (
100
+ app: DownloadableApp,
101
+ version?: string
102
+ ) => DownloadableApp;
103
+
104
+ const installDownloadableApp = invoke<InstallDownloadableApp>(
105
+ channel.installDownloadableApp
106
+ );
107
+ const registerInstallDownloadableApp = handle<InstallDownloadableApp>(
108
+ channel.installDownloadableApp
109
+ );
110
+
111
+ export const forRenderer = {
112
+ registerGetDownloadableApps,
113
+ registerInstallDownloadableApp,
114
+ };
115
+
116
+ export const inMain = {
117
+ getDownloadableApps,
118
+ installDownloadableApp,
119
+ };
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright (c) 2022 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { BrowserWindow, ipcRenderer, WebContents } from 'electron';
8
+
9
+ let launcherWindow: BrowserWindow | undefined;
10
+
11
+ export const registerLauncherWindowFromMain = (window: BrowserWindow) => {
12
+ launcherWindow = window;
13
+ };
14
+
15
+ export const send =
16
+ <T extends (...args: never[]) => void>(channel: string) =>
17
+ (...args: Parameters<T>) =>
18
+ launcherWindow?.webContents.send(channel, ...args);
19
+
20
+ export const on =
21
+ <T extends (...args: never[]) => void>(channel: string) =>
22
+ (handler: T) =>
23
+ ipcRenderer.on(channel, (_event, ...args: unknown[]) =>
24
+ handler(...(args as Parameters<T>))
25
+ );
26
+
27
+ // Broadcast with a subchannel
28
+
29
+ export const broadcast =
30
+ <T extends (...args: never[]) => void>(channel: string) =>
31
+ (
32
+ subChannel: string,
33
+ targets: Pick<WebContents, 'send'>[] = [],
34
+ ...args: Parameters<T>
35
+ ) =>
36
+ targets.forEach(target => {
37
+ target.send(`${channel}_${subChannel}`, ...args);
38
+ });
39
+
40
+ export const onBroadcasted =
41
+ <T extends (...args: never[]) => void>(
42
+ channel: string,
43
+ subChannel: string
44
+ ) =>
45
+ (handler: T) =>
46
+ ipcRenderer.on(
47
+ `${channel}_${subChannel}`,
48
+ (_event, ...args: unknown[]) => handler(...(args as Parameters<T>))
49
+ );
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright (c) 2022 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { ipcMain, ipcRenderer, WebContents } from 'electron';
8
+
9
+ // Send
10
+ export const send =
11
+ <T extends (...args: never[]) => void>(channel: string) =>
12
+ (...args: Parameters<T>) =>
13
+ ipcRenderer.send(channel, ...args);
14
+
15
+ export const on =
16
+ <T extends (...args: never[]) => void>(channel: string) =>
17
+ (handler: T) =>
18
+ ipcMain.on(channel, (_event, ...args: unknown[]) =>
19
+ handler(...(args as Parameters<T>))
20
+ );
21
+
22
+ // Invoke
23
+ export const invoke =
24
+ <T extends (...args: never[]) => unknown>(channel: string) =>
25
+ (...args: Parameters<T>) =>
26
+ ipcRenderer.invoke(channel, ...args) as Promise<ReturnType<T>>;
27
+
28
+ export const handle =
29
+ <T extends (...args: never[]) => unknown>(channel: string) =>
30
+ (
31
+ handler:
32
+ | ((...args: Parameters<T>) => ReturnType<T>)
33
+ | ((...args: Parameters<T>) => Promise<ReturnType<T>>)
34
+ ) =>
35
+ ipcMain.handle(channel, (_event, ...args: unknown[]) =>
36
+ handler(...(args as Parameters<T>))
37
+ );
38
+
39
+ export const handleWithSender =
40
+ <T extends (...args: never[]) => unknown>(channel: string) =>
41
+ (
42
+ handler:
43
+ | ((sender: WebContents, ...args: Parameters<T>) => ReturnType<T>)
44
+ | ((
45
+ sender: WebContents,
46
+ ...args: Parameters<T>
47
+ ) => Promise<ReturnType<T>>)
48
+ ) =>
49
+ ipcMain.handle(channel, ({ sender }, ...args: unknown[]) =>
50
+ handler(sender, ...(args as Parameters<T>))
51
+ );
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright (c) 2022 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import type { AppSpec } from './apps';
8
+ import { on, send } from './infrastructure/rendererToMain';
9
+
10
+ const channel = {
11
+ app: 'open:app',
12
+ launcher: 'open-app-launcher', // It would be nice to call this `open:launcher` but we have to stick to the current name, because that is used by supported apps.
13
+ };
14
+
15
+ export interface OpenAppOptions {
16
+ device?: { serialNumber: string; serialPortPath?: string };
17
+ }
18
+
19
+ type OpenApp = (app: AppSpec, openAppOptions?: OpenAppOptions) => void;
20
+ const openApp = send<OpenApp>(channel.app);
21
+ const registerOpenApp = on<OpenApp>(channel.app);
22
+
23
+ type OpenLauncher = () => void;
24
+ const openLauncher = send<OpenLauncher>(channel.launcher);
25
+ const registerOpenLauncher = on<OpenLauncher>(channel.launcher);
26
+
27
+ export const forRenderer = {
28
+ registerOpenApp,
29
+ registerOpenLauncher,
30
+ };
31
+
32
+ export const inMain = {
33
+ openApp,
34
+ openLauncher,
35
+ };
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { handle, invoke, on, send } from './infrastructure/rendererToMain';
8
+
9
+ const channel = {
10
+ start: 'prevent-sleep:start',
11
+ end: 'prevent-sleep:end',
12
+ };
13
+
14
+ type Start = () => number;
15
+ const start = invoke<Start>(channel.start);
16
+ const registerStart = handle<Start>(channel.start);
17
+
18
+ type End = (id: number) => void;
19
+ const end = send<End>(channel.end);
20
+ const registerEnd = on<End>(channel.end);
21
+
22
+ export const forRenderer = { registerStart, registerEnd };
23
+ export const inMain = { start, end };
@@ -0,0 +1,167 @@
1
+ /*
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import type {
8
+ AutoDetectTypes,
9
+ SetOptions,
10
+ UpdateOptions,
11
+ } from '@serialport/bindings-cpp';
12
+ import type { SerialPortOpenOptions } from 'serialport';
13
+
14
+ import { broadcast, onBroadcasted } from './infrastructure/mainToRenderer';
15
+ import {
16
+ handle,
17
+ handleWithSender,
18
+ invoke,
19
+ } from './infrastructure/rendererToMain';
20
+
21
+ const channel = {
22
+ // **************
23
+ // Commands (from the renderer processes of apps to the main process)
24
+ // **************
25
+ open: 'serialport:open',
26
+ close: 'serialport:close',
27
+ write: 'serialport:write',
28
+ update: 'serialport:update',
29
+ set: 'serialport:set',
30
+
31
+ // **************
32
+ // Queries (from the renderer processes of apps to the main process)
33
+ // **************
34
+ isOpen: 'serialport:is-open',
35
+ getOptions: 'serialport:get-options',
36
+
37
+ // **************
38
+ // Callbacks (from the the main process to the renderer processes of apps)
39
+ // **************
40
+ onClosed: 'serialport:on-close',
41
+ onUpdated: 'serialport:on-update',
42
+ onSet: 'serialport:on-set',
43
+ onChanged: 'serialport:on-changed',
44
+
45
+ // Would be nice to rename the next two channels, but we cannot change the
46
+ // string because it would break interoperability between apps and launchers
47
+ onDataReived: 'serialport:on-data',
48
+ onDataWritten: 'serialport:on-write',
49
+ };
50
+
51
+ export type OverwriteOptions = {
52
+ overwrite?: boolean;
53
+ settingsLocked?: boolean;
54
+ };
55
+
56
+ // **************
57
+ // Commands (from the renderer processes of apps to the main process)
58
+ // **************
59
+
60
+ type Open = (
61
+ options: SerialPortOpenOptions<AutoDetectTypes>,
62
+ overwriteOptions: OverwriteOptions
63
+ ) => void;
64
+ const open = invoke<Open>(channel.open);
65
+ const registerOpen = handleWithSender<Open>(channel.open);
66
+
67
+ type Close = (path: string) => void;
68
+ const close = invoke<Close>(channel.close);
69
+ const registerClose = handleWithSender<Close>(channel.close);
70
+
71
+ type Write = (path: string, data: string | number[] | Buffer) => void;
72
+ const write = invoke<Write>(channel.write);
73
+ const registerWrite = handle<Write>(channel.write);
74
+
75
+ type Update = (path: string, options: UpdateOptions) => void;
76
+ const update = invoke<Update>(channel.update);
77
+ const registerUpdate = handle<Update>(channel.update);
78
+
79
+ type Set = (path: string, set: SetOptions) => void;
80
+ const set = invoke<Set>(channel.set);
81
+ const registerSet = handle<Set>(channel.set);
82
+
83
+ // **************
84
+ // Queries (from the renderer processes of apps to the main process)
85
+ // **************
86
+
87
+ type IsOpen = (path: string) => boolean;
88
+ const isOpen = invoke<IsOpen>(channel.isOpen);
89
+ const registerIsOpen = handle<IsOpen>(channel.isOpen);
90
+
91
+ type GetOptions = (
92
+ path: string
93
+ ) => SerialPortOpenOptions<AutoDetectTypes> | undefined;
94
+ const getOptions = invoke<GetOptions>(channel.getOptions);
95
+ const registerGetOptions = handle<GetOptions>(channel.getOptions);
96
+
97
+ // **************
98
+ // Callbacks (from the the main process to the renderer processes of apps)
99
+ // **************
100
+
101
+ type OnDataReceived = (data: unknown) => void;
102
+ const broadcastDataReceived = broadcast<OnDataReceived>(channel.onDataReived);
103
+ const registerOnDataReceived = (path: string) =>
104
+ onBroadcasted<OnDataReceived>(channel.onDataReived, path);
105
+
106
+ type OnDataWritten = (data: string | number[] | Buffer) => void;
107
+ const broadcastDataWritten = broadcast<OnDataWritten>(channel.onDataWritten);
108
+ const registerOnDataWritten = (path: string) =>
109
+ onBroadcasted<OnDataWritten>(channel.onDataWritten, path);
110
+
111
+ type OnClosed = () => void;
112
+ const broadcastClosed = broadcast<OnClosed>(channel.onClosed);
113
+ const registerOnClosed = (path: string) =>
114
+ onBroadcasted<OnClosed>(channel.onClosed, path);
115
+
116
+ type OnUpdate = (newOptions: UpdateOptions) => void;
117
+ const broadcastUpdated = broadcast<OnUpdate>(channel.onUpdated);
118
+ const registerOnUpdated = (path: string) =>
119
+ onBroadcasted<OnUpdate>(channel.onUpdated, path);
120
+
121
+ type OnSet = (newOptions: SetOptions) => void;
122
+ const broadcastSet = broadcast<OnSet>(channel.onSet);
123
+ const registerOnSet = (path: string) =>
124
+ onBroadcasted<OnSet>(channel.onSet, path);
125
+
126
+ type OnChanged = (newOptions: SerialPortOpenOptions<AutoDetectTypes>) => void;
127
+ const broadcastChanged = broadcast<OnChanged>(channel.onChanged);
128
+ const registerOnChanged = (path: string) =>
129
+ onBroadcasted<OnChanged>(channel.onChanged, path);
130
+
131
+ export const inRenderer = {
132
+ broadcastChanged,
133
+ broadcastClosed,
134
+ broadcastDataReceived,
135
+ broadcastDataWritten,
136
+ broadcastSet,
137
+ broadcastUpdated,
138
+ };
139
+
140
+ export const forRenderer = {
141
+ registerClose,
142
+ registerGetOptions,
143
+ registerIsOpen,
144
+ registerOpen,
145
+ registerSet,
146
+ registerUpdate,
147
+ registerWrite,
148
+ };
149
+
150
+ export const inMain = {
151
+ open,
152
+ close,
153
+ write,
154
+ update,
155
+ set,
156
+ isOpen,
157
+ getOptions,
158
+ };
159
+
160
+ export const forMain = {
161
+ registerOnDataReceived,
162
+ registerOnDataWritten,
163
+ registerOnClosed,
164
+ registerOnUpdated,
165
+ registerOnSet,
166
+ registerOnChanged,
167
+ };