From acfad22043e095543139a1a8deed6282659d80ba Mon Sep 17 00:00:00 2001 From: ItzNotABug Date: Thu, 4 Apr 2024 18:31:14 +0530 Subject: [PATCH 1/2] fix: don't crash app on invalid host error. log the error instead with the url. --- utils/newsletter.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/utils/newsletter.js b/utils/newsletter.js index a9fe2af..90b9c25 100644 --- a/utils/newsletter.js +++ b/utils/newsletter.js @@ -234,10 +234,18 @@ export default class Newsletter { let elementUrl = $(element).attr(tag); if (elementUrl === '#' || !elementUrl) return; + /** @type {string | null} */ + let urlHost = null; + elementUrl = he.decode(elementUrl); - const urlHost = new URL(elementUrl).host; - if (!domainsToExclude.includes(urlHost) && !urlsToExclude.includes(elementUrl)) { + try { + urlHost = new URL(elementUrl).host; + } catch (error) { + logError(logTags.Newsletter, Error(`Invalid URL found: ${elementUrl}, ${error.stack}.`)); + } + + if (urlHost && !domainsToExclude.includes(urlHost) && !urlsToExclude.includes(elementUrl)) { trackedLinks.add(elementUrl); $(element).attr(tag, `${pingUrl}${elementUrl}`); } From 56a2084a4bb22c6e4e9f02cb27382192072c910e Mon Sep 17 00:00:00 2001 From: ItzNotABug Date: Thu, 4 Apr 2024 18:32:18 +0530 Subject: [PATCH 2/2] update: bump version. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8893e64..b211384 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghosler", - "version": "0.96", + "version": "0.97", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghosler", - "version": "0.96", + "version": "0.97", "dependencies": { "@extractus/oembed-extractor": "^4.0.2", "@tryghost/admin-api": "^1.13.11", diff --git a/package.json b/package.json index 6c4eccd..aef7a1b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ghosler", "description": "Send newsletter emails to your members, using your own email credentials!", - "version": "0.96", + "version": "0.97", "private": true, "main": "app.js", "type": "module",