HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //var/packages/SynologyApplicationService/target/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);