@alepot55/chessboardjs 2.2.1 → 2.2.2

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 (80) hide show
  1. package/.eslintrc.json +227 -0
  2. package/README.md +125 -401
  3. package/assets/themes/alepot/theme.json +42 -0
  4. package/assets/themes/default/theme.json +42 -0
  5. package/chessboard.bundle.js +708 -58
  6. package/config/jest.config.js +15 -0
  7. package/config/rollup.config.js +36 -0
  8. package/dist/chessboard.cjs.js +10690 -0
  9. package/dist/chessboard.css +228 -0
  10. package/dist/chessboard.esm.js +10621 -0
  11. package/dist/chessboard.iife.js +10696 -0
  12. package/dist/chessboard.umd.js +10696 -0
  13. package/jest.config.js +2 -7
  14. package/package.json +18 -3
  15. package/rollup.config.js +2 -11
  16. package/{chessboard.move.js → src/components/Move.js} +3 -3
  17. package/src/components/Piece.js +288 -0
  18. package/{chessboard.square.js → src/components/Square.js} +60 -7
  19. package/src/constants/index.js +15 -0
  20. package/src/constants/positions.js +62 -0
  21. package/src/core/Chessboard.js +1939 -0
  22. package/src/core/ChessboardConfig.js +458 -0
  23. package/src/core/ChessboardFactory.js +385 -0
  24. package/src/core/index.js +141 -0
  25. package/src/errors/ChessboardError.js +133 -0
  26. package/src/errors/index.js +15 -0
  27. package/src/errors/messages.js +189 -0
  28. package/src/index.js +103 -0
  29. package/src/services/AnimationService.js +180 -0
  30. package/src/services/BoardService.js +156 -0
  31. package/src/services/CoordinateService.js +355 -0
  32. package/src/services/EventService.js +955 -0
  33. package/src/services/MoveService.js +629 -0
  34. package/src/services/PieceService.js +312 -0
  35. package/src/services/PositionService.js +237 -0
  36. package/src/services/ValidationService.js +673 -0
  37. package/src/services/index.js +14 -0
  38. package/src/styles/animations.css +46 -0
  39. package/{chessboard.css → src/styles/board.css} +8 -4
  40. package/src/styles/index.css +4 -0
  41. package/src/styles/pieces.css +70 -0
  42. package/src/utils/animations.js +37 -0
  43. package/{chess.js → src/utils/chess.js} +16 -16
  44. package/src/utils/coordinates.js +62 -0
  45. package/src/utils/cross-browser.js +150 -0
  46. package/src/utils/logger.js +422 -0
  47. package/src/utils/performance.js +311 -0
  48. package/src/utils/validation.js +458 -0
  49. package/tests/unit/chessboard-config-animations.test.js +106 -0
  50. package/tests/unit/chessboard-robust.test.js +163 -0
  51. package/tests/unit/chessboard.test.js +183 -0
  52. package/chessboard.config.js +0 -147
  53. package/chessboard.js +0 -979
  54. package/chessboard.piece.js +0 -115
  55. package/test/chessboard.test.js +0 -128
  56. /package/{alepot_theme → assets/themes/alepot}/bb.svg +0 -0
  57. /package/{alepot_theme → assets/themes/alepot}/bw.svg +0 -0
  58. /package/{alepot_theme → assets/themes/alepot}/kb.svg +0 -0
  59. /package/{alepot_theme → assets/themes/alepot}/kw.svg +0 -0
  60. /package/{alepot_theme → assets/themes/alepot}/nb.svg +0 -0
  61. /package/{alepot_theme → assets/themes/alepot}/nw.svg +0 -0
  62. /package/{alepot_theme → assets/themes/alepot}/pb.svg +0 -0
  63. /package/{alepot_theme → assets/themes/alepot}/pw.svg +0 -0
  64. /package/{alepot_theme → assets/themes/alepot}/qb.svg +0 -0
  65. /package/{alepot_theme → assets/themes/alepot}/qw.svg +0 -0
  66. /package/{alepot_theme → assets/themes/alepot}/rb.svg +0 -0
  67. /package/{alepot_theme → assets/themes/alepot}/rw.svg +0 -0
  68. /package/{default_pieces → assets/themes/default}/bb.svg +0 -0
  69. /package/{default_pieces → assets/themes/default}/bw.svg +0 -0
  70. /package/{default_pieces → assets/themes/default}/kb.svg +0 -0
  71. /package/{default_pieces → assets/themes/default}/kw.svg +0 -0
  72. /package/{default_pieces → assets/themes/default}/nb.svg +0 -0
  73. /package/{default_pieces → assets/themes/default}/nw.svg +0 -0
  74. /package/{default_pieces → assets/themes/default}/pb.svg +0 -0
  75. /package/{default_pieces → assets/themes/default}/pw.svg +0 -0
  76. /package/{default_pieces → assets/themes/default}/qb.svg +0 -0
  77. /package/{default_pieces → assets/themes/default}/qw.svg +0 -0
  78. /package/{default_pieces → assets/themes/default}/rb.svg +0 -0
  79. /package/{default_pieces → assets/themes/default}/rw.svg +0 -0
  80. /package/{.babelrc → config/.babelrc} +0 -0
