mirror of
https://github.com/streetwriters/notesnook.git
synced 2026-09-02 04:01:43 +02:00
this required significant infrastructure changes to how we do things. It is no longer possible to access anything outside of what the app exposes. Requiring node modules has been disabled which should make things A LOT more secure. File system related APIs have also been removed and now everything sensitive is handled on the Node.js side of things. The renderer does not control paths, fs, or anything that could be used to exploit the host system.
40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
/*
|
|
This file is part of the Notesnook project (https://notesnook.com/)
|
|
|
|
Copyright (C) 2023 Streetwriters (Private) Limited
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
/* eslint-disable no-var */
|
|
|
|
import { ELECTRON_TRPC_CHANNEL } from "electron-trpc/main";
|
|
import { ipcRenderer, contextBridge } from "electron";
|
|
|
|
declare global {
|
|
var os: () => "mas" | typeof process.platform;
|
|
var electronTRPC: any;
|
|
}
|
|
|
|
const electronTRPC = {
|
|
sendMessage: (operation: any) =>
|
|
ipcRenderer.send(ELECTRON_TRPC_CHANNEL, operation),
|
|
onMessage: (callback: any) =>
|
|
ipcRenderer.on(ELECTRON_TRPC_CHANNEL, (_event, args) => callback(args))
|
|
};
|
|
|
|
const os = () => (MAC_APP_STORE ? "mas" : process.platform);
|
|
|
|
contextBridge.exposeInMainWorld("electronTRPC", electronTRPC);
|
|
contextBridge.exposeInMainWorld("os", os);
|