From 51b50bfa3cca7c8f1bc3008b49b0e4daee2574be Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Mon, 30 Nov 2020 20:00:57 +0100 Subject: [PATCH] Upgrade APN module (#12818) * switch apn module to up to date version @parse/apn * remove old module * fix unit tests --- package-lock.json | 93 ++++++++++++++++-------- package.json | 2 +- test/api/unit/libs/pushNotifications.js | 2 +- website/server/libs/pushNotifications.js | 2 +- 4 files changed, 65 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0ea47931d6..bc45e658c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1251,6 +1251,68 @@ "uuid": "^8.0.0" } }, + "@parse/node-apn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@parse/node-apn/-/node-apn-4.0.0.tgz", + "integrity": "sha512-/Zhz7+AfwuMeBn9kpENF5qbWDG1+0xLBOlAb7O34BhR9R5BSjAKkMxqWmTz3R3nvlsod4XrZ8NuRMUOXVrCCFQ==", + "requires": { + "debug": "3.1.0", + "jsonwebtoken": "8.1.0", + "node-forge": "0.10.0", + "verror": "1.10.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "jsonwebtoken": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.1.0.tgz", + "integrity": "sha1-xjl80uX9WD1lwAeoPce7eOaYK4M=", + "requires": { + "jws": "^3.1.4", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "@sindresorhus/is": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", @@ -1862,33 +1924,6 @@ } } }, - "apn": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/apn/-/apn-2.2.0.tgz", - "integrity": "sha512-YIypYzPVJA9wzNBLKZ/mq2l1IZX/2FadPvwmSv4ZeR0VH7xdNITQ6Pucgh0Uw6ZZKC+XwheaJ57DFZAhJ0FvPg==", - "requires": { - "debug": "^3.1.0", - "http2": "https://github.com/node-apn/node-http2/archive/apn-2.1.4.tar.gz", - "jsonwebtoken": "^8.1.0", - "node-forge": "^0.7.1", - "verror": "^1.10.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "node-forge": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", - "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==" - } - } - }, "append-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", @@ -7475,10 +7510,6 @@ "sshpk": "^1.7.0" } }, - "http2": { - "version": "https://github.com/node-apn/node-http2/archive/apn-2.1.4.tar.gz", - "integrity": "sha512-ad4u4I88X9AcUgxCRW3RLnbh7xHWQ1f5HbrXa7gEy2x4Xgq+rq+auGx5I+nUDE2YYuqteGIlbxrwQXkIaYTfnQ==" - }, "http2-wrapper": { "version": "1.0.0-beta.5.2", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", diff --git a/package.json b/package.json index 63a534a2c9..11da2f286c 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,12 @@ "@babel/preset-env": "^7.12.7", "@babel/register": "^7.12.1", "@google-cloud/trace-agent": "^5.1.1", + "@parse/node-apn": "^4.0.0", "@slack/client": "^4.12.0", "accepts": "^1.3.5", "amazon-payments": "^0.2.8", "amplitude": "^3.5.0", "apidoc": "^0.25.0", - "apn": "^2.2.0", "apple-auth": "^1.0.6", "bcrypt": "^5.0.0", "body-parser": "^1.18.3", diff --git a/test/api/unit/libs/pushNotifications.js b/test/api/unit/libs/pushNotifications.js index e8299c871e..ba719e09a3 100644 --- a/test/api/unit/libs/pushNotifications.js +++ b/test/api/unit/libs/pushNotifications.js @@ -1,4 +1,4 @@ -import apn from 'apn/mock'; +import apn from '@parse/node-apn/mock'; import _ from 'lodash'; import nconf from 'nconf'; import gcmLib from 'node-gcm'; // works with FCM notifications too diff --git a/website/server/libs/pushNotifications.js b/website/server/libs/pushNotifications.js index da2284c2f3..0be37b7fdc 100644 --- a/website/server/libs/pushNotifications.js +++ b/website/server/libs/pushNotifications.js @@ -1,6 +1,6 @@ import _ from 'lodash'; import nconf from 'nconf'; -import apn from 'apn'; +import apn from '@parse/node-apn'; import gcmLib from 'node-gcm'; // works with FCM notifications too import logger from './logger'; import { // eslint-disable-line import/no-cycle