@nordicsemiconductor/pc-nrfconnect-shared 76.0.0 → 79.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/custom.md +10 -0
- package/.husky/pre-push +3 -0
- package/.renovaterc.json +10 -0
- package/Changelog.md +64 -0
- package/azure-pipelines.yml +36 -0
- package/config/tailwind.config.js +1 -1
- package/{src/utils/AppTypes.ts → ipc/MetaFiles.ts} +11 -7
- package/ipc/README.md +43 -0
- package/ipc/appDetails.ts +47 -0
- package/ipc/apps.ts +119 -0
- package/ipc/infrastructure/mainToRenderer.ts +49 -0
- package/ipc/infrastructure/rendererToMain.ts +51 -0
- package/ipc/openWindow.ts +35 -0
- package/ipc/preventSleep.ts +23 -0
- package/ipc/serialPort.ts +167 -0
- package/ipc/sources.ts +19 -0
- package/jest.config.js +7 -0
- package/main/index.ts +19 -21
- package/mocks/electronMock.ts +2 -0
- package/package.json +2 -16
- package/scripts/check-app-properties.ts +1 -1
- package/scripts/esbuild-renderer.js +3 -1
- package/scripts/esbuild.js +3 -3
- package/scripts/nordic-publish.ts +1 -1
- package/scripts/release-shared.ts +1 -1
- package/src/About/ApplicationCard.tsx +6 -35
- package/src/About/DeviceCard.tsx +1 -1
- package/src/App/App.tsx +2 -2
- package/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.tsx +2 -2
- package/src/Device/deviceInfo/deviceInfo.ts +2 -2
- package/src/SerialPort/SerialPort.test.ts +5 -9
- package/src/SerialPort/SerialPort.ts +47 -77
- package/src/index.ts +5 -12
- package/src/logging/sendInitialLogMessages.ts +35 -38
- package/src/utils/packageJson.ts +2 -2
- package/src/utils/systemReport.ts +3 -3
- package/src/utils/usageData.ts +1 -1
- package/tailwind.config.js +11 -0
- package/tsconfig.json +9 -0
- package/dist/bootstrap.css +0 -8951
- package/scripts/nordic-publish.js +0 -89
- package/src/OpenApp/openApp.ts +0 -18
- package/typings/generated/main/index.d.ts +0 -26
- package/typings/generated/main/index.d.ts.map +0 -1
- package/typings/generated/src/About/About.d.ts +0 -8
- package/typings/generated/src/About/About.d.ts.map +0 -1
- package/typings/generated/src/About/AboutButton.d.ts +0 -9
- package/typings/generated/src/About/AboutButton.d.ts.map +0 -1
- package/typings/generated/src/About/ApplicationCard.d.ts +0 -4
- package/typings/generated/src/About/ApplicationCard.d.ts.map +0 -1
- package/typings/generated/src/About/DeviceCard.d.ts +0 -4
- package/typings/generated/src/About/DeviceCard.d.ts.map +0 -1
- package/typings/generated/src/About/DocumentationCard.d.ts +0 -6
- package/typings/generated/src/About/DocumentationCard.d.ts.map +0 -1
- package/typings/generated/src/About/DocumentationSection.d.ts +0 -10
- package/typings/generated/src/About/DocumentationSection.d.ts.map +0 -1
- package/typings/generated/src/About/Section.d.ts +0 -8
- package/typings/generated/src/About/Section.d.ts.map +0 -1
- package/typings/generated/src/About/ShortcutButton.d.ts +0 -7
- package/typings/generated/src/About/ShortcutButton.d.ts.map +0 -1
- package/typings/generated/src/About/SupportCard.d.ts +0 -4
- package/typings/generated/src/About/SupportCard.d.ts.map +0 -1
- package/typings/generated/src/About/shortcutSlice.d.ts +0 -12
- package/typings/generated/src/About/shortcutSlice.d.ts.map +0 -1
- package/typings/generated/src/Alert/Alert.d.ts +0 -11
- package/typings/generated/src/Alert/Alert.d.ts.map +0 -1
- package/typings/generated/src/App/App.d.ts +0 -31
- package/typings/generated/src/App/App.d.ts.map +0 -1
- package/typings/generated/src/App/App.test.d.ts +0 -2
- package/typings/generated/src/App/App.test.d.ts.map +0 -1
- package/typings/generated/src/App/ConnectedToStore.d.ts +0 -8
- package/typings/generated/src/App/ConnectedToStore.d.ts.map +0 -1
- package/typings/generated/src/App/VisibilityBar.d.ts +0 -7
- package/typings/generated/src/App/VisibilityBar.d.ts.map +0 -1
- package/typings/generated/src/App/appLayout.d.ts +0 -17
- package/typings/generated/src/App/appLayout.d.ts.map +0 -1
- package/typings/generated/src/Button/Button.d.ts +0 -14
- package/typings/generated/src/Button/Button.d.ts.map +0 -1
- package/typings/generated/src/Card/Card.d.ts +0 -8
- package/typings/generated/src/Card/Card.d.ts.map +0 -1
- package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts +0 -5
- package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts.map +0 -1
- package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts +0 -13
- package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts +0 -12
- package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts +0 -8
- package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts +0 -11
- package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts +0 -8
- package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts +0 -11
- package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts +0 -11
- package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts +0 -10
- package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts +0 -8
- package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts +0 -7
- package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts +0 -21
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts +0 -2
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts +0 -10
- package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts +0 -9
- package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts +0 -8
- package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts.map +0 -1
- package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts +0 -4
- package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts +0 -30
- package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts +0 -19
- package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceLibWrapper.d.ts +0 -9
- package/typings/generated/src/Device/deviceLibWrapper.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceLibWrapper.test.d.ts +0 -2
- package/typings/generated/src/Device/deviceLibWrapper.test.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceLister.d.ts +0 -27
- package/typings/generated/src/Device/deviceLister.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceLister.test.d.ts +0 -3
- package/typings/generated/src/Device/deviceLister.test.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceSetup.d.ts +0 -41
- package/typings/generated/src/Device/deviceSetup.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceSetupSlice.d.ts +0 -21
- package/typings/generated/src/Device/deviceSetupSlice.d.ts.map +0 -1
- package/typings/generated/src/Device/deviceSlice.d.ts +0 -31
- package/typings/generated/src/Device/deviceSlice.d.ts.map +0 -1
- package/typings/generated/src/Device/dfu-cc.d.ts +0 -4
- package/typings/generated/src/Device/dfu-cc.d.ts.map +0 -1
- package/typings/generated/src/Device/initPacket.d.ts +0 -110
- package/typings/generated/src/Device/initPacket.d.ts.map +0 -1
- package/typings/generated/src/Device/jprogOperations.d.ts +0 -3
- package/typings/generated/src/Device/jprogOperations.d.ts.map +0 -1
- package/typings/generated/src/Device/sdfuOperations.d.ts +0 -15
- package/typings/generated/src/Device/sdfuOperations.d.ts.map +0 -1
- package/typings/generated/src/Dialog/Dialog.d.ts +0 -65
- package/typings/generated/src/Dialog/Dialog.d.ts.map +0 -1
- package/typings/generated/src/Dialog/Dialog.test.d.ts +0 -2
- package/typings/generated/src/Dialog/Dialog.test.d.ts.map +0 -1
- package/typings/generated/src/Dropdown/Dropdown.d.ts +0 -18
- package/typings/generated/src/Dropdown/Dropdown.d.ts.map +0 -1
- package/typings/generated/src/Dropdown/Dropdown.test.d.ts +0 -2
- package/typings/generated/src/Dropdown/Dropdown.test.d.ts.map +0 -1
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts +0 -27
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts.map +0 -1
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts +0 -2
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts.map +0 -1
- package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts +0 -5
- package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts.map +0 -1
- package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts +0 -2
- package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts.map +0 -1
- package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts +0 -24
- package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts.map +0 -1
- package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts +0 -2
- package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts.map +0 -1
- package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts +0 -13
- package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts.map +0 -1
- package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts +0 -2
- package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts.map +0 -1
- package/typings/generated/src/FlashMessage/FlashMessage.d.ts +0 -5
- package/typings/generated/src/FlashMessage/FlashMessage.d.ts.map +0 -1
- package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts +0 -20
- package/typings/generated/src/FlashMessage/FlashMessageSlice.d.ts.map +0 -1
- package/typings/generated/src/InlineInput/InlineInput.d.ts +0 -15
- package/typings/generated/src/InlineInput/InlineInput.d.ts.map +0 -1
- package/typings/generated/src/InlineInput/NumberInlineInput.d.ts +0 -13
- package/typings/generated/src/InlineInput/NumberInlineInput.d.ts.map +0 -1
- package/typings/generated/src/Log/LogEntry.d.ts +0 -8
- package/typings/generated/src/Log/LogEntry.d.ts.map +0 -1
- package/typings/generated/src/Log/LogViewer.d.ts +0 -6
- package/typings/generated/src/Log/LogViewer.d.ts.map +0 -1
- package/typings/generated/src/Log/logSlice.d.ts +0 -13
- package/typings/generated/src/Log/logSlice.d.ts.map +0 -1
- package/typings/generated/src/Log/syncLogToStore.d.ts +0 -12
- package/typings/generated/src/Log/syncLogToStore.d.ts.map +0 -1
- package/typings/generated/src/Logo/Logo.d.ts +0 -7
- package/typings/generated/src/Logo/Logo.d.ts.map +0 -1
- package/typings/generated/src/Main/Main.d.ts +0 -7
- package/typings/generated/src/Main/Main.d.ts.map +0 -1
- package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts +0 -15
- package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts.map +0 -1
- package/typings/generated/src/NavBar/NavBar.d.ts +0 -7
- package/typings/generated/src/NavBar/NavBar.d.ts.map +0 -1
- package/typings/generated/src/NavBar/NavMenu.d.ts +0 -4
- package/typings/generated/src/NavBar/NavMenu.d.ts.map +0 -1
- package/typings/generated/src/NavBar/NavMenu.test.d.ts +0 -2
- package/typings/generated/src/NavBar/NavMenu.test.d.ts.map +0 -1
- package/typings/generated/src/NavBar/NavMenuItem.d.ts +0 -10
- package/typings/generated/src/NavBar/NavMenuItem.d.ts.map +0 -1
- package/typings/generated/src/NumberInputWithSlider/NumberInputSliderWithUnit.d.ts +0 -14
- package/typings/generated/src/NumberInputWithSlider/NumberInputSliderWithUnit.d.ts.map +0 -1
- package/typings/generated/src/OpenApp/openApp.d.ts +0 -8
- package/typings/generated/src/OpenApp/openApp.d.ts.map +0 -1
- package/typings/generated/src/Panes/FeedbackPane.d.ts +0 -7
- package/typings/generated/src/Panes/FeedbackPane.d.ts.map +0 -1
- package/typings/generated/src/PseudoButton/PseudoButton.d.ts +0 -11
- package/typings/generated/src/PseudoButton/PseudoButton.d.ts.map +0 -1
- package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts +0 -14
- package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts.map +0 -1
- package/typings/generated/src/SerialPort/SerialPort.d.ts +0 -22
- package/typings/generated/src/SerialPort/SerialPort.d.ts.map +0 -1
- package/typings/generated/src/SerialPort/SerialPort.test.d.ts +0 -2
- package/typings/generated/src/SerialPort/SerialPort.test.d.ts.map +0 -1
- package/typings/generated/src/Shortcuts/ShortcutItem.d.ts +0 -9
- package/typings/generated/src/Shortcuts/ShortcutItem.d.ts.map +0 -1
- package/typings/generated/src/Shortcuts/ShortcutModal.d.ts +0 -9
- package/typings/generated/src/Shortcuts/ShortcutModal.d.ts.map +0 -1
- package/typings/generated/src/SidePanel/Group.d.ts +0 -17
- package/typings/generated/src/SidePanel/Group.d.ts.map +0 -1
- package/typings/generated/src/SidePanel/SidePanel.d.ts +0 -8
- package/typings/generated/src/SidePanel/SidePanel.d.ts.map +0 -1
- package/typings/generated/src/Slider/Bar.d.ts +0 -8
- package/typings/generated/src/Slider/Bar.d.ts.map +0 -1
- package/typings/generated/src/Slider/Factor.test.d.ts +0 -2
- package/typings/generated/src/Slider/Factor.test.d.ts.map +0 -1
- package/typings/generated/src/Slider/Handle.d.ts +0 -14
- package/typings/generated/src/Slider/Handle.d.ts.map +0 -1
- package/typings/generated/src/Slider/Slider.d.ts +0 -16
- package/typings/generated/src/Slider/Slider.d.ts.map +0 -1
- package/typings/generated/src/Slider/Slider.test.d.ts +0 -2
- package/typings/generated/src/Slider/Slider.test.d.ts.map +0 -1
- package/typings/generated/src/Slider/Ticks.d.ts +0 -13
- package/typings/generated/src/Slider/Ticks.d.ts.map +0 -1
- package/typings/generated/src/Slider/factor.d.ts +0 -2
- package/typings/generated/src/Slider/factor.d.ts.map +0 -1
- package/typings/generated/src/Slider/percentage.d.ts +0 -5
- package/typings/generated/src/Slider/percentage.d.ts.map +0 -1
- package/typings/generated/src/Slider/range.d.ts +0 -14
- package/typings/generated/src/Slider/range.d.ts.map +0 -1
- package/typings/generated/src/StartStopButton/StartStopButton.d.ts +0 -17
- package/typings/generated/src/StartStopButton/StartStopButton.d.ts.map +0 -1
- package/typings/generated/src/StateSelector/StateSelector.d.ts +0 -16
- package/typings/generated/src/StateSelector/StateSelector.d.ts.map +0 -1
- package/typings/generated/src/Stepper/Stepper.d.ts +0 -27
- package/typings/generated/src/Stepper/Stepper.d.ts.map +0 -1
- package/typings/generated/src/Toggle/Toggle.d.ts +0 -20
- package/typings/generated/src/Toggle/Toggle.d.ts.map +0 -1
- package/typings/generated/src/index.d.ts +0 -73
- package/typings/generated/src/index.d.ts.map +0 -1
- package/typings/generated/src/logging/appTransport.d.ts +0 -13
- package/typings/generated/src/logging/appTransport.d.ts.map +0 -1
- package/typings/generated/src/logging/appTransport.test.d.ts +0 -2
- package/typings/generated/src/logging/appTransport.test.d.ts.map +0 -1
- package/typings/generated/src/logging/describeError.d.ts +0 -3
- package/typings/generated/src/logging/describeError.d.ts.map +0 -1
- package/typings/generated/src/logging/describeError.test.d.ts +0 -2
- package/typings/generated/src/logging/describeError.test.d.ts.map +0 -1
- package/typings/generated/src/logging/index.d.ts +0 -10
- package/typings/generated/src/logging/index.d.ts.map +0 -1
- package/typings/generated/src/logging/logBuffer.d.ts +0 -10
- package/typings/generated/src/logging/logBuffer.d.ts.map +0 -1
- package/typings/generated/src/logging/logBuffer.test.d.ts +0 -2
- package/typings/generated/src/logging/logBuffer.test.d.ts.map +0 -1
- package/typings/generated/src/logging/sendInitialLogMessages.d.ts +0 -3
- package/typings/generated/src/logging/sendInitialLogMessages.d.ts.map +0 -1
- package/typings/generated/src/store.d.ts +0 -68
- package/typings/generated/src/store.d.ts.map +0 -1
- package/typings/generated/src/utils/AppTypes.d.ts +0 -50
- package/typings/generated/src/utils/AppTypes.d.ts.map +0 -1
- package/typings/generated/src/utils/appDirs.d.ts +0 -36
- package/typings/generated/src/utils/appDirs.d.ts.map +0 -1
- package/typings/generated/src/utils/bleChannels.d.ts +0 -7
- package/typings/generated/src/utils/bleChannels.d.ts.map +0 -1
- package/typings/generated/src/utils/classNames.d.ts +0 -18
- package/typings/generated/src/utils/classNames.d.ts.map +0 -1
- package/typings/generated/src/utils/classNames.test.d.ts +0 -2
- package/typings/generated/src/utils/classNames.test.d.ts.map +0 -1
- package/typings/generated/src/utils/colors.d.ts +0 -154
- package/typings/generated/src/utils/colors.d.ts.map +0 -1
- package/typings/generated/src/utils/describeVersion.d.ts +0 -4
- package/typings/generated/src/utils/describeVersion.d.ts.map +0 -1
- package/typings/generated/src/utils/environment.d.ts +0 -2
- package/typings/generated/src/utils/environment.d.ts.map +0 -1
- package/typings/generated/src/utils/logLibVersions.d.ts +0 -3
- package/typings/generated/src/utils/logLibVersions.d.ts.map +0 -1
- package/typings/generated/src/utils/open.d.ts +0 -16
- package/typings/generated/src/utils/open.d.ts.map +0 -1
- package/typings/generated/src/utils/packageJson.d.ts +0 -5
- package/typings/generated/src/utils/packageJson.d.ts.map +0 -1
- package/typings/generated/src/utils/persistentStore.d.ts +0 -36
- package/typings/generated/src/utils/persistentStore.d.ts.map +0 -1
- package/typings/generated/src/utils/systemReport.d.ts +0 -5
- package/typings/generated/src/utils/systemReport.d.ts.map +0 -1
- package/typings/generated/src/utils/truncateMiddle.d.ts +0 -3
- package/typings/generated/src/utils/truncateMiddle.d.ts.map +0 -1
- package/typings/generated/src/utils/truncateMiddle.test.d.ts +0 -2
- package/typings/generated/src/utils/truncateMiddle.test.d.ts.map +0 -1
- package/typings/generated/src/utils/usageData.d.ts +0 -64
- package/typings/generated/src/utils/usageData.d.ts.map +0 -1
- package/typings/generated/src/utils/useFocusedOnVisible.d.ts +0 -11
- package/typings/generated/src/utils/useFocusedOnVisible.d.ts.map +0 -1
- package/typings/generated/src/utils/useHotKey.d.ts +0 -7
- package/typings/generated/src/utils/useHotKey.d.ts.map +0 -1
- package/typings/generated/src/utils/useStopwatch.d.ts +0 -23
- package/typings/generated/src/utils/useStopwatch.d.ts.map +0 -1
- package/typings/generated/src/utils/useStopwatch.test.d.ts +0 -2
- package/typings/generated/src/utils/useStopwatch.test.d.ts.map +0 -1
- package/typings/generated/test/dispatchTo.d.ts +0 -4
- package/typings/generated/test/dispatchTo.d.ts.map +0 -1
- package/typings/generated/test/testrenderer.d.ts +0 -6
- package/typings/generated/test/testrenderer.d.ts.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Custom issue template
|
|
3
|
+
about: Please report bugs and feedback in DevZone
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Please use the [Nordic DevZone](https://devzone.nordicsemi.com) portal to report bugs, questions or feedback in general. If you would like to suggest code changes, feel free to submit a pull request.
|
package/.husky/pre-push
ADDED
package/.renovaterc.json
ADDED
package/Changelog.md
CHANGED
|
@@ -7,6 +7,70 @@ This project does _not_ adhere to
|
|
|
7
7
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html) but contrary to it
|
|
8
8
|
every new version is a new major version.
|
|
9
9
|
|
|
10
|
+
## 79 - Unreleased
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- New name for the shared package, it is now under the `@nordicsemiconductor`
|
|
15
|
+
namespace on npm. The idea is that apps will now install shared from npm,
|
|
16
|
+
and use the new name `@nordicsemiconductor/pc-nrfconnect-shared` when
|
|
17
|
+
importing components from shared
|
|
18
|
+
|
|
19
|
+
### Steps to upgrade when using this package
|
|
20
|
+
|
|
21
|
+
- Change all references from `pc-nrfconnect-shared` to
|
|
22
|
+
`@nordicsemiconductor/pc-nrfconnect-shared`
|
|
23
|
+
|
|
24
|
+
```diff
|
|
25
|
+
- import { App } from 'pc-nrfconnect-shared';
|
|
26
|
+
+ import { App } from '@nordicsemiconductor/pc-nrfconnect-shared';
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- Also check references in `tsconfig.json`, s`jest.config.js` and
|
|
30
|
+
`.scss`-files.
|
|
31
|
+
|
|
32
|
+
## 78 - 2023-08-03
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Shared now only uses `device.jlink.boardversion` instead of
|
|
37
|
+
`jlink.boardVersion`.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- `deviceInfo` can now be used in applications that don't make use of the
|
|
42
|
+
shared redux store.
|
|
43
|
+
|
|
44
|
+
## 77 - 2023-08-01
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- Functions to invoke functionality in the main process via IPC:
|
|
49
|
+
|
|
50
|
+
- `apps.getDownloadableApps()`
|
|
51
|
+
- `apps.installDownloadableApp(app, version?)`
|
|
52
|
+
- `openWindow.openApp(app, openAppOptions?)` (This was previously exported
|
|
53
|
+
as `openAppWindow``)
|
|
54
|
+
- `openWindow.openLauncher()`
|
|
55
|
+
- `preventSleep.start()`
|
|
56
|
+
- `preventSleep.end(id)`
|
|
57
|
+
|
|
58
|
+
### Removed
|
|
59
|
+
|
|
60
|
+
- Export of the serialport IPC channel names.
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
|
|
64
|
+
- On the build server the generated types are removed before regenerating
|
|
65
|
+
them, so we make sure that we do not have stale declaration files for source
|
|
66
|
+
files we already removed.
|
|
67
|
+
|
|
68
|
+
### Steps to upgrade when using this package
|
|
69
|
+
|
|
70
|
+
- Replace all code that still uses `ipcRenderer` with invocations of the
|
|
71
|
+
appropriate functions.
|
|
72
|
+
- Replace invocations of `openAppWindow` with `openWindow.openApp`.
|
|
73
|
+
|
|
10
74
|
## 76 - 2023-07-28
|
|
11
75
|
|
|
12
76
|
### Changed
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
trigger:
|
|
2
|
+
- main
|
|
3
|
+
pool:
|
|
4
|
+
vmImage: 'ubuntu-latest'
|
|
5
|
+
variables:
|
|
6
|
+
- group: wayland
|
|
7
|
+
steps:
|
|
8
|
+
- task: NodeTool@0
|
|
9
|
+
inputs:
|
|
10
|
+
versionSpec: 18
|
|
11
|
+
- script: |
|
|
12
|
+
set -o errexit -o pipefail
|
|
13
|
+
npm ci
|
|
14
|
+
npm run check
|
|
15
|
+
npm run generate-types
|
|
16
|
+
npm test -- --coverage --coverageReporters=cobertura
|
|
17
|
+
npx esbuild scripts/nordic-publish.ts --bundle --outfile=scripts/nordic-publish.js --platform=node --log-level=warning --minify
|
|
18
|
+
node scripts/esbuild-bootstrap.js
|
|
19
|
+
npm pack
|
|
20
|
+
displayName: 'Build, Test, Compile and Pack'
|
|
21
|
+
- bash: |
|
|
22
|
+
set -o errexit -o pipefail
|
|
23
|
+
cp *.tgz "$(Build.ArtifactStagingDirectory)"
|
|
24
|
+
#Leave for now, testing purposes.
|
|
25
|
+
#condition: ne(variables['Build.Reason'], 'PullRequest')
|
|
26
|
+
displayName: 'Copy Artifacts'
|
|
27
|
+
- task: PublishCodeCoverageResults@1
|
|
28
|
+
displayName: Publish code coverage
|
|
29
|
+
inputs:
|
|
30
|
+
codeCoverageTool: Cobertura
|
|
31
|
+
summaryFileLocation: $(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
|
|
32
|
+
- task: PublishPipelineArtifact@1
|
|
33
|
+
inputs:
|
|
34
|
+
targetPath: $(Build.ArtifactStagingDirectory)
|
|
35
|
+
publishLocation: 'pipeline'
|
|
36
|
+
displayName: 'Publish artifacts to artifact storage'
|
|
@@ -4,15 +4,19 @@
|
|
|
4
4
|
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
export type UrlString = string;
|
|
8
|
+
|
|
7
9
|
export interface SourceJson {
|
|
8
10
|
name: string;
|
|
9
|
-
apps:
|
|
11
|
+
apps: UrlString[];
|
|
10
12
|
}
|
|
11
13
|
|
|
14
|
+
export type WithdrawnJson = UrlString[];
|
|
15
|
+
|
|
12
16
|
export type AppVersions = {
|
|
13
17
|
[version: string]: {
|
|
14
18
|
shasum?: string;
|
|
15
|
-
tarballUrl:
|
|
19
|
+
tarballUrl: UrlString;
|
|
16
20
|
};
|
|
17
21
|
};
|
|
18
22
|
|
|
@@ -20,9 +24,9 @@ export interface AppInfo {
|
|
|
20
24
|
name: string;
|
|
21
25
|
displayName: string;
|
|
22
26
|
description: string;
|
|
23
|
-
homepage?:
|
|
24
|
-
iconUrl:
|
|
25
|
-
releaseNotesUrl:
|
|
27
|
+
homepage?: UrlString;
|
|
28
|
+
iconUrl: UrlString;
|
|
29
|
+
releaseNotesUrl: UrlString;
|
|
26
30
|
latestVersion: string;
|
|
27
31
|
versions: AppVersions;
|
|
28
32
|
installed?: {
|
|
@@ -44,7 +48,7 @@ export interface PackageJson {
|
|
|
44
48
|
bin?: ObjectContainingOptionalStrings | string;
|
|
45
49
|
dependencies?: ObjectContainingOptionalStrings;
|
|
46
50
|
description?: string;
|
|
47
|
-
homepage?:
|
|
51
|
+
homepage?: UrlString;
|
|
48
52
|
devDependencies?: ObjectContainingOptionalStrings;
|
|
49
53
|
displayName?: string;
|
|
50
54
|
engines?: ObjectContainingOptionalStrings;
|
|
@@ -54,7 +58,7 @@ export interface PackageJson {
|
|
|
54
58
|
peerDependencies?: ObjectContainingOptionalStrings;
|
|
55
59
|
repository?: {
|
|
56
60
|
type: string;
|
|
57
|
-
url:
|
|
61
|
+
url: UrlString;
|
|
58
62
|
};
|
|
59
63
|
scripts?: ObjectContainingOptionalStrings;
|
|
60
64
|
}
|
package/ipc/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
The folder `ipc/` is meant as a middle layer between the main and renderer
|
|
2
|
+
processes.
|
|
3
|
+
|
|
4
|
+
Some of the code here should be called from the main process, usually to
|
|
5
|
+
register IPC handlers. Other code here should be called from the renderer
|
|
6
|
+
process(es), usually the ones to send IPC messages. They are both kept together
|
|
7
|
+
to keep them in sync, especially that the channel names and the shape of the
|
|
8
|
+
messages are the same.
|
|
9
|
+
|
|
10
|
+
All the code for the main process here is ran by the launcher. The launcher or
|
|
11
|
+
apps can invoke the functions from here, e.g. to do things like opening an app.
|
|
12
|
+
This means, the API must be kept stable here and in the launcher, so that the
|
|
13
|
+
launcher will react in the way the apps expect it.
|
|
14
|
+
|
|
15
|
+
## Code conventions
|
|
16
|
+
|
|
17
|
+
There are a few conventions we follow with the code here in `ipc/`:
|
|
18
|
+
|
|
19
|
+
- In each file there are pairs of functions: One to send a message over an IPC
|
|
20
|
+
channel (e.g. `openApp`) and another to register a handler for the messages
|
|
21
|
+
on that same channel (e.g. `registerOpenApp`).
|
|
22
|
+
|
|
23
|
+
Usually these two functions utilize a shared signature which is defined in a
|
|
24
|
+
type above them. Usually the functions are defined by invoking functions
|
|
25
|
+
from `infrastructure/mainToRenderer.ts` or
|
|
26
|
+
`infrastructure/rendererToMain.ts` which also use that type.
|
|
27
|
+
|
|
28
|
+
- The functions mentioned before are then exported in objects with the names
|
|
29
|
+
`inMain`, `forRenderer`, `inRenderer`, and `forMain` to signify how the
|
|
30
|
+
functions are supposed to be used. E.g. the mentioned `openApp` is in
|
|
31
|
+
`inMain` because it is called by code in the renderer processes to invoke
|
|
32
|
+
code in the main process to open an window. `registerOpenApp` is in
|
|
33
|
+
`forRenderer` because the handler is registered so that code in the renderer
|
|
34
|
+
processes can invoke it.
|
|
35
|
+
|
|
36
|
+
So, `inMain` and `forRenderer` are used when sending messages from the
|
|
37
|
+
renderer processes to the main process. `inRenderer` and `forMain` are used,
|
|
38
|
+
when sending messages from the main process to the renderer processes.
|
|
39
|
+
|
|
40
|
+
- The code here in `ipc/` must neither reference any code in `src/` (which is
|
|
41
|
+
for code of the renderer processes) nor in `main/` (which is for code in the
|
|
42
|
+
main process). Only the other way around code in those two folders can
|
|
43
|
+
reference code in `ipc/`.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { ipcMain, WebContents } from 'electron';
|
|
8
|
+
|
|
9
|
+
import { LaunchableApp } from './apps';
|
|
10
|
+
import { handleWithSender, invoke } from './infrastructure/rendererToMain';
|
|
11
|
+
|
|
12
|
+
const channel = {
|
|
13
|
+
request: 'get-app-details',
|
|
14
|
+
response: 'app-details',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
interface AppDetails {
|
|
18
|
+
coreVersion: string;
|
|
19
|
+
corePath: string;
|
|
20
|
+
homeDir: string;
|
|
21
|
+
tmpDir: string;
|
|
22
|
+
bundledJlink: string;
|
|
23
|
+
path: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type AppDetailsFromLauncher = AppDetails & LaunchableApp;
|
|
27
|
+
|
|
28
|
+
type GetAppDetails = () => AppDetailsFromLauncher;
|
|
29
|
+
|
|
30
|
+
const getAppDetails = invoke<GetAppDetails>(channel.request);
|
|
31
|
+
|
|
32
|
+
const registerGetAppDetails = (
|
|
33
|
+
onGetAppDetails: (webContents: WebContents) => AppDetailsFromLauncher
|
|
34
|
+
) => {
|
|
35
|
+
handleWithSender<GetAppDetails>(channel.request)(onGetAppDetails);
|
|
36
|
+
|
|
37
|
+
// This legacy implementation is still needed, because we currently still
|
|
38
|
+
// send the corresponding message in apps using shared 76 or earlier.
|
|
39
|
+
// When all apps are updated and required a launcher using shared 77 or
|
|
40
|
+
// later, we can remove this.
|
|
41
|
+
ipcMain.on(channel.request, event => {
|
|
42
|
+
event.sender.send(channel.response, onGetAppDetails(event.sender));
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export const forRenderer = { registerGetAppDetails };
|
|
47
|
+
export const inMain = { getAppDetails };
|
package/ipc/apps.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { handle, invoke } from './infrastructure/rendererToMain';
|
|
8
|
+
import { AppVersions, UrlString } from './MetaFiles';
|
|
9
|
+
import { LOCAL, Source, SourceName } from './sources';
|
|
10
|
+
|
|
11
|
+
export interface AppSpec {
|
|
12
|
+
name: string;
|
|
13
|
+
source: SourceName;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface BaseApp {
|
|
17
|
+
name: string;
|
|
18
|
+
displayName: string;
|
|
19
|
+
description: string;
|
|
20
|
+
iconPath: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface Downloadable {
|
|
24
|
+
source: SourceName;
|
|
25
|
+
homepage?: UrlString;
|
|
26
|
+
versions?: AppVersions;
|
|
27
|
+
releaseNotes?: string;
|
|
28
|
+
latestVersion: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface Installed {
|
|
32
|
+
currentVersion: string;
|
|
33
|
+
engineVersion?: string;
|
|
34
|
+
repositoryUrl?: UrlString;
|
|
35
|
+
html?: string;
|
|
36
|
+
installed: {
|
|
37
|
+
path: string;
|
|
38
|
+
shasum?: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface LocalApp extends Installed, BaseApp {
|
|
43
|
+
source: typeof LOCAL;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface InstalledDownloadableApp
|
|
47
|
+
extends BaseApp,
|
|
48
|
+
Installed,
|
|
49
|
+
Downloadable {
|
|
50
|
+
isWithdrawn: false;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface UninstalledDownloadableApp extends BaseApp, Downloadable {
|
|
54
|
+
isWithdrawn: false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface WithdrawnApp extends BaseApp, Installed, Downloadable {
|
|
58
|
+
isWithdrawn: true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export type DownloadableApp =
|
|
62
|
+
| InstalledDownloadableApp
|
|
63
|
+
| UninstalledDownloadableApp
|
|
64
|
+
| WithdrawnApp;
|
|
65
|
+
|
|
66
|
+
export type LaunchableApp = LocalApp | InstalledDownloadableApp | WithdrawnApp;
|
|
67
|
+
|
|
68
|
+
export type App = LocalApp | DownloadableApp;
|
|
69
|
+
|
|
70
|
+
export interface AppWithError extends AppSpec {
|
|
71
|
+
reason: unknown;
|
|
72
|
+
path: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const channel = {
|
|
76
|
+
getDownloadableApps: 'apps:get-downloadable-apps',
|
|
77
|
+
installDownloadableApp: 'apps:install-downloadable-app',
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export type SourceWithError = { source: Source; reason?: string };
|
|
81
|
+
|
|
82
|
+
// getDownloadableApps
|
|
83
|
+
type GetDownloadableAppsResult = {
|
|
84
|
+
apps: DownloadableApp[];
|
|
85
|
+
appsWithErrors: AppWithError[];
|
|
86
|
+
sourcesWithErrors: SourceWithError[];
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
type GetDownloadableApps = () => GetDownloadableAppsResult;
|
|
90
|
+
|
|
91
|
+
const getDownloadableApps = invoke<GetDownloadableApps>(
|
|
92
|
+
channel.getDownloadableApps
|
|
93
|
+
);
|
|
94
|
+
const registerGetDownloadableApps = handle<GetDownloadableApps>(
|
|
95
|
+
channel.getDownloadableApps
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
// installDownloadableApp
|
|
99
|
+
type InstallDownloadableApp = (
|
|
100
|
+
app: DownloadableApp,
|
|
101
|
+
version?: string
|
|
102
|
+
) => DownloadableApp;
|
|
103
|
+
|
|
104
|
+
const installDownloadableApp = invoke<InstallDownloadableApp>(
|
|
105
|
+
channel.installDownloadableApp
|
|
106
|
+
);
|
|
107
|
+
const registerInstallDownloadableApp = handle<InstallDownloadableApp>(
|
|
108
|
+
channel.installDownloadableApp
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
export const forRenderer = {
|
|
112
|
+
registerGetDownloadableApps,
|
|
113
|
+
registerInstallDownloadableApp,
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export const inMain = {
|
|
117
|
+
getDownloadableApps,
|
|
118
|
+
installDownloadableApp,
|
|
119
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BrowserWindow, ipcRenderer, WebContents } from 'electron';
|
|
8
|
+
|
|
9
|
+
let launcherWindow: BrowserWindow | undefined;
|
|
10
|
+
|
|
11
|
+
export const registerLauncherWindowFromMain = (window: BrowserWindow) => {
|
|
12
|
+
launcherWindow = window;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const send =
|
|
16
|
+
<T extends (...args: never[]) => void>(channel: string) =>
|
|
17
|
+
(...args: Parameters<T>) =>
|
|
18
|
+
launcherWindow?.webContents.send(channel, ...args);
|
|
19
|
+
|
|
20
|
+
export const on =
|
|
21
|
+
<T extends (...args: never[]) => void>(channel: string) =>
|
|
22
|
+
(handler: T) =>
|
|
23
|
+
ipcRenderer.on(channel, (_event, ...args: unknown[]) =>
|
|
24
|
+
handler(...(args as Parameters<T>))
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
// Broadcast with a subchannel
|
|
28
|
+
|
|
29
|
+
export const broadcast =
|
|
30
|
+
<T extends (...args: never[]) => void>(channel: string) =>
|
|
31
|
+
(
|
|
32
|
+
subChannel: string,
|
|
33
|
+
targets: Pick<WebContents, 'send'>[] = [],
|
|
34
|
+
...args: Parameters<T>
|
|
35
|
+
) =>
|
|
36
|
+
targets.forEach(target => {
|
|
37
|
+
target.send(`${channel}_${subChannel}`, ...args);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
export const onBroadcasted =
|
|
41
|
+
<T extends (...args: never[]) => void>(
|
|
42
|
+
channel: string,
|
|
43
|
+
subChannel: string
|
|
44
|
+
) =>
|
|
45
|
+
(handler: T) =>
|
|
46
|
+
ipcRenderer.on(
|
|
47
|
+
`${channel}_${subChannel}`,
|
|
48
|
+
(_event, ...args: unknown[]) => handler(...(args as Parameters<T>))
|
|
49
|
+
);
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { ipcMain, ipcRenderer, WebContents } from 'electron';
|
|
8
|
+
|
|
9
|
+
// Send
|
|
10
|
+
export const send =
|
|
11
|
+
<T extends (...args: never[]) => void>(channel: string) =>
|
|
12
|
+
(...args: Parameters<T>) =>
|
|
13
|
+
ipcRenderer.send(channel, ...args);
|
|
14
|
+
|
|
15
|
+
export const on =
|
|
16
|
+
<T extends (...args: never[]) => void>(channel: string) =>
|
|
17
|
+
(handler: T) =>
|
|
18
|
+
ipcMain.on(channel, (_event, ...args: unknown[]) =>
|
|
19
|
+
handler(...(args as Parameters<T>))
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
// Invoke
|
|
23
|
+
export const invoke =
|
|
24
|
+
<T extends (...args: never[]) => unknown>(channel: string) =>
|
|
25
|
+
(...args: Parameters<T>) =>
|
|
26
|
+
ipcRenderer.invoke(channel, ...args) as Promise<ReturnType<T>>;
|
|
27
|
+
|
|
28
|
+
export const handle =
|
|
29
|
+
<T extends (...args: never[]) => unknown>(channel: string) =>
|
|
30
|
+
(
|
|
31
|
+
handler:
|
|
32
|
+
| ((...args: Parameters<T>) => ReturnType<T>)
|
|
33
|
+
| ((...args: Parameters<T>) => Promise<ReturnType<T>>)
|
|
34
|
+
) =>
|
|
35
|
+
ipcMain.handle(channel, (_event, ...args: unknown[]) =>
|
|
36
|
+
handler(...(args as Parameters<T>))
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
export const handleWithSender =
|
|
40
|
+
<T extends (...args: never[]) => unknown>(channel: string) =>
|
|
41
|
+
(
|
|
42
|
+
handler:
|
|
43
|
+
| ((sender: WebContents, ...args: Parameters<T>) => ReturnType<T>)
|
|
44
|
+
| ((
|
|
45
|
+
sender: WebContents,
|
|
46
|
+
...args: Parameters<T>
|
|
47
|
+
) => Promise<ReturnType<T>>)
|
|
48
|
+
) =>
|
|
49
|
+
ipcMain.handle(channel, ({ sender }, ...args: unknown[]) =>
|
|
50
|
+
handler(sender, ...(args as Parameters<T>))
|
|
51
|
+
);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { AppSpec } from './apps';
|
|
8
|
+
import { on, send } from './infrastructure/rendererToMain';
|
|
9
|
+
|
|
10
|
+
const channel = {
|
|
11
|
+
app: 'open:app',
|
|
12
|
+
launcher: 'open-app-launcher', // It would be nice to call this `open:launcher` but we have to stick to the current name, because that is used by supported apps.
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export interface OpenAppOptions {
|
|
16
|
+
device?: { serialNumber: string; serialPortPath?: string };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type OpenApp = (app: AppSpec, openAppOptions?: OpenAppOptions) => void;
|
|
20
|
+
const openApp = send<OpenApp>(channel.app);
|
|
21
|
+
const registerOpenApp = on<OpenApp>(channel.app);
|
|
22
|
+
|
|
23
|
+
type OpenLauncher = () => void;
|
|
24
|
+
const openLauncher = send<OpenLauncher>(channel.launcher);
|
|
25
|
+
const registerOpenLauncher = on<OpenLauncher>(channel.launcher);
|
|
26
|
+
|
|
27
|
+
export const forRenderer = {
|
|
28
|
+
registerOpenApp,
|
|
29
|
+
registerOpenLauncher,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const inMain = {
|
|
33
|
+
openApp,
|
|
34
|
+
openLauncher,
|
|
35
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { handle, invoke, on, send } from './infrastructure/rendererToMain';
|
|
8
|
+
|
|
9
|
+
const channel = {
|
|
10
|
+
start: 'prevent-sleep:start',
|
|
11
|
+
end: 'prevent-sleep:end',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type Start = () => number;
|
|
15
|
+
const start = invoke<Start>(channel.start);
|
|
16
|
+
const registerStart = handle<Start>(channel.start);
|
|
17
|
+
|
|
18
|
+
type End = (id: number) => void;
|
|
19
|
+
const end = send<End>(channel.end);
|
|
20
|
+
const registerEnd = on<End>(channel.end);
|
|
21
|
+
|
|
22
|
+
export const forRenderer = { registerStart, registerEnd };
|
|
23
|
+
export const inMain = { start, end };
|