Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 23 additions & 19 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"asn1.js": "^5.3.0",
"http_ece": "1.2.0",
"https-proxy-agent": "^7.0.0",
"jws": "^4.0.0",
"jws": "^4.0.1",
"minimist": "^1.2.5"
},
"devDependencies": {
Expand All @@ -42,9 +42,9 @@
"eslint-config-airbnb": "19.0.4",
"eslint-plugin-import": "2.29.1",
"geckodriver": "4.3.0",
"nyc": "15.1.0",
"mkdirp": "3.0.1",
"mocha": "10.4.0",
"nyc": "15.1.0",
"portfinder": "1.0.32",
"selenium-assistant": "5.4.0",
"sinon": "17.0.1"
Expand Down
7 changes: 3 additions & 4 deletions src/web-push-lib.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

const url = require('url');
const https = require('https');

const WebPushError = require('./web-push-error.js');
Expand Down Expand Up @@ -271,7 +270,7 @@ WebPushLib.prototype.generateRequestDetails = function(subscription, payload, op
requestDetails.headers.Authorization = 'key=' + currentGCMAPIKey;
}
} else if (currentVapidDetails) {
const parsedUrl = url.parse(subscription.endpoint);
const parsedUrl = new URL(subscription.endpoint);
const audience = parsedUrl.protocol + '//'
+ parsedUrl.host;

Expand Down Expand Up @@ -345,10 +344,10 @@ WebPushLib.prototype.sendNotification = function(subscription, payload, options)

return new Promise(function(resolve, reject) {
const httpsOptions = {};
const urlParts = url.parse(requestDetails.endpoint);
const urlParts = new URL(requestDetails.endpoint);
httpsOptions.hostname = urlParts.hostname;
httpsOptions.port = urlParts.port;
httpsOptions.path = urlParts.path;
httpsOptions.path = urlParts.pathname + urlParts.search;

httpsOptions.headers = requestDetails.headers;
httpsOptions.method = requestDetails.method;
Expand Down
80 changes: 45 additions & 35 deletions test/data/certs/cert.pem
Original file line number Diff line number Diff line change
@@ -1,37 +1,47 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDLYIKzqGB0uCGURF7OcYMCBGtRszP6GV4b9CxmBtXOI637A8+R
yII4rpCM6PaUV0ekD/QK63S3u8LjgMAcSDIUZzAVDHah46r0dbvr2wRiKlZeZAuY
+c+eOi01qIKpF17Pkou/ag5O72aiY3wAaGsUnpsD5mgPXY+BrqAYQZ7JZQIDAQAB
AoGAIpni4soMzw7ct6sCLkFltpwl3hqNB0n1lu/t9dXH3nB3kzNMx1LDxPz+Htsr
yIUo7SLBtHHmw7OwLqCjDqzByCUkxdtQY83z+IEaDhiyO+bQTz0lfkry5zhgOK4U
/mw9lPBRbUHYao1PbxYkkshuo1vxSkOMGEI5qi/Cz+dIMYECQQDu7lwz+sc/vhWm
0vGX87HAPj2KTRRHCJVFlmH8vPz00LkQ29dzb33T/4HNzuKW6spA8AiVn4FB80rB
QXNaROAVAkEA2eftSJEuTCH9C193vfvIOPStbAa3YhHhKPMxM5vfz87x3YRuJ/25
DTbPo4F4zqrcygXCZwAHsdwf71JA725IEQJBAOSQBon++z4B86prnotSpxaVM7+q
bpxpHIq+CiyBCaaUSIVVGKyn2gHEKYMcxuvB3Qrz0/J17GuPdlKa7uNKgeUCQQCn
gNsr7z4RlAb6WRao2gUdkyhEZB1Pq8LTQa5Op8Gx8riFuakb4LQBbmLKo1oEM9+p
BCheGO3RUQ7TXv0/kByhAkEAoWuvLliRzTwWPYbNlb69OO2dNeVdx181lzncLwN9
D6b+ZuzdABCy1549TA5B0bXNtmmqP6ufoidhCyZ17cLEhA==
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCv9U/98mBHGtH/
ZsroXaEIM0BY/8IWEOepz/Nor+oARP/5QZ9mnOKUQkYo3huP4WgFYoEAMIeBdKcu
1oUZAwG7cgCnLMGLNk8XArtD7ngoR73r1VgtVqFfE74x7N6fZ7DmkYHM26b4v7nA
I07f5Hv9nug40Ul4z2fV+1wom6f6VFnXhDE/I4bp/D/bZRMj3MNMf+7axOtu7YRs
SAiYbwaA3Lhv/8BVwdxVd8m89MIIiwATIOregC32rhmBnyTS6VNpXI3wWQQmzR31
iHtef/MNq+wEjMJrgJh/8pgOv77VoFVR4WC1WQvrBDJ7r+vATzcRIxChgBrUwX/Y
FzId2szHAgMBAAECggEAByPx1JDW5lvIxNADkO1nwQDvbg0m76VM+V+mdYuZ99vU
9WT71nqsWS7dUQA+ZxbTFVDbgkn13cOBm016RjsQgW5NZ3tR+VfBWuIx/j45owzS
QLU+KEzZLJYNBFKj8B0RmTGzbkBFpNeG7qygIUbQ30hpDRE1JZFpGc5i/YTfirF7
XCszzZUku8mvQ/DwWLxCeIy+KF9A7IFPVunsM0zJB5GHxspIzXNVO2RQQyMhnC0E
Omm7titpmV29NNte49Jd4Tzw18fjEroc8gDYyf96Y1CbmEEuR272fmtZ8JHsk5C8
B2pQYH+gqFmcKGHe4Gdj3Pr+79TnU5QFu6T/8EfaVQKBgQDdY2jhov7vw8zwdYQ/
DaIvIKdKcB81nHfo1a0+ZWm5VzM9RdLUzUm2fVKW1klRdWEjEgX94tsOV73+2SMR
4OI67zwVeCHodcReMURjoWtfilB61KeRmF6CHWQu1BqQm7F0WS0Sl8xKkEbn6nnx
6zFGXHzYWpJHHmXDvqalju6w4wKBgQDLd6mJMX5SPAscnAEMJAgej74BunRNEVeK
uLP/pkq4aLSpe4IZnk6YOeRB7BIHGAlWTAvZZ1i3ZNyCLNU74o2xqaXUR3AnzyUt
TEBbzvVykH82AFEkQIIEJ8HTppB4if2Mlho3CAkbQyFZ+CgjSycPIshmTins4r+G
a0kG4EftzQKBgQCk6szSaM1oZn9gEOq23b0XRkfYl7VoBmr8s1AezwT24BJ3bnAj
vdlPbAP+ARsU50+5BFAaVMfB43LRSYdqZg+gv14O0DLSLAhf8mtznGeUAED7fzZk
qxCb9LEQgUhYuOJ0PYnp89JnKRro4C5/HCjUtUj7El0tRWOhcYBKjDMa6QKBgApE
WIa2u6QUqY7hBGCDdPFt2W2m5fV5mYxDc7nDv2N8zRj8RX1bcqXVzgHRkrtO6DG1
lqd6woxGh6X98yiZbwL3B4olrLAlkL+vaFP5poMIbZLhAzcsFiN1ih9O+V1LwUKV
1G7Qdf0tLwKmNghJ44es/qXC7fSpIHb89Otm59pFAoGAA7YtKgkjrVRmgo3nyzR9
b+2mTgO9CKVHxPuRrd/Tdkwm9KOqFFRw3ZozKUOa9/Df+ahsgRLjO8Qxf85L3cy9
RNH5lGHSPv3IUvvQQ1xyeGaU5jR1xtpTISo2ANGkOz1JV58M0Kj/QbM1xt6WYDUS
fAaRrrSr+/fF6WGbgKATVYM=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDojCCAwugAwIBAgIJANHpxi9qBMhbMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5j
aXNjbzEQMA4GA1UEChMHTW96aWxsYTEQMA4GA1UECxMHajJtZS5qczESMBAGA1UE
AxMJbG9jYWxob3N0MR8wHQYJKoZIhvcNAQkBFhB0ZXN0QG1vemlsbGEuY29tMB4X
DTE0MTAyMDE3MDczOVoXDTI0MTAxNzE3MDczOVowgZMxCzAJBgNVBAYTAlVTMRMw
EQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRAwDgYD
VQQKEwdNb3ppbGxhMRAwDgYDVQQLEwdqMm1lLmpzMRIwEAYDVQQDEwlsb2NhbGhv
c3QxHzAdBgkqhkiG9w0BCQEWEHRlc3RAbW96aWxsYS5jb20wgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBAMtggrOoYHS4IZREXs5xgwIEa1GzM/oZXhv0LGYG1c4j
rfsDz5HIgjiukIzo9pRXR6QP9ArrdLe7wuOAwBxIMhRnMBUMdqHjqvR1u+vbBGIq
Vl5kC5j5z546LTWogqkXXs+Si79qDk7vZqJjfABoaxSemwPmaA9dj4GuoBhBnsll
AgMBAAGjgfswgfgwHQYDVR0OBBYEFBFUqscLfTEX2t2GaVBBmfOKGGMcMIHIBgNV
HSMEgcAwgb2AFBFUqscLfTEX2t2GaVBBmfOKGGMcoYGZpIGWMIGTMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj
bzEQMA4GA1UEChMHTW96aWxsYTEQMA4GA1UECxMHajJtZS5qczESMBAGA1UEAxMJ
bG9jYWxob3N0MR8wHQYJKoZIhvcNAQkBFhB0ZXN0QG1vemlsbGEuY29tggkA0enG
L2oEyFswDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAz1AHqa9BNRFXO
MwI/c2mFRXl0uBTyKtz2+j/pbx6XvfiCp0EoU9K9TJFH75mn7202IUro3Qp2COrQ
KdkizPgxt1RWofBvVw5Eq/LnoOhvbxdtrly5JEakJh7fXtxB7N5CzMcL3l9LG7DI
SnWwym9r0pQ3EI9xDV/ViIx3pMlFWA==
MIIDGjCCAgKgAwIBAgIUHVZsjP8BqEimGdDMJhxoxHc9Oa8wDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJMTI3LjAuMC4xMB4XDTI2MDYxNjIwMzQxMloXDTM2MDYx
MzIwMzQxMlowFDESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAr/VP/fJgRxrR/2bK6F2hCDNAWP/CFhDnqc/zaK/qAET/
+UGfZpzilEJGKN4bj+FoBWKBADCHgXSnLtaFGQMBu3IApyzBizZPFwK7Q+54KEe9
69VYLVahXxO+Mezen2ew5pGBzNum+L+5wCNO3+R7/Z7oONFJeM9n1ftcKJun+lRZ
14QxPyOG6fw/22UTI9zDTH/u2sTrbu2EbEgImG8GgNy4b//AVcHcVXfJvPTCCIsA
EyDq3oAt9q4ZgZ8k0ulTaVyN8FkEJs0d9Yh7Xn/zDavsBIzCa4CYf/KYDr++1aBV
UeFgtVkL6wQye6/rwE83ESMQoYAa1MF/2BcyHdrMxwIDAQABo2QwYjAdBgNVHQ4E
FgQUm8yPopIvNL6h2kIBkltRXf5Xw30wHwYDVR0jBBgwFoAUm8yPopIvNL6h2kIB
kltRXf5Xw30wDwYDVR0TAQH/BAUwAwEB/zAPBgNVHREECDAGhwR/AAABMA0GCSqG
SIb3DQEBCwUAA4IBAQAtsyF5wR0cl4nkFkjFB1wne9pVsTKtRrs5ISTzVI+GUBC/
6mzbKGuXUV2EmDV1zi+Wv5ZBkCPcp1wO6bXm8kEWnJvBk7757boiClXRy9ylZYqY
ZL5jZC12piHGIo0xifEf+kJ2d5Nq6dMTl7vof9Jpcxlc2Pd3DNEYGvFjvIxQIE6i
9zki4q1kjzHkCtjk48OiWfJ6xeTBqm2fXMpV9dYHgeIRp01z9HcCGeH6VSVZb6kV
dJRTQ9wpZ7XGZ6a0wRiEvCWtQ182TMdbgHWWrUAqrVb8xDqY5TVI3UCorGi21gZf
XYte8oqYr8NHLBih2XA/Lah1KvyWtKi+VYp8ED8k
-----END CERTIFICATE-----