HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: /volume1/@appstore/SynologyApplicationService/node_libs/GenVAPIDKey.js
'use strict';

const fs = require('fs');
const path = require('path');
const webpush = require('../node_modules/web-push/src/index');

const PUBLIC_KEY_FILE_PATH = '/usr/syno/etc/packages/SynologyApplicationService/vapid/public.key';
const PRIVATE_KEY_FILE_PATH = '/usr/syno/etc/packages/SynologyApplicationService/vapid/private.key';

const vapidKeys = webpush.generateVAPIDKeys();

function IsDirExists(dirpath) {
	try {
		return fs.statSync(dirpath).isDirectory();
	}
	catch (err) {
		return false;
	}
}

function CheckVapidDir(dirpath) {
	if (!IsDirExists(dirpath)) {
		fs.mkdirSync(dirpath);
	}
}

CheckVapidDir(path.dirname(PUBLIC_KEY_FILE_PATH));

fs.writeFile(PUBLIC_KEY_FILE_PATH, vapidKeys.publicKey, function (err) {
	if (err) {
		return console.log(err);
	}
});
fs.chmod(PUBLIC_KEY_FILE_PATH, 0o644, err => {
	console.log(err);
});

fs.writeFile(PRIVATE_KEY_FILE_PATH, vapidKeys.privateKey, function (err) {
	if (err) {
		return console.log(err);
	}
});
fs.chmod(PRIVATE_KEY_FILE_PATH, 0o600, err => {
	console.log(err);
});

process.stdout.write(vapidKeys.publicKey);