8000 Add dist folder · NativeLaravel/electron-plugin@7863397 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7863397

Browse files
committed
Add dist folder
1 parent 8ee8a00 commit 7863397

24 files changed

+1186
-0
lines changed

dist/index.js

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
11+
var __importDefault = (this && this.__importDefault) || function (mod) {
12+
return (mod && mod.__esModule) ? mod : { "default": mod };
13+
};
14+
const electron_updater_1 = require("electron-updater");
15+
const state_1 = __importDefault(require("./server/state"));
16+
const utils_1 = require("@electron-toolkit/utils");
17+
const server_1 = require("./server");
18+
const utils_2 = require("./server/utils");
19+
const electron_1 = require("electron");
20+
const path_1 = require("path");
21+
const ps_node_1 = __importDefault(require("ps-node"));
22+
let phpProcesses = [];
23+
let websocketProcess;
24+
let schedulerInterval;
25+
const killChildProcesses = () => {
26+
let processes = [
27+
...phpProcesses,
28+
websocketProcess,
29+
];
30+
processes.forEach((process) => {
31+
try {
32+
console.log(`Killing process ${process.pid}`);
33+
ps_node_1.default.kill(process.pid);
34+
}
35+
catch (err) {
36+
console.error(err);
37+
}
38+
});
39+
};
40+
class NativePHP {
41+
bootstrap(app, icon, phpBinary, cert) {
42+
require('@electron/remote/main').initialize();
43+
state_1.default.icon = icon;
44+
state_1.default.php = phpBinary;
45+
state_1.default.caCert = cert;
46+
this.bootstrapApp(app);
47+
this.addEventListeners(app);
48+
this.addTerminateListeners(app);
49+
}
50+
addEventListeners(app) {
51+
app.on('open-url', (event, url) => {
52+
(0, utils_2.notifyLaravel)('events', {
53+
event: '\\Native\\Laravel\\Events\\App\\OpenedFromURL',
54+
payload: [url]
55+
});
56+
});
57+
app.on('open-file', (event, path) => {
58+
(0, utils_2.notifyLaravel)('events', {
59+
event: '\\Native\\Laravel\\Events\\App\\OpenFile',
60+
payload: [path]
61+
});
62+
});
63+
app.on('window-all-closed', () => {
64+
if (process.platform !== 'darwin') {
65+
app.quit();
66+
}
67+
});
68+
}
69+
addTerminateListeners(app) {
70+
app.on('before-quit', (e) => {
71+
if (schedulerInterval) {
72+
clearInterval(schedulerInterval);
73+
}
74+
killChildProcesses();
75+
});
76+
}
77+
bootstrapApp(app) {
78+
app.whenReady().then(() => __awaiter(this, void 0, void 0, function* () {
79+
var _a;
80+
if (process.env.NODE_ENV === 'development') {
81+
app.dock.setIcon(state_1.default.icon);
82+
}
83+
app.on('browser-window-created', (_, window) => {
84+
utils_1.optimizer.watchWindowShortcuts(window);
85+
});
86+
let nativePHPConfig = {};
87+
try {
88+
let { stdout } = yield (0, server_1.retrieveNativePHPConfig)();
89+
nativePHPConfig = JSON.parse(stdout);
90+
}
91+
catch (e) {
92+
console.error(e);
93+
}
94+
utils_1.electronApp.setAppUserModelId(nativePHPConfig === null || nativePHPConfig === void 0 ? void 0 : nativePHPConfig.app_id);
95+
const deepLinkProtocol = nativePHPConfig === null || nativePHPConfig === void 0 ? void 0 : nativePHPConfig.deeplink_scheme;
96+
if (deepLinkProtocol) {
97+
if (process.defaultApp) {
98+
if (process.argv.length >= 2) {
99+
app.setAsDefaultProtocolClient(deepLinkProtocol, process.execPath, [(0, path_1.resolve)(process.argv[1])]);
100+
}
101+
}
102+
else {
103+
app.setAsDefaultProtocolClient(deepLinkProtocol);
104+
}
105+
}
106+
const apiPort = yield (0, server_1.startAPI)();
107+
console.log('API server started on port', apiPort.port);
108+
phpProcesses = yield (0, server_1.servePhpApp)(apiPort.port);
109+
websocketProcess = (0, server_1.serveWebsockets)();
110+
yield (0, utils_2.notifyLaravel)('booted');
111+
if (((_a = nativePHPConfig === null || nativePHPConfig === void 0 ? void 0 : nativePHPConfig.updater) === null || _a === void 0 ? void 0 : _a.enabled) === true) {
112+
electron_updater_1.autoUpdater.checkForUpdatesAndNotify();
113+
}
114+
schedulerInterval = setInterval(() => {
115+
console.log("Running scheduler...");
116+
(0, server_1.runScheduler)(apiPort.port);
117+
}, 60 * 1000);
118+
app.on('activate', function () {
119+
if (electron_1.BrowserWindow.getAllWindows().length === 0)
120+
(0, utils_2.notifyLaravel)('booted');
121+
});
122+
}));
123+
}
124+
}
125+
module.exports = new NativePHP();

