Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit 32b61ef

Browse files
authored
Safe storage (#35)
* Add safe storage endpoints * Cleanup * Base64-encode the buffers * Bump deps and build
1 parent 1d456dc commit 32b61ef

File tree

6 files changed

+320
-188
lines changed

6 files changed

+320
-188
lines changed

dist/server/api.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const contextMenu_1 = __importDefault(require("./api/contextMenu"));
3333
const settings_1 = __importDefault(require("./api/settings"));
3434
const shell_1 = __importDefault(require("./api/shell"));
3535
const progressBar_1 = __importDefault(require("./api/progressBar"));
36+
const powerMonitor_1 = __importDefault(require("./api/powerMonitor"));
3637
function startAPIServer(randomSecret) {
3738
return __awaiter(this, void 0, void 0, function* () {
3839
const port = yield (0, get_port_1.default)({
@@ -58,6 +59,7 @@ function startAPIServer(randomSecret) {
5859
httpServer.use("/api/context", contextMenu_1.default);
5960
httpServer.use("/api/menu-bar", menuBar_1.default);
6061
httpServer.use("/api/progress-bar", progressBar_1.default);
62+
httpServer.use("/api/power-monitor", powerMonitor_1.default);
6163
if (process.env.NODE_ENV === "development") {
6264
httpServer.use("/api/debug", debug_1.default);
6365
}

dist/server/api/debug.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,14 @@ const express_1 = __importDefault(require("express"));
77
const state_1 = __importDefault(require("../state"));
88
const router = express_1.default.Router();
99
router.post('/log', (req, res) => {
10+
var _a;
1011
const { level, message, context } = req.body;
1112
Object.values(state_1.default.windows).forEach(window => {
1213
window.webContents.send('log', { level, message, context });
1314
});
15+
if ((_a = state_1.default.activeMenuBar) === null || _a === void 0 ? void 0 : _a.window) {
16+
state_1.default.activeMenuBar.window.webContents.send('log', { level, message, context });
17+
}
1418
res.sendStatus(200);
1519
});
1620
exports.default = router;

dist/server/api/powerMonitor.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
"use strict";
2+
var __importDefault = (this && this.__importDefault) || function (mod) {
3+
return (mod && mod.__esModule) ? mod : { "default": mod };
4+
};
5+
Object.defineProperty(exports, "__esModule", { value: true });
6+
const express_1 = __importDefault(require("express"));
7+
const electron_1 = require("electron");
8+
const utils_1 = require("../utils");
9+
const router = express_1.default.Router();
10+
router.get('/get-system-idle-state', (req, res) => {
11+
res.json({
12+
result: electron_1.powerMonitor.getSystemIdleState(req.body.threshold),
13+
});
14+
});
15+
router.get('/get-system-idle-time', (req, res) => {
16+
res.json({
17+
result: electron_1.powerMonitor.getSystemIdleTime(),
18+
});
19+
});
20+
router.get('/get-current-thermal-state', (req, res) => {
21+
res.json({
22+
result: electron_1.powerMonitor.getCurrentThermalState(),
23+
});
24+
});
25+
router.get('/is-on-battery-power', (req, res) => {
26+
res.json({
27+
result: electron_1.powerMonitor.isOnBatteryPower(),
28+
});
29+
});
30+
electron_1.powerMonitor.addListener('on-ac', () => {
31+
(0, utils_1.notifyLaravel)("events", {
32+
event: `\\Native\\Laravel\\Events\\PowerMonitor\\PowerStateChanged`,
33+
payload: {
34+
state: 'on-ac'
35+
}
36+
});
37+
});
38+
electron_1.powerMonitor.addListener('on-battery', () => {
39+
(0, utils_1.notifyLaravel)("events", {
40+
event: `\\Native\\Laravel\\Events\\PowerMonitor\\PowerStateChanged`,
41+
payload: {
42+
state: 'on-battery'
43+
}
44+
});
45+
});
46+
electron_1.powerMonitor.addListener('thermal-state-change', (state) => {
47+
(0, utils_1.notifyLaravel)("events", {
48+
event: `\\Native\\Laravel\\Events\\PowerMonitor\\ThermalStateChanged`,
49+
payload: {
50+
state
51+
}
52+
});
53+
});
54+
electron_1.powerMonitor.addListener('speed-limit-change', (limit) => {
55+
(0, utils_1.notifyLaravel)("events", {
56+
event: `\\Native\\Laravel\\Events\\PowerMonitor\\SpeedLimitChanged`,
57+
payload: {
58+
limit
59+
}
60+
});
61+
});
62+
exports.default = router;

dist/server/api/system.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,35 @@ router.post('/prompt-touch-id', (req, res) => __awaiter(void 0, void 0, void 0,
3131
});
3232
}
3333
}));
34+
router.get('/can-encrypt', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
35+
res.json({
36+
result: yield electron_1.safeStorage.isEncryptionAvailable(),
37+
});
38+
}));
39+
router.post('/encrypt', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
40+
try {
41+
res.json({
42+
result: yield electron_1.safeStorage.encryptString(req.body.string).toString('base64'),
43+
});
44+
}
45+
catch (e) {
46+
res.status(400).json({
47+
error: e.message,
48+
});
49+
}
50+
}));
51+
router.post('/decrypt', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
52+
try {
53+
res.json({
54+
result: yield electron_1.safeStorage.decryptString(Buffer.from(req.body.string, 'base64')),
55+
});
56+
}
57+
catch (e) {
58+
res.status(400).json({
59+
error: e.message,
60+
});
61+
}
62+
}));
3463
router.get('/printers', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
3564
const printers = yield electron_1.BrowserWindow.getAllWindows()[0].webContents.getPrintersAsync();
3665
res.json({

0 commit comments

Comments
 (0)