├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ ├── check.yml │ ├── codeql.yml │ └── publish-docs.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── data ├── headers-and-moves-on-the-same-line.pgn ├── kasparov-deep-blue-1997.pgn ├── leading-whitespace.pgn └── pathological-headers.pgn ├── dprint.json ├── eslint.config.mjs ├── examples ├── package-lock.json ├── package.json ├── src │ └── read-pgn.ts └── tsconfig.json ├── fuzz ├── .gitignore ├── README.md ├── corpus │ ├── fen │ │ ├── empty │ │ ├── endgame │ │ ├── horde │ │ ├── initial │ │ ├── scid-3check │ │ ├── scid-zh │ │ ├── too-many-empty-ranks │ │ ├── winboard-3check │ │ └── winboard-zh │ ├── pgn-comment │ │ └── comment │ ├── pgn │ │ ├── bare │ │ └── small │ ├── san │ │ ├── capture │ │ ├── castle-long │ │ ├── castle-short │ │ ├── drop │ │ ├── longest │ │ ├── move │ │ └── promotion │ └── uci │ │ ├── drop │ │ ├── move │ │ ├── null │ │ └── promotion ├── package-lock.json ├── package.json ├── src │ ├── fen.fuzz.ts │ ├── pgn-comment.fuzz.ts │ ├── pgn.fuzz.ts │ ├── san.fuzz.ts │ └── uci.fuzz.ts └── tsconfig.json ├── package.json ├── src ├── attacks.test.ts ├── attacks.ts ├── board.test.ts ├── board.ts ├── chess.test.ts ├── chess.ts ├── compat.test.ts ├── compat.ts ├── debug.ts ├── fen.test.ts ├── fen.ts ├── index.ts ├── pgn.test.ts ├── pgn.ts ├── san.test.ts ├── san.ts ├── setup.ts ├── squareSet.test.ts ├── squareSet.ts ├── transform.test.ts ├── transform.ts ├── types.ts ├── util.test.ts ├── util.ts ├── variant.test.ts └── variant.ts └── tsconfig.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: niklasf 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/.github/workflows/check.yml -------------------------------------------------------------------------------- /.github/workflows/codeql.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/.github/workflows/codeql.yml -------------------------------------------------------------------------------- /.github/workflows/publish-docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/.github/workflows/publish-docs.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/README.md -------------------------------------------------------------------------------- /data/headers-and-moves-on-the-same-line.pgn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/data/headers-and-moves-on-the-same-line.pgn -------------------------------------------------------------------------------- /data/kasparov-deep-blue-1997.pgn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/data/kasparov-deep-blue-1997.pgn -------------------------------------------------------------------------------- /data/leading-whitespace.pgn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/data/leading-whitespace.pgn -------------------------------------------------------------------------------- /data/pathological-headers.pgn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/data/pathological-headers.pgn -------------------------------------------------------------------------------- /dprint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/dprint.json -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /examples/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/examples/package-lock.json -------------------------------------------------------------------------------- /examples/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/examples/package.json -------------------------------------------------------------------------------- /examples/src/read-pgn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/examples/src/read-pgn.ts -------------------------------------------------------------------------------- /examples/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/examples/tsconfig.json -------------------------------------------------------------------------------- /fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | .nyc_output/ 2 | corpus/ 3 | -------------------------------------------------------------------------------- /fuzz/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/README.md -------------------------------------------------------------------------------- /fuzz/corpus/fen/empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/empty -------------------------------------------------------------------------------- /fuzz/corpus/fen/endgame: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/endgame -------------------------------------------------------------------------------- /fuzz/corpus/fen/horde: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/horde -------------------------------------------------------------------------------- /fuzz/corpus/fen/initial: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/initial -------------------------------------------------------------------------------- /fuzz/corpus/fen/scid-3check: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/scid-3check -------------------------------------------------------------------------------- /fuzz/corpus/fen/scid-zh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/scid-zh -------------------------------------------------------------------------------- /fuzz/corpus/fen/too-many-empty-ranks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/too-many-empty-ranks -------------------------------------------------------------------------------- /fuzz/corpus/fen/winboard-3check: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/fen/winboard-3check -------------------------------------------------------------------------------- /fuzz/corpus/fen/winboard-zh: -------------------------------------------------------------------------------- 1 | r4rk1/p2bppbp/6p1/2qpP3/5P2/2NBPQPp/PPP4P/R1B3K1[NNNrp] b - - 39 20 2 | -------------------------------------------------------------------------------- /fuzz/corpus/pgn-comment/comment: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/pgn-comment/comment -------------------------------------------------------------------------------- /fuzz/corpus/pgn/bare: -------------------------------------------------------------------------------- 1 | 1. e4 e5 2 | 2. Nf3 3 | -------------------------------------------------------------------------------- /fuzz/corpus/pgn/small: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/corpus/pgn/small -------------------------------------------------------------------------------- /fuzz/corpus/san/capture: -------------------------------------------------------------------------------- 1 | Q1xd4 2 | -------------------------------------------------------------------------------- /fuzz/corpus/san/castle-long: -------------------------------------------------------------------------------- 1 | O-O-O 2 | -------------------------------------------------------------------------------- /fuzz/corpus/san/castle-short: -------------------------------------------------------------------------------- 1 | O-O 2 | -------------------------------------------------------------------------------- /fuzz/corpus/san/drop: -------------------------------------------------------------------------------- 1 | Q@f8 2 | -------------------------------------------------------------------------------- /fuzz/corpus/san/longest: -------------------------------------------------------------------------------- 1 | Qa1h8=K# 2 | -------------------------------------------------------------------------------- /fuzz/corpus/san/move: -------------------------------------------------------------------------------- 1 | Nf3 2 | -------------------------------------------------------------------------------- /fuzz/corpus/san/promotion: -------------------------------------------------------------------------------- 1 | e8=Q 2 | -------------------------------------------------------------------------------- /fuzz/corpus/uci/drop: -------------------------------------------------------------------------------- 1 | P@d2 2 | -------------------------------------------------------------------------------- /fuzz/corpus/uci/move: -------------------------------------------------------------------------------- 1 | a1h8 2 | -------------------------------------------------------------------------------- /fuzz/corpus/uci/null: -------------------------------------------------------------------------------- 1 | 0000 2 | -------------------------------------------------------------------------------- /fuzz/corpus/uci/promotion: -------------------------------------------------------------------------------- 1 | e7e8q 2 | -------------------------------------------------------------------------------- /fuzz/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/package-lock.json -------------------------------------------------------------------------------- /fuzz/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/package.json -------------------------------------------------------------------------------- /fuzz/src/fen.fuzz.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/src/fen.fuzz.ts -------------------------------------------------------------------------------- /fuzz/src/pgn-comment.fuzz.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/src/pgn-comment.fuzz.ts -------------------------------------------------------------------------------- /fuzz/src/pgn.fuzz.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/src/pgn.fuzz.ts -------------------------------------------------------------------------------- /fuzz/src/san.fuzz.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/src/san.fuzz.ts -------------------------------------------------------------------------------- /fuzz/src/uci.fuzz.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/src/uci.fuzz.ts -------------------------------------------------------------------------------- /fuzz/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/fuzz/tsconfig.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/package.json -------------------------------------------------------------------------------- /src/attacks.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/attacks.test.ts -------------------------------------------------------------------------------- /src/attacks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/attacks.ts -------------------------------------------------------------------------------- /src/board.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/board.test.ts -------------------------------------------------------------------------------- /src/board.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/board.ts -------------------------------------------------------------------------------- /src/chess.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/chess.test.ts -------------------------------------------------------------------------------- /src/chess.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/chess.ts -------------------------------------------------------------------------------- /src/compat.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/compat.test.ts -------------------------------------------------------------------------------- /src/compat.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/compat.ts -------------------------------------------------------------------------------- /src/debug.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/debug.ts -------------------------------------------------------------------------------- /src/fen.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/fen.test.ts -------------------------------------------------------------------------------- /src/fen.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/fen.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/pgn.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/pgn.test.ts -------------------------------------------------------------------------------- /src/pgn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/pgn.ts -------------------------------------------------------------------------------- /src/san.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/san.test.ts -------------------------------------------------------------------------------- /src/san.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/san.ts -------------------------------------------------------------------------------- /src/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/setup.ts -------------------------------------------------------------------------------- /src/squareSet.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/squareSet.test.ts -------------------------------------------------------------------------------- /src/squareSet.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/squareSet.ts -------------------------------------------------------------------------------- /src/transform.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/transform.test.ts -------------------------------------------------------------------------------- /src/transform.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/transform.ts -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/types.ts -------------------------------------------------------------------------------- /src/util.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/util.test.ts -------------------------------------------------------------------------------- /src/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/util.ts -------------------------------------------------------------------------------- /src/variant.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/variant.test.ts -------------------------------------------------------------------------------- /src/variant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/src/variant.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/niklasf/chessops/HEAD/tsconfig.json --------------------------------------------------------------------------------