import crypto from 'node:crypto'; const { publicKey, privateKey } = crypto.generateKeyPairSync('ec', { namedCurve: 'prime256v1', }); const publicJwk = publicKey.export({ format: 'jwk' }); const privateJwk = privateKey.export({ format: 'jwk' }); if (!publicJwk.x || !publicJwk.y || !privateJwk.d) { throw new Error('Failed to generate VAPID P-256 key pair'); } const rawPublicKey = Buffer.concat([ Buffer.from([0x04]), Buffer.from(publicJwk.x, 'base64url'), Buffer.from(publicJwk.y, 'base64url'), ]).toString('base64url'); process.stdout.write( `VAPID_PUBLIC_KEY=${rawPublicKey}\nVAPID_PRIVATE_KEY=${privateJwk.d}\nVAPID_SUBJECT=mailto:admin@krona.local\n`, );