@connectorvol/chessops 1.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/{esm/attacks.js → attacks.js} +2 -3
  2. package/dist/{esm/board.js → board.js} +25 -9
  3. package/dist/{esm/chess.js → chess.js} +24 -18
  4. package/dist/{esm/compat.js → compat.js} +1 -2
  5. package/dist/{esm/debug.js → debug.js} +0 -1
  6. package/dist/{esm/fen.js → fen.js} +1 -2
  7. package/dist/{types/index.d.ts → index.d.ts} +6 -3
  8. package/dist/{esm/index.js → index.js} +1 -2
  9. package/dist/{esm/pgn.js → pgn.js} +54 -34
  10. package/dist/pgnOps.svelte.d.ts +31 -0
  11. package/dist/pgnOps.svelte.js +122 -0
  12. package/dist/{esm/san.js → san.js} +2 -5
  13. package/dist/{esm/setup.js → setup.js} +29 -26
  14. package/dist/{esm/squareSet.js → squareSet.js} +17 -16
  15. package/dist/{esm/transform.js → transform.js} +10 -14
  16. package/dist/{esm/types.js → types.js} +0 -1
  17. package/dist/{esm/util.js → util.js} +0 -1
  18. package/dist/{types/variant.d.ts → variant.d.ts} +2 -1
  19. package/dist/{esm/variant.js → variant.js} +21 -26
  20. package/package.json +31 -59
  21. package/dist/cjs/attacks.js +0 -152
  22. package/dist/cjs/attacks.js.map +0 -1
  23. package/dist/cjs/board.js +0 -143
  24. package/dist/cjs/board.js.map +0 -1
  25. package/dist/cjs/chess.js +0 -638
  26. package/dist/cjs/chess.js.map +0 -1
  27. package/dist/cjs/compat.js +0 -89
  28. package/dist/cjs/compat.js.map +0 -1
  29. package/dist/cjs/debug.js +0 -103
  30. package/dist/cjs/debug.js.map +0 -1
  31. package/dist/cjs/fen.js +0 -325
  32. package/dist/cjs/fen.js.map +0 -1
  33. package/dist/cjs/index.js +0 -94
  34. package/dist/cjs/index.js.map +0 -1
  35. package/dist/cjs/pgn.js +0 -796
  36. package/dist/cjs/pgn.js.map +0 -1
  37. package/dist/cjs/san.js +0 -174
  38. package/dist/cjs/san.js.map +0 -1
  39. package/dist/cjs/setup.js +0 -167
  40. package/dist/cjs/setup.js.map +0 -1
  41. package/dist/cjs/squareSet.js +0 -206
  42. package/dist/cjs/squareSet.js.map +0 -1
  43. package/dist/cjs/transform.js +0 -57
  44. package/dist/cjs/transform.js.map +0 -1
  45. package/dist/cjs/types.js +0 -24
  46. package/dist/cjs/types.js.map +0 -1
  47. package/dist/cjs/util.js +0 -104
  48. package/dist/cjs/util.js.map +0 -1
  49. package/dist/cjs/variant.js +0 -833
  50. package/dist/cjs/variant.js.map +0 -1
  51. package/dist/esm/attacks.js.map +0 -1
  52. package/dist/esm/board.js.map +0 -1
  53. package/dist/esm/chess.js.map +0 -1
  54. package/dist/esm/compat.js.map +0 -1
  55. package/dist/esm/debug.js.map +0 -1
  56. package/dist/esm/fen.js.map +0 -1
  57. package/dist/esm/index.js.map +0 -1
  58. package/dist/esm/pgn.js.map +0 -1
  59. package/dist/esm/san.js.map +0 -1
  60. package/dist/esm/setup.js.map +0 -1
  61. package/dist/esm/squareSet.js.map +0 -1
  62. package/dist/esm/transform.js.map +0 -1
  63. package/dist/esm/types.js.map +0 -1
  64. package/dist/esm/util.js.map +0 -1
  65. package/dist/esm/variant.js.map +0 -1
  66. package/src/attacks.ts +0 -160
  67. package/src/board.ts +0 -168
  68. package/src/chess.ts +0 -687
  69. package/src/compat.ts +0 -120
  70. package/src/debug.ts +0 -100
  71. package/src/fen.ts +0 -328
  72. package/src/index.ts +0 -85
  73. package/src/pgn.ts +0 -876
  74. package/src/san.ts +0 -190
  75. package/src/setup.ts +0 -203
  76. package/src/squareSet.ts +0 -243
  77. package/src/transform.ts +0 -49
  78. package/src/types.ts +0 -93
  79. package/src/util.ts +0 -116
  80. package/src/variant.ts +0 -939
  81. /package/dist/{types/attacks.d.ts → attacks.d.ts} +0 -0
  82. /package/dist/{types/board.d.ts → board.d.ts} +0 -0
  83. /package/dist/{types/chess.d.ts → chess.d.ts} +0 -0
  84. /package/dist/{types/compat.d.ts → compat.d.ts} +0 -0
  85. /package/dist/{types/debug.d.ts → debug.d.ts} +0 -0
  86. /package/dist/{types/fen.d.ts → fen.d.ts} +0 -0
  87. /package/dist/{types/pgn.d.ts → pgn.d.ts} +0 -0
  88. /package/dist/{types/san.d.ts → san.d.ts} +0 -0
  89. /package/dist/{types/setup.d.ts → setup.d.ts} +0 -0
  90. /package/dist/{types/squareSet.d.ts → squareSet.d.ts} +0 -0
  91. /package/dist/{types/transform.d.ts → transform.d.ts} +0 -0
  92. /package/dist/{types/types.d.ts → types.d.ts} +0 -0
  93. /package/dist/{types/util.d.ts → util.d.ts} +0 -0
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transformSetup = exports.transformBoard = exports.rotate180 = exports.flipDiagonal = exports.flipHorizontal = exports.flipVertical = void 0;
4
- const board_js_1 = require("./board.js");
5
- const squareSet_js_1 = require("./squareSet.js");
6
- const types_js_1 = require("./types.js");
7
- const util_js_1 = require("./util.js");
8
- const flipVertical = (s) => s.bswap64();
9
- exports.flipVertical = flipVertical;
10
- const flipHorizontal = (s) => {
11
- const k1 = new squareSet_js_1.SquareSet(0x55555555, 0x55555555);
12
- const k2 = new squareSet_js_1.SquareSet(0x33333333, 0x33333333);
13
- const k4 = new squareSet_js_1.SquareSet(0x0f0f0f0f, 0x0f0f0f0f);
14
- s = s.shr64(1).intersect(k1).union(s.intersect(k1).shl64(1));
15
- s = s.shr64(2).intersect(k2).union(s.intersect(k2).shl64(2));
16
- s = s.shr64(4).intersect(k4).union(s.intersect(k4).shl64(4));
17
- return s;
18
- };
19
- exports.flipHorizontal = flipHorizontal;
20
- const flipDiagonal = (s) => {
21
- let t = s.xor(s.shl64(28)).intersect(new squareSet_js_1.SquareSet(0, 0x0f0f0f0f));
22
- s = s.xor(t.xor(t.shr64(28)));
23
- t = s.xor(s.shl64(14)).intersect(new squareSet_js_1.SquareSet(0x33330000, 0x33330000));
24
- s = s.xor(t.xor(t.shr64(14)));
25
- t = s.xor(s.shl64(7)).intersect(new squareSet_js_1.SquareSet(0x55005500, 0x55005500));
26
- s = s.xor(t.xor(t.shr64(7)));
27
- return s;
28
- };
29
- exports.flipDiagonal = flipDiagonal;
30
- const rotate180 = (s) => s.rbit64();
31
- exports.rotate180 = rotate180;
32
- const transformBoard = (board, f) => {
33
- const b = board_js_1.Board.empty();
34
- b.occupied = f(board.occupied);
35
- b.promoted = f(board.promoted);
36
- for (const color of types_js_1.COLORS)
37
- b[color] = f(board[color]);
38
- for (const role of types_js_1.ROLES)
39
- b[role] = f(board[role]);
40
- return b;
41
- };
42
- exports.transformBoard = transformBoard;
43
- const transformSetup = (setup, f) => {
44
- var _a, _b;
45
- return ({
46
- board: (0, exports.transformBoard)(setup.board, f),
47
- pockets: (_a = setup.pockets) === null || _a === void 0 ? void 0 : _a.clone(),
48
- turn: setup.turn,
49
- castlingRights: f(setup.castlingRights),
50
- epSquare: (0, util_js_1.defined)(setup.epSquare) ? f(squareSet_js_1.SquareSet.fromSquare(setup.epSquare)).first() : undefined,
51
- remainingChecks: (_b = setup.remainingChecks) === null || _b === void 0 ? void 0 : _b.clone(),
52
- halfmoves: setup.halfmoves,
53
- fullmoves: setup.fullmoves,
54
- });
55
- };
56
- exports.transformSetup = transformSetup;
57
- //# sourceMappingURL=transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":"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"}
package/dist/cjs/types.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RULES = exports.isNormal = exports.isDrop = exports.CASTLING_SIDES = exports.ROLES = exports.COLORS = exports.ROLE_CHARS = exports.RANK_NAMES = exports.FILE_NAMES = void 0;
4
- exports.FILE_NAMES = ["a", "b", "c", "d", "e", "f", "g", "h"];
5
- exports.RANK_NAMES = ["1", "2", "3", "4", "5", "6", "7", "8"];
6
- exports.ROLE_CHARS = ["q", "n", "r", "b", "p", "k"];
7
- exports.COLORS = ["white", "black"];
8
- exports.ROLES = ["pawn", "knight", "bishop", "rook", "queen", "king"];
9
- exports.CASTLING_SIDES = ["a", "h"];
10
- const isDrop = (v) => "role" in v;
11
- exports.isDrop = isDrop;
12
- const isNormal = (v) => "from" in v;
13
- exports.isNormal = isNormal;
14
- exports.RULES = [
15
- "chess",
16
- "antichess",
17
- "kingofthehill",
18
- "3check",
19
- "atomic",
20
- "horde",
21
- "racingkings",
22
- "crazyhouse",
23
- ];
24
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAI/D,QAAA,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAQ/D,QAAA,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AASrD,QAAA,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAWrC,QAAA,KAAK,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAWvE,QAAA,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC;AA8B3C,MAAM,MAAM,GAAG,CAAC,CAAO,EAAiB,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;AAAjD,QAAA,MAAM,UAA2C;AAEvD,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAmB,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;AAArD,QAAA,QAAQ,YAA6C;AAErD,QAAA,KAAK,GAAG;IACnB,OAAO;IACP,WAAW;IACX,eAAe;IACf,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,aAAa;IACb,YAAY;CACJ,CAAC"}
package/dist/cjs/util.js DELETED
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rookCastlesTo = exports.kingCastlesTo = exports.makeUci = exports.moveEquals = exports.parseUci = exports.makeSquare = exports.roleToChar = exports.squareFromCoords = exports.squareFile = exports.squareRank = exports.opposite = exports.defined = void 0;
4
- exports.charToRole = charToRole;
5
- exports.parseSquare = parseSquare;
6
- const types_js_1 = require("./types.js");
7
- const defined = (v) => v !== undefined;
8
- exports.defined = defined;
9
- const opposite = (color) => (color === "white" ? "black" : "white");
10
- exports.opposite = opposite;
11
- const squareRank = (square) => square >> 3;
12
- exports.squareRank = squareRank;
13
- const squareFile = (square) => square & 0x7;
14
- exports.squareFile = squareFile;
15
- const squareFromCoords = (file, rank) => 0 <= file && file < 8 && 0 <= rank && rank < 8 ? file + 8 * rank : undefined;
16
- exports.squareFromCoords = squareFromCoords;
17
- const roleToChar = (role) => {
18
- switch (role) {
19
- case "pawn":
20
- return "p";
21
- case "knight":
22
- return "n";
23
- case "bishop":
24
- return "b";
25
- case "rook":
26
- return "r";
27
- case "queen":
28
- return "q";
29
- case "king":
30
- return "k";
31
- }
32
- };
33
- exports.roleToChar = roleToChar;
34
- function charToRole(ch) {
35
- switch (ch.toLowerCase()) {
36
- case "p":
37
- return "pawn";
38
- case "n":
39
- return "knight";
40
- case "b":
41
- return "bishop";
42
- case "r":
43
- return "rook";
44
- case "q":
45
- return "queen";
46
- case "k":
47
- return "king";
48
- default:
49
- return;
50
- }
51
- }
52
- function parseSquare(str) {
53
- if (str.length !== 2)
54
- return;
55
- return (0, exports.squareFromCoords)(str.charCodeAt(0) - "a".charCodeAt(0), str.charCodeAt(1) - "1".charCodeAt(0));
56
- }
57
- const makeSquare = (square) => (types_js_1.FILE_NAMES[(0, exports.squareFile)(square)] + types_js_1.RANK_NAMES[(0, exports.squareRank)(square)]);
58
- exports.makeSquare = makeSquare;
59
- const parseUci = (str) => {
60
- if (str[1] === "@" && str.length === 4) {
61
- const role = charToRole(str[0]);
62
- const to = parseSquare(str.slice(2));
63
- if (role && (0, exports.defined)(to))
64
- return { role, to };
65
- }
66
- else if (str.length === 4 || str.length === 5) {
67
- const from = parseSquare(str.slice(0, 2));
68
- const to = parseSquare(str.slice(2, 4));
69
- let promotion;
70
- if (str.length === 5) {
71
- promotion = charToRole(str[4]);
72
- if (!promotion)
73
- return;
74
- }
75
- if ((0, exports.defined)(from) && (0, exports.defined)(to))
76
- return { from, to, promotion };
77
- }
78
- return;
79
- };
80
- exports.parseUci = parseUci;
81
- const moveEquals = (left, right) => {
82
- if (left.to !== right.to)
83
- return false;
84
- if ((0, types_js_1.isDrop)(left))
85
- return (0, types_js_1.isDrop)(right) && left.role === right.role;
86
- else
87
- return (0, types_js_1.isNormal)(right) && left.from === right.from && left.promotion === right.promotion;
88
- };
89
- exports.moveEquals = moveEquals;
90
- /**
91
- * Converts a move to UCI notation, like `g1f3` for a normal move,
92
- * `a7a8q` for promotion to a queen, and `Q@f7` for a Crazyhouse drop.
93
- */
94
- const makeUci = (move) => (0, types_js_1.isDrop)(move)
95
- ? `${(0, exports.roleToChar)(move.role).toUpperCase()}@${(0, exports.makeSquare)(move.to)}`
96
- : (0, exports.makeSquare)(move.from) +
97
- (0, exports.makeSquare)(move.to) +
98
- (move.promotion ? (0, exports.roleToChar)(move.promotion) : "");
99
- exports.makeUci = makeUci;
100
- const kingCastlesTo = (color, side) => color === "white" ? (side === "a" ? 2 : 6) : side === "a" ? 58 : 62;
101
- exports.kingCastlesTo = kingCastlesTo;
102
- const rookCastlesTo = (color, side) => color === "white" ? (side === "a" ? 3 : 5) : side === "a" ? 59 : 61;
103
- exports.rookCastlesTo = rookCastlesTo;
104
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}