@nordicsemiconductor/pc-nrfconnect-shared 230.0.0 → 232.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 (361) hide show
  1. package/Changelog.md +1688 -1674
  2. package/README.md +8 -8
  3. package/config/colors.js +1 -1
  4. package/config/eslintrc.js +25 -5
  5. package/config/jest.config.js +1 -1
  6. package/ipc/MetaFiles.ts +2 -2
  7. package/ipc/README.md +14 -14
  8. package/ipc/appDetails.ts +1 -1
  9. package/ipc/apps.ts +5 -5
  10. package/ipc/infrastructure/mainToRenderer.ts +3 -3
  11. package/ipc/infrastructure/rendererToMain.ts +5 -5
  12. package/ipc/open.ts +2 -2
  13. package/ipc/safeStorage.ts +2 -2
  14. package/ipc/schema/packageJson.ts +1 -1
  15. package/ipc/serialPort.ts +2 -2
  16. package/main/index.ts +7 -0
  17. package/mocks/electronStoreMock.ts +1 -1
  18. package/nrfutil/collectingResultParser.ts +3 -4
  19. package/nrfutil/device/batch.ts +37 -35
  20. package/nrfutil/device/boardController.ts +2 -2
  21. package/nrfutil/device/common.ts +6 -6
  22. package/nrfutil/device/deviceInfo.ts +3 -3
  23. package/nrfutil/device/erase.ts +2 -2
  24. package/nrfutil/device/getBoardControllerConfig.ts +2 -2
  25. package/nrfutil/device/getBoardControllerVersion.ts +2 -2
  26. package/nrfutil/device/getCoreInfo.ts +2 -2
  27. package/nrfutil/device/getFwInfo.ts +2 -2
  28. package/nrfutil/device/getProtectionStatus.ts +2 -2
  29. package/nrfutil/device/list.ts +2 -2
  30. package/nrfutil/device/logLibVersions.ts +7 -7
  31. package/nrfutil/device/program.ts +21 -40
  32. package/nrfutil/device/recover.ts +2 -2
  33. package/nrfutil/device/reset.ts +2 -2
  34. package/nrfutil/device/setMcuState.ts +2 -2
  35. package/nrfutil/device/setProtectionStatus.ts +2 -2
  36. package/nrfutil/device/xRead.ts +2 -2
  37. package/nrfutil/fs.ts +49 -0
  38. package/nrfutil/modules.ts +9 -9
  39. package/nrfutil/sandbox.ts +101 -53
  40. package/nrfutil/version/jlinkVersion.test.ts +34 -34
  41. package/nrfutil/version/jlinkVersion.ts +7 -7
  42. package/nrfutil/version/moduleVersion.ts +7 -7
  43. package/nrfutil/version/version.ts +3 -3
  44. package/package.json +7 -7
  45. package/release_notes.md +14 -2
  46. package/scripts/check-app-properties.ts +12 -12
  47. package/scripts/check-for-typescript.ts +2 -2
  48. package/scripts/create-source.ts +2 -2
  49. package/scripts/esbuild-renderer.ts +8 -8
  50. package/scripts/esbuild.ts +2 -2
  51. package/scripts/get-release-numbers.ts +1 -1
  52. package/scripts/is-releasable.ts +3 -3
  53. package/scripts/nordic-publish.ts +34 -34
  54. package/scripts/nrfconnect-license.ts +6 -6
  55. package/scripts/prepare-shared-release.ts +10 -10
  56. package/src/About/Feedback.tsx +3 -3
  57. package/src/About/SupportCard.tsx +1 -1
  58. package/src/App/App.test.tsx +1 -1
  59. package/src/App/App.tsx +3 -3
  60. package/src/App/VisibilityBar.tsx +1 -1
  61. package/src/App/appLayout.ts +12 -12
  62. package/src/Button/Button.tsx +1 -1
  63. package/src/ConfirmBeforeClose/ConfirmCloseDialog.tsx +1 -1
  64. package/src/ConfirmBeforeClose/confirmBeforeCloseSlice.ts +5 -5
  65. package/src/Device/DeviceSelector/DeviceList/Device.tsx +2 -2
  66. package/src/Device/DeviceSelector/DeviceList/DeviceList.tsx +3 -3
  67. package/src/Device/DeviceSelector/DeviceList/VirtualDevices.tsx +2 -2
  68. package/src/Device/DeviceSelector/DeviceSelector.test.tsx +16 -16
  69. package/src/Device/DeviceSelector/DeviceSelector.tsx +13 -13
  70. package/src/Device/DeviceSelector/Favorite.tsx +1 -1
  71. package/src/Device/DeviceSelector/SelectDevice.tsx +1 -1
  72. package/src/Device/DeviceSetup/DeviceSetupView.tsx +1 -1
  73. package/src/Device/deviceAutoSelectSlice.ts +5 -5
  74. package/src/Device/deviceInfo/deviceInfo.ts +2 -2
  75. package/src/Device/deviceLister.test.ts +4 -4
  76. package/src/Device/deviceLister.ts +49 -51
  77. package/src/Device/deviceSetup.ts +27 -26
  78. package/src/Device/deviceSetupSlice.ts +2 -2
  79. package/src/Device/deviceSlice.ts +17 -18
  80. package/src/Device/initPacket.ts +13 -13
  81. package/src/Device/jprogOperations.ts +11 -11
  82. package/src/Device/sdfuOperations.ts +47 -47
  83. package/src/Dropdown/Dropdown.test.tsx +3 -3
  84. package/src/Dropdown/Dropdown.tsx +6 -6
  85. package/src/Dropdown/DropdownHelpers.test.ts +1 -1
  86. package/src/Dropdown/DropdownHelpers.ts +4 -4
  87. package/src/ErrorBoundary/ErrorBoundary.test.tsx +5 -5
  88. package/src/ErrorBoundary/ErrorBoundary.tsx +7 -5
  89. package/src/ErrorDialog/ErrorDialog.tsx +4 -4
  90. package/src/ErrorDialog/errorDialogSlice.ts +3 -3
  91. package/src/FactoryReset/FactoryResetButton.test.tsx +1 -1
  92. package/src/FlashMessage/FlashMessage.tsx +8 -8
  93. package/src/FlashMessage/FlashMessageSlice.ts +3 -3
  94. package/src/Group/Group.tsx +11 -11
  95. package/src/InlineInput/InlineInput.tsx +4 -4
  96. package/src/InlineInput/NumberInlineInput.tsx +13 -13
  97. package/src/InlineInput/NumberInputWithDropdown.tsx +2 -2
  98. package/src/Link/ExternalLink.tsx +1 -1
  99. package/src/Link/FileLink.tsx +1 -1
  100. package/src/Log/LogEntry.tsx +2 -2
  101. package/src/Log/logSlice.ts +1 -1
  102. package/src/Log/syncLogToStore.ts +1 -1
  103. package/src/MasonryLayout/MasonryLayout.tsx +8 -6
  104. package/src/NavBar/NavMenuItem.tsx +1 -1
  105. package/src/NumberInput/NumberInput.tsx +3 -3
  106. package/src/Parsers/shellParser.test.ts +98 -104
  107. package/src/Parsers/shellParser.ts +20 -20
  108. package/src/PseudoButton/PseudoButton.tsx +1 -1
  109. package/src/SerialPort/ConflictingSettingsDialog.tsx +11 -9
  110. package/src/SerialPort/SerialPort.test.ts +4 -4
  111. package/src/SerialPort/SerialPort.ts +22 -18
  112. package/src/Slider/Handle.tsx +3 -3
  113. package/src/Slider/Slider.test.tsx +2 -2
  114. package/src/Slider/Slider.tsx +2 -2
  115. package/src/Slider/Ticks.tsx +2 -2
  116. package/src/Slider/percentage.ts +2 -2
  117. package/src/Slider/range.ts +7 -7
  118. package/src/StartStopButton/StartStopButton.tsx +1 -1
  119. package/src/StateSelector/StateSelector.tsx +1 -1
  120. package/src/Stepper/Stepper.tsx +2 -2
  121. package/src/Toggle/Toggle.tsx +2 -2
  122. package/src/logging/appTransport.test.ts +2 -2
  123. package/src/logging/appTransport.ts +1 -1
  124. package/src/logging/describeError.test.ts +1 -1
  125. package/src/logging/describeError.ts +1 -1
  126. package/src/logging/index.ts +4 -4
  127. package/src/logging/sendInitialLogMessages.ts +2 -2
  128. package/src/store.ts +4 -5
  129. package/src/telemetry/TelemetrySender.ts +2 -2
  130. package/src/telemetry/TelemetrySenderInMain.ts +1 -2
  131. package/src/telemetry/flatObject.test.ts +1 -1
  132. package/src/telemetry/telemetry.ts +3 -3
  133. package/src/utils/classNames.test.ts +2 -2
  134. package/src/utils/packageJson.ts +4 -4
  135. package/src/utils/persistentStore.ts +19 -19
  136. package/src/utils/systemReport.ts +8 -8
  137. package/src/utils/truncateMiddle.test.ts +1 -1
  138. package/src/utils/truncateMiddle.ts +1 -1
  139. package/src/utils/udevInstalled.ts +1 -1
  140. package/src/utils/useHotKey.ts +2 -2
  141. package/src/utils/useStopwatch.test.tsx +1 -11
  142. package/src/utils/useStopwatch.ts +3 -3
  143. package/test/dispatchTo.ts +1 -1
  144. package/test/setupTests.ts +3 -3
  145. package/test/testrenderer.tsx +4 -8
  146. package/typings/generated/ipc/appDetails.d.ts.map +1 -1
  147. package/typings/generated/ipc/apps.d.ts.map +1 -1
  148. package/typings/generated/ipc/infrastructure/mainToRenderer.d.ts +1 -1
  149. package/typings/generated/ipc/infrastructure/mainToRenderer.d.ts.map +1 -1
  150. package/typings/generated/ipc/infrastructure/rendererToMain.d.ts.map +1 -1
  151. package/typings/generated/ipc/open.d.ts.map +1 -1
  152. package/typings/generated/ipc/safeStorage.d.ts +4 -5
  153. package/typings/generated/ipc/safeStorage.d.ts.map +1 -1
  154. package/typings/generated/ipc/schema/packageJson.d.ts +3 -3
  155. package/typings/generated/ipc/schema/parseJson.d.ts +1 -1
  156. package/typings/generated/ipc/schema/parseJson.d.ts.map +1 -1
  157. package/typings/generated/ipc/serialPort.d.ts +10 -11
  158. package/typings/generated/ipc/serialPort.d.ts.map +1 -1
  159. package/typings/generated/main/index.d.ts +15 -14
  160. package/typings/generated/main/index.d.ts.map +1 -1
  161. package/typings/generated/nrfutil/collectingResultParser.d.ts +1 -2
  162. package/typings/generated/nrfutil/collectingResultParser.d.ts.map +1 -1
  163. package/typings/generated/nrfutil/common.d.ts +0 -1
  164. package/typings/generated/nrfutil/common.d.ts.map +1 -1
  165. package/typings/generated/nrfutil/device/__mocks__/device.d.ts +1 -2
  166. package/typings/generated/nrfutil/device/__mocks__/device.d.ts.map +1 -1
  167. package/typings/generated/nrfutil/device/batch.d.ts.map +1 -1
  168. package/typings/generated/nrfutil/device/batchTypes.d.ts.map +1 -1
  169. package/typings/generated/nrfutil/device/boardController.d.ts.map +1 -1
  170. package/typings/generated/nrfutil/device/common.d.ts.map +1 -1
  171. package/typings/generated/nrfutil/device/device.d.ts +17 -17
  172. package/typings/generated/nrfutil/device/device.d.ts.map +1 -1
  173. package/typings/generated/nrfutil/device/deviceInfo.d.ts.map +1 -1
  174. package/typings/generated/nrfutil/device/erase.d.ts.map +1 -1
  175. package/typings/generated/nrfutil/device/getBoardControllerConfig.d.ts.map +1 -1
  176. package/typings/generated/nrfutil/device/getBoardControllerVersion.d.ts.map +1 -1
  177. package/typings/generated/nrfutil/device/getCoreInfo.d.ts.map +1 -1
  178. package/typings/generated/nrfutil/device/getFwInfo.d.ts.map +1 -1
  179. package/typings/generated/nrfutil/device/getProtectionStatus.d.ts.map +1 -1
  180. package/typings/generated/nrfutil/device/list.d.ts +2 -2
  181. package/typings/generated/nrfutil/device/list.d.ts.map +1 -1
  182. package/typings/generated/nrfutil/device/logLibVersions.d.ts.map +1 -1
  183. package/typings/generated/nrfutil/device/program.d.ts +0 -2
  184. package/typings/generated/nrfutil/device/program.d.ts.map +1 -1
  185. package/typings/generated/nrfutil/device/recover.d.ts.map +1 -1
  186. package/typings/generated/nrfutil/device/reset.d.ts.map +1 -1
  187. package/typings/generated/nrfutil/device/setMcuState.d.ts.map +1 -1
  188. package/typings/generated/nrfutil/device/setProtectionStatus.d.ts +1 -1
  189. package/typings/generated/nrfutil/device/setProtectionStatus.d.ts.map +1 -1
  190. package/typings/generated/nrfutil/device/xRead.d.ts.map +1 -1
  191. package/typings/generated/nrfutil/fs.d.ts +12 -0
  192. package/typings/generated/nrfutil/fs.d.ts.map +1 -0
  193. package/typings/generated/nrfutil/modules.d.ts.map +1 -1
  194. package/typings/generated/nrfutil/nrfutilLogger.d.ts.map +1 -1
  195. package/typings/generated/nrfutil/sandbox.d.ts +6 -5
  196. package/typings/generated/nrfutil/sandbox.d.ts.map +1 -1
  197. package/typings/generated/nrfutil/version/jlinkVersion.d.ts.map +1 -1
  198. package/typings/generated/nrfutil/version/moduleVersion.d.ts +1 -1
  199. package/typings/generated/nrfutil/version/moduleVersion.d.ts.map +1 -1
  200. package/typings/generated/nrfutil/version/version.d.ts.map +1 -1
  201. package/typings/generated/scripts/check-app-properties.d.ts.map +1 -1
  202. package/typings/generated/scripts/esbuild-renderer.d.ts.map +1 -1
  203. package/typings/generated/scripts/get-release-numbers.d.ts.map +1 -1
  204. package/typings/generated/scripts/latest-changelog-entry.d.ts.map +1 -1
  205. package/typings/generated/src/About/About.d.ts.map +1 -1
  206. package/typings/generated/src/About/ApplicationCard.d.ts +0 -1
  207. package/typings/generated/src/About/ApplicationCard.d.ts.map +1 -1
  208. package/typings/generated/src/About/DeviceCard.d.ts +0 -1
  209. package/typings/generated/src/About/DeviceCard.d.ts.map +1 -1
  210. package/typings/generated/src/About/DocumentationCard.d.ts.map +1 -1
  211. package/typings/generated/src/About/DocumentationSection.d.ts.map +1 -1
  212. package/typings/generated/src/About/Feedback.d.ts +1 -2
  213. package/typings/generated/src/About/Feedback.d.ts.map +1 -1
  214. package/typings/generated/src/About/Section.d.ts.map +1 -1
  215. package/typings/generated/src/About/SupportCard.d.ts +1 -2
  216. package/typings/generated/src/About/SupportCard.d.ts.map +1 -1
  217. package/typings/generated/src/About/sendFeedback.d.ts.map +1 -1
  218. package/typings/generated/src/About/shortcutSlice.d.ts +1 -1
  219. package/typings/generated/src/About/shortcutSlice.d.ts.map +1 -1
  220. package/typings/generated/src/App/App.d.ts +1 -1
  221. package/typings/generated/src/App/App.d.ts.map +1 -1
  222. package/typings/generated/src/App/ConnectedToStore.d.ts +1 -1
  223. package/typings/generated/src/App/ConnectedToStore.d.ts.map +1 -1
  224. package/typings/generated/src/App/VisibilityBar.d.ts +0 -1
  225. package/typings/generated/src/App/VisibilityBar.d.ts.map +1 -1
  226. package/typings/generated/src/App/appLayout.d.ts +1 -1
  227. package/typings/generated/src/App/appLayout.d.ts.map +1 -1
  228. package/typings/generated/src/Card/Card.d.ts.map +1 -1
  229. package/typings/generated/src/ConfirmBeforeClose/ConfirmCloseDialog.d.ts +0 -1
  230. package/typings/generated/src/ConfirmBeforeClose/ConfirmCloseDialog.d.ts.map +1 -1
  231. package/typings/generated/src/ConfirmBeforeClose/confirmBeforeCloseSlice.d.ts +2 -3
  232. package/typings/generated/src/ConfirmBeforeClose/confirmBeforeCloseSlice.d.ts.map +1 -1
  233. package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts +0 -1
  234. package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts.map +1 -1
  235. package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts +1 -1
  236. package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts.map +1 -1
  237. package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts.map +1 -1
  238. package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts +0 -1
  239. package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts.map +1 -1
  240. package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts +0 -1
  241. package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts.map +1 -1
  242. package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts +0 -1
  243. package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts.map +1 -1
  244. package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts +0 -1
  245. package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts.map +1 -1
  246. package/typings/generated/src/Device/DeviceSelector/DeviceList/VirtualDevices.d.ts +0 -1
  247. package/typings/generated/src/Device/DeviceSelector/DeviceList/VirtualDevices.d.ts.map +1 -1
  248. package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts +0 -1
  249. package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts.map +1 -1
  250. package/typings/generated/src/Device/DeviceSelector/DisconnectDevice.d.ts +0 -1
  251. package/typings/generated/src/Device/DeviceSelector/DisconnectDevice.d.ts.map +1 -1
  252. package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts +0 -1
  253. package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts.map +1 -1
  254. package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts +0 -1
  255. package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts.map +1 -1
  256. package/typings/generated/src/Device/DeviceSelector/SelectedVirtualDevice.d.ts +0 -1
  257. package/typings/generated/src/Device/DeviceSelector/SelectedVirtualDevice.d.ts.map +1 -1
  258. package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts +0 -1
  259. package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts.map +1 -1
  260. package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts +1 -1
  261. package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts.map +1 -1
  262. package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts +0 -1
  263. package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts.map +1 -1
  264. package/typings/generated/src/Device/deviceLister.d.ts.map +1 -1
  265. package/typings/generated/src/Device/deviceSetup.d.ts +0 -1
  266. package/typings/generated/src/Device/deviceSetup.d.ts.map +1 -1
  267. package/typings/generated/src/Device/deviceSetupSlice.d.ts +3 -3
  268. package/typings/generated/src/Device/deviceSetupSlice.d.ts.map +1 -1
  269. package/typings/generated/src/Device/deviceSlice.d.ts +1 -1
  270. package/typings/generated/src/Device/deviceSlice.d.ts.map +1 -1
  271. package/typings/generated/src/Device/initPacket.d.ts +0 -1
  272. package/typings/generated/src/Device/initPacket.d.ts.map +1 -1
  273. package/typings/generated/src/Device/jprogOperations.d.ts.map +1 -1
  274. package/typings/generated/src/Device/sdfuOperations.d.ts +1 -2
  275. package/typings/generated/src/Device/sdfuOperations.d.ts.map +1 -1
  276. package/typings/generated/src/Dialog/Dialog.d.ts +3 -3
  277. package/typings/generated/src/Dialog/Dialog.d.ts.map +1 -1
  278. package/typings/generated/src/Dropdown/Dropdown.d.ts.map +1 -1
  279. package/typings/generated/src/Dropdown/DropdownHelpers.d.ts.map +1 -1
  280. package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts.map +1 -1
  281. package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts +0 -1
  282. package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts.map +1 -1
  283. package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts +1 -1
  284. package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts.map +1 -1
  285. package/typings/generated/src/FlashMessage/FlashMessage.d.ts +0 -1
  286. package/typings/generated/src/FlashMessage/FlashMessage.d.ts.map +1 -1
  287. package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts +1 -1
  288. package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts.map +1 -1
  289. package/typings/generated/src/Group/Group.d.ts +8 -8
  290. package/typings/generated/src/Group/Group.d.ts.map +1 -1
  291. package/typings/generated/src/InlineInput/InlineInput.d.ts.map +1 -1
  292. package/typings/generated/src/InlineInput/NumberInlineInput.d.ts +0 -1
  293. package/typings/generated/src/InlineInput/NumberInlineInput.d.ts.map +1 -1
  294. package/typings/generated/src/InlineInput/NumberInputWithDropdown.d.ts.map +1 -1
  295. package/typings/generated/src/Link/ExternalLink.d.ts +1 -2
  296. package/typings/generated/src/Link/ExternalLink.d.ts.map +1 -1
  297. package/typings/generated/src/Link/FileLink.d.ts +1 -2
  298. package/typings/generated/src/Link/FileLink.d.ts.map +1 -1
  299. package/typings/generated/src/Log/LogEntry.d.ts +0 -1
  300. package/typings/generated/src/Log/LogEntry.d.ts.map +1 -1
  301. package/typings/generated/src/Log/LogViewer.d.ts +0 -1
  302. package/typings/generated/src/Log/LogViewer.d.ts.map +1 -1
  303. package/typings/generated/src/Log/logSlice.d.ts +1 -1
  304. package/typings/generated/src/Log/logSlice.d.ts.map +1 -1
  305. package/typings/generated/src/Log/syncLogToStore.d.ts.map +1 -1
  306. package/typings/generated/src/Main/Main.d.ts.map +1 -1
  307. package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts.map +1 -1
  308. package/typings/generated/src/NavBar/NavBar.d.ts.map +1 -1
  309. package/typings/generated/src/NavBar/NavMenu.d.ts +0 -1
  310. package/typings/generated/src/NavBar/NavMenu.d.ts.map +1 -1
  311. package/typings/generated/src/NoticeBox/NoticeBox.d.ts.map +1 -1
  312. package/typings/generated/src/NumberInput/NumberInput.d.ts +8 -8
  313. package/typings/generated/src/NumberInput/NumberInput.d.ts.map +1 -1
  314. package/typings/generated/src/Overlay/Overlay.d.ts +2 -2
  315. package/typings/generated/src/Overlay/Overlay.d.ts.map +1 -1
  316. package/typings/generated/src/Parsers/shellParser.d.ts +1 -1
  317. package/typings/generated/src/Parsers/shellParser.d.ts.map +1 -1
  318. package/typings/generated/src/Parsers/shellParser.test.d.ts.map +1 -1
  319. package/typings/generated/src/PseudoButton/PseudoButton.d.ts +4 -4
  320. package/typings/generated/src/PseudoButton/PseudoButton.d.ts.map +1 -1
  321. package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts +0 -1
  322. package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts.map +1 -1
  323. package/typings/generated/src/SerialPort/SerialPort.d.ts +0 -1
  324. package/typings/generated/src/SerialPort/SerialPort.d.ts.map +1 -1
  325. package/typings/generated/src/SidePanel/SidePanel.d.ts +1 -1
  326. package/typings/generated/src/SidePanel/SidePanel.d.ts.map +1 -1
  327. package/typings/generated/src/Slider/factor.d.ts.map +1 -1
  328. package/typings/generated/src/Slider/percentage.d.ts.map +1 -1
  329. package/typings/generated/src/Slider/range.d.ts.map +1 -1
  330. package/typings/generated/src/Spinner/Spinner.d.ts +2 -3
  331. package/typings/generated/src/Spinner/Spinner.d.ts.map +1 -1
  332. package/typings/generated/src/StateSelector/StateSelector.d.ts.map +1 -1
  333. package/typings/generated/src/Stepper/Stepper.d.ts +0 -1
  334. package/typings/generated/src/Stepper/Stepper.d.ts.map +1 -1
  335. package/typings/generated/src/logging/describeError.d.ts.map +1 -1
  336. package/typings/generated/src/logging/index.d.ts.map +1 -1
  337. package/typings/generated/src/logging/logBuffer.d.ts.map +1 -1
  338. package/typings/generated/src/store.d.ts +15 -39
  339. package/typings/generated/src/store.d.ts.map +1 -1
  340. package/typings/generated/src/telemetry/TelemetrySender.d.ts.map +1 -1
  341. package/typings/generated/src/telemetry/TelemetrySenderInMain.d.ts.map +1 -1
  342. package/typings/generated/src/telemetry/TelemetrySenderInRenderer.d.ts.map +1 -1
  343. package/typings/generated/src/telemetry/flatObject.d.ts.map +1 -1
  344. package/typings/generated/src/telemetry/simplifyDevice.d.ts.map +1 -1
  345. package/typings/generated/src/telemetry/telemetry.d.ts +1 -1
  346. package/typings/generated/src/telemetry/telemetry.d.ts.map +1 -1
  347. package/typings/generated/src/utils/appDirs.d.ts.map +1 -1
  348. package/typings/generated/src/utils/classNames.d.ts.map +1 -1
  349. package/typings/generated/src/utils/packageJson.d.ts.map +1 -1
  350. package/typings/generated/src/utils/persistentStore.d.ts +1 -1
  351. package/typings/generated/src/utils/persistentStore.d.ts.map +1 -1
  352. package/typings/generated/src/utils/systemReport.d.ts.map +1 -1
  353. package/typings/generated/src/utils/truncateMiddle.d.ts.map +1 -1
  354. package/typings/generated/src/utils/useFocusedOnVisible.d.ts +0 -1
  355. package/typings/generated/src/utils/useFocusedOnVisible.d.ts.map +1 -1
  356. package/typings/generated/src/utils/useHotKey.d.ts.map +1 -1
  357. package/typings/generated/src/utils/useStopwatch.d.ts.map +1 -1
  358. package/typings/generated/test/dispatchTo.d.ts +1 -1
  359. package/typings/generated/test/dispatchTo.d.ts.map +1 -1
  360. package/typings/generated/test/testrenderer.d.ts +2 -1
  361. package/typings/generated/test/testrenderer.d.ts.map +1 -1
