@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
@@ -23,7 +23,7 @@ export const strippedVersionName = (version: DiscriminatedVersion) =>
23
23
 
24
24
  export const hasExpectedVersionFormat = (
25
25
  dependency: Dependency | DiscriminatedVersion,
26
- logFailure = true
26
+ logFailure = true,
27
27
  ): dependency is DiscriminatedVersion => {
28
28
  if (!hasVersion(dependency)) return false;
29
29
 
@@ -36,7 +36,7 @@ export const hasExpectedVersionFormat = (
36
36
  console.error(
37
37
  `The SEGGER J-Link version was not reported in the expected format. ` +
38
38
  `Format: ${dependency.versionFormat}, ` +
39
- `version: ${JSON.stringify(dependency)}, `
39
+ `version: ${JSON.stringify(dependency)}, `,
40
40
  );
41
41
  }
42
42
 
@@ -55,7 +55,7 @@ export const convertToSemver = (version: DiscriminatedVersion) => {
55
55
  };
56
56
 
57
57
  export const existingIsOlderThanExpected = (
58
- jlinkVersionDependency: Dependency
58
+ jlinkVersionDependency: Dependency,
59
59
  ) => {
60
60
  if (
61
61
  jlinkVersionDependency.expectedVersion == null ||
@@ -66,7 +66,7 @@ export const existingIsOlderThanExpected = (
66
66
 
67
67
  return semver.lt(
68
68
  convertToSemver(jlinkVersionDependency),
69
- convertToSemver(jlinkVersionDependency.expectedVersion)
69
+ convertToSemver(jlinkVersionDependency.expectedVersion),
70
70
  );
71
71
  };
72
72
 
@@ -90,7 +90,7 @@ const nrfutilDeviceToJLink = (nrfutilDeviceVersion: string) => {
90
90
  export const getJlinkCompatibility = (moduleVersion: ModuleVersion) => {
91
91
  const jlinkVersionDependency = findDependency(
92
92
  'JlinkARM',
93
- moduleVersion.dependencies
93
+ moduleVersion.dependencies,
94
94
  );
95
95
 
96
96
  if (!hasVersion(jlinkVersionDependency)) {
@@ -110,7 +110,7 @@ export const getJlinkCompatibility = (moduleVersion: ModuleVersion) => {
110
110
  existingIsOlderThanExpected(jlinkVersionDependency)
111
111
  ) {
112
112
  const requiredJlink = strippedVersionName(
113
- jlinkVersionDependency.expectedVersion
113
+ jlinkVersionDependency.expectedVersion,
114
114
  );
115
115
  const actualJlink = strippedVersionName(jlinkVersionDependency);
116
116
 
@@ -132,7 +132,7 @@ export const getJlinkCompatibility = (moduleVersion: ModuleVersion) => {
132
132
  }
133
133
 
134
134
  const requiredJlink = strippedVersionName(
135
- jlinkVersionDependency.expectedVersion
135
+ jlinkVersionDependency.expectedVersion,
136
136
  );
137
137
  const actualJlink = strippedVersionName(jlinkVersionDependency);
138
138
 
@@ -45,7 +45,7 @@ export type ModuleVersion = {
45
45
  };
46
46
 
47
47
  export const hasVersion = (
48
- dependency?: Dependency | DiscriminatedVersion
48
+ dependency?: Dependency | DiscriminatedVersion,
49
49
  ): dependency is DependencyWithVersion | DiscriminatedVersion =>
50
50
  dependency != null && 'version' in dependency && dependency.version != null;
51
51
 
@@ -64,7 +64,7 @@ const findTopLevel = (module: KnownModule, dependencies: Dependency[]) =>
64
64
 
65
65
  const findInDependencies = (
66
66
  module: KnownModule,
67
- dependencies: TopLevelDependency[]
67
+ dependencies: TopLevelDependency[],
68
68
  ) => {
69
69
  if (dependencies.length > 0) {
70
70
  return findDependency(
@@ -72,9 +72,9 @@ const findInDependencies = (
72
72
  dependencies.flatMap(dependency => [
73
73
  ...(dependency.dependencies ?? []),
74
74
  ...(dependency.plugins?.flatMap(
75
- plugin => plugin.dependencies
75
+ plugin => plugin.dependencies,
76
76
  ) ?? []),
77
- ])
77
+ ]),
78
78
  );
79
79
  }
80
80
  };
@@ -96,7 +96,7 @@ export const getExpectedVersion = (dependency: Dependency) => {
96
96
 
97
97
  export const findDependency = (
98
98
  module: KnownModule,
99
- versions: TopLevelDependency[] = []
99
+ versions: TopLevelDependency[] = [],
100
100
  ): Dependency | undefined =>
101
101
  findTopLevel(module, versions) ?? findInDependencies(module, versions);
102
102
 
@@ -127,8 +127,8 @@ export const versionToInstall = (module: string, version?: string) =>
127
127
  const coreVersionFromPackageJson = () =>
128
128
  isLauncher()
129
129
  ? undefined // Will lead to using CORE_VERSION_FOR_LEGACY_APPS
130
- : packageJsonApp().nrfConnectForDesktop.nrfutilCore ??
131
- failToDetermineVersion('core');
130
+ : (packageJsonApp().nrfConnectForDesktop.nrfutilCore ??
131
+ failToDetermineVersion('core'));
132
132
 
133
133
  export const coreVersionsToInstall = (coreVersion?: string) =>
134
134
  coreVersion ?? overriddenVersion('core') ?? coreVersionFromPackageJson();
@@ -33,15 +33,15 @@ export type DiscriminatedVersion =
33
33
  | StringVersion;
34
34
 
35
35
  export const isSemanticVersion = (
36
- version?: DiscriminatedVersion
36
+ version?: DiscriminatedVersion,
37
37
  ): version is SemanticVersion => version?.versionFormat === 'semantic';
38
38
 
39
39
  export const isIncrementalVersion = (
40
- version?: DiscriminatedVersion
40
+ version?: DiscriminatedVersion,
41
41
  ): version is IncrementalVersion => version?.versionFormat === 'incremental';
42
42
 
43
43
  export const isStringVersion = (
44
- version?: DiscriminatedVersion
44
+ version?: DiscriminatedVersion,
45
45
  ): version is StringVersion => version?.versionFormat === 'string';
46
46
 
47
47
  export const versionToString = (version: DiscriminatedVersion) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordicsemiconductor/pc-nrfconnect-shared",
3
- "version": "230.0.0",
3
+ "version": "232.0.0",
4
4
  "description": "Shared commodities for developing pc-nrfconnect-* packages",
5
5
  "repository": {
6
6
  "type": "git",
@@ -53,8 +53,6 @@
53
53
  "@types/shasum": "1.0.0",
54
54
  "@types/triple-beam": "1.3.2",
55
55
  "@types/uuid": "8.3.4",
56
- "@typescript-eslint/eslint-plugin": "5.57.1",
57
- "@typescript-eslint/parser": "5.57.1",
58
56
  "@xterm/headless": "^5.5.0",
59
57
  "adm-zip": "^0.5.5",
60
58
  "applicationinsights": "^2.9.6",
@@ -67,14 +65,15 @@
67
65
  "esbuild": "0.19.2",
68
66
  "esbuild-sass-plugin": "2.13.0",
69
67
  "esbuild-style-plugin": "1.6.2",
70
- "eslint": "8.37.0",
68
+ "eslint": "^8.57.1",
71
69
  "eslint-config-airbnb": "19.0.4",
72
70
  "eslint-config-prettier": "8.8.0",
73
71
  "eslint-import-resolver-typescript": "3.5.5",
74
72
  "eslint-plugin-import": "2.27.5",
73
+ "eslint-plugin-jsonc": "^2.20.1",
75
74
  "eslint-plugin-jsx-a11y": "6.7.1",
76
75
  "eslint-plugin-md": "^1.0.19",
77
- "eslint-plugin-prettier": "^4.2.1",
76
+ "eslint-plugin-prettier": "^5.5.4",
78
77
  "eslint-plugin-react": "7.32.2",
79
78
  "eslint-plugin-react-hooks": "4.6.0",
80
79
  "eslint-plugin-simple-import-sort": "10.0.0",
@@ -93,7 +92,7 @@
93
92
  "nrf-intel-hex": "^1.4.0",
94
93
  "postcss": "8.4.24",
95
94
  "postcss-modules": "^6.0.0",
96
- "prettier": "2.8.8",
95
+ "prettier": "^3.6.2",
97
96
  "prettier-plugin-tailwindcss": "^0.3.0",
98
97
  "prettysize": "2.0.0",
99
98
  "protobufjs": "^7.0.0",
@@ -117,7 +116,8 @@
117
116
  "tailwindcss": "3.3.2",
118
117
  "tree-kill-promise": "^3.0.14",
119
118
  "tsx": "^4.20.3",
120
- "typescript": "4.9.5",
119
+ "typescript": "^5.9.2",
120
+ "typescript-eslint": "^8.45.0",
121
121
  "util": "0.12.5",
122
122
  "uuid": "8.3.2",
123
123
  "winston": "3.8.2",
package/release_notes.md CHANGED
@@ -1,4 +1,16 @@
1
+ ### Changed
2
+
3
+ - Disabled deprecated `no-return-await` ESLint rule.
4
+ - Changed `no-unused-vars` ESLint rule config so that only unused args and vars
5
+ beginning with an underscore are allowed.
6
+
1
7
  ### Added
2
8
 
3
- - Property `nrfConnectForDesktop.fixedSize` an app can specify, to have a
4
- window with a fixed size, like the Quick Start app.
9
+ - Functions `createDisposableTempDir` and `createDisposableTempFile` for use in
10
+ the main process.
11
+
12
+ ### Fixed
13
+
14
+ - `nrfutil-core` is now directly installed with the requested version. Before
15
+ the bootstrap-version was first installed, which can lead to problems, if the
16
+ bootstrap-version does not run correctly.
@@ -39,10 +39,10 @@ const mustBeEmpty = (array: string[], errorMessage: string) => {
39
39
  const mustContain = (
40
40
  existingEntries: readonly string[],
41
41
  mandatoryEntries: string[],
42
- errorMessage: string
42
+ errorMessage: string,
43
43
  ) => {
44
44
  const missingFileEntries = mandatoryEntries.filter(
45
- entry => !existingEntries.includes(entry)
45
+ entry => !existingEntries.includes(entry),
46
46
  );
47
47
 
48
48
  mustBeEmpty(missingFileEntries, errorMessage);
@@ -51,11 +51,11 @@ const mustContain = (
51
51
  const mustContainOneOf = (
52
52
  existingEntries: readonly string[],
53
53
  oneOfTheseEntriesIsMandatory: string[],
54
- errorMessage: string
54
+ errorMessage: string,
55
55
  ) => {
56
56
  if (
57
57
  !oneOfTheseEntriesIsMandatory.some(entry =>
58
- existingEntries.includes(entry)
58
+ existingEntries.includes(entry),
59
59
  )
60
60
  ) {
61
61
  fail(`${errorMessage}: ${format(oneOfTheseEntriesIsMandatory)}`);
@@ -84,7 +84,7 @@ const checkRepoUrl = (packageJson: PackageJsonApp) => {
84
84
 
85
85
  if (stripped(realGitUrl) !== stripped(declaredGitUrl)) {
86
86
  fail(
87
- `package.json says the repository is located at \`${declaredGitUrl}\` but \`git remote get-url origin\` says it is at \`${realGitUrl}\`.`
87
+ `package.json says the repository is located at \`${declaredGitUrl}\` but \`git remote get-url origin\` says it is at \`${realGitUrl}\`.`,
88
88
  );
89
89
  }
90
90
  };
@@ -105,19 +105,19 @@ const checkFileProperty = (packageJson: PackageJsonApp) => {
105
105
  mustContain(
106
106
  packageJson.files ?? [],
107
107
  ['LICENSE', 'dist/', 'Changelog.md'],
108
- 'These entries are missing in the property `files` in package.json'
108
+ 'These entries are missing in the property `files` in package.json',
109
109
  );
110
110
 
111
111
  mustContainOneOf(
112
112
  packageJson.files ?? [],
113
113
  ['resources/*', 'resources/icon.*', 'resources/'],
114
- 'One of these entries must be in the property `files` in package.json'
114
+ 'One of these entries must be in the property `files` in package.json',
115
115
  );
116
116
  };
117
117
 
118
118
  const readAndCheckPackageJson = () => {
119
119
  const packageJsonResult = parsePackageJsonApp(
120
- readFileSync('./package.json', 'utf8')
120
+ readFileSync('./package.json', 'utf8'),
121
121
  );
122
122
 
123
123
  if (!packageJsonResult.success) {
@@ -135,7 +135,7 @@ const readAndCheckPackageJson = () => {
135
135
 
136
136
  const checkChangelog = (
137
137
  packageJson: PackageJsonApp,
138
- checkChangelogHasCurrentEntry: boolean
138
+ checkChangelogHasCurrentEntry: boolean,
139
139
  ) => {
140
140
  if (!existsSync('./Changelog.md')) {
141
141
  fail('The mandatory file `Changelog.md` is missing.');
@@ -149,7 +149,7 @@ const checkChangelog = (
149
149
  const latestChangelogEntry = getLatestEntry();
150
150
  if (!latestChangelogEntry.header.includes(packageJson.version)) {
151
151
  fail(
152
- `Found no entry for the current version packageJson.version ${packageJson.version} in \`Changelog.md\`.`
152
+ `Found no entry for the current version packageJson.version ${packageJson.version} in \`Changelog.md\`.`,
153
153
  );
154
154
  }
155
155
  }
@@ -158,7 +158,7 @@ const checkChangelog = (
158
158
  const filesIn = (directory: string) => {
159
159
  try {
160
160
  return readdirSync(directory);
161
- } catch (error) {
161
+ } catch {
162
162
  fail(`Unable to read directory \`${directory}\`.`);
163
163
  // Unreachable, but not understood by Typescript
164
164
  throw new Error();
@@ -169,7 +169,7 @@ const checkMandatoryResources = () => {
169
169
  mustContain(
170
170
  filesIn('./resources'),
171
171
  ['icon.svg', 'icon.icns', 'icon.ico', 'icon.png'],
172
- 'In the directory `resources` these files are missing'
172
+ 'In the directory `resources` these files are missing',
173
173
  );
174
174
  };
175
175
 
@@ -17,7 +17,7 @@ const launchNextCommand = () => {
17
17
  spawnSync(command, args, {
18
18
  shell: true,
19
19
  stdio: 'inherit',
20
- }).status ?? undefined
20
+ }).status ?? undefined,
21
21
  );
22
22
  };
23
23
 
@@ -27,7 +27,7 @@ const assertNoTypeScriptFilesExist = () => {
27
27
  klaw('.', { filter: excludeNodeModules }).on('data', ({ path }) => {
28
28
  if (path.endsWith('.ts') || path.endsWith('.tsx')) {
29
29
  console.log(
30
- "Your project contains TypeScript files (with the file ending .ts or .tsx), so it also must contain a file 'tsconfig.json'.\n"
30
+ "Your project contains TypeScript files (with the file ending .ts or .tsx), so it also must contain a file 'tsconfig.json'.\n",
31
31
  );
32
32
  process.exit(1);
33
33
  }
@@ -33,12 +33,12 @@ const parseOptions = () =>
33
33
  .addOption(
34
34
  new Option('-a, --access-level <access level>', 'Access level')
35
35
  .choices(validAccessLevels)
36
- .makeOptionMandatory()
36
+ .makeOptionMandatory(),
37
37
  )
38
38
  .requiredOption('-n, --name <name>', 'Name, e.g. "Release Test"')
39
39
  .requiredOption(
40
40
  '-d, --description <description>',
41
- 'Longer description, e.g. "Versions we intend to release next"'
41
+ 'Longer description, e.g. "Versions we intend to release next"',
42
42
  )
43
43
  .parse()
44
44
  .opts();
@@ -18,13 +18,13 @@ const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
18
18
 
19
19
  const projectSpecificTailwindConfigPath = path.join(
20
20
  process.cwd(),
21
- 'tailwind.config.js'
21
+ 'tailwind.config.js',
22
22
  );
23
23
  const tailwindConfig = () =>
24
24
  fs.existsSync(projectSpecificTailwindConfigPath)
25
25
  ? projectSpecificTailwindConfigPath
26
26
  : require.resolve(
27
- '@nordicsemiconductor/pc-nrfconnect-shared/config/tailwind.config.js'
27
+ '@nordicsemiconductor/pc-nrfconnect-shared/config/tailwind.config.js',
28
28
  );
29
29
 
30
30
  type AdditionalOptions = Required<Pick<BuildOptions, 'entryPoints'>> &
@@ -37,7 +37,7 @@ const outfileOrDir = (additionalOptions: AdditionalOptions) =>
37
37
 
38
38
  const options = (
39
39
  additionalOptions: AdditionalOptions,
40
- externalReact: boolean
40
+ externalReact: boolean,
41
41
  ) =>
42
42
  ({
43
43
  format: 'iife',
@@ -98,7 +98,7 @@ const options = (
98
98
  const [, shortpath] = filter.exec(args.path)!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
99
99
  const resolvedPath = `${path.join(
100
100
  args.resolveDir,
101
- shortpath
101
+ shortpath,
102
102
  )}r`;
103
103
  return { path: resolvedPath };
104
104
  });
@@ -107,7 +107,7 @@ const options = (
107
107
  const filePath = args.path.replace('.svgr', '.svg');
108
108
  const svg = await fs.promises.readFile(
109
109
  filePath,
110
- 'utf8'
110
+ 'utf8',
111
111
  );
112
112
  const plugins = ['@svgr/plugin-jsx'];
113
113
  const contents = await svgr(svg, { plugins });
@@ -120,15 +120,15 @@ const options = (
120
120
  },
121
121
  ],
122
122
  ...additionalOptions,
123
- } satisfies BuildOptions);
123
+ }) satisfies BuildOptions;
124
124
 
125
125
  export const build = async (
126
126
  additionalOptions: AdditionalOptions,
127
- { externalReact = false } = {}
127
+ { externalReact = false } = {},
128
128
  ) => {
129
129
  if (process.argv.includes('--watch')) {
130
130
  const context = await esbuild.context(
131
- options(additionalOptions, externalReact)
131
+ options(additionalOptions, externalReact),
132
132
  );
133
133
 
134
134
  await context.rebuild();
@@ -69,9 +69,9 @@ const copyFiles = () => {
69
69
 
70
70
  fs.copyFileSync(
71
71
  fileInShared(
72
- 'fw/bootloader/graviton_bootloader_v1.0.1-[nRF5_SDK_15.0.1-1.alpha_f76d012].zip'
72
+ 'fw/bootloader/graviton_bootloader_v1.0.1-[nRF5_SDK_15.0.1-1.alpha_f76d012].zip',
73
73
  ),
74
- './fw/graviton_bootloader_v1.0.1-[nRF5_SDK_15.0.1-1.alpha_f76d012].zip'
74
+ './fw/graviton_bootloader_v1.0.1-[nRF5_SDK_15.0.1-1.alpha_f76d012].zip',
75
75
  );
76
76
  }
77
77
  };
@@ -18,7 +18,7 @@ const getLatestReleaseName = () => {
18
18
  export default (latestReleaseName = getLatestReleaseName()) => {
19
19
  const latest = Number(
20
20
  /^v(?<versionNumber>\d+)$/.exec(latestReleaseName)?.groups
21
- ?.versionNumber
21
+ ?.versionNumber,
22
22
  );
23
23
 
24
24
  return { latest, next: latest + 1 };
@@ -25,7 +25,7 @@ const fail = (message: string) => {
25
25
  const assertPackageJsonIsCorrect = (expectedVersionNumber: number) => {
26
26
  if (packageJson.version !== `${expectedVersionNumber}.0.0`) {
27
27
  fail(
28
- `Version number in package.json must be '${expectedVersionNumber}.0.0' but is '${packageJson.version}'`
28
+ `Version number in package.json must be '${expectedVersionNumber}.0.0' but is '${packageJson.version}'`,
29
29
  );
30
30
  }
31
31
  };
@@ -44,7 +44,7 @@ const assertLatestHeaderIsCorrect = (expectedVersionNumber: number) => {
44
44
 
45
45
  if (expectedHeaderline !== actualHeaderline) {
46
46
  fail(
47
- `Latest entry in Changelog.md is not as expected:\n Expected: ${expectedHeaderline}\n Actual: ${actualHeaderline}`
47
+ `Latest entry in Changelog.md is not as expected:\n Expected: ${expectedHeaderline}\n Actual: ${actualHeaderline}`,
48
48
  );
49
49
  }
50
50
  };
@@ -61,7 +61,7 @@ const main = () => {
61
61
  assertChangelogIsCorrect(releaseNumbers.next);
62
62
 
63
63
  console.log(
64
- `The currently released version is ${releaseNumbers.latest}, so the next one will be ${releaseNumbers.next}.\n`
64
+ `The currently released version is ${releaseNumbers.latest}, so the next one will be ${releaseNumbers.next}.\n`,
65
65
  );
66
66
  };
67
67