package/.eslintrc.json ADDED
@@ -0,0 +1,227 @@
1
+ {
2
+ "root": true,
3
+ "env": {
4
+ "browser": true,
5
+ "es2022": true,
6
+ "node": true,
7
+ "jest": true
8
+ },
9
+ "extends": [
10
+ "eslint:recommended",
11
+ "@eslint/js/recommended"
12
+ ],
13
+ "parserOptions": {
14
+ "ecmaVersion": "latest",
15
+ "sourceType": "module"
16
+ },
17
+ "rules": {
18
+ // Error Prevention
19
+ "no-unused-vars": ["error", {
20
+ "argsIgnorePattern": "^_",
21
+ "varsIgnorePattern": "^_",
22
+ "ignoreRestSiblings": true
23
+ }],
24
+ "no-console": ["warn", {
25
+ "allow": ["warn", "error", "info"]
26
+ }],
27
+ "no-debugger": "error",
28
+ "no-alert": "error",
29
+ "no-eval": "error",
30
+ "no-implied-eval": "error",
31
+ "no-new-func": "error",
32
+ "no-script-url": "error",
33
+ "no-proto": "error",
34
+ "no-iterator": "error",
35
+ "no-with": "error",
36
+
37
+ // Best Practices
38
+ "eqeqeq": ["error", "always", { "null": "ignore" }],
39
+ "no-eq-null": "off",
40
+ "curly": ["error", "all"],
41
+ "dot-notation": "error",
42
+ "no-else-return": "error",
43
+ "no-empty-function": "error",
44
+ "no-lone-blocks": "error",
45
+ "no-magic-numbers": ["warn", {
46
+ "ignore": [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 100, 1000],
47
+ "ignoreArrayIndexes": true,
48
+ "ignoreDefaultValues": true
49
+ }],
50
+ "no-multi-spaces": "error",
51
+ "no-new": "error",
52
+ "no-return-assign": "error",
53
+ "no-return-await": "error",
54
+ "no-self-compare": "error",
55
+ "no-sequences": "error",
56
+ "no-throw-literal": "error",
57
+ "no-unmodified-loop-condition": "error",
58
+ "no-unused-expressions": "error",
59
+ "no-useless-call": "error",
60
+ "no-useless-concat": "error",
61
+ "no-useless-return": "error",
62
+ "prefer-promise-reject-errors": "error",
63
+ "radix": "error",
64
+ "require-await": "error",
65
+ "yoda": "error",
66
+
67
+ // Variables
68
+ "no-delete-var": "error",
69
+ "no-label-var": "error",
70
+ "no-shadow": "error",
71
+ "no-shadow-restricted-names": "error",
72
+ "no-undef": "error",
73
+ "no-undef-init": "error",
74
+ "no-undefined": "off",
75
+ "no-use-before-define": ["error", {
76
+ "functions": false,
77
+ "classes": true,
78
+ "variables": true
79
+ }],
80
+
81
+ // Stylistic Issues
82
+ "array-bracket-spacing": ["error", "never"],
83
+ "block-spacing": "error",
84
+ "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
85
+ "camelcase": ["error", { "properties": "never" }],
86
+ "comma-dangle": ["error", "never"],
87
+ "comma-spacing": ["error", { "before": false, "after": true }],
88
+ "comma-style": ["error", "last"],
89
+ "computed-property-spacing": ["error", "never"],
90
+ "consistent-this": ["error", "self"],
91
+ "eol-last": "error",
92
+ "func-call-spacing": ["error", "never"],
93
+ "func-name-matching": "error",
94
+ "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
95
+ "indent": ["error", 4, {
96
+ "SwitchCase": 1,
97
+ "MemberExpression": 1,
98
+ "FunctionDeclaration": { "parameters": 1, "body": 1 },
99
+ "FunctionExpression": { "parameters": 1, "body": 1 },
100
+ "CallExpression": { "arguments": 1 },
101
+ "ArrayExpression": 1,
102
+ "ObjectExpression": 1,
103
+ "ImportDeclaration": 1,
104
+ "flatTernaryExpressions": false,
105
+ "ignoreComments": false
106
+ }],
107
+ "key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
108
+ "keyword-spacing": ["error", { "before": true, "after": true }],
109
+ "line-comment-position": ["error", { "position": "above" }],
110
+ "linebreak-style": ["error", "unix"],
111
+ "max-depth": ["warn", 4],
112
+ "max-len": ["warn", {
113
+ "code": 120,
114
+ "tabWidth": 4,
115
+ "ignoreUrls": true,
116
+ "ignoreComments": false,
117
+ "ignoreRegExpLiterals": true,
118
+ "ignoreStrings": true,
119
+ "ignoreTemplateLiterals": true
120
+ }],
121
+ "max-nested-callbacks": ["warn", 3],
122
+ "max-params": ["warn", 5],
123
+ "max-statements": ["warn", 20],
124
+ "max-statements-per-line": ["error", { "max": 1 }],
125
+ "new-cap": ["error", { "newIsCap": true, "capIsNew": false }],
126
+ "new-parens": "error",
127
+ "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 3 }],
128
+ "no-array-constructor": "error",
129
+ "no-bitwise": "error",
130
+ "no-continue": "error",
131
+ "no-inline-comments": "error",
132
+ "no-lonely-if": "error",
133
+ "no-mixed-operators": "error",
134
+ "no-mixed-spaces-and-tabs": "error",
135
+ "no-multiple-empty-lines": ["error", { "max": 2, "maxBOF": 0, "maxEOF": 1 }],
136
+ "no-negated-condition": "error",
137
+ "no-nested-ternary": "error",
138
+ "no-new-object": "error",
139
+ "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
140
+ "no-tabs": "error",
141
+ "no-trailing-spaces": "error",
142
+ "no-underscore-dangle": ["error", {
143
+ "allowAfterThis": true,
144
+ "allowAfterSuper": true,
145
+ "allowAfterThisConstructor": true,
146
+ "allow": ["_id", "_private", "_internal"]
147
+ }],
148
+ "no-unneeded-ternary": "error",
149
+ "no-whitespace-before-property": "error",
150
+ "object-curly-spacing": ["error", "always"],
151
+ "one-var": ["error", "never"],
152
+ "one-var-declaration-per-line": ["error", "always"],
153
+ "operator-assignment": ["error", "always"],
154
+ "operator-linebreak": ["error", "before"],
155
+ "padded-blocks": ["error", "never"],
156
+ "quote-props": ["error", "as-needed"],
157
+ "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }],
158
+ "semi": ["error", "always"],
159
+ "semi-spacing": ["error", { "before": false, "after": true }],
160
+ "space-before-blocks": "error",
161
+ "space-before-function-paren": ["error", {
162
+ "anonymous": "always",
163
+ "named": "never",
164
+ "asyncArrow": "always"
165
+ }],
166
+ "space-in-parens": ["error", "never"],
167
+ "space-infix-ops": "error",
168
+ "space-unary-ops": ["error", { "words": true, "nonwords": false }],
169
+ "spaced-comment": ["error", "always"],
170
+ "wrap-regex": "error",
171
+
172
+ // ES6+ Features
173
+ "arrow-body-style": ["error", "as-needed"],
174
+ "arrow-parens": ["error", "as-needed"],
175
+ "arrow-spacing": ["error", { "before": true, "after": true }],
176
+ "constructor-super": "error",
177
+ "generator-star-spacing": ["error", { "before": false, "after": true }],
178
+ "no-class-assign": "error",
179
+ "no-confusing-arrow": "error",
180
+ "no-const-assign": "error",
181
+ "no-dupe-class-members": "error",
182
+ "no-duplicate-imports": "error",
183
+ "no-new-symbol": "error",
184
+ "no-restricted-imports": "error",
185
+ "no-this-before-super": "error",
186
+ "no-useless-computed-key": "error",
187
+ "no-useless-constructor": "error",
188
+ "no-useless-rename": "error",
189
+ "no-var": "error",
190
+ "object-shorthand": ["error", "always"],
191
+ "prefer-arrow-callback": "error",
192
+ "prefer-const": "error",
193
+ "prefer-destructuring": ["error", { "object": false, "array": false }],
194
+ "prefer-numeric-literals": "error",
195
+ "prefer-rest-params": "error",
196
+ "prefer-spread": "error",
197
+ "prefer-template": "error",
198
+ "require-yield": "error",
199
+ "rest-spread-spacing": ["error", "never"],
200
+ "sort-imports": ["error", { "ignoreCase": true, "ignoreDeclarationSort": true }],
201
+ "symbol-description": "error",
202
+ "template-curly-spacing": ["error", "never"],
203
+ "yield-star-spacing": ["error", { "before": false, "after": true }]
204
+ },
205
+ "overrides": [
206
+ {
207
+ "files": ["**/*.test.js", "**/*.spec.js"],
208
+ "env": {
209
+ "jest": true
210
+ },
211
+ "rules": {
212
+ "no-magic-numbers": "off",
213
+ "max-lines": "off",
214
+ "max-statements": "off"
215
+ }
216
+ },
217
+ {
218
+ "files": ["rollup.config.js", "jest.config.js", "**/*.config.js"],
219
+ "env": {
220
+ "node": true
221
+ },
222
+ "rules": {
223
+ "no-console": "off"
224
+ }
225
+ }
226
+ ]
227
+ }