sendou.ink/package.json
2024-02-11 11:03:04 +02:00

144 lines
8.5 KiB
JSON

{
"name": "sendou.ink",
"version": "3.0.0",
"private": true,
"sideEffects": false,
"scripts": {
"deploy": "npm ci && npm run build",
"build": "remix build",
"dev": "remix dev",
"dev:prod": "cross-env DB_PATH=db-prod.sqlite3 remix dev",
"dev:ci": "cp .env.example .env && npm run migrate up && npm run dev",
"start": "npm run migrate up && remix-serve ./build/index.js",
"start:nr": "npm run migrate up && NODE_OPTIONS='-r dotenv/config -r newrelic' remix-serve ./build/index.js",
"migrate": "ley",
"migrate:reset": "node scripts/delete-db-files.mjs && npm run migrate up",
"add-badge": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/add-badge.ts",
"rename-badge": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/rename-badge.ts",
"add-badge-winners": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/add-badge-winners.ts",
"create-gear-json": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/create-gear-json.ts",
"create-object-dmg-json": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/create-object-dmg-json.ts",
"create-misc-json": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/create-misc-json.ts",
"create-analyzer-json": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/create-analyzer-json.ts",
"check-translation-jsons": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/check-translation-jsons.ts",
"check-translation-jsons:no-write": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/check-translation-jsons.ts --no-write",
"replace-img-names": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/replace-img-names.ts",
"replace-weapon-names": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/replace-weapon-names.ts",
"placements": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/placements/index.ts",
"hex-to-filter": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/hex-to-filter.ts",
"sync-xp-badges": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/sync-xp-badges.ts",
"delete-user": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/delete-user.ts",
"ban-user": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/ban-user.ts",
"unban-user": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/unban-user.ts",
"delete-skill": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/delete-skill.ts",
"skip-plus": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/skip-plus.ts",
"unskip-plus": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/unskip-plus.ts",
"season-initial-powers": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/season-initial-powers.ts",
"map-popularity": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/map-popularity.ts",
"map-popularity-q": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/map-popularity-q.ts",
"remove-vodder": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/remove-vodder.ts",
"transfer-weapon-pools": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/transfer-weapon-pools.ts",
"reopen-tournament": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/reopen-tournament.ts",
"refresh-prod-db": "node --experimental-specifier-resolution=node -r @swc-node/register -r tsconfig-paths/register scripts/refresh-prod-db.ts && cross-env DB_PATH=db-prod.sqlite3 npm run migrate up",
"lint:ts": "eslint . --ext .ts,.tsx",
"lint:css": "stylelint \"app/styles/**/*.css\"",
"prettier:check": "prettier --check . --log-level warn",
"prettier:write": "prettier --write . --log-level warn",
"typecheck": "tsc --noEmit",
"test:unit": "cross-env DB_PATH=:memory: NODE_ENV=test BASE_URL=https://example.com SKALOP_SYSTEM_MESSAGE_URL=http://skalop.test SKALOP_TOKEN=test uvu -r tsm -r tsconfig-paths/register -r ignore-styles -i e2e",
"test:unit:single": "cross-env DB_PATH=:memory: NODE_ENV=test BASE_URL=https://example.com SKALOP_SYSTEM_MESSAGE_URL=http://skalop.test SKALOP_TOKEN=test node -r tsm -r tsconfig-paths/register -r ignore-styles",
"test:e2e": "npx playwright test",
"checks": "npm run test:unit && npm run lint:css && npm run lint:ts && npm run prettier:check && npm run typecheck",
"cf": "npm run test:unit && npm run check-translation-jsons && npm run lint:css -- --fix && npm run lint:ts -- --fix && npm run prettier:write && npm run typecheck && npm run test:e2e",
"cf:noe2e": "npm run test:unit && npm run check-translation-jsons && npm run lint:css -- --fix && npm run lint:ts -- --fix && npm run prettier:write && npm run typecheck"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.511.0",
"@aws-sdk/lib-storage": "^3.511.0",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@epic-web/cachified": "^5.1.1",
"@faker-js/faker": "^8.4.1",
"@headlessui/react": "^1.7.18",
"@popperjs/core": "^2.11.8",
"@remix-run/node": "^2.6.0",
"@remix-run/react": "^2.6.0",
"@remix-run/serve": "^2.6.0",
"@tldraw/tldraw": "^1.29.2",
"aws-sdk": "^2.1555.0",
"better-sqlite3": "^9.4.1",
"clsx": "^2.1.0",
"compressorjs": "^1.2.1",
"countries-list": "^3.0.6",
"date-fns": "^3.3.1",
"fuse.js": "^7.0.0",
"gray-matter": "^4.0.3",
"i18next": "^23.8.2",
"i18next-browser-languagedetector": "^7.2.0",
"i18next-fs-backend": "^2.3.1",
"i18next-http-backend": "^2.4.3",
"isbot": "^4.4.0",
"just-capitalize": "^3.2.0",
"just-clone": "^6.2.0",
"just-random-integer": "^4.2.0",
"just-shuffle": "^4.2.0",
"kysely": "^0.27.2",
"lru-cache": "10.2.0",
"markdown-to-jsx": "^7.4.1",
"nanoid": "~5.0.5",
"newrelic": "^11.10.3",
"node-cron": "3.0.3",
"nprogress": "^0.2.0",
"openskill": "^3.1.0",
"react": "^18.2.0",
"react-charts": "^3.0.0-beta.57",
"react-dom": "^18.2.0",
"react-flip-toolkit": "^7.1.0",
"react-i18next": "^14.0.5",
"react-popper": "^2.3.0",
"react-responsive-masonry": "^2.1.7",
"react-use": "^17.5.0",
"reconnecting-websocket": "^4.4.0",
"remix-auth": "^3.6.0",
"remix-auth-oauth2": "^1.11.1",
"remix-i18next": "^5.5.0",
"remix-utils": "^7.5.0",
"slugify": "^1.6.6",
"swr": "^2.2.4",
"tiny-invariant": "^1.3.1",
"zod": "^3.22.4"
},
"devDependencies": {
"@playwright/test": "^1.41.2",
"@remix-run/dev": "^2.6.0",
"@swc-node/register": "^1.8.0",
"@types/better-sqlite3": "7.6.9",
"@types/i18next-fs-backend": "^1.1.5",
"@types/newrelic": "^9.14.3",
"@types/node-cron": "^3.0.11",
"@types/nprogress": "^0.2.3",
"@types/prettier": "3.0.0",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@types/react-responsive-masonry": "^2.1.3",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"cross-env": "^7.0.3",
"dotenv": "^16.4.2",
"eslint": "^8.56.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"ignore-styles": "^5.0.1",
"ley": "^0.8.1",
"mockdate": "^3.0.5",
"prettier": "3.2.5",
"stylelint": "^16.2.1",
"stylelint-config-standard": "^36.0.0",
"tsconfig-paths": "^4.2.0",
"tsm": "^2.3.0",
"typescript": "^5.3.3",
"uvu": "^0.5.6"
}
}