dist/server/ProcessResult.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });

dist/server/api.js

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
11+
var __importDefault = (this && this.__importDefault) || function (mod) {
12+
return (mod && mod.__esModule) ? mod : { "default": mod };
13+
};
14+
Object.defineProperty(exports, "__esModule", { value: true });
15+
const express_1 = __importDefault(require("express"));
16+
const body_parser_1 = __importDefault(require("body-parser"));
17+
const get_port_1 = __importDefault(require("get-port"));
18+
const middleware_1 = __importDefault(require("./api/middleware"));
19+
const clipboard_1 = __importDefault(require("./api/clipboard"));
20+
const app_1 = __importDefault(require("./api/app"));
21+
const screen_1 = __importDefault(require("./api/screen"));
22+
const dialog_1 = __importDefault(require("./api/dialog"));
23+
const system_1 = __importDefault(require("./api/system"));
24+
const globalShortcut_1 = __importDefault(require("./api/globalShortcut"));
25+
const notification_1 = __importDefault(require("./api/notification"));
26+
const dock_1 = __importDefault(require("./api/dock"));
27+
const menu_1 = __importDefault(require("./api/menu"));
28+
const window_1 = __importDefault(require("./api/window"));
29+
const process_1 = __importDefault(require("./api/process"));
30+
const contextMenu_1 = __importDefault(require("./api/contextMenu"));
31+
const progressBar_1 = __importDefault(require("./api/progressBar"));
32+
function startAPIServer(randomSecret) {
33+
return __awaiter(this, void 0, void 0, function* () {
34+
const port = yield (0, get_port_1.default)({
35+
port: get_port_1.default.makeRange(4000, 5000),
36+
});
37+
return new Promise((resolve, reject) => {
38+
const httpServer = (0, express_1.default)();
39+
httpServer.use((0, middleware_1.default)(randomSecret));
40+
httpServer.use(body_parser_1.default.json());
41+
httpServer.use("/api/clipboard", clipboard_1.default);
42+
httpServer.use("/api/app", app_1.default);
43+
httpServer.use("/api/screen", screen_1.default);
44+
httpServer.use("/api/dialog", dialog_1.default);
45+
httpServer.use("/api/system", system_1.default);
46+
httpServer.use("/api/global-shortcuts", globalShortcut_1.default);
47+
httpServer.use("/api/notification", notification_1.default);
48+
httpServer.use("/api/dock", dock_1.default);
49+
httpServer.use("/api/menu", menu_1.default);
50+
httpServer.use("/api/window", window_1.default);
51+
httpServer.use("/api/process", process_1.default);
52+
httpServer.use("/api/context", contextMenu_1.default);
53+
httpServer.use("/api/progress-bar", progressBar_1.default);
54+
const server = httpServer.listen(port, () => {
55+
resolve({
56+
server,
57+
port,
58+
});
59+
});
60+
});
61+
});
62+
}
63+
exports.default = startAPIServer;

dist/server/api/app.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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 router = express_1.default.Router();
9+
router.post('/show', (req, res) => {
10+
electron_1.app.show();
11+
res.sendStatus(200);
12+
});
13+
router.post('/hide', (req, res) => {
14+
electron_1.app.hide();
15+
res.sendStatus(200);
16+
});
17+
router.get('/is-hidden', (req, res) => {
18+
res.json({
19+
is_hidden: electron_1.app.isHidden(),
20+
});
21+
});
22+
router.get('/app-path', (req, res) => {
23+
res.json({
24+
path: electron_1.app.getAppPath(),
25+
});
26+
});
27+
router.get('/path/:name', (req, res) => {
28+
res.json({
29+
path: electron_1.app.getPath(req.params.name),
30+
});
31+
});
32+
router.get('/version', (req, res) => {
33+
res.json({
34+
version: electron_1.app.getVersion(),
35+
});
36+
});
37+
router.post('/badge-count', (req, res) => {
38+
electron_1.app.setBadgeCount(req.body.count);
39+
res.sendStatus(200);
40+
});
41+
router.get('/badge-count', (req, res) => {
42+
res.json({
43+
count: electron_1.app.getBadgeCount(),
44+
});
45+
});
46+
router.post('/recent-documents', (req, res) => {
47+
electron_1.app.addRecentDocument(req.body.path);
48+
res.sendStatus(200);
49+
});
50+
router.delete('/recent-documents', (req, res) => {
51+
electron_1.app.clearRecentDocuments();
52+
res.sendStatus(200);
53+
});
54+
exports.default = router;

dist/server/api/clipboard.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
"use strict";
2+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3+
if (k2 === undefined) k2 = k;
4+
var desc = Object.getOwnPropertyDescriptor(m, k);
5+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6+
desc = { enumerable: true, get: function() { return m[k]; } };
7+
}
8+
Object.defineProperty(o, k2, desc);
9+
}) : (function(o, m, k, k2) {
10+
if (k2 === undefined) k2 = k;
11+
o[k2] = m[k];
12+
}));
13+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14+
Object.defineProperty(o, "default", { enumerable: true, value: v });
15+
}) : function(o, v) {
16+
o["default"] = v;
17+
});
18+
var __importStar = (this && this.__importStar) || function (mod) {
19+
if (mod && mod.__esModule) return mod;
20+
var result = {};
21+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22+
__setModuleDefault(result, mod);
23+
return result;
24+
};
25+
Object.defineProperty(exports, "__esModule", { value: true });
26+
const express = __importStar(require("express"));
27+
const router = express.Router();
28+
const electron_1 = require("electron");
29+
const DEFAULT_TYPE = 'clipboard';
30+
router.get('/text', (req, res) => {
31+
const { type } = req.query;
32+
res.json({
33+
text: electron_1.clipboard.readText(type || DEFAULT_TYPE)
34+
});
35+
});
36+
router.post('/text', (req, res) => {
37+
const { text } = req.body;
38+
const { type } = req.query;
39+
electron_1.clipboard.writeText(text, type || DEFAULT_TYPE);
40+
res.json({
41+
text,
42+
});
43+
});
44+
router.get('/html', (req, res) => {
45+
const { type } = req.query;
46+
res.json({
47+
html: electron_1.clipboard.readHTML(type || DEFAULT_TYPE)
48+
});
49+
});
50+
router.post('/html', (req, res) => {
51+
const { html } = req.body;
52+
const { type } = req.query;
53+
electron_1.clipboard.writeHTML(html, type || DEFAULT_TYPE);
54+
res.json({
55+
html,
56+
});
57+
});
58+
router.get('/image', (req, res) => {
59+
const { type } = req.query;
60+
const image = electron_1.clipboard.readImage(type || DEFAULT_TYPE);
61+
res.json({
62+
image: image.isEmpty() ? null : image.toDataURL()
63+
});
64+
});
65+
router.post('/image', (req, res) => {
66+
const { image } = req.body;
67+
const { type } = req.query;
68+
try {
69+
const _nativeImage = electron_1.nativeImage.createFromDataURL(image);
70+
electron_1.clipboard.writeImage(_nativeImage, type || DEFAULT_TYPE);
71+
}
72+
catch (e) {
73+
res.status(400).json({
74+
error: e.message,
75+
});
76+
return;
77+
}
78+
res.sendStatus(200);
79+
});
80+
router.delete('/', (req, res) => {
81+
const { type } = req.query;
82+
electron_1.clipboard.clear(type || DEFAULT_TYPE);
83+
res.sendStatus(200);
84+
});
85+
exports.default = router;

dist/server/api/contextMenu.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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 helper_1 = require("./helper");
8+
const electron_context_menu_1 = __importDefault(require("electron-context-menu"));
9+
const router = express_1.default.Router();
10+
let contextMenuDisposable = null;
11+
router.delete('/', (req, res) => {
12+
res.sendStatus(200);
13+
if (contextMenuDisposable) {
14+
contextMenuDisposable();
15+
contextMenuDisposable = null;
16+
}
17+
});
18+
router.post('/', (req, res) => {
19+
res.sendStatus(200);
20+
if (contextMenuDisposable) {
21+
contextMenuDisposable();
22+
contextMenuDisposable = null;
23+
}
24+
contextMenuDisposable = (0, electron_context_menu_1.default)({
25+
showLookUpSelection: false,
26+
showSearchWithGoogle: false,
27+
showInspectElement: false,
28+
prepend: (defaultActions, parameters, browserWindow) => {
29+
return req.body.entries.map(helper_1.mapMenu);
30+
}
31+
});
32+
});
33+
exports.default = router;

0 commit comments

Comments
 (0)
0