feat: better cyclic.sh script compatibility

This commit is contained in:
TresAbhi committed 2023-06-11 18:28:25 +00:00
1 parent 4e49d22c4c
commit 3330dce264
13 files changed
+72 -164

No files matched your search

+4
View File
@@ -2,12 +2,16 @@
"cSpell.words": [
"Abhi",
"accountinfo",
"bepaint",
"cleandist",
"fuzzysort",
"kranvagn",
"ownedtanks",
"Resvg",
"searchplayers",
"SKLLD",
"Smri",
"startcase",
"strvk",
"tankopedia",
"Unicum",
+18
View File
@@ -0,0 +1,18 @@
import { build } from 'esbuild';
build({
entryPoints: ['src/index.ts'],
outfile: 'dist/server.cjs',
platform: 'node',
bundle: true,
// minifying cases a few random errors; will investigate later
// minify: true,
sourcemap: true,
loader: {
'.node': 'copy',
'.ttf': 'file',
},
});
+6
View File
@@ -0,0 +1,6 @@
{
"main": "server.js",
"scripts": {
"start": "node --enable-source-maps server.cjs"
}
}
+8 -6
View File
@@ -1,13 +1,16 @@
{
"name": "blitzkrieg",
"version": "1.7.2",
"version": "1.7.3",
"description": "",
"main": "index.js",
"main": "src/index.ts",
"type": "module",
"scripts": {
"dev": "yarn build && yarn start",
"start": "vite-node src/index.ts --script",
"build": "rm -rf dist && esbuild src/index.ts --outfile=dist/index.cjs --bundle --platform=node --loader:.node=copy --minify --sourcemap",
"start": "node --enable-source-maps dist/server.cjs",
"cleandist": "rm -rf dist",
"build:raw": "node esbuild.config.js",
"build:package": "cp package.dist.json dist/package.json",
"build": "yarn cleandist && yarn build:raw && yarn build:package",
"lint": "tsc"
},
"license": "MIT",
@@ -31,7 +34,6 @@
"@types/node": "^20.2.1",
"@types/react": "^18.2.7",
"esbuild": "^0.17.19",
"typescript": "^5.0.4",
"vite-node": "^0.31.1"
"typescript": "^5.0.4"
}
}
+1 -1
View File
@@ -11,7 +11,7 @@ import { client } from '../index.js';
export default {
inProduction: true,
inDevelopment: false,
inDevelopment: true,
inPublic: true,
command: new SlashCommandBuilder()
-2
View File
@@ -72,7 +72,6 @@ export default {
`https://api.wotblitz.${server}/wotb/clans/accountinfo/?application_id=${wargamingApplicationId}&account_id=${id}&extra=clan`,
);
console.time('ownedtanks');
const image = await render(
<Wrapper>
{/* TODO: integrate some of these into title bar */}
@@ -109,7 +108,6 @@ export default {
);
await interaction.editReply({ files: [image] });
console.timeEnd('ownedtanks');
},
autocomplete: usernameAutocomplete,
-1
View File
@@ -1 +0,0 @@
/// <reference types="vite/client" />
+8 -27
View File
@@ -1,28 +1,9 @@
import { argv } from 'process';
import errorWithCause from './errorWithCause.js';
export const discordToken = process.env.DISCORD_TOKEN!;
export const wargamingApplicationId = process.env.WARGAMING_APPLICATION_ID!;
type ArgumentName = 'discord-token' | 'wargaming-application-id';
const args: Record<ArgumentName, string> = {
'discord-token': '',
'wargaming-application-id': '',
};
argv.forEach((arg) => {
if (arg.includes('=')) {
const [name, value] = arg.split('=');
args[name as ArgumentName] = value;
}
});
Object.keys(args).forEach((arg) => {
if (args[arg as ArgumentName] === '') {
throw errorWithCause(
`Missing argument: ${arg}`,
'Missing required auth key.',
);
}
});
export const discordToken = args['discord-token'];
export const wargamingApplicationId = args['wargaming-application-id'];
if (!discordToken) {
throw new Error('No Discord token provided');
}
if (!wargamingApplicationId) {
throw new Error('No Wargaming application id provided}');
}
+3 -1
View File
@@ -1,5 +1,7 @@
const isDevBoolean = process.argv.includes('--dev');
const isDevBoolean = process.env.NODE_ENV === 'development';
export default function isDev() {
return isDevBoolean;
}
console.log(process.env.NODE_ENV);
+15 -9
View File
@@ -1,28 +1,34 @@
import { Resvg } from '@resvg/resvg-js';
import { readFile } from 'fs';
import { join } from 'path';
import { ReactNode } from 'react';
import satori from 'satori';
import robotoBlackFile from '../../assets/fonts/Roboto-Black.ttf';
import robotoBoldFile from '../../assets/fonts/Roboto-Bold.ttf';
import robotoFile from '../../assets/fonts/Roboto.ttf';
const FONT_NAME = 'Roboto';
const FONT_FILES = ['Roboto', 'Roboto-Bold', 'Roboto-Black'];
const FONT_FILES = [robotoFile, robotoBoldFile, robotoBlackFile];
let robotoFlex: Buffer;
let robotoFlexBold: Buffer;
let robotoFlexBlack: Buffer;
let roboto: Buffer;
let robotoBold: Buffer;
let robotoBlack: Buffer;
console.log('Importing fonts...');
Promise.all(
FONT_FILES.map(
(file) =>
new Promise<Buffer>((resolve, reject) => {
readFile(`src/assets/fonts/${file}.ttf`, (error, data) => {
const path = join(__dirname, file);
readFile(path, (error, data) => {
if (error) reject(error);
resolve(data);
});
}),
),
).then((data) => {
[robotoFlex, robotoFlexBold, robotoFlexBlack] = data;
[roboto, robotoBold, robotoBlack] = data;
console.log('Fonts imported');
});
@@ -30,9 +36,9 @@ export default async function render(element: ReactNode) {
const svg = await satori(element, {
width: 640,
fonts: [
{ data: robotoFlex, name: FONT_NAME, weight: 400 },
{ data: robotoFlexBold, name: FONT_NAME, weight: 700 },
{ data: robotoFlexBlack, name: FONT_NAME, weight: 900 },
{ data: roboto, name: FONT_NAME, weight: 400 },
{ data: robotoBold, name: FONT_NAME, weight: 700 },
{ data: robotoBlack, name: FONT_NAME, weight: 900 },
],
});
const png = new Resvg(svg).render().asPng();
+6
View File
@@ -0,0 +1,6 @@
/// <reference types="vite/client" />
declare module '*.ttf' {
const path: string;
export default path;
}
+2 -1
View File
@@ -10,5 +10,6 @@
"noEmit": true,
"resolveJsonModule": true,
"jsx": "react-jsx"
}
},
"include": ["src/**/*.ts"]
}
+1 -116
View File
@@ -333,11 +333,6 @@
dependencies:
"@types/node" "*"
acorn@^8.8.2:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
[email protected]:
version "0.0.8"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
@@ -355,11 +350,6 @@ busboy@^1.6.0:
dependencies:
streamsearch "^1.1.0"
cac@^6.7.14:
version "6.7.14"
resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
camelize@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
@@ -399,13 +389,6 @@ csstype@^3.0.2:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
discord-api-types@^0.37.37:
version "0.37.39"
resolved "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.39.tgz"
@@ -435,7 +418,7 @@ emoji-regex@^10.2.1:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.2.1.tgz#a41c330d957191efd3d9dfe6e1e8e1e9ab048b3f"
integrity sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==
esbuild@^0.17.19, esbuild@^0.17.5:
esbuild@^0.17.19:
version "0.17.19"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955"
integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==
@@ -487,11 +470,6 @@ file-type@^18.2.1:
strtok3 "^7.0.0"
token-types "^5.0.1"
fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
fuzzysort@^2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/fuzzysort/-/fuzzysort-2.0.4.tgz"
@@ -517,11 +495,6 @@ inherits@^2.0.3:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
jsonc-parser@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
linebreak@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.1.0.tgz#831cf378d98bced381d8ab118f852bd50d81e46b"
@@ -557,26 +530,6 @@ markdown-escape@^2.0.0:
resolved "https://registry.npmjs.org/markdown-escape/-/markdown-escape-2.0.0.tgz"
integrity sha512-Trz4v0+XWlwy68LJIyw3bLbsJiC8XAbRCKF9DbEtZjyndKOGVx6n+wNB0VfoRmY2LKboQLeniap3xrb6LGSJ8A==
mlly@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.3.0.tgz#3184cb80c6437bda861a9f452ae74e3434ed9cd1"
integrity sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==
dependencies:
acorn "^8.8.2"
pathe "^1.1.0"
pkg-types "^1.0.3"
ufo "^1.1.2"
[email protected]:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
nanoid@^3.3.6:
version "3.3.6"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
pako@^0.2.5:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -590,44 +543,16 @@ parse-css-color@^0.2.1:
color-name "^1.1.4"
hex-rgb "^4.1.0"
pathe@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a"
integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==
peek-readable@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz"
integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
pkg-types@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868"
integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==
dependencies:
jsonc-parser "^3.2.0"
mlly "^1.2.0"
pathe "^1.1.0"
postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.4.23:
version "8.4.24"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
dependencies:
nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
react@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
@@ -651,13 +576,6 @@ readable-web-to-node-stream@^3.0.2:
dependencies:
readable-stream "^3.6.0"
rollup@^3.21.0:
version "3.25.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.25.0.tgz#71327d396a9decbf23c87b55916ae7204211738a"
integrity sha512-FnJkNRst2jEZGw7f+v4hFo6UTzpDKrAKcHZWcEfm5/GJQ5CK7wgb4moNLNAe7npKUev7yQn1AY/YbZRIxOv6Qg==
optionalDependencies:
fsevents "~2.3.2"
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
@@ -678,11 +596,6 @@ satori@^0.9.1:
postcss-value-parser "^4.2.0"
yoga-wasm-web "^0.3.3"
source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
streamsearch@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
@@ -736,11 +649,6 @@ typescript@^5.0.4:
resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz"
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
ufo@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76"
integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==
undici@^5.21.0:
version "5.21.2"
resolved "https://registry.npmjs.org/undici/-/undici-5.21.2.tgz"
@@ -761,29 +669,6 @@ util-deprecate@^1.0.1:
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
vite-node@^0.31.1:
version "0.31.4"
resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.31.4.tgz#0437f76c35fa83f0a868d3fb5896ca9e164291f5"
integrity sha512-uzL377GjJtTbuc5KQxVbDu2xfU/x0wVjUtXQR2ihS21q/NK6ROr4oG0rsSkBBddZUVCwzfx22in76/0ZZHXgkQ==
dependencies:
cac "^6.7.14"
debug "^4.3.4"
mlly "^1.2.0"
pathe "^1.1.0"
picocolors "^1.0.0"
vite "^3.0.0 || ^4.0.0"
"vite@^3.0.0 || ^4.0.0":
version "4.3.9"
resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d"
integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==
dependencies:
esbuild "^0.17.5"
postcss "^8.4.23"
rollup "^3.21.0"
optionalDependencies:
fsevents "~2.3.2"
ws@^8.13.0:
version "8.13.0"
resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz"