mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-09 20:30:54 -05:00
* Tables * Clocks * Maplist preference selector * Fix SSR * Nav icon * RankedOrScrim * Map pool * Create group * Redirect logic * Persist map pool * Advance from preparing page * Rename query * Fix merge * Fix migration order * Seed groups * Find looking groups SQL * Renders something * More UI work * Back to 30min * Likes/dislikes * Always return own group * Fix like order * 3 tc/rm/cb -> 2 * Show only 3 weapons * Pass group size * Handle both liked and liked by same group * Fix SQL * Group preference frontend work * Morphing * Styling * Don't show group controls if not manager * Give/remove manager * Leave group * Leave with confirm * Delete likes when morphing groups * Clocks consistency * Remove bad invariant * Persist settings to local storage * Fix initial value flashing * Fix never resolving loading indicator * REFRESH_GROUP * Flip animations * Tweaks * Auto refresh logic * Groups of 4 seed * Reduce throwing * Load full groups initial * Create match * Match UI initial * Score reporter initial * Push footer down on match page * Score reporter knows when set ended * Score reporting untested * Show score after report * Align better * Look again with same group functionality * More migrations * Team on match page * Show confirmer before reporting score * Report weapons * Report weapos again by admin + skill changing * Handle no tiebreaker given to MapPool * Remove unranked * Remove support for "team id skill" * no-wrap -> nowrap * Preparing page work * Use common GroupCard component * Add some metas * MemberAdder in looking page * Fix GroupCard actions * Fix SZ only map list including other modes * Add season info * Prompt login * Joining team * Manage group on preparing page * Manage group on preparing page * Seed past matches * Add to seed * No map list preference when full group + fix expiry * Fix skill matchesCount calculation * Tiers initial work * Some progress on tiers * Tiering logic * MMR in group cards * Name to challenge * Team MMR * Big team rank icons * Adjust todos * Match score report with confirm * Allow regular members to report score * Handle reporting weapons edge cases * Add tier images * Improve GroupCard spacing * Refactor looking page * Looking mobile UI * Calculate skill only for current season * Divide groups visually when reporting weapons * Fix match page weapons sorting * Add cache to user skills+tier calculation * Admin report match score * Initial leaderboard * Cached leaderboard * Weapon category lb's * Populate SkillTeamUser in SendouQ * Team leaderboard filtered down * Add TODOs * Seasons initlal * Season weapons initial * Weapons stylized * Show rest weapons as + * Hide peak if same as current * Load matches SQL initial * Season matches UI initial * Take user id in account * Add weapons * Paginated matches * Fix pages count logic * Scroll top on data change * Day headers for matches * Link from user page to user seasons page * Summarize maps + ui initial * Map stats * Player info tabs * MMR chart * Chart adjustments * Handle basing team MMR on player MMR * Set initial MMR * Add info about discord to match page * Season support to tournaments * Get tournament skills as well for the graph * WIP * New team rating logic + misc other * tiered -> tiered.server * Update season starting time * TODOs * Add rules page * Hide elements correctly when off-season * Fix crash when only one player with skill * How-to video * Fix StartRank showing when not logged in * Make user leaderboard the default * Make Skill season non-nullable * Add suggested pass to match * Add rule * identifierToUserIds helper * Fix tiers not showing
122 lines
5.9 KiB
JSON
122 lines
5.9 KiB
JSON
{
|
|
"name": "sendou.ink",
|
|
"version": "3.0.0",
|
|
"private": true,
|
|
"sideEffects": false,
|
|
"scripts": {
|
|
"deploy": "npm ci && npm run build",
|
|
"build": "remix build",
|
|
"dev": "cross-env NODE_ENV=development remix dev",
|
|
"dev:ci": "cp .env.example .env && npm run migrate up && npm run dev",
|
|
"start": "npm run migrate up && remix-serve build",
|
|
"migrate": "ley",
|
|
"migrate:reset": "node scripts/delete-db-files.mjs && npm run migrate up",
|
|
"add-badge": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/add-badge.ts",
|
|
"rename-badge": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/rename-badge.ts",
|
|
"add-badge-winners": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/add-badge-winners.ts",
|
|
"create-gear-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-gear-json.ts",
|
|
"create-object-dmg-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-object-dmg-json.ts",
|
|
"create-misc-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-misc-json.ts",
|
|
"create-analyzer-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-analyzer-json.ts",
|
|
"check-translation-jsons": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/check-translation-jsons.ts",
|
|
"check-translation-jsons:no-write": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/check-translation-jsons.ts --no-write",
|
|
"replace-img-names": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/replace-img-names.ts",
|
|
"replace-weapon-names": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/replace-weapon-names.ts",
|
|
"placements": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/placements/index.ts",
|
|
"hex-to-filter": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/hex-to-filter.ts",
|
|
"sync-xp-badges": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/sync-xp-badges.ts",
|
|
"delete-user": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/delete-user.ts",
|
|
"lint:ts": "eslint . --ext .ts,.tsx",
|
|
"lint:css": "stylelint \"app/styles/**/*.css\"",
|
|
"prettier:check": "prettier --check . --loglevel warn",
|
|
"prettier:write": "prettier --write . --loglevel warn",
|
|
"typecheck": "tsc --noEmit",
|
|
"test:unit": "uvu -r tsm -r tsconfig-paths/register -i e2e",
|
|
"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": {
|
|
"@dnd-kit/core": "^6.0.8",
|
|
"@dnd-kit/sortable": "^7.0.2",
|
|
"@dnd-kit/utilities": "^3.2.1",
|
|
"@faker-js/faker": "^8.0.2",
|
|
"@headlessui/react": "^1.7.15",
|
|
"@popperjs/core": "^2.11.8",
|
|
"@remix-run/node": "^1.18.0",
|
|
"@remix-run/react": "^1.18.0",
|
|
"@remix-run/serve": "^1.18.0",
|
|
"@tldraw/tldraw": "^1.29.2",
|
|
"aws-sdk": "^2.1409.0",
|
|
"better-sqlite3": "^8.4.0",
|
|
"cachified": "^3.5.4",
|
|
"clsx": "^1.2.1",
|
|
"compressorjs": "^1.2.1",
|
|
"countries-list": "^2.6.1",
|
|
"date-fns": "^2.30.0",
|
|
"fuse.js": "^6.6.2",
|
|
"gray-matter": "^4.0.3",
|
|
"i18next": "^21.9.2",
|
|
"i18next-browser-languagedetector": "^6.1.5",
|
|
"i18next-fs-backend": "^1.1.5",
|
|
"i18next-http-backend": "^1.4.4",
|
|
"isbot": "^3.6.12",
|
|
"just-capitalize": "^3.2.0",
|
|
"just-clone": "^6.2.0",
|
|
"just-random-integer": "^4.2.0",
|
|
"just-shuffle": "^4.2.0",
|
|
"lru-cache": "9.1.2",
|
|
"markdown-to-jsx": "^7.2.1",
|
|
"nanoid": "~3.3.4",
|
|
"node-cron": "3.0.2",
|
|
"nprogress": "^0.2.0",
|
|
"openskill": "^3.1.0",
|
|
"react": "^18.2.0",
|
|
"react-charts": "^3.0.0-beta.55",
|
|
"react-dom": "^18.2.0",
|
|
"react-flip-toolkit": "^7.1.0",
|
|
"react-i18next": "^11.18.6",
|
|
"react-popper": "^2.3.0",
|
|
"react-responsive-masonry": "^2.1.7",
|
|
"react-use": "^17.4.0",
|
|
"remix-auth": "^3.4.0",
|
|
"remix-auth-oauth2": "^1.7.0",
|
|
"remix-i18next": "^4.1.1",
|
|
"remix-utils": "^6.5.0",
|
|
"slugify": "^1.6.6",
|
|
"swr": "^2.2.0",
|
|
"tiny-invariant": "^1.3.1",
|
|
"zod": "^3.21.4"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.35.1",
|
|
"@remix-run/dev": "^1.18.0",
|
|
"@remix-run/eslint-config": "^1.18.0",
|
|
"@types/better-sqlite3": "7.6.4",
|
|
"@types/i18next-fs-backend": "^1.1.2",
|
|
"@types/node-cron": "^3.0.8",
|
|
"@types/nprogress": "^0.2.0",
|
|
"@types/prettier": "^2.7.3",
|
|
"@types/react": "^18.2.14",
|
|
"@types/react-dom": "^18.2.6",
|
|
"@types/react-responsive-masonry": "^2.1.0",
|
|
"@typescript-eslint/eslint-plugin": "^5.60.1",
|
|
"@typescript-eslint/parser": "^5.60.1",
|
|
"cross-env": "^7.0.3",
|
|
"dotenv": "^16.3.1",
|
|
"eslint": "^8.43.0",
|
|
"eslint-plugin-react": "^7.32.2",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"ley": "^0.8.1",
|
|
"prettier": "2.8.8",
|
|
"stylelint": "^15.10.1",
|
|
"stylelint-config-standard": "^33.0.0",
|
|
"ts-node": "^10.9.1",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"tsm": "^2.3.0",
|
|
"typescript": "^5.1.6",
|
|
"uvu": "^0.5.6"
|
|
}
|
|
}
|