@@ -8,6 +8,7 @@ import { exec, spawn } from 'child_process';
8
8
  import fs from 'fs';
9
9
  import os from 'os';
10
10
  import path from 'path';
11
+ import process from 'process';
11
12
  import treeKill from 'tree-kill';
12
13
 
13
14
  import describeError from '../src/logging/describeError';
@@ -19,6 +20,7 @@ import {
19
20
  convertNrfutilProgress,
20
21
  parseJsonBuffers,
21
22
  } from './common';
23
+ import { createDisposableTempDir } from './fs';
22
24
  import { getNrfutilLogger } from './nrfutilLogger';
23
25
  import type {
24
26
  BackgroundTask,
@@ -37,10 +39,27 @@ import {
37
39
 
38
40
  const CORE_VERSION_FOR_LEGACY_APPS = '8.1.1';
39
41
 
42
+ export const getTriplet = () => {
43
+ switch (process.platform) {
44
+ case 'darwin':
45
+ return process.arch === 'arm64'
46
+ ? 'aarch64-apple-darwin'
47
+ : 'x86_64-apple-darwin';
48
+ case 'linux':
49
+ return process.arch === 'arm64'
50
+ ? 'aarch64-unknown-linux-gnu'
51
+ : 'x86_64-unknown-linux-gnu';
52
+ case 'win32':
53
+ return 'x86_64-pc-windows-msvc';
54
+ default:
55
+ throw new Error(`Unsupported platform: ${process.platform}`);
56
+ }
57
+ };
58
+
40
59
  export class NrfutilSandbox {
41
60
  private readonly onLoggingHandlers: ((
42
61
  logging: LogMessage,
43
- pid?: number
62
+ pid?: number,
44
63
  ) => void)[] = [];
45
64
  private logLevel: LogLevel = isDevelopment ? 'error' : 'off';
46
65
 
@@ -53,13 +72,13 @@ export class NrfutilSandbox {
53
72
  module: string,
54
73
  version?: string,
55
74
  coreVersion?: string,
56
- onProgress?: OnProgress
75
+ onProgress?: OnProgress,
57
76
  ) {
58
77
  const sandbox = new NrfutilSandbox(
59
78
  baseDir,
60
79
  module,
61
80
  versionToInstall(module, version),
62
- coreVersionsToInstall(coreVersion)
81
+ coreVersionsToInstall(coreVersion),
63
82
  );
64
83
 
65
84
  onProgress?.(convertNrfutilProgress({ progressPercentage: 0 }));
@@ -77,7 +96,7 @@ export class NrfutilSandbox {
77
96
  private readonly baseDir: string,
78
97
  private readonly module: string,
79
98
  private readonly version: string,
80
- coreVersion?: string // Must only be undefined when the launcher creates a sandbox for a legacy app, which does not specify the required core version
99
+ coreVersion?: string, // Must only be undefined when the launcher creates a sandbox for a legacy app, which does not specify the required core version
81
100
  ) {
82
101
  this.sandboxPath = path.join(
83
102
  this.baseDir,
@@ -87,7 +106,7 @@ export class NrfutilSandbox {
87
106
  : []),
88
107
  ...(coreVersion != null ? [coreVersion] : []),
89
108
  this.module,
90
- this.version
109
+ this.version,
91
110
  );
92
111
 
93
112
  this.coreVersion = coreVersion ?? CORE_VERSION_FOR_LEGACY_APPS;
@@ -153,8 +172,8 @@ export class NrfutilSandbox {
153
172
  'bin',
154
173
  `nrfutil-${this.module}${
155
174
  os.platform() === 'win32' ? '.exe' : ''
156
- }`
157
- )
175
+ }`,
176
+ ),
158
177
  );
159
178
  }
160
179
 
@@ -186,14 +205,43 @@ export class NrfutilSandbox {
186
205
  }
187
206
  };
188
207
 
189
- private installNrfUtilCore = (onProgress?: OnProgress) =>
190
- this.install(
208
+ private installNrfUtilCore = async (onProgress?: OnProgress) => {
209
+ using tmpDir = createDisposableTempDir();
210
+
211
+ const nrfutilTarGzFile = await this.downloadNrfutilTarGz(tmpDir.path);
212
+
213
+ await this.install(
191
214
  'core',
192
215
  this.coreVersion,
193
- 'self-upgrade',
194
- ['--to-version', this.coreVersion],
195
- onProgress
216
+ '--version',
217
+ [],
218
+ onProgress,
219
+ undefined,
220
+ undefined,
221
+ undefined,
222
+ env => ({
223
+ ...env,
224
+ NRFUTIL_BOOTSTRAP_TARBALL_PATH: nrfutilTarGzFile,
225
+ }),
196
226
  );
227
+ };
228
+
229
+ private downloadNrfutilTarGz = async (folder: string) => {
230
+ const baseUrl =
231
+ 'https://files.nordicsemi.com/ui/api/v1/download?isNativeBrowsing=true&repoKey=swtools&path=external/nrfutil/packages/nrfutil/';
232
+ const fileName = `nrfutil-${getTriplet()}-${this.coreVersion}.tar.gz`;
233
+ const url = baseUrl + fileName;
234
+
235
+ const response = await fetch(url);
236
+ if (!response.ok) {
237
+ throw new Error(`Failed to fetch ${url}: ${response.statusText}`);
238
+ }
239
+
240
+ const filePath = path.join(folder, fileName);
241
+ fs.writeFileSync(filePath, new DataView(await response.arrayBuffer()));
242
+
243
+ return filePath;
244
+ };
197
245
 
198
246
  public installNrfUtilCommand = (onProgress?: OnProgress) =>
199
247
  this.install(
@@ -201,7 +249,7 @@ export class NrfutilSandbox {
201
249
  this.version,
202
250
  'install',
203
251
  [`${this.module}=${this.version}`, '--force'],
204
- onProgress
252
+ onProgress,
205
253
  );
206
254
 
207
255
  public install = async (
@@ -212,11 +260,11 @@ export class NrfutilSandbox {
212
260
  try {
213
261
  await this.spawnNrfutil(...args);
214
262
  getNrfutilLogger()?.info(
215
- `Successfully installed nrfutil ${module} version: ${version}`
263
+ `Successfully installed nrfutil ${module} version: ${version}`,
216
264
  );
217
265
  } catch (error) {
218
266
  const errorMessage = `Error while installing nrfutil ${module} version ${version}: ${describeError(
219
- error
267
+ error,
220
268
  )}`;
221
269
 
222
270
  getNrfutilLogger()?.error(errorMessage);
@@ -233,7 +281,7 @@ export class NrfutilSandbox {
233
281
  onTaskBegin?: OnTaskBegin,
234
282
  onTaskEnd?: OnTaskEnd<Result>,
235
283
  controller?: AbortController,
236
- editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv
284
+ editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv,
237
285
  ) =>
238
286
  this.spawnNrfutil<Result>(
239
287
  this.module,
@@ -242,7 +290,7 @@ export class NrfutilSandbox {
242
290
  onTaskBegin,
243
291
  onTaskEnd,
244
292
  controller,
245
- editEnv
293
+ editEnv,
246
294
  );
247
295
 
248
296
  private spawnNrfutilCommand = (
@@ -251,7 +299,7 @@ export class NrfutilSandbox {
251
299
  parser: (data: Buffer, pid?: number) => Buffer | undefined,
252
300
  onStdError: (data: Buffer, pid?: number) => void,
253
301
  controller?: AbortController,
254
- editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv
302
+ editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv,
255
303
  ) =>
256
304
  this.spawnCommand(
257
305
  this.getNrfutilExePath(),
@@ -266,7 +314,7 @@ export class NrfutilSandbox {
266
314
  parser,
267
315
  onStdError,
268
316
  controller,
269
- editEnv
317
+ editEnv,
270
318
  );
271
319
 
272
320
  private spawnNrfutil = async <Result>(
@@ -276,7 +324,7 @@ export class NrfutilSandbox {
276
324
  onTaskBegin?: OnTaskBegin,
277
325
  onTaskEnd?: OnTaskEnd<Result>,
278
326
  controller?: AbortController,
279
- editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv
327
+ editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv,
280
328
  ) => {
281
329
  let stdErr: string | undefined;
282
330
  let pid: number | undefined;
@@ -285,7 +333,7 @@ export class NrfutilSandbox {
285
333
  this.log,
286
334
  onProgress,
287
335
  onTaskBegin,
288
- onTaskEnd
336
+ onTaskEnd,
289
337
  );
290
338
 
291
339
  try {
@@ -298,7 +346,7 @@ export class NrfutilSandbox {
298
346
  stdErr = (stdErr ?? '') + data.toString();
299
347
  },
300
348
  controller,
301
- editEnv
349
+ editEnv,
302
350
  );
303
351
 
304
352
  if (stdErr || parser.hasFailures()) throw new Error('Task failed.');
@@ -310,11 +358,11 @@ export class NrfutilSandbox {
310
358
  error.message = collectErrorMessages(
311
359
  error.message,
312
360
  stdErr,
313
- parser.errorMessage()
361
+ parser.errorMessage(),
314
362
  );
315
363
 
316
364
  telemetry.sendErrorReport(
317
- `${this.pidIfTraceLogging(pid)}${describeError(error)}`
365
+ `${this.pidIfTraceLogging(pid)}${describeError(error)}`,
318
366
  );
319
367
  throw error;
320
368
  }
@@ -326,16 +374,16 @@ export class NrfutilSandbox {
326
374
  parser: (data: Buffer, pid?: number) => Buffer | undefined,
327
375
  onStdError: (data: Buffer, pid?: number) => void,
328
376
  controller?: AbortController,
329
- editEnv: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv = env => env
377
+ editEnv: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv = env => env,
330
378
  ) =>
331
379
  new Promise<void>((resolve, reject) => {
332
380
  if (controller?.signal.aborted) {
333
381
  reject(
334
382
  new Error(
335
383
  `Aborted before start executing ${path.basename(
336
- command
337
- )} ${JSON.stringify(args)}`
338
- )
384
+ command,
385
+ )} ${JSON.stringify(args)}`,
386
+ ),
339
387
  );
340
388
  return;
341
389
  }
@@ -359,7 +407,7 @@ export class NrfutilSandbox {
359
407
 
360
408
  controller?.signal.addEventListener('abort', listener);
361
409
 
362
- let buffer = Buffer.from('');
410
+ let buffer: Buffer<ArrayBufferLike> = Buffer.from('');
363
411
 
364
412
  nrfutil.stdout.on('data', (data: Buffer) => {
365
413
  if (controller?.signal.aborted) return;
@@ -387,9 +435,9 @@ export class NrfutilSandbox {
387
435
  reject(
388
436
  new Error(
389
437
  `Aborted ongoing ${path.basename(
390
- command
391
- )} ${JSON.stringify(args)}`
392
- )
438
+ command,
439
+ )} ${JSON.stringify(args)}`,
440
+ ),
393
441
  );
394
442
  return;
395
443
  }
@@ -409,7 +457,7 @@ export class NrfutilSandbox {
409
457
  onTaskBegin?: OnTaskBegin,
410
458
  onTaskEnd?: OnTaskEnd<Result>,
411
459
  controller?: AbortController,
412
- editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv
460
+ editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv,
413
461
  ) =>
414
462
  this.execNrfutilCommand<Result>(
415
463
  this.module,
@@ -418,7 +466,7 @@ export class NrfutilSandbox {
418
466
  onTaskBegin,
419
467
  onTaskEnd,
420
468
  controller,
421
- editEnv
469
+ editEnv,
422
470
  );
423
471
 
424
472
  private execNrfutilCommand = async <Result>(
@@ -428,7 +476,7 @@ export class NrfutilSandbox {
428
476
  onTaskBegin?: OnTaskBegin,
429
477
  onTaskEnd?: OnTaskEnd<Result>,
430
478
  controller?: AbortController,
431
- editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv
479
+ editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv,
432
480
  ) => {
433
481
  let stdErr: string | undefined;
434
482
  let pid: number | undefined;
@@ -437,7 +485,7 @@ export class NrfutilSandbox {
437
485
  this.log,
438
486
  onProgress,
439
487
  onTaskBegin,
440
- onTaskEnd
488
+ onTaskEnd,
441
489
  );
442
490
 
443
491
  try {
@@ -450,7 +498,7 @@ export class NrfutilSandbox {
450
498
  stdErr = (stdErr ?? '') + data.toString();
451
499
  },
452
500
  controller,
453
- editEnv
501
+ editEnv,
454
502
  );
455
503
 
456
504
  if (stdErr || parser.hasFailures()) throw new Error('Task failed.');
@@ -462,11 +510,11 @@ export class NrfutilSandbox {
462
510
  error.message = collectErrorMessages(
463
511
  error.message,
464
512
  stdErr,
465
- parser.errorMessage()
513
+ parser.errorMessage(),
466
514
  );
467
515
 
468
516
  telemetry.sendErrorReport(
469
- `${this.pidIfTraceLogging(pid)}${describeError(error)}`
517
+ `${this.pidIfTraceLogging(pid)}${describeError(error)}`,
470
518
  );
471
519
  throw error;
472
520
  }
@@ -478,7 +526,7 @@ export class NrfutilSandbox {
478
526
  onData: (data: Buffer, pid?: number) => void,
479
527
  onStdError: (data: Buffer, pid?: number) => void,
480
528
  controller?: AbortController,
481
- editEnv: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv = env => env
529
+ editEnv: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv = env => env,
482
530
  ) =>
483
531
  new Promise<void>((resolve, reject) => {
484
532
  let aborting = false;
@@ -495,7 +543,7 @@ export class NrfutilSandbox {
495
543
  getNrfutilLogger()?.info(
496
544
  `Aborting the ongoing command nrfutil ${
497
545
  this.module
498
- } ${command} ${JSON.stringify(args)}`
546
+ } ${command} ${JSON.stringify(args)}`,
499
547
  );
500
548
  aborting = true;
501
549
  if (nrfutil.pid) {
@@ -524,8 +572,8 @@ export class NrfutilSandbox {
524
572
  new Error(
525
573
  `Aborted ongoing ${path.basename(command)} ${
526
574
  args[0] ?? ''
527
- }`
528
- )
575
+ }`,
576
+ ),
529
577
  );
530
578
  return;
531
579
  }
@@ -542,7 +590,7 @@ export class NrfutilSandbox {
542
590
  command: string,
543
591
  args: string[],
544
592
  processors: BackgroundTask<Result>,
545
- editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv
593
+ editEnv?: (env: NodeJS.ProcessEnv) => NodeJS.ProcessEnv,
546
594
  ) => {
547
595
  const controller = new AbortController();
548
596
  let running = true;
@@ -573,7 +621,7 @@ export class NrfutilSandbox {
573
621
  processors.onError(new Error(data.toString()), pid);
574
622
  },
575
623
  controller,
576
- editEnv
624
+ editEnv,
577
625
  );
578
626
 
579
627
  operation
@@ -606,13 +654,13 @@ export class NrfutilSandbox {
606
654
  command: string,
607
655
  onProgress?: OnProgress,
608
656
  controller?: AbortController,
609
- args: string[] = []
657
+ args: string[] = [],
610
658
  ) => {
611
659
  const data = await this.singleTaskEndOperationOptionalData<T>(
612
660
  command,
613
661
  onProgress,
614
662
  controller,
615
- args
663
+ args,
616
664
  );
617
665
 
618
666
  if (data != null) {
@@ -625,7 +673,7 @@ export class NrfutilSandbox {
625
673
  command: string,
626
674
  onProgress?: OnProgress,
627
675
  controller?: AbortController,
628
- args: string[] = []
676
+ args: string[] = [],
629
677
  ) => {
630
678
  const results = await this.spawnNrfutilSubcommand<T>(
631
679
  command,
@@ -633,7 +681,7 @@ export class NrfutilSandbox {
633
681
  onProgress,
634
682
  undefined,
635
683
  undefined,
636
- controller
684
+ controller,
637
685
  );
638
686
 
639
687
  if (results.taskEnd.length === 1) {
@@ -645,7 +693,7 @@ export class NrfutilSandbox {
645
693
  public singleInfoOperationOptionalData = async <T = void>(
646
694
  command: string,
647
695
  controller?: AbortController,
648
- args: string[] = []
696
+ args: string[] = [],
649
697
  ) => {
650
698
  const results = await this.spawnNrfutilSubcommand<T>(
651
699
  command,
@@ -653,7 +701,7 @@ export class NrfutilSandbox {
653
701
  undefined,
654
702
  undefined,
655
703
  undefined,
656
- controller
704
+ controller,
657
705
  );
658
706
 
659
707
  if (results.info.length === 1) {
@@ -663,14 +711,14 @@ export class NrfutilSandbox {
663
711
  };
664
712
 
665
713
  public onLogging = (
666
- handler: (logging: LogMessage, pid?: number) => void
714
+ handler: (logging: LogMessage, pid?: number) => void,
667
715
  ) => {
668
716
  this.onLoggingHandlers.push(handler);
669
717
 
670
718
  return () =>
671
719
  this.onLoggingHandlers.splice(
672
720
  this.onLoggingHandlers.indexOf(handler),
673
- 1
721
+ 1,
674
722
  );
675
723
  };
676
724
 
@@ -21,13 +21,13 @@ test('strippedVersionName', () => {
21
21
  strippedVersionName({
22
22
  version: '7.94i',
23
23
  versionFormat: 'string',
24
- })
24
+ }),
25
25
  ).toBe('7.94i');
26
26
  expect(
27
27
  strippedVersionName({
28
28
  version: '7.96 ',
29
29
  versionFormat: 'string',
30
- })
30
+ }),
31
31
  ).toBe('7.96');
32
32
  });
33
33
 
@@ -39,8 +39,8 @@ describe('expectedFormat', () => {
39
39
  version: 18,
40
40
  versionFormat: 'incremental',
41
41
  },
42
- false
43
- )
42
+ false,
43
+ ),
44
44
  ).toBe(false);
45
45
 
46
46
  expect(
@@ -49,8 +49,8 @@ describe('expectedFormat', () => {
49
49
  version: { major: 1, minor: 2, patch: 3 },
50
50
  versionFormat: 'semantic',
51
51
  },
52
- false
53
- )
52
+ false,
53
+ ),
54
54
  ).toBe(false);
55
55
  });
56
56
 
@@ -81,8 +81,8 @@ describe('expectedFormat', () => {
81
81
  version: 'JLink_V7.94i',
82
82
  versionFormat: 'string',
83
83
  },
84
- false
85
- )
84
+ false,
85
+ ),
86
86
  ).toBe(true);
87
87
  expect(
88
88
  hasExpectedVersionFormat(
@@ -90,8 +90,8 @@ describe('expectedFormat', () => {
90
90
  version: 'JLink_V7.96 ',
91
91
  versionFormat: 'string',
92
92
  },
93
- false
94
- )
93
+ false,
94
+ ),
95
95
  ).toBe(true);
96
96
  expect(
97
97
  hasExpectedVersionFormat(
@@ -99,24 +99,24 @@ describe('expectedFormat', () => {
99
99
  version: 'JLink_V8.10',
100
100
  versionFormat: 'string',
101
101
  },
102
- false
103
- )
102
+ false,
103
+ ),
104
104
  ).toBe(true);
105
105
  });
106
106
  });
107
107
 
108
108
  test('convertToSemver', () => {
109
109
  expect(
110
- convertToSemver({ version: 'JLink_V7.94', versionFormat: 'string' })
110
+ convertToSemver({ version: 'JLink_V7.94', versionFormat: 'string' }),
111
111
  ).toBe('7.94.0');
112
112
  expect(
113
- convertToSemver({ version: 'JLink_V7.96 ', versionFormat: 'string' })
113
+ convertToSemver({ version: 'JLink_V7.96 ', versionFormat: 'string' }),
114
114
  ).toBe('7.96.0');
115
115
  expect(
116
- convertToSemver({ version: 'JLink_V7.98a', versionFormat: 'string' })
116
+ convertToSemver({ version: 'JLink_V7.98a', versionFormat: 'string' }),
117
117
  ).toBe('7.98.1');
118
118
  expect(
119
- convertToSemver({ version: 'JLink_V8.10b', versionFormat: 'string' })
119
+ convertToSemver({ version: 'JLink_V8.10b', versionFormat: 'string' }),
120
120
  ).toBe('8.10.2');
121
121
  });
122
122
 
@@ -140,7 +140,7 @@ describe('existingIsOlderThanExpected', () => {
140
140
 
141
141
  it('is false if no expected is specified', () => {
142
142
  expect(
143
- existingIsOlderThanExpected({ ...version794i, name: 'JlinkARM' })
143
+ existingIsOlderThanExpected({ ...version794i, name: 'JlinkARM' }),
144
144
  ).toBe(false);
145
145
  });
146
146
  it('is false if the actual is equal the expected', () => {
@@ -149,7 +149,7 @@ describe('existingIsOlderThanExpected', () => {
149
149
  ...version794i,
150
150
  name: 'JlinkARM',
151
151
  expectedVersion: version794i,
152
- })
152
+ }),
153
153
  ).toBe(false);
154
154
  });
155
155
  it('is false if the actual is newer than the expected', () => {
@@ -158,21 +158,21 @@ describe('existingIsOlderThanExpected', () => {
158
158
  ...version794k,
159
159
  name: 'JlinkARM',
160
160
  expectedVersion: version794i,
161
- })
161
+ }),
162
162
  ).toBe(false);
163
163
  expect(
164
164
  existingIsOlderThanExpected({
165
165
  ...version796,
166
166
  name: 'JlinkARM',
167
167
  expectedVersion: version794i,
168
- })
168
+ }),
169
169
  ).toBe(false);
170
170
  expect(
171
171
  existingIsOlderThanExpected({
172
172
  ...version810b,
173
173
  name: 'JlinkARM',
174
174
  expectedVersion: version794i,
175
- })
175
+ }),
176
176
  ).toBe(false);
177
177
  });
178
178
 
@@ -182,21 +182,21 @@ describe('existingIsOlderThanExpected', () => {
182
182
  ...version794i,
183
183
  name: 'JlinkARM',
184
184
  expectedVersion: version794k,
185
- })
185
+ }),
186
186
  ).toBe(true);
187
187
  expect(
188
188
  existingIsOlderThanExpected({
189
189
  ...version794i,
190
190
  name: 'JlinkARM',
191
191
  expectedVersion: version796,
192
- })
192
+ }),
193
193
  ).toBe(true);
194
194
  expect(
195
195
  existingIsOlderThanExpected({
196
196
  ...version794i,
197
197
  name: 'JlinkARM',
198
198
  expectedVersion: version810b,
199
- })
199
+ }),
200
200
  ).toBe(true);
201
201
  });
202
202
  });
@@ -244,8 +244,8 @@ describe('getJlinkCompatibility', () => {
244
244
  versionFormat: 'string',
245
245
  version: 'JLink_V8.10f',
246
246
  },
247
- })
248
- )
247
+ }),
248
+ ),
249
249
  ).toEqual({
250
250
  kind: 'No SEGGER J-Link installed',
251
251
  requiredJlink: '8.10f',
@@ -264,8 +264,8 @@ describe('getJlinkCompatibility', () => {
264
264
  version: 'JLink_V7.94i',
265
265
  versionFormat: 'string',
266
266
  },
267
- })
268
- )
267
+ }),
268
+ ),
269
269
  ).toEqual({
270
270
  kind: 'Outdated SEGGER J-Link',
271
271
  requiredJlink: '7.94i',
@@ -284,8 +284,8 @@ describe('getJlinkCompatibility', () => {
284
284
  version: 'JLink_V7.94i',
285
285
  versionFormat: 'string',
286
286
  },
287
- })
288
- )
287
+ }),
288
+ ),
289
289
  ).toEqual({
290
290
  kind: 'Newer SEGGER J-Link is used',
291
291
  requiredJlink: '7.94i',
@@ -304,8 +304,8 @@ describe('getJlinkCompatibility', () => {
304
304
  version: 'JLink_V7.94i',
305
305
  versionFormat: 'string',
306
306
  },
307
- })
308
- )
307
+ }),
308
+ ),
309
309
  ).toEqual({ kind: 'Tested SEGGER J-Link is used' });
310
310
  });
311
311
 
@@ -316,8 +316,8 @@ describe('getJlinkCompatibility', () => {
316
316
  name: 'JlinkARM',
317
317
  version: 'JLink_V7.94i',
318
318
  versionFormat: 'string',
319
- })
320
- )
319
+ }),
320
+ ),
321
321
  ).toEqual({ kind: 'Tested SEGGER J-Link is used' });
322
322
  });
323
323
  });