diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..64bea2a --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +BRANDING_NAME = "pxTwitter" +DIRECT_MEDIA_DOMAINS = "d.pxtwitter.com,d.twittpr.com,dl.pxtwitter.com,dl.twittpr.com" +HOST_URL = "https://pxtwitter.com" +REDIRECT_URL = "https://github.com/dangeredwolf/pxTwitter" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 50f1b1d..9a264cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dist node_modules -wrangler.toml \ No newline at end of file +wrangler.toml +.env \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9ad3cf2..63d4f44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "devDependencies": { "@cloudflare/workers-types": "^3.14.1", "@types/service-worker-mock": "^2.0.1", + "dotenv": "^16.0.1", "prettier": "^2.7.1", "service-worker-mock": "^2.0.5", "ts-loader": "^9.3.1", @@ -181,6 +182,15 @@ "node": ">=16.7" } }, + "node_modules/@miniflare/core/node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/@miniflare/durable-objects": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@miniflare/durable-objects/-/durable-objects-2.6.0.tgz", @@ -862,12 +872,12 @@ } }, "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/electron-to-chromium": { @@ -2804,6 +2814,14 @@ "set-cookie-parser": "^2.4.8", "undici": "5.5.1", "urlpattern-polyfill": "^4.0.3" + }, + "dependencies": { + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + } } }, "@miniflare/durable-objects": { @@ -3359,9 +3377,9 @@ } }, "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", "dev": true }, "electron-to-chromium": { diff --git a/package.json b/package.json index 3cc8400..6e62bb9 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "devDependencies": { "@cloudflare/workers-types": "^3.14.1", "@types/service-worker-mock": "^2.0.1", + "dotenv": "^16.0.1", "prettier": "^2.7.1", "service-worker-mock": "^2.0.5", "ts-loader": "^9.3.1", diff --git a/src/constants.ts b/src/constants.ts index de242d8..da34b22 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,15 +1,10 @@ const fakeChromeVersion = '103'; export const Constants = { - BRANDING_NAME: `pxTwitter`, - DIRECT_MEDIA_DOMAINS: [ - 'd.pxtwitter.com', - 'd.twittpr.com', - 'dl.pxtwitter.com', - 'dl.twittpr.com' - ], - HOST_URL: `https://pxtwitter.com`, - REDIRECT_URL: 'https://github.com/dangeredwolf/pxTwitter', + BRANDING_NAME: BRANDING_NAME, + DIRECT_MEDIA_DOMAINS: DIRECT_MEDIA_DOMAINS.split(','), + HOST_URL: HOST_URL, + REDIRECT_URL: REDIRECT_URL, TWITTER_ROOT: 'https://twitter.com', TWITTER_API_ROOT: 'https://api.twitter.com', /* We used to use Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..79123a9 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,4 @@ +declare const BRANDING_NAME: string; +declare const DIRECT_MEDIA_DOMAINS: string; +declare const HOST_URL: string; +declare const REDIRECT_URL: string; \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index ed0bcc1..968780f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,4 +1,7 @@ const path = require('path'); +const webpack = require('webpack'); + +require('dotenv').config(); module.exports = { entry: { @@ -13,7 +16,20 @@ module.exports = { extensions: ['.ts', '.tsx', '.js'], fallback: { util: false } }, - plugins: [], + plugins: [ + new webpack.DefinePlugin({ + BRANDING_NAME: `'${process.env.BRANDING_NAME}'`, + }), + new webpack.DefinePlugin({ + DIRECT_MEDIA_DOMAINS: `'${process.env.DIRECT_MEDIA_DOMAINS}'`, + }), + new webpack.DefinePlugin({ + HOST_URL: `'${process.env.HOST_URL}'`, + }), + new webpack.DefinePlugin({ + REDIRECT_URL: `'${process.env.REDIRECT_URL}'`, + }), + ], optimization: { mangleExports: 'size' },