@nordicsemiconductor/pc-nrfconnect-shared 60.0.0-pre2 → 76.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.
- package/Changelog.md +3190 -0
- package/config/colors.js +46 -0
- package/config/eslintrc.js +190 -0
- package/config/jest.config.js +41 -0
- package/config/prettier.config.js +13 -0
- package/config/tailwind.config.js +25 -0
- package/config/tsconfig.json +16 -0
- package/dist/bootstrap.css +1 -1
- package/fw/bootloader/graviton_bootloader_v1.0.1-[nRF5_SDK_15.0.1-1.alpha_f76d012].zip +0 -0
- package/main/index.ts +32 -0
- package/mocks/deviceLibMock.ts +21 -0
- package/mocks/electronMock.ts +15 -0
- package/mocks/electronStoreMock.ts +19 -0
- package/mocks/emptyMock.ts +7 -0
- package/mocks/fileMock.ts +13 -0
- package/mocks/gaMock.ts +9 -0
- package/mocks/mockTests.test.ts +15 -0
- package/mocks/packageJsonMock.ts +10 -0
- package/mocks/remoteMock.ts +17 -0
- package/package.json +29 -20
- package/scripts/esbuild-bootstrap.js +15 -0
- package/scripts/esbuild-renderer.js +139 -0
- package/scripts/installHusky.ts +17 -0
- package/scripts/nordic-publish.js +89 -0
- package/scripts/prepare-shared-release.ts +122 -0
- package/scripts/release-shared.test.ts +132 -0
- package/scripts/release-shared.ts +207 -0
- package/src/About/About.tsx +31 -0
- package/src/About/AboutButton.tsx +28 -0
- package/src/About/ApplicationCard.tsx +81 -0
- package/src/About/DeviceCard.tsx +76 -0
- package/src/About/DocumentationCard.tsx +21 -0
- package/src/About/DocumentationSection.tsx +24 -0
- package/src/About/Section.tsx +21 -0
- package/src/About/ShortcutButton.tsx +41 -0
- package/src/About/SupportCard.tsx +102 -0
- package/src/About/about.scss +40 -0
- package/src/About/shortcutSlice.ts +52 -0
- package/src/Alert/Alert.module.scss +29 -0
- package/src/Alert/Alert.tsx +37 -0
- package/src/App/App.test.tsx +47 -0
- package/src/App/App.tsx +252 -0
- package/src/App/ConnectedToStore.tsx +19 -0
- package/src/App/VisibilityBar.tsx +103 -0
- package/src/App/app.scss +83 -0
- package/src/App/appLayout.ts +94 -0
- package/src/App/preflight.scss +443 -0
- package/src/App/shared.scss +49 -0
- package/src/App/tailwind.css +12 -0
- package/src/App/visibility-bar.scss +55 -0
- package/src/Button/Button.tsx +76 -0
- package/src/Card/Card.tsx +26 -0
- package/src/Card/card.module.scss +28 -0
- package/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.tsx +58 -0
- package/src/Device/BrokenDeviceDialog/broken-device-dialog.scss +18 -0
- package/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.tsx +48 -0
- package/src/Device/DeviceSelector/BasicDeviceInfo.tsx +115 -0
- package/src/Device/DeviceSelector/DeviceIcon.tsx +27 -0
- package/src/Device/DeviceSelector/DeviceList/AnimatedList.tsx +62 -0
- package/src/Device/DeviceSelector/DeviceList/BrokenDevice.tsx +34 -0
- package/src/Device/DeviceSelector/DeviceList/Device.tsx +84 -0
- package/src/Device/DeviceSelector/DeviceList/DeviceList.tsx +113 -0
- package/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.tsx +28 -0
- package/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.tsx +65 -0
- package/src/Device/DeviceSelector/DeviceList/RenameDevice.tsx +22 -0
- package/src/Device/DeviceSelector/DeviceList/broken-device.scss +32 -0
- package/src/Device/DeviceSelector/DeviceList/device-list.scss +64 -0
- package/src/Device/DeviceSelector/DeviceList/device.scss +28 -0
- package/src/Device/DeviceSelector/DeviceList/edit-device-buttons.scss +31 -0
- package/src/Device/DeviceSelector/DeviceList/more-device-info.scss +33 -0
- package/src/Device/DeviceSelector/DeviceList/rename-device.scss +13 -0
- package/src/Device/DeviceSelector/DeviceSelector.test.tsx +342 -0
- package/src/Device/DeviceSelector/DeviceSelector.tsx +176 -0
- package/src/Device/DeviceSelector/Favorite.tsx +49 -0
- package/src/Device/DeviceSelector/SelectDevice.tsx +36 -0
- package/src/Device/DeviceSelector/SelectedDevice.tsx +65 -0
- package/src/Device/DeviceSelector/arrow-down.svg +1 -0
- package/src/Device/DeviceSelector/basic-device-info.scss +62 -0
- package/src/Device/DeviceSelector/device-icon.scss +27 -0
- package/src/Device/DeviceSelector/favorite.scss +17 -0
- package/src/Device/DeviceSelector/select-device.scss +38 -0
- package/src/Device/DeviceSelector/selected-device.scss +57 -0
- package/src/Device/DeviceSetup/DeviceSetupView.tsx +105 -0
- package/src/Device/deviceAutoSelectSlice.ts +150 -0
- package/src/Device/deviceInfo/deviceInfo.ts +254 -0
- package/src/Device/deviceInfo/nRF51-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/nRF52-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/nRF53-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/nRF70-Series_no-background_RGB.svg +36 -0
- package/src/Device/deviceInfo/nRF91-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/ppk-logo.svg +1 -0
- package/src/Device/deviceInfo/unknown-logo.svg +30 -0
- package/src/Device/deviceInfo/unknown-nordic-logo.svg +25 -0
- package/src/Device/deviceLibWrapper.test.ts +97 -0
- package/src/Device/deviceLibWrapper.ts +132 -0
- package/src/Device/deviceLister.test.ts +89 -0
- package/src/Device/deviceLister.ts +424 -0
- package/src/Device/deviceSetup.ts +259 -0
- package/src/Device/deviceSetupSlice.ts +94 -0
- package/src/Device/deviceSlice.ts +248 -0
- package/src/Device/dfu-cc.ts +162 -0
- package/src/Device/initPacket.ts +402 -0
- package/src/Device/jprogOperations.ts +206 -0
- package/src/Device/sdfuOperations.ts +607 -0
- package/src/Dialog/Dialog.test.tsx +134 -0
- package/src/Dialog/Dialog.tsx +236 -0
- package/src/Dialog/dialog.scss +56 -0
- package/src/Dropdown/Dropdown.module.scss +15 -0
- package/src/Dropdown/Dropdown.test.tsx +62 -0
- package/src/Dropdown/Dropdown.tsx +112 -0
- package/src/ErrorBoundary/ErrorBoundary.test.tsx +88 -0
- package/src/ErrorBoundary/ErrorBoundary.tsx +186 -0
- package/src/ErrorBoundary/bug.svg +1 -0
- package/src/ErrorBoundary/error-boundary.scss +102 -0
- package/src/ErrorDialog/ErrorDialog.test.tsx +70 -0
- package/src/ErrorDialog/ErrorDialog.tsx +94 -0
- package/src/ErrorDialog/error.scss +14 -0
- package/src/ErrorDialog/errorDialogSlice.test.ts +64 -0
- package/src/ErrorDialog/errorDialogSlice.ts +80 -0
- package/src/FactoryReset/FactoryResetButton.test.tsx +46 -0
- package/src/FactoryReset/FactoryResetButton.tsx +81 -0
- package/src/FlashMessage/FlashMessage.tsx +159 -0
- package/src/FlashMessage/FlashMessageSlice.ts +88 -0
- package/src/FlashMessage/flashMessage.css +32 -0
- package/src/InlineInput/InlineInput.tsx +170 -0
- package/src/InlineInput/NumberInlineInput.tsx +107 -0
- package/src/InlineInput/inline-input.scss +38 -0
- package/src/InlineInput/number-inline-input.scss +15 -0
- package/src/Log/LogEntry.tsx +62 -0
- package/src/Log/LogViewer.tsx +54 -0
- package/src/Log/log-entry.scss +30 -0
- package/src/Log/log-viewer.scss +24 -0
- package/src/Log/logSlice.ts +73 -0
- package/src/Log/syncLogToStore.ts +36 -0
- package/src/Logo/Logo.tsx +48 -0
- package/src/Logo/logo.scss +11 -0
- package/{dist/nordic-logo-blue-icon-only-H7BABN6D.png → src/Logo/nordic-logo-blue-icon-only.png} +0 -0
- package/{dist/nordic-logo-gray-icon-only-GATOTR3L.png → src/Logo/nordic-logo-gray-icon-only.png} +0 -0
- package/src/Main/Main.tsx +13 -0
- package/src/Main/main.scss +13 -0
- package/src/MasonryLayout/MasonryLayout.tsx +234 -0
- package/src/MasonryLayout/masonryLayout.module.scss +46 -0
- package/src/NavBar/NavBar.tsx +22 -0
- package/src/NavBar/NavMenu.test.tsx +41 -0
- package/src/NavBar/NavMenu.tsx +52 -0
- package/src/NavBar/NavMenuItem.tsx +39 -0
- package/src/NavBar/nav-bar.scss +27 -0
- package/src/NavBar/nav-menu-item.scss +29 -0
- package/src/NumberInputWithSlider/NumberInputSliderWithUnit.tsx +74 -0
- package/src/OpenApp/openApp.ts +18 -0
- package/src/Panes/FeedbackPane.tsx +184 -0
- package/src/PseudoButton/PseudoButton.tsx +56 -0
- package/src/PseudoButton/pseudo-button.scss +11 -0
- package/src/SerialPort/ConflictingSettingsDialog.tsx +226 -0
- package/src/SerialPort/SerialPort.test.ts +54 -0
- package/src/SerialPort/SerialPort.ts +202 -0
- package/src/Shortcuts/Shortcut-item.scss +33 -0
- package/src/Shortcuts/Shortcut-modal.scss +20 -0
- package/src/Shortcuts/ShortcutItem.tsx +48 -0
- package/src/Shortcuts/ShortcutModal.tsx +67 -0
- package/src/SidePanel/Group.tsx +106 -0
- package/src/SidePanel/SidePanel.tsx +19 -0
- package/src/SidePanel/group.scss +42 -0
- package/src/SidePanel/sidepanel.scss +20 -0
- package/src/Slider/Bar.tsx +24 -0
- package/src/Slider/Factor.test.ts +48 -0
- package/src/Slider/Handle.tsx +121 -0
- package/src/Slider/Slider.test.tsx +25 -0
- package/src/Slider/Slider.tsx +91 -0
- package/src/Slider/Ticks.tsx +54 -0
- package/src/Slider/__snapshots__/Slider.test.tsx.snap +50 -0
- package/src/Slider/bar.scss +24 -0
- package/src/Slider/factor.ts +24 -0
- package/src/Slider/handle.scss +32 -0
- package/src/Slider/percentage.ts +67 -0
- package/src/Slider/range.ts +92 -0
- package/src/Slider/slider.scss +14 -0
- package/src/Slider/ticks.scss +28 -0
- package/src/Slider/variables.scss +16 -0
- package/src/StartStopButton/StartStopButton.tsx +60 -0
- package/src/StartStopButton/play-circle.svg +1 -0
- package/src/StartStopButton/start-stop-button.scss +47 -0
- package/src/StartStopButton/stop-circle.svg +1 -0
- package/src/StateSelector/StateSelector.tsx +64 -0
- package/src/StateSelector/state-selector.scss +38 -0
- package/src/Stepper/Stepper.tsx +138 -0
- package/src/Stepper/stepper.scss +127 -0
- package/src/Toggle/Toggle.tsx +120 -0
- package/src/Toggle/toggle.scss +109 -0
- package/src/bootstrap.scss +14 -0
- package/src/index.ts +157 -0
- package/src/logging/appTransport.test.ts +78 -0
- package/src/logging/appTransport.ts +41 -0
- package/src/logging/describeError.test.ts +38 -0
- package/src/logging/describeError.ts +56 -0
- package/src/logging/index.ts +103 -0
- package/src/logging/logBuffer.test.ts +41 -0
- package/src/logging/logBuffer.ts +24 -0
- package/src/logging/sendInitialLogMessages.ts +64 -0
- package/src/store.ts +67 -0
- package/src/svg.d.ts +15 -0
- package/src/utils/AppTypes.ts +60 -0
- package/src/utils/appDirs.ts +78 -0
- package/src/utils/bleChannels.ts +16 -0
- package/src/utils/classNames.test.ts +29 -0
- package/src/utils/classNames.ts +25 -0
- package/src/utils/colors.scss +46 -0
- package/src/utils/colors.ts +173 -0
- package/src/utils/describeVersion.ts +21 -0
- package/src/utils/environment.ts +6 -0
- package/src/utils/logLibVersions.ts +103 -0
- package/src/utils/open.ts +46 -0
- package/src/utils/packageJson.ts +60 -0
- package/src/utils/persistentStore.ts +144 -0
- package/src/utils/systemReport.ts +160 -0
- package/src/utils/truncateMiddle.test.ts +21 -0
- package/src/utils/truncateMiddle.ts +20 -0
- package/src/utils/usageData.ts +196 -0
- package/src/utils/useFocusedOnVisible.ts +26 -0
- package/src/utils/useHotKey.ts +62 -0
- package/src/utils/useStopwatch.test.tsx +311 -0
- package/src/utils/useStopwatch.ts +140 -0
- package/src/variables.scss +820 -0
- package/styles.scss +88 -0
- package/test/dispatchTo.ts +23 -0
- package/test/index.ts +7 -0
- package/test/jestResolver.js +28 -0
- package/test/setupTests.ts +27 -0
- package/test/testUtil.ts +20 -0
- package/test/testrenderer.tsx +39 -0
- package/typings/generated/main/index.d.ts +1 -0
- package/typings/generated/main/index.d.ts.map +1 -0
- package/typings/generated/src/About/About.d.ts +6 -2
- package/typings/generated/src/About/About.d.ts.map +1 -0
- package/typings/generated/src/About/AboutButton.d.ts +1 -0
- package/typings/generated/src/About/AboutButton.d.ts.map +1 -0
- package/typings/generated/src/About/ApplicationCard.d.ts +1 -0
- package/typings/generated/src/About/ApplicationCard.d.ts.map +1 -0
- package/typings/generated/src/About/DeviceCard.d.ts +1 -0
- package/typings/generated/src/About/DeviceCard.d.ts.map +1 -0
- package/typings/generated/src/About/DocumentationCard.d.ts +5 -2
- package/typings/generated/src/About/DocumentationCard.d.ts.map +1 -0
- package/typings/generated/src/About/DocumentationSection.d.ts +1 -0
- package/typings/generated/src/About/DocumentationSection.d.ts.map +1 -0
- package/typings/generated/src/About/Section.d.ts +1 -1
- package/typings/generated/src/About/Section.d.ts.map +1 -0
- package/typings/generated/src/About/ShortcutButton.d.ts +1 -0
- package/typings/generated/src/About/ShortcutButton.d.ts.map +1 -0
- package/typings/generated/src/About/SupportCard.d.ts +1 -0
- package/typings/generated/src/About/SupportCard.d.ts.map +1 -0
- package/typings/generated/src/About/shortcutSlice.d.ts +1 -0
- package/typings/generated/src/About/shortcutSlice.d.ts.map +1 -0
- package/typings/generated/src/Alert/Alert.d.ts +1 -0
- package/typings/generated/src/Alert/Alert.d.ts.map +1 -0
- package/typings/generated/src/App/App.d.ts +4 -0
- package/typings/generated/src/App/App.d.ts.map +1 -0
- package/typings/generated/src/App/App.test.d.ts +1 -0
- package/typings/generated/src/App/App.test.d.ts.map +1 -0
- package/typings/generated/src/App/ConnectedToStore.d.ts +1 -0
- package/typings/generated/src/App/ConnectedToStore.d.ts.map +1 -0
- package/typings/generated/src/App/VisibilityBar.d.ts +1 -0
- package/typings/generated/src/App/VisibilityBar.d.ts.map +1 -0
- package/typings/generated/src/App/appLayout.d.ts +1 -1
- package/typings/generated/src/App/appLayout.d.ts.map +1 -0
- package/typings/generated/src/Button/Button.d.ts +2 -1
- package/typings/generated/src/Button/Button.d.ts.map +1 -0
- package/typings/generated/src/Card/Card.d.ts +1 -0
- package/typings/generated/src/Card/Card.d.ts.map +1 -0
- package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts +1 -0
- package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts.map +1 -0
- package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts +1 -0
- package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts.map +1 -0
- package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts +3 -1
- package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts +3 -1
- package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceLibWrapper.d.ts +1 -0
- package/typings/generated/src/Device/deviceLibWrapper.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceLibWrapper.test.d.ts +1 -0
- package/typings/generated/src/Device/deviceLibWrapper.test.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceLister.d.ts +4 -2
- package/typings/generated/src/Device/deviceLister.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceLister.test.d.ts +1 -0
- package/typings/generated/src/Device/deviceLister.test.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceSetup.d.ts +8 -7
- package/typings/generated/src/Device/deviceSetup.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceSetupSlice.d.ts +1 -0
- package/typings/generated/src/Device/deviceSetupSlice.d.ts.map +1 -0
- package/typings/generated/src/Device/deviceSlice.d.ts +1 -0
- package/typings/generated/src/Device/deviceSlice.d.ts.map +1 -0
- package/typings/generated/src/Device/dfu-cc.d.ts +1 -0
- package/typings/generated/src/Device/dfu-cc.d.ts.map +1 -0
- package/typings/generated/src/Device/initPacket.d.ts +1 -0
- package/typings/generated/src/Device/initPacket.d.ts.map +1 -0
- package/typings/generated/src/Device/jprogOperations.d.ts +1 -0
- package/typings/generated/src/Device/jprogOperations.d.ts.map +1 -0
- package/typings/generated/src/Device/sdfuOperations.d.ts +4 -3
- package/typings/generated/src/Device/sdfuOperations.d.ts.map +1 -0
- package/typings/generated/src/Dialog/Dialog.d.ts +1 -0
- package/typings/generated/src/Dialog/Dialog.d.ts.map +1 -0
- package/typings/generated/src/Dialog/Dialog.test.d.ts +1 -0
- package/typings/generated/src/Dialog/Dialog.test.d.ts.map +1 -0
- package/typings/generated/src/Dropdown/Dropdown.d.ts +3 -1
- package/typings/generated/src/Dropdown/Dropdown.d.ts.map +1 -0
- package/typings/generated/src/Dropdown/Dropdown.test.d.ts +1 -0
- package/typings/generated/src/Dropdown/Dropdown.test.d.ts.map +1 -0
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts +1 -0
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts +1 -0
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts.map +1 -0
- package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts +1 -0
- package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts.map +1 -0
- package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts +1 -0
- package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts.map +1 -0
- package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts +1 -0
- package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts.map +1 -0
- package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts +1 -0
- package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts.map +1 -0
- package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts +1 -0
- package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts.map +1 -0
- package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts +1 -0
- package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts.map +1 -0
- package/typings/generated/src/FlashMessage/FlashMessage.d.ts +5 -0
- package/typings/generated/src/FlashMessage/FlashMessage.d.ts.map +1 -0
- package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts +20 -0
- package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts.map +1 -0
- package/typings/generated/src/InlineInput/InlineInput.d.ts +1 -0
- package/typings/generated/src/InlineInput/InlineInput.d.ts.map +1 -0
- package/typings/generated/src/InlineInput/NumberInlineInput.d.ts +1 -0
- package/typings/generated/src/InlineInput/NumberInlineInput.d.ts.map +1 -0
- package/typings/generated/src/Log/LogEntry.d.ts +1 -0
- package/typings/generated/src/Log/LogEntry.d.ts.map +1 -0
- package/typings/generated/src/Log/LogViewer.d.ts +1 -0
- package/typings/generated/src/Log/LogViewer.d.ts.map +1 -0
- package/typings/generated/src/Log/logSlice.d.ts +1 -0
- package/typings/generated/src/Log/logSlice.d.ts.map +1 -0
- package/typings/generated/src/Log/syncLogToStore.d.ts +1 -0
- package/typings/generated/src/Log/syncLogToStore.d.ts.map +1 -0
- package/typings/generated/src/Logo/Logo.d.ts +1 -0
- package/typings/generated/src/Logo/Logo.d.ts.map +1 -0
- package/typings/generated/src/Main/Main.d.ts +1 -0
- package/typings/generated/src/Main/Main.d.ts.map +1 -0
- package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts +1 -0
- package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts.map +1 -0
- package/typings/generated/src/NavBar/NavBar.d.ts +1 -0
- package/typings/generated/src/NavBar/NavBar.d.ts.map +1 -0
- package/typings/generated/src/NavBar/NavMenu.d.ts +1 -0
- package/typings/generated/src/NavBar/NavMenu.d.ts.map +1 -0
- package/typings/generated/src/NavBar/NavMenu.test.d.ts +1 -0
- package/typings/generated/src/NavBar/NavMenu.test.d.ts.map +1 -0
- package/typings/generated/src/NavBar/NavMenuItem.d.ts +1 -1
- package/typings/generated/src/NavBar/NavMenuItem.d.ts.map +1 -0
- package/typings/generated/src/NumberInputWithSlider/NumberInputSliderWithUnit.d.ts +14 -0
- package/typings/generated/src/NumberInputWithSlider/NumberInputSliderWithUnit.d.ts.map +1 -0
- package/typings/generated/src/OpenApp/openApp.d.ts +1 -0
- package/typings/generated/src/OpenApp/openApp.d.ts.map +1 -0
- package/typings/generated/src/Panes/FeedbackPane.d.ts +5 -1
- package/typings/generated/src/Panes/FeedbackPane.d.ts.map +1 -0
- package/typings/generated/src/PseudoButton/PseudoButton.d.ts +1 -0
- package/typings/generated/src/PseudoButton/PseudoButton.d.ts.map +1 -0
- package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts +1 -0
- package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts.map +1 -0
- package/typings/generated/src/SerialPort/SerialPort.d.ts +1 -0
- package/typings/generated/src/SerialPort/SerialPort.d.ts.map +1 -0
- package/typings/generated/src/SerialPort/SerialPort.test.d.ts +1 -0
- package/typings/generated/src/SerialPort/SerialPort.test.d.ts.map +1 -0
- package/typings/generated/src/Shortcuts/ShortcutItem.d.ts +1 -0
- package/typings/generated/src/Shortcuts/ShortcutItem.d.ts.map +1 -0
- package/typings/generated/src/Shortcuts/ShortcutModal.d.ts +1 -0
- package/typings/generated/src/Shortcuts/ShortcutModal.d.ts.map +1 -0
- package/typings/generated/src/SidePanel/Group.d.ts +1 -0
- package/typings/generated/src/SidePanel/Group.d.ts.map +1 -0
- package/typings/generated/src/SidePanel/SidePanel.d.ts +1 -0
- package/typings/generated/src/SidePanel/SidePanel.d.ts.map +1 -0
- package/typings/generated/src/Slider/Bar.d.ts +1 -0
- package/typings/generated/src/Slider/Bar.d.ts.map +1 -0
- package/typings/generated/src/Slider/Factor.test.d.ts +1 -0
- package/typings/generated/src/Slider/Factor.test.d.ts.map +1 -0
- package/typings/generated/src/Slider/Handle.d.ts +1 -0
- package/typings/generated/src/Slider/Handle.d.ts.map +1 -0
- package/typings/generated/src/Slider/Slider.d.ts +1 -0
- package/typings/generated/src/Slider/Slider.d.ts.map +1 -0
- package/typings/generated/src/Slider/Slider.test.d.ts +1 -0
- package/typings/generated/src/Slider/Slider.test.d.ts.map +1 -0
- package/typings/generated/src/Slider/Ticks.d.ts +1 -0
- package/typings/generated/src/Slider/Ticks.d.ts.map +1 -0
- package/typings/generated/src/Slider/factor.d.ts +1 -0
- package/typings/generated/src/Slider/factor.d.ts.map +1 -0
- package/typings/generated/src/Slider/percentage.d.ts +1 -0
- package/typings/generated/src/Slider/percentage.d.ts.map +1 -0
- package/typings/generated/src/Slider/range.d.ts +1 -0
- package/typings/generated/src/Slider/range.d.ts.map +1 -0
- package/typings/generated/src/StartStopButton/StartStopButton.d.ts +1 -0
- package/typings/generated/src/StartStopButton/StartStopButton.d.ts.map +1 -0
- package/typings/generated/src/StateSelector/StateSelector.d.ts +1 -0
- package/typings/generated/src/StateSelector/StateSelector.d.ts.map +1 -0
- package/typings/generated/src/Stepper/Stepper.d.ts +1 -0
- package/typings/generated/src/Stepper/Stepper.d.ts.map +1 -0
- package/typings/generated/src/Toggle/Toggle.d.ts +1 -0
- package/typings/generated/src/Toggle/Toggle.d.ts.map +1 -0
- package/typings/generated/src/index.d.ts +8 -4
- package/typings/generated/src/index.d.ts.map +1 -0
- package/typings/generated/src/logging/appTransport.d.ts +1 -0
- package/typings/generated/src/logging/appTransport.d.ts.map +1 -0
- package/typings/generated/src/logging/appTransport.test.d.ts +1 -0
- package/typings/generated/src/logging/appTransport.test.d.ts.map +1 -0
- package/typings/generated/src/logging/describeError.d.ts +1 -0
- package/typings/generated/src/logging/describeError.d.ts.map +1 -0
- package/typings/generated/src/logging/describeError.test.d.ts +1 -0
- package/typings/generated/src/logging/describeError.test.d.ts.map +1 -0
- package/typings/generated/src/logging/index.d.ts +1 -0
- package/typings/generated/src/logging/index.d.ts.map +1 -0
- package/typings/generated/src/logging/logBuffer.d.ts +1 -0
- package/typings/generated/src/logging/logBuffer.d.ts.map +1 -0
- package/typings/generated/src/logging/logBuffer.test.d.ts +1 -0
- package/typings/generated/src/logging/logBuffer.test.d.ts.map +1 -0
- package/typings/generated/src/logging/sendInitialLogMessages.d.ts +1 -0
- package/typings/generated/src/logging/sendInitialLogMessages.d.ts.map +1 -0
- package/typings/generated/src/store.d.ts +21 -18
- package/typings/generated/src/store.d.ts.map +1 -0
- package/typings/generated/src/utils/AppTypes.d.ts +1 -0
- package/typings/generated/src/utils/AppTypes.d.ts.map +1 -0
- package/typings/generated/src/utils/appDirs.d.ts +1 -0
- package/typings/generated/src/utils/appDirs.d.ts.map +1 -0
- package/typings/generated/src/utils/bleChannels.d.ts +1 -0
- package/typings/generated/src/utils/bleChannels.d.ts.map +1 -0
- package/typings/generated/src/utils/classNames.d.ts +1 -0
- package/typings/generated/src/utils/classNames.d.ts.map +1 -0
- package/typings/generated/src/utils/classNames.test.d.ts +1 -0
- package/typings/generated/src/utils/classNames.test.d.ts.map +1 -0
- package/typings/generated/src/utils/colors.d.ts +126 -3
- package/typings/generated/src/utils/colors.d.ts.map +1 -0
- package/typings/generated/src/utils/describeVersion.d.ts +1 -0
- package/typings/generated/src/utils/describeVersion.d.ts.map +1 -0
- package/typings/generated/src/utils/environment.d.ts +1 -0
- package/typings/generated/src/utils/environment.d.ts.map +1 -0
- package/typings/generated/src/utils/logLibVersions.d.ts +1 -0
- package/typings/generated/src/utils/logLibVersions.d.ts.map +1 -0
- package/typings/generated/src/utils/open.d.ts +1 -0
- package/typings/generated/src/utils/open.d.ts.map +1 -0
- package/typings/generated/src/utils/packageJson.d.ts +1 -0
- package/typings/generated/src/utils/packageJson.d.ts.map +1 -0
- package/typings/generated/src/utils/persistentStore.d.ts +1 -0
- package/typings/generated/src/utils/persistentStore.d.ts.map +1 -0
- package/typings/generated/src/utils/systemReport.d.ts +1 -0
- package/typings/generated/src/utils/systemReport.d.ts.map +1 -0
- package/typings/generated/src/utils/truncateMiddle.d.ts +1 -0
- package/typings/generated/src/utils/truncateMiddle.d.ts.map +1 -0
- package/typings/generated/src/utils/truncateMiddle.test.d.ts +1 -0
- package/typings/generated/src/utils/truncateMiddle.test.d.ts.map +1 -0
- package/typings/generated/src/utils/usageData.d.ts +4 -3
- package/typings/generated/src/utils/usageData.d.ts.map +1 -0
- package/typings/generated/src/utils/useFocusedOnVisible.d.ts +11 -0
- package/typings/generated/src/utils/useFocusedOnVisible.d.ts.map +1 -0
- package/typings/generated/src/utils/useHotKey.d.ts +1 -0
- package/typings/generated/src/utils/useHotKey.d.ts.map +1 -0
- package/typings/generated/src/utils/useStopwatch.d.ts +1 -0
- package/typings/generated/src/utils/useStopwatch.d.ts.map +1 -0
- package/typings/generated/src/utils/useStopwatch.test.d.ts +1 -0
- package/typings/generated/src/utils/useStopwatch.test.d.ts.map +1 -0
- package/typings/generated/test/dispatchTo.d.ts +1 -0
- package/typings/generated/test/dispatchTo.d.ts.map +1 -0
- package/typings/generated/test/testrenderer.d.ts +1 -0
- package/typings/generated/test/testrenderer.d.ts.map +1 -0
- package/dist/index.css +0 -1451
- package/dist/index.js +0 -122119
- package/tsconfig.json +0 -9
- package/typings/generated/src/About/documentationSlice.d.ts +0 -12
- /package/{dist/nordic-logo-white-icon-only-XIZBW537.png → src/Logo/nordic-logo-white-icon-only.png} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Keep this file in sync with colors.scss
|
|
8
|
+
export const colors = {
|
|
9
|
+
blueSlate: '#0033a0',
|
|
10
|
+
blueSlateLighter: '#7c98d3',
|
|
11
|
+
white: 'white',
|
|
12
|
+
black: 'black',
|
|
13
|
+
primary: '#00a9ce',
|
|
14
|
+
primaryDarkened: '#0098b9',
|
|
15
|
+
secondary: 'white',
|
|
16
|
+
accent: '#0033a0',
|
|
17
|
+
|
|
18
|
+
nordicBlue: '#00A9CE',
|
|
19
|
+
nordicBlue50: '#E0F5F9',
|
|
20
|
+
nordicBlue100: '#B3E5F0',
|
|
21
|
+
nordicBlue200: '#80D4E7',
|
|
22
|
+
nordicBlue300: '#4DC3DD',
|
|
23
|
+
nordicBlue400: '#26B6D5',
|
|
24
|
+
nordicBlue500: '#00A9CE',
|
|
25
|
+
nordicBlue600: '#00A2C9',
|
|
26
|
+
nordicBlue700: '#0098C2',
|
|
27
|
+
nordicBlue800: '#008FBC',
|
|
28
|
+
nordicBlue900: '#007EB0',
|
|
29
|
+
|
|
30
|
+
gray: '#607d8b',
|
|
31
|
+
gray50: '#eceff1',
|
|
32
|
+
gray100: '#cfd8dc',
|
|
33
|
+
gray200: '#b0bec5',
|
|
34
|
+
gray300: '#90a4ae',
|
|
35
|
+
gray400: '#78909c',
|
|
36
|
+
gray500: '#607d8b',
|
|
37
|
+
gray600: '#546e7a',
|
|
38
|
+
gray700: '#455a64',
|
|
39
|
+
gray800: '#37474f',
|
|
40
|
+
gray900: '#263238',
|
|
41
|
+
|
|
42
|
+
red: '#F44336',
|
|
43
|
+
red50: '#FFEBEE',
|
|
44
|
+
red100: '#FFCDD2',
|
|
45
|
+
red200: '#EF9A9A',
|
|
46
|
+
red300: '#E57373',
|
|
47
|
+
red400: '#EF5350',
|
|
48
|
+
red500: '#F44336',
|
|
49
|
+
red600: '#E53935',
|
|
50
|
+
red700: '#C62828',
|
|
51
|
+
red800: '#C62828',
|
|
52
|
+
red900: '#B71C1C',
|
|
53
|
+
|
|
54
|
+
indigo: '#3F51B5',
|
|
55
|
+
indigo50: '#E8EAF6',
|
|
56
|
+
indigo100: '#C5CAE9',
|
|
57
|
+
indigo200: '#9FA8DA',
|
|
58
|
+
indigo300: '#7986CB',
|
|
59
|
+
indigo400: '#5C6BC0',
|
|
60
|
+
indigo500: '#3F51B5',
|
|
61
|
+
indigo600: '#3949AB',
|
|
62
|
+
indigo700: '#303F9F',
|
|
63
|
+
indigo800: '#283593',
|
|
64
|
+
indigo900: '#1A237E',
|
|
65
|
+
|
|
66
|
+
amber: '#FFC107',
|
|
67
|
+
amber50: '#FFF8E1',
|
|
68
|
+
amber100: '#FFECB3',
|
|
69
|
+
amber200: '#FFE082',
|
|
70
|
+
amber300: '#FFD54F',
|
|
71
|
+
amber400: '#FFCA28',
|
|
72
|
+
amber500: '#FFC107',
|
|
73
|
+
amber600: '#FFB300',
|
|
74
|
+
amber700: '#FFA000',
|
|
75
|
+
amber800: '#FF8F00',
|
|
76
|
+
amber900: '#FF6F00',
|
|
77
|
+
|
|
78
|
+
purple: '#9C27B0',
|
|
79
|
+
purple50: '#F3E5F5',
|
|
80
|
+
purple100: '#E1BEE7',
|
|
81
|
+
purple200: '#CE93D8',
|
|
82
|
+
purple300: '#BA68C8',
|
|
83
|
+
purple400: '#AB47BC',
|
|
84
|
+
purple500: '#9C27B0',
|
|
85
|
+
purple600: '#8E24AA',
|
|
86
|
+
purple700: '#7B1FA2',
|
|
87
|
+
purple800: '#6A1B9A',
|
|
88
|
+
purple900: '#4A148C',
|
|
89
|
+
|
|
90
|
+
green: '#4CAF50',
|
|
91
|
+
green50: '#E8F5E9',
|
|
92
|
+
green100: '#C8E6C9',
|
|
93
|
+
green200: '#A5D6A7',
|
|
94
|
+
green300: '#81C784',
|
|
95
|
+
green400: '#66BB6A',
|
|
96
|
+
green500: '#4CAF50',
|
|
97
|
+
green600: '#43A047',
|
|
98
|
+
green700: '#388E3C',
|
|
99
|
+
green800: '#2E7D32',
|
|
100
|
+
green900: '#1B5E20',
|
|
101
|
+
|
|
102
|
+
deepPurple: '#673AB7',
|
|
103
|
+
deepPurple50: '#EDE7F6',
|
|
104
|
+
deepPurple100: '#D1C4E9',
|
|
105
|
+
deepPurple200: '#B39DDB',
|
|
106
|
+
deepPurple300: '#9575CD',
|
|
107
|
+
deepPurple400: '#7E57C2',
|
|
108
|
+
deepPurple500: '#673AB7',
|
|
109
|
+
deepPurple600: '#5E35B1',
|
|
110
|
+
deepPurple700: '#512DA8',
|
|
111
|
+
deepPurple800: '#4527A0',
|
|
112
|
+
deepPurple900: '#311B92',
|
|
113
|
+
|
|
114
|
+
orange: '#FF9800',
|
|
115
|
+
orange50: '#FFF3E0',
|
|
116
|
+
orange100: '#FFE0B2',
|
|
117
|
+
orange200: '#FFCC80',
|
|
118
|
+
orange300: '#FFB74D',
|
|
119
|
+
orange400: '#FFA726',
|
|
120
|
+
orange500: '#FF9800',
|
|
121
|
+
orange600: '#FB8C00',
|
|
122
|
+
orange700: '#F57C00',
|
|
123
|
+
orange800: '#EF6C00',
|
|
124
|
+
orange900: '#E65100',
|
|
125
|
+
|
|
126
|
+
lime: '#CDDC39',
|
|
127
|
+
lime50: '#F9FBE7',
|
|
128
|
+
lime100: '#F0F4C3',
|
|
129
|
+
lime200: '#E6EE9C',
|
|
130
|
+
lime300: '#DCE775',
|
|
131
|
+
lime400: '#D4E157',
|
|
132
|
+
lime500: '#CDDC39',
|
|
133
|
+
lime600: '#C0CA33',
|
|
134
|
+
lime700: '#AFB42B',
|
|
135
|
+
lime800: '#9E9D24',
|
|
136
|
+
lime900: '#827717',
|
|
137
|
+
|
|
138
|
+
pink: '#E91E63',
|
|
139
|
+
pink50: '#FCE4EC',
|
|
140
|
+
pink100: '#F8BBD0',
|
|
141
|
+
pink200: '#F48FB1',
|
|
142
|
+
pink300: '#F06292',
|
|
143
|
+
pink400: '#EC407A',
|
|
144
|
+
pink500: '#E91E63',
|
|
145
|
+
pink600: '#D81B60',
|
|
146
|
+
pink700: '#C2185B',
|
|
147
|
+
pink800: '#AD1457',
|
|
148
|
+
pink900: '#880E4F',
|
|
149
|
+
|
|
150
|
+
lightGreen: '#8BC34A',
|
|
151
|
+
lightGreen50: '#F1F8E9',
|
|
152
|
+
lightGreen100: '#DCEDC8',
|
|
153
|
+
lightGreen200: '#C5E1A5',
|
|
154
|
+
lightGreen300: '#AED581',
|
|
155
|
+
lightGreen400: '#9CCC65',
|
|
156
|
+
lightGreen500: '#8BC34A',
|
|
157
|
+
lightGreen600: '#7CB342',
|
|
158
|
+
lightGreen700: '#689F38',
|
|
159
|
+
lightGreen800: '#558B2F',
|
|
160
|
+
lightGreen900: '#33691E',
|
|
161
|
+
|
|
162
|
+
lightBlue: '#03A9F4',
|
|
163
|
+
lightBlue50: '#E1F5FE',
|
|
164
|
+
lightBlue100: '#B3E5FC',
|
|
165
|
+
lightBlue200: '#81D4FA',
|
|
166
|
+
lightBlue300: '#4FC3F7',
|
|
167
|
+
lightBlue400: '#29B6F6',
|
|
168
|
+
lightBlue500: '#03A9F4',
|
|
169
|
+
lightBlue600: '#039BE5',
|
|
170
|
+
lightBlue700: '#0288D1',
|
|
171
|
+
lightBlue800: '#0277BD',
|
|
172
|
+
lightBlue900: '#01579B',
|
|
173
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { ModuleVersion } from '@nordicsemiconductor/nrf-device-lib-js';
|
|
8
|
+
|
|
9
|
+
export default (version?: ModuleVersion) => {
|
|
10
|
+
if (version == null) {
|
|
11
|
+
return 'Unknown';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
switch (version.versionFormat) {
|
|
15
|
+
case 'incremental':
|
|
16
|
+
case 'string':
|
|
17
|
+
return String(version.version);
|
|
18
|
+
case 'semantic':
|
|
19
|
+
return `${version.version.major}.${version.version.minor}.${version.version.patch}`;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
getModuleVersions,
|
|
9
|
+
ModuleVersion,
|
|
10
|
+
} from '@nordicsemiconductor/nrf-device-lib-js';
|
|
11
|
+
import { spawn } from 'child_process';
|
|
12
|
+
import os from 'os';
|
|
13
|
+
|
|
14
|
+
import {
|
|
15
|
+
getDeviceLibContext,
|
|
16
|
+
getModuleVersion,
|
|
17
|
+
} from '../Device/deviceLibWrapper';
|
|
18
|
+
import logger from '../logging';
|
|
19
|
+
import describeVersion from './describeVersion';
|
|
20
|
+
|
|
21
|
+
const log = (description: string, moduleVersion?: ModuleVersion) => {
|
|
22
|
+
if (moduleVersion == null) {
|
|
23
|
+
logger.warn(`Unable to detect version of ${description}.`);
|
|
24
|
+
} else {
|
|
25
|
+
logger.info(
|
|
26
|
+
`Using ${description} version: ${describeVersion(moduleVersion)}`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const pathEnvVariable = () => {
|
|
32
|
+
if (process.platform !== 'darwin') return process.env;
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
...process.env,
|
|
36
|
+
PATH: `/bin:/usr/bin:/usr/local/bin:${process.env.PATH}`,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const spawnAsync = (cmd: string, params?: string[]) =>
|
|
41
|
+
new Promise<string>((resolve, reject) => {
|
|
42
|
+
const codeProcess = spawn(cmd, params, {
|
|
43
|
+
shell: true,
|
|
44
|
+
env: pathEnvVariable(),
|
|
45
|
+
});
|
|
46
|
+
let stdout = '';
|
|
47
|
+
let stderr = '';
|
|
48
|
+
codeProcess.stdout.on('data', data => {
|
|
49
|
+
stdout += data;
|
|
50
|
+
});
|
|
51
|
+
codeProcess.stderr.on('data', data => {
|
|
52
|
+
stderr += data;
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
codeProcess.on('close', (code, signal) => {
|
|
56
|
+
if (stderr) console.log(stderr);
|
|
57
|
+
if (code === 0 && signal === null) {
|
|
58
|
+
return resolve(stdout);
|
|
59
|
+
}
|
|
60
|
+
return reject();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const checkJLinkArchitectureOnDarwin = async () => {
|
|
65
|
+
const stdout = await spawnAsync('file $(which JLinkExe)');
|
|
66
|
+
const universalMatch = 'Mach-O universal binary with 2 architectures';
|
|
67
|
+
const intelMatch = 'Mach-O 64-bit executable x86_64';
|
|
68
|
+
if (stdout.includes(universalMatch)) return 'universal';
|
|
69
|
+
if (stdout.includes(intelMatch)) return 'x86_64';
|
|
70
|
+
return 'arm';
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export default async () => {
|
|
74
|
+
try {
|
|
75
|
+
const versions = await getModuleVersions(getDeviceLibContext());
|
|
76
|
+
|
|
77
|
+
log('nrf-device-lib-js', getModuleVersion('nrfdl-js', versions));
|
|
78
|
+
log('nrf-device-lib', getModuleVersion('nrfdl', versions));
|
|
79
|
+
log('nrfjprog DLL', getModuleVersion('jprog', versions));
|
|
80
|
+
log('JLink', getModuleVersion('JlinkARM', versions));
|
|
81
|
+
if (
|
|
82
|
+
process.platform === 'darwin' &&
|
|
83
|
+
os.cpus()[0].model.includes('Apple')
|
|
84
|
+
) {
|
|
85
|
+
const JLinkArchOnDarwin = await checkJLinkArchitectureOnDarwin();
|
|
86
|
+
|
|
87
|
+
if (JLinkArchOnDarwin && JLinkArchOnDarwin !== 'universal') {
|
|
88
|
+
const JLinkInstallerVersion =
|
|
89
|
+
JLinkArchOnDarwin === 'arm'
|
|
90
|
+
? '64-bit Apple M1 Installer'
|
|
91
|
+
: '64-bit Intel Installer';
|
|
92
|
+
logger.warn(
|
|
93
|
+
`It looks like you have installed JLink using ${JLinkInstallerVersion}, but currently we only support their Universal Installer for your system.`
|
|
94
|
+
);
|
|
95
|
+
logger.warn(
|
|
96
|
+
`Please install JLink: https://www.segger.com/downloads/jlink/JLink_MacOSX_V780c_universal.pkg`
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
} catch (error) {
|
|
101
|
+
logger.logError('Failed to get the library versions', error);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import childProcess from 'child_process';
|
|
8
|
+
import { shell } from 'electron';
|
|
9
|
+
import fs from 'fs';
|
|
10
|
+
import os from 'os';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Open a file in the default text application, depending on the user's OS.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} filePath path to the file to open.
|
|
16
|
+
* @returns {void}
|
|
17
|
+
*/
|
|
18
|
+
function openFile(filePath: string) {
|
|
19
|
+
const exists = fs.existsSync(filePath);
|
|
20
|
+
if (!exists) {
|
|
21
|
+
throw new Error(`Could not find file at path: ${filePath}`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const escapedPath = filePath.replace(/ /g, '\\ ');
|
|
25
|
+
|
|
26
|
+
// Could not find a method that works on all three platforms:
|
|
27
|
+
// * shell.openItem works on Windows and Linux but not on OSX
|
|
28
|
+
// * childProcess.execSync works on OSX but not on Windows
|
|
29
|
+
if (os.type() === 'Darwin') {
|
|
30
|
+
childProcess.execSync(`open ${escapedPath}`);
|
|
31
|
+
} else {
|
|
32
|
+
shell.openPath(escapedPath);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Open a URL in the user's default web browser.
|
|
38
|
+
*
|
|
39
|
+
* @param {string} url The URL to open.
|
|
40
|
+
* @returns {void}
|
|
41
|
+
*/
|
|
42
|
+
function openUrl(url: string) {
|
|
43
|
+
shell.openExternal(url);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { openFile, openUrl };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { readFileSync } from 'fs';
|
|
8
|
+
|
|
9
|
+
/* Explanation for that cascade of eslint-disable-next-line and @ts-ignore:
|
|
10
|
+
'../../../../package.json' will resolve correctly when `shared` is used in
|
|
11
|
+
a real app, so it is fine.
|
|
12
|
+
|
|
13
|
+
When checking `shared` '../../../../package.json' will not be there, so we
|
|
14
|
+
need to disable the errors that occur in that case. That is done by the
|
|
15
|
+
second and third statement:
|
|
16
|
+
// @ts-ignore This will be available when the app uses it.
|
|
17
|
+
// eslint-disable-next-line import/no-unresolved
|
|
18
|
+
|
|
19
|
+
Usually we would not use `@ts-ignore` but rather `@ts-expect-error`. But
|
|
20
|
+
the latter is not possible for a different reason: When we type-check an
|
|
21
|
+
app that uses shared, that line will now be type-checked too and now
|
|
22
|
+
'../../../../package.json' actually is there, so `ts-expect-error` would
|
|
23
|
+
lead to an error, telling us that contrary to our expectation there is no
|
|
24
|
+
error there.
|
|
25
|
+
|
|
26
|
+
Because of that we have to use `@ts-ignore`. But that is usually forbidden
|
|
27
|
+
by the linting rules, so additionally we have to add that first line
|
|
28
|
+
eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
29
|
+
|
|
30
|
+
Phew!
|
|
31
|
+
*/
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
33
|
+
// @ts-ignore This will be available when the app uses it.
|
|
34
|
+
// eslint-disable-next-line import/no-unresolved
|
|
35
|
+
import packageJsons from '../../../../package.json';
|
|
36
|
+
import type { PackageJson } from './AppTypes';
|
|
37
|
+
|
|
38
|
+
let packageJson: PackageJson = packageJsons;
|
|
39
|
+
|
|
40
|
+
export const loadPackageJson = (packageJsonPath: string) => {
|
|
41
|
+
try {
|
|
42
|
+
packageJson = JSON.parse(
|
|
43
|
+
readFileSync(packageJsonPath, 'utf8')
|
|
44
|
+
) as PackageJson;
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.error(
|
|
47
|
+
'Failed to read "package.json" of the app. Please tell the app developer to package it correctly.'
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export default () => {
|
|
53
|
+
if (packageJson == null) {
|
|
54
|
+
throw new Error(`package.json was not read. This can be caused by one of two things:
|
|
55
|
+
- Either a programming error in the app that tries to use the content of package.json very early before it was loaded.
|
|
56
|
+
- Or if the app was packaged without a package.json, but in that case the launcher should not even launch this app.`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return packageJson;
|
|
60
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { AutoDetectTypes } from '@serialport/bindings-cpp';
|
|
8
|
+
import Store from 'electron-store';
|
|
9
|
+
import { SerialPortOpenOptions } from 'serialport';
|
|
10
|
+
import { v4 as uuid } from 'uuid';
|
|
11
|
+
|
|
12
|
+
import logger from '../logging';
|
|
13
|
+
import packageJson from './packageJson';
|
|
14
|
+
|
|
15
|
+
export interface SerialSettings {
|
|
16
|
+
serialPortOptions: Omit<SerialPortOpenOptions<AutoDetectTypes>, 'path'>;
|
|
17
|
+
lastUpdated: number;
|
|
18
|
+
vComIndex: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface TerminalSettings {
|
|
22
|
+
lineMode: boolean;
|
|
23
|
+
echoOnShell: boolean;
|
|
24
|
+
lineEnding: string;
|
|
25
|
+
clearOnSend: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const sharedStore = new Store<{
|
|
29
|
+
verboseLogging: boolean;
|
|
30
|
+
isSendingUsageData: boolean | undefined;
|
|
31
|
+
clientId?: string;
|
|
32
|
+
}>({
|
|
33
|
+
name: 'pc-nrfconnect-shared',
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
/* These nicknames are also read by the VS Code extension,
|
|
37
|
+
so changing e.g. the keys here would break the usage there. */
|
|
38
|
+
export const persistNickname = (serialNumber: string, nickname: string) =>
|
|
39
|
+
sharedStore.set(`${serialNumber}.name`, nickname);
|
|
40
|
+
export const getPersistedNickname = (serialNumber: string) =>
|
|
41
|
+
sharedStore.get(`${serialNumber}.name`, '') as string;
|
|
42
|
+
|
|
43
|
+
export const persistIsFavorite = (serialNumber: string, value: boolean) =>
|
|
44
|
+
sharedStore.set(`${serialNumber}.fav`, value);
|
|
45
|
+
export const getPersistedIsFavorite = (serialNumber: string) =>
|
|
46
|
+
sharedStore.get(`${serialNumber}.fav`, false) as boolean;
|
|
47
|
+
|
|
48
|
+
export const persistSerialPortSettings = (
|
|
49
|
+
serialNumber: string,
|
|
50
|
+
serialPortSettings: Omit<SerialSettings, 'lastUpdated'>
|
|
51
|
+
) =>
|
|
52
|
+
sharedStore.set(`${serialNumber}.${packageJson().name}`, {
|
|
53
|
+
...serialPortSettings,
|
|
54
|
+
lastUpdated: Date.now(),
|
|
55
|
+
});
|
|
56
|
+
export const getPersistedSerialPortSettings = (
|
|
57
|
+
serialNumber: string
|
|
58
|
+
): SerialSettings | undefined => {
|
|
59
|
+
const appName = packageJson().name;
|
|
60
|
+
logger.info(
|
|
61
|
+
`Getting serialport options from persistent store ${serialNumber}.${appName}`
|
|
62
|
+
);
|
|
63
|
+
return sharedStore.get(`${serialNumber}.${appName}`);
|
|
64
|
+
};
|
|
65
|
+
export const persistTerminalSettings = (
|
|
66
|
+
serialNumber: string,
|
|
67
|
+
vComIndex: number,
|
|
68
|
+
terminalSettings: TerminalSettings
|
|
69
|
+
) =>
|
|
70
|
+
sharedStore.set(
|
|
71
|
+
`${serialNumber}.vCom-${vComIndex}.TerminalSettings`,
|
|
72
|
+
terminalSettings
|
|
73
|
+
);
|
|
74
|
+
export const getPersistedTerminalSettings = (
|
|
75
|
+
serialNumber: string,
|
|
76
|
+
vComIndex: number
|
|
77
|
+
): TerminalSettings | undefined => {
|
|
78
|
+
logger.info(
|
|
79
|
+
`Get terminal settings from persistent store ${serialNumber}.vCom-${vComIndex}.TerminalSettings`
|
|
80
|
+
);
|
|
81
|
+
return sharedStore.get(
|
|
82
|
+
`${serialNumber}.vCom-${vComIndex}.TerminalSettings`
|
|
83
|
+
);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const persistIsSendingUsageData = (value: boolean) =>
|
|
87
|
+
sharedStore.set('isSendingUsageData', value);
|
|
88
|
+
export const getIsSendingUsageData = () =>
|
|
89
|
+
sharedStore.get('isSendingUsageData', undefined) as boolean | undefined;
|
|
90
|
+
export const deleteIsSendingUsageData = () =>
|
|
91
|
+
sharedStore.delete('isSendingUsageData');
|
|
92
|
+
|
|
93
|
+
const existingUsageDataClientId = () => sharedStore.get('clientId');
|
|
94
|
+
const newUsageDataClientId = () => {
|
|
95
|
+
const clientId = uuid();
|
|
96
|
+
sharedStore.set('clientId', clientId);
|
|
97
|
+
|
|
98
|
+
return clientId;
|
|
99
|
+
};
|
|
100
|
+
export const getUsageDataClientId = () =>
|
|
101
|
+
existingUsageDataClientId() ?? newUsageDataClientId();
|
|
102
|
+
|
|
103
|
+
export const persistIsLoggingVerbose = (value: boolean) =>
|
|
104
|
+
sharedStore.set('isLoggingVerbose', value);
|
|
105
|
+
export const getIsLoggingVerbose = () =>
|
|
106
|
+
sharedStore.get('isLoggingVerbose', false);
|
|
107
|
+
|
|
108
|
+
// This one must be initialised lazily, because the package.json is not read yet when this module is initialised.
|
|
109
|
+
// This can probably be changed when we bundle shared with the apps.
|
|
110
|
+
let appSpecificStore: Store | undefined;
|
|
111
|
+
|
|
112
|
+
interface SharedAppSpecificStoreSchema {
|
|
113
|
+
currentPane?: number;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export const getAppSpecificStore = <
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
118
|
+
StoreSchema extends Record<string, any>
|
|
119
|
+
>(
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
options?: Store.Options<any>
|
|
122
|
+
) => {
|
|
123
|
+
if (appSpecificStore == null) {
|
|
124
|
+
appSpecificStore = new Store({
|
|
125
|
+
name: packageJson().name,
|
|
126
|
+
clearInvalidConfig: true,
|
|
127
|
+
// @ts-expect-error `electron-store` assumes the app is the version of the launcher, override this to be the same as the app version
|
|
128
|
+
projectVersion: packageJson().version,
|
|
129
|
+
...options,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return appSpecificStore as Store<
|
|
134
|
+
StoreSchema & SharedAppSpecificStoreSchema
|
|
135
|
+
>;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const persistCurrentPane = (currentPane: number) =>
|
|
139
|
+
getAppSpecificStore<SharedAppSpecificStoreSchema>().set(
|
|
140
|
+
`currentPane`,
|
|
141
|
+
currentPane
|
|
142
|
+
);
|
|
143
|
+
export const getPersistedCurrentPane = () =>
|
|
144
|
+
getAppSpecificStore<SharedAppSpecificStoreSchema>().get(`currentPane`);
|