diff --git a/packages/api/.env b/packages/api/.env
index d43f360..e0915c7 100644
--- a/packages/api/.env
+++ b/packages/api/.env
@@ -1,3 +1 @@
GITHUB_TOKEN=?
-MAIL_PASS=?
-MAIL_USER=?
diff --git a/packages/api/package.json b/packages/api/package.json
index 6c7c96f..5622d7e 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -11,14 +11,13 @@
"@fastify/cors": "^9.0.1",
"@fastify/rate-limit": "^9.1.0",
"fastify": "^4.26.1",
- "node-fetch": "^3.3.2",
- "nodemailer": "^6.9.9",
+ "node-fetch": "^2.7.0",
"octokit": "^3.1.2"
},
"devDependencies": {
"@tsconfig/node20": "^20.1.2",
"@types/node": "^20.11.19",
- "@types/nodemailer": "^6.4.14",
+ "@types/node-fetch": "2.6.11",
"@typescript-eslint/eslint-plugin": "^7.0.1",
"@typescript-eslint/parser": "^7.0.1",
"eslint": "^8.56.0",
diff --git a/packages/api/src/routes/v1/report.ts b/packages/api/src/routes/v1/report.ts
index efae54a..43fab88 100644
--- a/packages/api/src/routes/v1/report.ts
+++ b/packages/api/src/routes/v1/report.ts
@@ -1,5 +1,4 @@
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
-import { sendMail } from 'services/mailing';
type PostReportBody = {
html?: string;
@@ -14,30 +13,17 @@ export default (server: FastifyInstance, options: RouteShorthandOptions, done: (
{
schema: {
body: {
- properties: {
- html: {
- type: 'string',
- },
- subject: {
- type: 'string',
- },
- text: {
- type: 'string',
- },
- to: {
- type: 'string',
- },
- },
- required: ['subject', 'to'],
+ properties: {},
+ required: [],
type: 'object',
},
},
},
- async (request, reply) => {
- const { html, subject, text, to } = request.body;
-
- sendMail({ html, text, to, subject });
- reply.send({ success: true });
+ async (_request, reply) => {
+ reply.status(500).send({
+ success: false,
+ errors: ['This API route is no longer supported in Mozilla Firefox'],
+ });
}
);
diff --git a/packages/api/src/routes/v3/report.ts b/packages/api/src/routes/v3/report.ts
index b338083..11f2d07 100644
--- a/packages/api/src/routes/v3/report.ts
+++ b/packages/api/src/routes/v3/report.ts
@@ -1,76 +1 @@
-import { FastifyInstance, RouteShorthandOptions } from 'fastify';
-import environment from 'services/environment';
-import { octokit } from 'services/octokit';
-
-type PostReportBody = {
- reason?: string;
- url: string;
- userAgent?: string;
- version: string;
-};
-
-export default (server: FastifyInstance, options: RouteShorthandOptions, done: () => void) => {
- server.post<{ Body: PostReportBody }>(
- '/report/',
- {
- schema: {
- body: {
- properties: {
- reason: {
- type: 'string',
- },
- url: {
- type: 'string',
- },
- userAgent: {
- type: 'string',
- },
- version: {
- type: 'string',
- },
- },
- required: ['url', 'version'],
- type: 'object',
- },
- },
- },
- async (request, reply) => {
- try {
- const issues = await octokit.request('GET /repos/{owner}/{repo}/issues', {
- owner: environment.github.owner,
- repo: environment.github.repo,
- });
- const url = new URL(request.body.url).hostname
- .split('.')
- .slice(-3)
- .join('.')
- .replace('www.', '');
-
- if (issues.data.some((issue) => issue.title.includes(url))) {
- throw new Error();
- }
-
- await octokit.request('POST /repos/{owner}/{repo}/issues', {
- assignees: [environment.github.owner],
- body: [
- '## Specifications',
- `- Reason: ${request.body.reason ?? '-'}`,
- `- URL: ${request.body.url}`,
- `- User-Agent: ${request.body.userAgent ?? '-'}`,
- `- Version: ${request.body.version}`,
- ].join('\n'),
- labels: ['bug'],
- owner: environment.github.owner,
- repo: environment.github.repo,
- title: url,
- });
-
- reply.send({ success: true });
- } catch (error) {
- reply.send({ errors: [error.message], success: false });
- }
- }
- );
-
- done();
-};
+export { default as default } from 'routes/v2/report';
diff --git a/packages/api/src/services/environment.ts b/packages/api/src/services/environment.ts
index ebc47ce..07ccce8 100644
--- a/packages/api/src/services/environment.ts
+++ b/packages/api/src/services/environment.ts
@@ -4,9 +4,5 @@ export default {
repo: 'cookie-dialog-monster',
token: process.env.GITHUB_TOKEN ?? '',
},
- mail: {
- pass: process.env.MAIL_PASS ?? '',
- user: process.env.MAIL_USER ?? '',
- },
port: (process.env.PORT ? Number(process.env.PORT) : undefined) ?? 8080,
};
diff --git a/packages/api/src/services/mailing.ts b/packages/api/src/services/mailing.ts
deleted file mode 100644
index ce86a94..0000000
--- a/packages/api/src/services/mailing.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import nodemailer, { SendMailOptions } from 'nodemailer';
-import environment from './environment';
-
-const mailing = nodemailer.createTransport({
- auth: { pass: environment.mail.pass, user: environment.mail.user },
- host: 'smtp.zoho.eu',
- port: 465,
- secure: true,
-});
-
-export const sendMail = (options: SendMailOptions) =>
- mailing.sendMail({ ...options, from: environment.mail.user }, () => null);
diff --git a/yarn.lock b/yarn.lock
index f7993be..c2540ad 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -908,6 +908,16 @@ __metadata:
languageName: node
linkType: hard
+"@types/node-fetch@npm:2.6.11":
+ version: 2.6.11
+ resolution: "@types/node-fetch@npm:2.6.11"
+ dependencies:
+ "@types/node": "npm:*"
+ form-data: "npm:^4.0.0"
+ checksum: 10c0/5283d4e0bcc37a5b6d8e629aee880a4ffcfb33e089f4b903b2981b19c623972d1e64af7c3f9540ab990f0f5c89b9b5dda19c5bcb37a8e177079e93683bfd2f49
+ languageName: node
+ linkType: hard
+
"@types/node@npm:*, @types/node@npm:^20.11.19":
version: 20.11.19
resolution: "@types/node@npm:20.11.19"
@@ -917,15 +927,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/nodemailer@npm:^6.4.14":
- version: 6.4.14
- resolution: "@types/nodemailer@npm:6.4.14"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10c0/b5958843576cde76dc532aa7b726182fef8b466fa9fcaf1aa03f89f02e896bec4e28b593ffa1a289a46bd0b7fdf34da0640ab7ef8f0811948016f58f77e16307
- languageName: node
- linkType: hard
-
"@types/normalize-package-data@npm:^2.4.0":
version: 2.4.4
resolution: "@types/normalize-package-data@npm:2.4.4"
@@ -1305,15 +1306,14 @@ __metadata:
"@fastify/rate-limit": "npm:^9.1.0"
"@tsconfig/node20": "npm:^20.1.2"
"@types/node": "npm:^20.11.19"
- "@types/nodemailer": "npm:^6.4.14"
+ "@types/node-fetch": "npm:2.6.11"
"@typescript-eslint/eslint-plugin": "npm:^7.0.1"
"@typescript-eslint/parser": "npm:^7.0.1"
eslint: "npm:^8.56.0"
eslint-config-prettier: "npm:^9.1.0"
eslint-plugin-prettier: "npm:^5.1.3"
fastify: "npm:^4.26.1"
- node-fetch: "npm:^3.3.2"
- nodemailer: "npm:^6.9.9"
+ node-fetch: "npm:^2.7.0"
nodemon: "npm:^3.0.3"
octokit: "npm:^3.1.2"
rimraf: "npm:^5.0.5"
@@ -1379,6 +1379,13 @@ __metadata:
languageName: node
linkType: hard
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
+ languageName: node
+ linkType: hard
+
"atomic-sleep@npm:^1.0.0":
version: 1.0.0
resolution: "atomic-sleep@npm:1.0.0"
@@ -1770,6 +1777,15 @@ __metadata:
languageName: node
linkType: hard
+"combined-stream@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: "npm:~1.0.0"
+ checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
+ languageName: node
+ linkType: hard
+
"commander@npm:11.1.0":
version: 11.1.0
resolution: "commander@npm:11.1.0"
@@ -1970,13 +1986,6 @@ __metadata:
languageName: node
linkType: hard
-"data-uri-to-buffer@npm:^4.0.0":
- version: 4.0.1
- resolution: "data-uri-to-buffer@npm:4.0.1"
- checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b
- languageName: node
- linkType: hard
-
"debug@npm:2.6.9":
version: 2.6.9
resolution: "debug@npm:2.6.9"
@@ -2029,6 +2038,13 @@ __metadata:
languageName: node
linkType: hard
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
+ languageName: node
+ linkType: hard
+
"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1":
version: 2.3.1
resolution: "deprecation@npm:2.3.1"
@@ -2534,16 +2550,6 @@ __metadata:
languageName: node
linkType: hard
-"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4":
- version: 3.2.0
- resolution: "fetch-blob@npm:3.2.0"
- dependencies:
- node-domexception: "npm:^1.0.0"
- web-streams-polyfill: "npm:^3.0.3"
- checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69
- languageName: node
- linkType: hard
-
"file-entry-cache@npm:^6.0.1":
version: 6.0.1
resolution: "file-entry-cache@npm:6.0.1"
@@ -2631,12 +2637,14 @@ __metadata:
languageName: node
linkType: hard
-"formdata-polyfill@npm:^4.0.10":
- version: 4.0.10
- resolution: "formdata-polyfill@npm:4.0.10"
+"form-data@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "form-data@npm:4.0.0"
dependencies:
- fetch-blob: "npm:^3.1.2"
- checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6
+ asynckit: "npm:^0.4.0"
+ combined-stream: "npm:^1.0.8"
+ mime-types: "npm:^2.1.12"
+ checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e
languageName: node
linkType: hard
@@ -3752,7 +3760,7 @@ __metadata:
languageName: node
linkType: hard
-"mime-types@npm:~2.1.34":
+"mime-types@npm:^2.1.12, mime-types@npm:~2.1.34":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
@@ -4005,21 +4013,17 @@ __metadata:
languageName: node
linkType: hard
-"node-domexception@npm:^1.0.0":
- version: 1.0.0
- resolution: "node-domexception@npm:1.0.0"
- checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b
- languageName: node
- linkType: hard
-
-"node-fetch@npm:^3.3.2":
- version: 3.3.2
- resolution: "node-fetch@npm:3.3.2"
+"node-fetch@npm:^2.7.0":
+ version: 2.7.0
+ resolution: "node-fetch@npm:2.7.0"
dependencies:
- data-uri-to-buffer: "npm:^4.0.0"
- fetch-blob: "npm:^3.1.4"
- formdata-polyfill: "npm:^4.0.10"
- checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538
+ whatwg-url: "npm:^5.0.0"
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8
languageName: node
linkType: hard
@@ -4043,13 +4047,6 @@ __metadata:
languageName: node
linkType: hard
-"nodemailer@npm:^6.9.9":
- version: 6.9.9
- resolution: "nodemailer@npm:6.9.9"
- checksum: 10c0/ba72da4ca8a003921c86f3d132d64d9bb86c1a3d79d248664b3de28f6a7a621f0476273ad7cf3ecc48d3b78a66ae4ec62b7c4c8ab6f07d9ca26d4bad4d08802e
- languageName: node
- linkType: hard
-
"nodemon@npm:^3.0.3":
version: 3.0.3
resolution: "nodemon@npm:3.0.3"
@@ -5581,6 +5578,13 @@ __metadata:
languageName: node
linkType: hard
+"tr46@npm:~0.0.3":
+ version: 0.0.3
+ resolution: "tr46@npm:0.0.3"
+ checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11
+ languageName: node
+ linkType: hard
+
"trim-newlines@npm:^3.0.0":
version: 3.0.1
resolution: "trim-newlines@npm:3.0.1"
@@ -5844,13 +5848,6 @@ __metadata:
languageName: node
linkType: hard
-"web-streams-polyfill@npm:^3.0.3":
- version: 3.3.2
- resolution: "web-streams-polyfill@npm:3.3.2"
- checksum: 10c0/623c2fced2ef77d5afdbc43acef64b8af609a32125b691eae286d534a36004c8a71030f0e78068516774a97fd90dbfb3726b10fd569a2d158e60c83a539c489e
- languageName: node
- linkType: hard
-
"web@workspace:packages/web":
version: 0.0.0-use.local
resolution: "web@workspace:packages/web"
@@ -5862,6 +5859,23 @@ __metadata:
languageName: unknown
linkType: soft
+"webidl-conversions@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "webidl-conversions@npm:3.0.1"
+ checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "whatwg-url@npm:5.0.0"
+ dependencies:
+ tr46: "npm:~0.0.3"
+ webidl-conversions: "npm:^3.0.0"
+ checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5
+ languageName: node
+ linkType: hard
+
"which@npm:^2.0.1":
version: 2.0.2
resolution: "which@npm:2.0.2"