Merge branch 'beta' into pr/emdeann/6027
2
.github/workflows/deploy-beta.yml
vendored
@ -11,7 +11,7 @@ on:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
if: github.repository == 'pagefaultgames/pokerogue' && github.ref_name == ${{ vars.BETA_DEPLOY_BRANCH || 'beta' }}
|
||||
if: github.repository == 'pagefaultgames/pokerogue' && github.ref_name == (vars.BETA_DEPLOY_BRANCH || 'beta')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
1
.github/workflows/github-pages.yml
vendored
@ -4,6 +4,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- beta
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
5
.github/workflows/linting.yml
vendored
@ -41,4 +41,7 @@ jobs:
|
||||
run: pnpm biome-ci
|
||||
|
||||
- name: Check dependencies with depcruise
|
||||
run: pnpm depcruise
|
||||
run: pnpm depcruise
|
||||
|
||||
- name: Lint with ls-lint
|
||||
run: pnpm ls-lint
|
2
.github/workflows/test-shard-template.yml
vendored
@ -44,4 +44,4 @@ jobs:
|
||||
run: pnpm i
|
||||
|
||||
- name: Run tests
|
||||
run: pnpm exec vitest --project ${{ inputs.project }} --no-isolate --shard=${{ inputs.shard }}/${{ inputs.totalShards }} ${{ !runner.debug && '--silent' || '' }}
|
||||
run: pnpm test:silent --shard=${{ inputs.shard }}/${{ inputs.totalShards }}
|
||||
|
1
.github/workflows/tests.yml
vendored
@ -11,6 +11,7 @@ on:
|
||||
- beta
|
||||
merge_group:
|
||||
types: [checks_requested]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-path-change-filter:
|
||||
|
28
.ls-lint.yml
Normal file
@ -0,0 +1,28 @@
|
||||
# Base settings to use
|
||||
# Note that the `_cfg` key isn't part of ls-lint's configuration, it's just a YAML anchor for reuse.
|
||||
_cfg: &cfg
|
||||
.ps1: kebab-case
|
||||
.ts: kebab-case
|
||||
.js: kebab-case
|
||||
.*.ts: kebab-case
|
||||
.*.js: kebab-case
|
||||
.dir: kebab-case
|
||||
.py: snake_case # python files should always use snake_case
|
||||
|
||||
ls:
|
||||
<<: *cfg
|
||||
src: &src
|
||||
<<: *cfg
|
||||
.dir: kebab-case | regex:@types
|
||||
.js: exists:0
|
||||
src/system/version-migration/versions:
|
||||
.ts: snake_case
|
||||
<<: *cfg
|
||||
test: *src
|
||||
ignore:
|
||||
- node_modules
|
||||
- .vscode
|
||||
- .github
|
||||
- .git
|
||||
- public
|
||||
- dist
|
@ -104,7 +104,7 @@ Most non-trivial changes (*especially bug fixes*) should come along with new tes
|
||||
- Test edge cases. A good strategy is to think of edge cases beforehand and create tests for them using `it.todo`. Once the edge case has been handled, you can remove the `todo` marker.
|
||||
|
||||
## 😈 Development Save File
|
||||
> Some issues may require you to have unlocks on your save file which go beyond normal overrides. For this reason, the repository contains a [save file](../test/testUtils/saves/everything.psrv) with _everything_ unlocked (even ones not legitimately obtainable, like unimplemented variant shinies).
|
||||
> Some issues may require you to have unlocks on your save file which go beyond normal overrides. For this reason, the repository contains a [save file](../test/test-utils/saves/everything.psrv) with _everything_ unlocked (even ones not legitimately obtainable, like unimplemented variant shinies).
|
||||
|
||||
1. Start the game up locally and navigate to `Menu -> Manage Data -> Import Data`
|
||||
2. Select [everything.prsv](test/testUtils/saves/everything.prsv) (`test/testUtils/saves/everything.prsv`) and confirm.
|
||||
2. Select [everything.prsv](test/test-utils/saves/everything.prsv) (`test/test-utils/saves/everything.prsv`) and confirm.
|
||||
|
@ -40,6 +40,7 @@
|
||||
## Backgrounds
|
||||
- Squip (Paid Commissions)
|
||||
- Contributions by Someonealive-QN
|
||||
- Contributions by redactedinlight
|
||||
|
||||
## UI
|
||||
- GAMEFREAK
|
||||
|
10
biome.jsonc
@ -19,7 +19,6 @@
|
||||
// and having to verify whether each individual file is ignored
|
||||
"includes": [
|
||||
"**",
|
||||
"!**/*.d.ts",
|
||||
"!**/dist/**/*",
|
||||
"!**/build/**/*",
|
||||
"!**/coverage/**/*",
|
||||
@ -139,7 +138,7 @@
|
||||
"useAdjacentGetterSetter": "error",
|
||||
"noConstantBinaryExpression": "error",
|
||||
"noTsIgnore": "error",
|
||||
"noAwaitInLoop": "warn",
|
||||
"noAwaitInLoop": "off",
|
||||
"useJsonImportAttribute": "off", // "Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'nodenext', or 'preserve'. ts(2823)"
|
||||
"useIndexOf": "error",
|
||||
"useObjectSpread": "error",
|
||||
@ -177,9 +176,10 @@
|
||||
}
|
||||
},
|
||||
|
||||
// Overrides to prevent unused import removal inside `overrides.ts` and enums files (for TSDoc linkcodes)
|
||||
// Overrides to prevent unused import removal inside `overrides.ts` and enums files (for TSDoc linkcodes),
|
||||
// as well as in all TS files in `scripts/` (which are assumed to be boilerplate templates).
|
||||
{
|
||||
"includes": ["**/src/overrides.ts", "**/src/enums/**/*"],
|
||||
"includes": ["**/src/overrides.ts", "**/src/enums/**/*", "**/scripts/**/*.ts", "**/*.d.ts"],
|
||||
"linter": {
|
||||
"rules": {
|
||||
"correctness": {
|
||||
@ -189,7 +189,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"includes": ["**/src/overrides.ts"],
|
||||
"includes": ["**/src/overrides.ts", "**/scripts/**/*.ts"],
|
||||
"linter": {
|
||||
"rules": {
|
||||
"style": {
|
||||
|
12
global.d.ts
vendored
@ -1,14 +1,20 @@
|
||||
import type { AnyFn } from "#types/type-helpers";
|
||||
import type { SetupServerApi } from "msw/node";
|
||||
|
||||
export {};
|
||||
|
||||
declare global {
|
||||
/**
|
||||
* Only used in testing.
|
||||
* Can technically be undefined/null but for ease of use we are going to assume it is always defined.
|
||||
* Used to load i18n files exclusively.
|
||||
*
|
||||
* To set up your own server in a test see `game_data.test.ts`
|
||||
* To set up your own server in a test see `game-data.test.ts`
|
||||
*/
|
||||
var server: SetupServerApi;
|
||||
|
||||
// Overloads for `Function.apply` and `Function.call` to add type safety on matching argument types
|
||||
interface Function {
|
||||
apply<T extends AnyFn>(this: T, thisArg: ThisParameterType<T>, argArray: Parameters<T>): ReturnType<T>;
|
||||
|
||||
call<T extends AnyFn>(this: T, thisArg: ThisParameterType<T>, ...argArray: Parameters<T>): ReturnType<T>;
|
||||
}
|
||||
}
|
||||
|
12
lefthook.yml
@ -1,11 +1,13 @@
|
||||
pre-commit:
|
||||
skip:
|
||||
- merge
|
||||
- rebase
|
||||
commands:
|
||||
biome-lint:
|
||||
run: pnpm exec biome check --write --reporter=summary --staged --no-errors-on-unmatched
|
||||
stage_fixed: true
|
||||
skip:
|
||||
- merge
|
||||
- rebase
|
||||
ls-lint:
|
||||
run: pnpm exec ls-lint
|
||||
|
||||
post-merge:
|
||||
commands:
|
||||
@ -15,4 +17,6 @@ post-merge:
|
||||
post-checkout:
|
||||
commands:
|
||||
update-submodules:
|
||||
run: git submodule update --init --recursive
|
||||
# cf https://git-scm.com/docs/githooks#_post_checkout:
|
||||
# The 3rd argument is 1 for branch checkouts and 0 for file checkouts.
|
||||
run: if test {3} -eq "1"; then git submodule update --init --recursive; fi
|
38
package.json
@ -12,12 +12,12 @@
|
||||
"test": "vitest run --no-isolate",
|
||||
"test:cov": "vitest run --coverage --no-isolate",
|
||||
"test:watch": "vitest watch --coverage --no-isolate",
|
||||
"test:silent": "vitest run --silent --no-isolate",
|
||||
"test:silent": "vitest run --silent='passed-only' --no-isolate",
|
||||
"test:create": "node scripts/create-test/create-test.js",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"eslint": "eslint --fix .",
|
||||
"eslint-ci": "eslint .",
|
||||
"biome": "biome check --write --changed --no-errors-on-unmatched",
|
||||
"biome": "biome check --write --changed --no-errors-on-unmatched --diagnostic-level=error",
|
||||
"biome-ci": "biome ci --diagnostic-level=error --reporter=github --no-errors-on-unmatched",
|
||||
"docs": "typedoc",
|
||||
"depcruise": "depcruise src test",
|
||||
@ -28,35 +28,37 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "2.0.0",
|
||||
"@ls-lint/ls-lint": "2.3.1",
|
||||
"@types/jsdom": "^21.1.7",
|
||||
"@types/node": "^22.13.14",
|
||||
"@vitest/coverage-istanbul": "^3.0.9",
|
||||
"@types/node": "^22.16.5",
|
||||
"@vitest/coverage-istanbul": "^3.2.4",
|
||||
"@vitest/expect": "^3.2.4",
|
||||
"chalk": "^5.4.1",
|
||||
"dependency-cruiser": "^16.3.10",
|
||||
"inquirer": "^12.4.2",
|
||||
"jsdom": "^26.0.0",
|
||||
"lefthook": "^1.11.5",
|
||||
"msw": "^2.7.3",
|
||||
"dependency-cruiser": "^16.10.4",
|
||||
"inquirer": "^12.8.2",
|
||||
"jsdom": "^26.1.0",
|
||||
"lefthook": "^1.12.2",
|
||||
"msw": "^2.10.4",
|
||||
"phaser3spectorjs": "^0.0.8",
|
||||
"typedoc": "^0.28.1",
|
||||
"typescript": "^5.8.2",
|
||||
"vite": "^6.3.4",
|
||||
"typedoc": "^0.28.8",
|
||||
"typescript": "^5.8.3",
|
||||
"vite": "^7.0.6",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"vitest": "^3.0.9",
|
||||
"vitest": "^3.2.4",
|
||||
"vitest-canvas-mock": "^0.3.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@material/material-color-utilities": "^0.2.7",
|
||||
"compare-versions": "^6.1.1",
|
||||
"crypto-js": "^4.2.0",
|
||||
"i18next": "^24.2.2",
|
||||
"i18next-browser-languagedetector": "^8.0.4",
|
||||
"i18next": "^24.2.3",
|
||||
"i18next-browser-languagedetector": "^8.2.0",
|
||||
"i18next-http-backend": "^3.0.2",
|
||||
"i18next-korean-postposition-processor": "^1.0.0",
|
||||
"json-stable-stringify": "^1.2.0",
|
||||
"json-stable-stringify": "^1.3.0",
|
||||
"jszip": "^3.10.1",
|
||||
"phaser": "^3.88.2",
|
||||
"phaser3-rex-plugins": "^1.80.15"
|
||||
"phaser": "^3.90.0",
|
||||
"phaser3-rex-plugins": "^1.80.16"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.0.0"
|
||||
|
1953
pnpm-lock.yaml
@ -333,8 +333,6 @@
|
||||
"671-yellow",
|
||||
"6713",
|
||||
"6713",
|
||||
"672",
|
||||
"672",
|
||||
"6724",
|
||||
"6724",
|
||||
"673",
|
||||
@ -377,10 +375,6 @@
|
||||
"690",
|
||||
"691",
|
||||
"691",
|
||||
"692",
|
||||
"692",
|
||||
"693",
|
||||
"693",
|
||||
"695",
|
||||
"695",
|
||||
"696",
|
||||
@ -503,10 +497,6 @@
|
||||
"751",
|
||||
"752",
|
||||
"752",
|
||||
"753",
|
||||
"753",
|
||||
"754",
|
||||
"754",
|
||||
"755",
|
||||
"755",
|
||||
"756",
|
||||
@ -1459,8 +1449,6 @@
|
||||
"671b-yellow",
|
||||
"6713b",
|
||||
"6713b",
|
||||
"672b",
|
||||
"672b",
|
||||
"6724b",
|
||||
"6724b",
|
||||
"673b",
|
||||
@ -1503,10 +1491,6 @@
|
||||
"690b",
|
||||
"691b",
|
||||
"691b",
|
||||
"692b",
|
||||
"692b",
|
||||
"693b",
|
||||
"693b",
|
||||
"695b",
|
||||
"695b",
|
||||
"696b",
|
||||
@ -1629,10 +1613,6 @@
|
||||
"751b",
|
||||
"752b",
|
||||
"752b",
|
||||
"753b",
|
||||
"753b",
|
||||
"754b",
|
||||
"754b",
|
||||
"755b",
|
||||
"755b",
|
||||
"756b",
|
||||
@ -2585,8 +2565,6 @@
|
||||
"671sb-yellow",
|
||||
"6713sb",
|
||||
"6713sb",
|
||||
"672sb",
|
||||
"672sb",
|
||||
"6724sb",
|
||||
"6724sb",
|
||||
"673sb",
|
||||
@ -2629,10 +2607,6 @@
|
||||
"690sb",
|
||||
"691sb",
|
||||
"691sb",
|
||||
"692sb",
|
||||
"692sb",
|
||||
"693sb",
|
||||
"693sb",
|
||||
"695sb",
|
||||
"695sb",
|
||||
"696sb",
|
||||
@ -2755,10 +2729,6 @@
|
||||
"751sb",
|
||||
"752sb",
|
||||
"752sb",
|
||||
"753sb",
|
||||
"753sb",
|
||||
"754sb",
|
||||
"754sb",
|
||||
"755sb",
|
||||
"755sb",
|
||||
"756sb",
|
||||
@ -3716,8 +3686,6 @@
|
||||
"671s-yellow",
|
||||
"6713s",
|
||||
"6713s",
|
||||
"672s",
|
||||
"672s",
|
||||
"6724s",
|
||||
"6724s",
|
||||
"673s",
|
||||
@ -3760,10 +3728,6 @@
|
||||
"690s",
|
||||
"691s",
|
||||
"691s",
|
||||
"692s",
|
||||
"692s",
|
||||
"693s",
|
||||
"693s",
|
||||
"695s",
|
||||
"695s",
|
||||
"696s",
|
||||
@ -3886,10 +3850,6 @@
|
||||
"751s",
|
||||
"752s",
|
||||
"752s",
|
||||
"753s",
|
||||
"753s",
|
||||
"754s",
|
||||
"754s",
|
||||
"755s",
|
||||
"755s",
|
||||
"756s",
|
||||
@ -4625,8 +4585,6 @@
|
||||
"730",
|
||||
"747",
|
||||
"748",
|
||||
"753",
|
||||
"754",
|
||||
"755",
|
||||
"756",
|
||||
"761",
|
||||
|
Before Width: | Height: | Size: 607 B After Width: | Height: | Size: 333 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 637 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 654 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 773 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 474 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 772 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 552 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 667 B |
Before Width: | Height: | Size: 767 B After Width: | Height: | Size: 302 B |
Before Width: | Height: | Size: 764 B After Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 1008 B After Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 789 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 852 B After Width: | Height: | Size: 390 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 701 B |
Before Width: | Height: | Size: 779 B After Width: | Height: | Size: 340 B |
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 197 B |
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 285 B |
Before Width: | Height: | Size: 789 B After Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 943 B After Width: | Height: | Size: 420 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 369 B |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 309 B |
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 703 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 652 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 422 B |
Before Width: | Height: | Size: 868 B After Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 788 B After Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 610 B |
Before Width: | Height: | Size: 617 B After Width: | Height: | Size: 252 B |
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 287 B |
Before Width: | Height: | Size: 667 B After Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 777 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 785 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 670 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 858 B After Width: | Height: | Size: 422 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 755 B |
Before Width: | Height: | Size: 713 B After Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 596 B After Width: | Height: | Size: 239 B |
Before Width: | Height: | Size: 756 B After Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 576 B |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 960 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 733 B |
Before Width: | Height: | Size: 787 B After Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 624 B |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 497 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 933 B After Width: | Height: | Size: 426 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 784 B |
Before Width: | Height: | Size: 969 B After Width: | Height: | Size: 387 B |
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 397 B |
Before Width: | Height: | Size: 768 B After Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 776 B After Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 890 B After Width: | Height: | Size: 398 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 504 B |
Before Width: | Height: | Size: 1022 B After Width: | Height: | Size: 415 B |
Before Width: | Height: | Size: 522 B After Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 670 B After Width: | Height: | Size: 276 B |
Before Width: | Height: | Size: 788 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 458 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 745 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 820 B |
Before Width: | Height: | Size: 910 B After Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 493 B |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 341 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 931 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 457 B |