scrabble-solver 2.8.3 → 2.8.4
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.
- package/.gitattributes +2 -0
- package/HISTORY.md +17 -0
- package/README.md +8 -26
- package/lerna.json +1 -1
- package/package.json +13 -13
- package/packages/configs/package.json +3 -3
- package/packages/constants/package.json +1 -1
- package/packages/dictionaries/build/lib/DiskCache.js +2 -4
- package/packages/dictionaries/build/lib/index.d.ts +0 -2
- package/packages/dictionaries/build/lib/index.js +1 -5
- package/packages/dictionaries/package-lock.json +10 -10
- package/packages/dictionaries/package.json +5 -5
- package/packages/dictionaries/src/lib/DiskCache.ts +2 -4
- package/packages/dictionaries/src/lib/index.ts +0 -2
- package/packages/logger/package-lock.json +2 -2
- package/packages/logger/package.json +1 -1
- package/packages/scrabble-solver/.next/BUILD_ID +1 -1
- package/packages/scrabble-solver/.next/build-manifest.json +10 -10
- package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
- package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
- package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
- package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/206.js +98 -97
- package/packages/scrabble-solver/.next/server/chunks/413.js +5 -4
- package/packages/scrabble-solver/.next/server/chunks/515.js +135 -53
- package/packages/scrabble-solver/.next/server/chunks/907.js +2 -2
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +5 -1
- package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/500.html +2 -2
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_error.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +50 -94
- package/packages/scrabble-solver/.next/server/pages/index.html +17 -1
- package/packages/scrabble-solver/.next/server/pages/index.js +5 -12
- package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
- package/packages/scrabble-solver/.next/static/-UOLkxdxU0PlKbXa09-xO/_buildManifest.js +1 -0
- package/packages/scrabble-solver/.next/static/{OhUvTNKwyrrzmNwKBnpUU → -UOLkxdxU0PlKbXa09-xO}/_ssgManifest.js +0 -0
- package/packages/scrabble-solver/.next/static/chunks/56-2d34867599a0ac66.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/{404-02d949d2fe59e960.js → 404-30c06e61d256c5b2.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-6ffa2ab900772b67.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/{index-75517525489ab316.js → index-13ea7770a65c69ee.js} +1 -1
- package/packages/scrabble-solver/.next/static/css/{d676d43c6b9c9a57.css → 551d09cac435debb.css} +1 -1
- package/packages/scrabble-solver/.next/static/css/{6a9e5ba3f77c27f2.css → cdbc9e0afcff5473.css} +1 -1
- package/packages/scrabble-solver/.next/trace +42 -42
- package/packages/scrabble-solver/package-lock.json +85 -85
- package/packages/scrabble-solver/package.json +13 -13
- package/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts +9 -0
- package/packages/scrabble-solver/src/components/KeyMap/KeyMap.tsx +1 -1
- package/packages/scrabble-solver/src/components/KeyMap/components/Mapping/Mapping.module.scss +4 -0
- package/packages/scrabble-solver/src/components/KeyMap/components/Mapping/Mapping.tsx +16 -12
- package/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.tsx +4 -0
- package/packages/scrabble-solver/src/components/SvgFontCss/SvgFontCss.tsx +12 -0
- package/packages/scrabble-solver/src/components/SvgFontCss/index.ts +1 -0
- package/packages/scrabble-solver/src/components/Tile/TilePure.tsx +1 -1
- package/packages/scrabble-solver/src/components/index.ts +1 -0
- package/packages/scrabble-solver/src/lib/createKeyboardNavigation.ts +3 -0
- package/packages/scrabble-solver/src/pages/index.tsx +5 -14
- package/packages/scrabble-solver/src/styles/global.scss +3 -0
- package/packages/solver/build/PatternsFiller.js +2 -6
- package/packages/solver/build/PatternsGenerator.js +13 -9
- package/packages/solver/build/Solver.js +3 -4
- package/packages/solver/package-lock.json +17 -17
- package/packages/solver/package.json +7 -7
- package/packages/solver/src/PatternsFiller.ts +2 -8
- package/packages/solver/src/PatternsGenerator.ts +17 -16
- package/packages/solver/src/Solver.ts +4 -8
- package/packages/types/build/Cell.js +1 -1
- package/packages/types/build/Pattern.js +1 -1
- package/packages/types/package.json +2 -2
- package/packages/types/src/Cell.ts +1 -1
- package/packages/types/src/Pattern.ts +1 -1
- package/packages/word-definitions/package-lock.json +8 -8
- package/packages/word-definitions/package.json +2 -2
- package/packages/word-lists/build/getPlPlWordList.js +2 -3
- package/packages/word-lists/build/lib/downloadFile.d.ts +1 -2
- package/packages/word-lists/build/lib/downloadFile.js +24 -6
- package/packages/word-lists/build/lib/getTxtWordList.js +2 -4
- package/packages/word-lists/package-lock.json +2 -2
- package/packages/word-lists/package.json +2 -2
- package/packages/word-lists/src/getPlPlWordList.ts +2 -3
- package/packages/word-lists/src/lib/downloadFile.ts +25 -7
- package/packages/word-lists/src/lib/getTxtWordList.ts +2 -4
- package/packages/dictionaries/build/lib/readFile.d.ts +0 -2
- package/packages/dictionaries/build/lib/readFile.js +0 -19
- package/packages/dictionaries/build/lib/writeFile.d.ts +0 -2
- package/packages/dictionaries/build/lib/writeFile.js +0 -19
- package/packages/dictionaries/src/lib/readFile.ts +0 -15
- package/packages/dictionaries/src/lib/writeFile.ts +0 -15
- package/packages/scrabble-solver/.next/static/OhUvTNKwyrrzmNwKBnpUU/_buildManifest.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/195-4b75c9c697b7b455.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-72522bfb306a8aef.js +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/scrabble-solver",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.4",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/scrabble-solver",
|
|
9
|
-
"version": "2.8.
|
|
9
|
+
"version": "2.8.4",
|
|
10
10
|
"license": "CC BY-NC-ND 4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@popperjs/core": "^2.11.6",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"react-modal": "^3.15.1",
|
|
20
20
|
"react-popper": "^2.3.0",
|
|
21
21
|
"react-portal": "^4.2.2",
|
|
22
|
-
"react-redux": "^8.0.
|
|
22
|
+
"react-redux": "^8.0.4",
|
|
23
23
|
"react-use": "^17.4.0",
|
|
24
24
|
"react-window": "^1.8.7",
|
|
25
25
|
"redux": "^4.2.0",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"uuid": "^9.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@svgr/webpack": "^6.
|
|
31
|
+
"@svgr/webpack": "^6.4.0",
|
|
32
32
|
"@types/classnames": "^2.3.0",
|
|
33
|
-
"@types/react": "^18.0.
|
|
33
|
+
"@types/react": "^18.0.21",
|
|
34
34
|
"@types/react-dom": "^18.0.6",
|
|
35
35
|
"@types/react-modal": "^3.13.1",
|
|
36
36
|
"@types/react-portal": "^4.0.4",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"@types/redux-saga": "^0.10.5",
|
|
41
41
|
"@types/uuid": "^8.3.4",
|
|
42
42
|
"env-cmd": "^10.1.0",
|
|
43
|
-
"sass": "^1.
|
|
43
|
+
"sass": "^1.55.0"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
|
-
"node": ">=16
|
|
46
|
+
"node": ">=16"
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"node_modules/@ampproject/remapping": {
|
|
@@ -2345,9 +2345,9 @@
|
|
|
2345
2345
|
}
|
|
2346
2346
|
},
|
|
2347
2347
|
"node_modules/@svgr/babel-preset": {
|
|
2348
|
-
"version": "6.
|
|
2349
|
-
"resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.
|
|
2350
|
-
"integrity": "sha512-
|
|
2348
|
+
"version": "6.4.0",
|
|
2349
|
+
"resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.4.0.tgz",
|
|
2350
|
+
"integrity": "sha512-Ytuh7N282fv2Cy1JePf6HZ29/G5Hb8mQAjx4iykPjvfFl9NK6o5lZavmewgjOGT8kNPtwgvheuOQn4CifHRUhQ==",
|
|
2351
2351
|
"dev": true,
|
|
2352
2352
|
"dependencies": {
|
|
2353
2353
|
"@svgr/babel-plugin-add-jsx-attribute": "^6.3.1",
|
|
@@ -2371,12 +2371,13 @@
|
|
|
2371
2371
|
}
|
|
2372
2372
|
},
|
|
2373
2373
|
"node_modules/@svgr/core": {
|
|
2374
|
-
"version": "6.
|
|
2375
|
-
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.
|
|
2376
|
-
"integrity": "sha512-
|
|
2374
|
+
"version": "6.4.0",
|
|
2375
|
+
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.4.0.tgz",
|
|
2376
|
+
"integrity": "sha512-wU9uyF6BUnwAqG7fDOowmDQzmbvovj1uq/iETfMK9xwQNaT+e7yN7SmDDcETXC72dnOrMcRuEWw0JEvpJha+yg==",
|
|
2377
2377
|
"dev": true,
|
|
2378
2378
|
"dependencies": {
|
|
2379
|
-
"@svgr/
|
|
2379
|
+
"@svgr/babel-preset": "^6.4.0",
|
|
2380
|
+
"@svgr/plugin-jsx": "^6.4.0",
|
|
2380
2381
|
"camelcase": "^6.2.0",
|
|
2381
2382
|
"cosmiconfig": "^7.0.1"
|
|
2382
2383
|
},
|
|
@@ -2389,9 +2390,9 @@
|
|
|
2389
2390
|
}
|
|
2390
2391
|
},
|
|
2391
2392
|
"node_modules/@svgr/hast-util-to-babel-ast": {
|
|
2392
|
-
"version": "6.
|
|
2393
|
-
"resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.
|
|
2394
|
-
"integrity": "sha512-
|
|
2393
|
+
"version": "6.4.0",
|
|
2394
|
+
"resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.4.0.tgz",
|
|
2395
|
+
"integrity": "sha512-PjcU8jCneKXJnrREycsgfgQ/bzR1ogSKC5MBeUu2wmEoJIjzXX7X14DDktUjU9bkBy26yMDiVHn46Nl82P3WEg==",
|
|
2395
2396
|
"dev": true,
|
|
2396
2397
|
"dependencies": {
|
|
2397
2398
|
"@babel/types": "^7.18.4",
|
|
@@ -2405,27 +2406,15 @@
|
|
|
2405
2406
|
"url": "https://github.com/sponsors/gregberge"
|
|
2406
2407
|
}
|
|
2407
2408
|
},
|
|
2408
|
-
"node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": {
|
|
2409
|
-
"version": "4.4.0",
|
|
2410
|
-
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
|
2411
|
-
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
|
|
2412
|
-
"dev": true,
|
|
2413
|
-
"engines": {
|
|
2414
|
-
"node": ">=0.12"
|
|
2415
|
-
},
|
|
2416
|
-
"funding": {
|
|
2417
|
-
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
2418
|
-
}
|
|
2419
|
-
},
|
|
2420
2409
|
"node_modules/@svgr/plugin-jsx": {
|
|
2421
|
-
"version": "6.
|
|
2422
|
-
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.
|
|
2423
|
-
"integrity": "sha512-
|
|
2410
|
+
"version": "6.4.0",
|
|
2411
|
+
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.4.0.tgz",
|
|
2412
|
+
"integrity": "sha512-gu6E7v8qRAtCxbymI1et3G7athogvKvzsJkSWiHVZsuVZbyx5O2b7+DIkKvAGh2RvEzgSvfGf8QD1BaHal2vBw==",
|
|
2424
2413
|
"dev": true,
|
|
2425
2414
|
"dependencies": {
|
|
2426
2415
|
"@babel/core": "^7.18.5",
|
|
2427
|
-
"@svgr/babel-preset": "^6.
|
|
2428
|
-
"@svgr/hast-util-to-babel-ast": "^6.
|
|
2416
|
+
"@svgr/babel-preset": "^6.4.0",
|
|
2417
|
+
"@svgr/hast-util-to-babel-ast": "^6.4.0",
|
|
2429
2418
|
"svg-parser": "^2.0.4"
|
|
2430
2419
|
},
|
|
2431
2420
|
"engines": {
|
|
@@ -2470,9 +2459,9 @@
|
|
|
2470
2459
|
}
|
|
2471
2460
|
},
|
|
2472
2461
|
"node_modules/@svgr/webpack": {
|
|
2473
|
-
"version": "6.
|
|
2474
|
-
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.
|
|
2475
|
-
"integrity": "sha512-
|
|
2462
|
+
"version": "6.4.0",
|
|
2463
|
+
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.4.0.tgz",
|
|
2464
|
+
"integrity": "sha512-ejt2JdVX6k0XzUjVObMcTzTgsaCadEVCHBvOt3J0Vcp3eFirf0nqsjQCUD+ogFep25+ICDMZa1nLlotbXxKDXw==",
|
|
2476
2465
|
"dev": true,
|
|
2477
2466
|
"dependencies": {
|
|
2478
2467
|
"@babel/core": "^7.18.5",
|
|
@@ -2480,8 +2469,8 @@
|
|
|
2480
2469
|
"@babel/preset-env": "^7.18.2",
|
|
2481
2470
|
"@babel/preset-react": "^7.17.12",
|
|
2482
2471
|
"@babel/preset-typescript": "^7.17.12",
|
|
2483
|
-
"@svgr/core": "^6.
|
|
2484
|
-
"@svgr/plugin-jsx": "^6.
|
|
2472
|
+
"@svgr/core": "^6.4.0",
|
|
2473
|
+
"@svgr/plugin-jsx": "^6.4.0",
|
|
2485
2474
|
"@svgr/plugin-svgo": "^6.3.1"
|
|
2486
2475
|
},
|
|
2487
2476
|
"engines": {
|
|
@@ -2545,9 +2534,9 @@
|
|
|
2545
2534
|
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
|
|
2546
2535
|
},
|
|
2547
2536
|
"node_modules/@types/react": {
|
|
2548
|
-
"version": "18.0.
|
|
2549
|
-
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.
|
|
2550
|
-
"integrity": "sha512-
|
|
2537
|
+
"version": "18.0.21",
|
|
2538
|
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
|
|
2539
|
+
"integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
|
|
2551
2540
|
"dependencies": {
|
|
2552
2541
|
"@types/prop-types": "*",
|
|
2553
2542
|
"@types/scheduler": "*",
|
|
@@ -3018,6 +3007,18 @@
|
|
|
3018
3007
|
"integrity": "sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw==",
|
|
3019
3008
|
"dev": true
|
|
3020
3009
|
},
|
|
3010
|
+
"node_modules/entities": {
|
|
3011
|
+
"version": "4.4.0",
|
|
3012
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
|
3013
|
+
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
|
|
3014
|
+
"dev": true,
|
|
3015
|
+
"engines": {
|
|
3016
|
+
"node": ">=0.12"
|
|
3017
|
+
},
|
|
3018
|
+
"funding": {
|
|
3019
|
+
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
3020
|
+
}
|
|
3021
|
+
},
|
|
3021
3022
|
"node_modules/env-cmd": {
|
|
3022
3023
|
"version": "10.1.0",
|
|
3023
3024
|
"resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz",
|
|
@@ -3733,9 +3734,9 @@
|
|
|
3733
3734
|
}
|
|
3734
3735
|
},
|
|
3735
3736
|
"node_modules/react-redux": {
|
|
3736
|
-
"version": "8.0.
|
|
3737
|
-
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.
|
|
3738
|
-
"integrity": "sha512-
|
|
3737
|
+
"version": "8.0.4",
|
|
3738
|
+
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.4.tgz",
|
|
3739
|
+
"integrity": "sha512-yMfQ7mX6bWuicz2fids6cR1YT59VTuT8MKyyE310wJQlINKENCeT1UcPdEiX6znI5tF8zXyJ/VYvDgeGuaaNwQ==",
|
|
3739
3740
|
"dependencies": {
|
|
3740
3741
|
"@babel/runtime": "^7.12.1",
|
|
3741
3742
|
"@types/hoist-non-react-statics": "^3.3.1",
|
|
@@ -3993,9 +3994,9 @@
|
|
|
3993
3994
|
}
|
|
3994
3995
|
},
|
|
3995
3996
|
"node_modules/sass": {
|
|
3996
|
-
"version": "1.
|
|
3997
|
-
"resolved": "https://registry.npmjs.org/sass/-/sass-1.
|
|
3998
|
-
"integrity": "sha512-
|
|
3997
|
+
"version": "1.55.0",
|
|
3998
|
+
"resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz",
|
|
3999
|
+
"integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==",
|
|
3999
4000
|
"devOptional": true,
|
|
4000
4001
|
"dependencies": {
|
|
4001
4002
|
"chokidar": ">=3.0.0 <4.0.0",
|
|
@@ -6005,9 +6006,9 @@
|
|
|
6005
6006
|
"requires": {}
|
|
6006
6007
|
},
|
|
6007
6008
|
"@svgr/babel-preset": {
|
|
6008
|
-
"version": "6.
|
|
6009
|
-
"resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.
|
|
6010
|
-
"integrity": "sha512-
|
|
6009
|
+
"version": "6.4.0",
|
|
6010
|
+
"resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.4.0.tgz",
|
|
6011
|
+
"integrity": "sha512-Ytuh7N282fv2Cy1JePf6HZ29/G5Hb8mQAjx4iykPjvfFl9NK6o5lZavmewgjOGT8kNPtwgvheuOQn4CifHRUhQ==",
|
|
6011
6012
|
"dev": true,
|
|
6012
6013
|
"requires": {
|
|
6013
6014
|
"@svgr/babel-plugin-add-jsx-attribute": "^6.3.1",
|
|
@@ -6021,43 +6022,36 @@
|
|
|
6021
6022
|
}
|
|
6022
6023
|
},
|
|
6023
6024
|
"@svgr/core": {
|
|
6024
|
-
"version": "6.
|
|
6025
|
-
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.
|
|
6026
|
-
"integrity": "sha512-
|
|
6025
|
+
"version": "6.4.0",
|
|
6026
|
+
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.4.0.tgz",
|
|
6027
|
+
"integrity": "sha512-wU9uyF6BUnwAqG7fDOowmDQzmbvovj1uq/iETfMK9xwQNaT+e7yN7SmDDcETXC72dnOrMcRuEWw0JEvpJha+yg==",
|
|
6027
6028
|
"dev": true,
|
|
6028
6029
|
"requires": {
|
|
6029
|
-
"@svgr/
|
|
6030
|
+
"@svgr/babel-preset": "^6.4.0",
|
|
6031
|
+
"@svgr/plugin-jsx": "^6.4.0",
|
|
6030
6032
|
"camelcase": "^6.2.0",
|
|
6031
6033
|
"cosmiconfig": "^7.0.1"
|
|
6032
6034
|
}
|
|
6033
6035
|
},
|
|
6034
6036
|
"@svgr/hast-util-to-babel-ast": {
|
|
6035
|
-
"version": "6.
|
|
6036
|
-
"resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.
|
|
6037
|
-
"integrity": "sha512-
|
|
6037
|
+
"version": "6.4.0",
|
|
6038
|
+
"resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.4.0.tgz",
|
|
6039
|
+
"integrity": "sha512-PjcU8jCneKXJnrREycsgfgQ/bzR1ogSKC5MBeUu2wmEoJIjzXX7X14DDktUjU9bkBy26yMDiVHn46Nl82P3WEg==",
|
|
6038
6040
|
"dev": true,
|
|
6039
6041
|
"requires": {
|
|
6040
6042
|
"@babel/types": "^7.18.4",
|
|
6041
6043
|
"entities": "^4.3.0"
|
|
6042
|
-
},
|
|
6043
|
-
"dependencies": {
|
|
6044
|
-
"entities": {
|
|
6045
|
-
"version": "4.4.0",
|
|
6046
|
-
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
|
6047
|
-
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
|
|
6048
|
-
"dev": true
|
|
6049
|
-
}
|
|
6050
6044
|
}
|
|
6051
6045
|
},
|
|
6052
6046
|
"@svgr/plugin-jsx": {
|
|
6053
|
-
"version": "6.
|
|
6054
|
-
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.
|
|
6055
|
-
"integrity": "sha512-
|
|
6047
|
+
"version": "6.4.0",
|
|
6048
|
+
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.4.0.tgz",
|
|
6049
|
+
"integrity": "sha512-gu6E7v8qRAtCxbymI1et3G7athogvKvzsJkSWiHVZsuVZbyx5O2b7+DIkKvAGh2RvEzgSvfGf8QD1BaHal2vBw==",
|
|
6056
6050
|
"dev": true,
|
|
6057
6051
|
"requires": {
|
|
6058
6052
|
"@babel/core": "^7.18.5",
|
|
6059
|
-
"@svgr/babel-preset": "^6.
|
|
6060
|
-
"@svgr/hast-util-to-babel-ast": "^6.
|
|
6053
|
+
"@svgr/babel-preset": "^6.4.0",
|
|
6054
|
+
"@svgr/hast-util-to-babel-ast": "^6.4.0",
|
|
6061
6055
|
"svg-parser": "^2.0.4"
|
|
6062
6056
|
}
|
|
6063
6057
|
},
|
|
@@ -6081,9 +6075,9 @@
|
|
|
6081
6075
|
}
|
|
6082
6076
|
},
|
|
6083
6077
|
"@svgr/webpack": {
|
|
6084
|
-
"version": "6.
|
|
6085
|
-
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.
|
|
6086
|
-
"integrity": "sha512-
|
|
6078
|
+
"version": "6.4.0",
|
|
6079
|
+
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.4.0.tgz",
|
|
6080
|
+
"integrity": "sha512-ejt2JdVX6k0XzUjVObMcTzTgsaCadEVCHBvOt3J0Vcp3eFirf0nqsjQCUD+ogFep25+ICDMZa1nLlotbXxKDXw==",
|
|
6087
6081
|
"dev": true,
|
|
6088
6082
|
"requires": {
|
|
6089
6083
|
"@babel/core": "^7.18.5",
|
|
@@ -6091,8 +6085,8 @@
|
|
|
6091
6085
|
"@babel/preset-env": "^7.18.2",
|
|
6092
6086
|
"@babel/preset-react": "^7.17.12",
|
|
6093
6087
|
"@babel/preset-typescript": "^7.17.12",
|
|
6094
|
-
"@svgr/core": "^6.
|
|
6095
|
-
"@svgr/plugin-jsx": "^6.
|
|
6088
|
+
"@svgr/core": "^6.4.0",
|
|
6089
|
+
"@svgr/plugin-jsx": "^6.4.0",
|
|
6096
6090
|
"@svgr/plugin-svgo": "^6.3.1"
|
|
6097
6091
|
}
|
|
6098
6092
|
},
|
|
@@ -6145,9 +6139,9 @@
|
|
|
6145
6139
|
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
|
|
6146
6140
|
},
|
|
6147
6141
|
"@types/react": {
|
|
6148
|
-
"version": "18.0.
|
|
6149
|
-
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.
|
|
6150
|
-
"integrity": "sha512-
|
|
6142
|
+
"version": "18.0.21",
|
|
6143
|
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
|
|
6144
|
+
"integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
|
|
6151
6145
|
"requires": {
|
|
6152
6146
|
"@types/prop-types": "*",
|
|
6153
6147
|
"@types/scheduler": "*",
|
|
@@ -6521,6 +6515,12 @@
|
|
|
6521
6515
|
"integrity": "sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw==",
|
|
6522
6516
|
"dev": true
|
|
6523
6517
|
},
|
|
6518
|
+
"entities": {
|
|
6519
|
+
"version": "4.4.0",
|
|
6520
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
|
6521
|
+
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
|
|
6522
|
+
"dev": true
|
|
6523
|
+
},
|
|
6524
6524
|
"env-cmd": {
|
|
6525
6525
|
"version": "10.1.0",
|
|
6526
6526
|
"resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz",
|
|
@@ -7042,9 +7042,9 @@
|
|
|
7042
7042
|
}
|
|
7043
7043
|
},
|
|
7044
7044
|
"react-redux": {
|
|
7045
|
-
"version": "8.0.
|
|
7046
|
-
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.
|
|
7047
|
-
"integrity": "sha512-
|
|
7045
|
+
"version": "8.0.4",
|
|
7046
|
+
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.4.tgz",
|
|
7047
|
+
"integrity": "sha512-yMfQ7mX6bWuicz2fids6cR1YT59VTuT8MKyyE310wJQlINKENCeT1UcPdEiX6znI5tF8zXyJ/VYvDgeGuaaNwQ==",
|
|
7048
7048
|
"requires": {
|
|
7049
7049
|
"@babel/runtime": "^7.12.1",
|
|
7050
7050
|
"@types/hoist-non-react-statics": "^3.3.1",
|
|
@@ -7238,9 +7238,9 @@
|
|
|
7238
7238
|
}
|
|
7239
7239
|
},
|
|
7240
7240
|
"sass": {
|
|
7241
|
-
"version": "1.
|
|
7242
|
-
"resolved": "https://registry.npmjs.org/sass/-/sass-1.
|
|
7243
|
-
"integrity": "sha512-
|
|
7241
|
+
"version": "1.55.0",
|
|
7242
|
+
"resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz",
|
|
7243
|
+
"integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==",
|
|
7244
7244
|
"devOptional": true,
|
|
7245
7245
|
"requires": {
|
|
7246
7246
|
"chokidar": ">=3.0.0 <4.0.0",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/scrabble-solver",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.4",
|
|
4
4
|
"description": "Scrabble Solver 2 - App",
|
|
5
5
|
"engines": {
|
|
6
|
-
"node": ">=16
|
|
6
|
+
"node": ">=16"
|
|
7
7
|
},
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@popperjs/core": "^2.11.6",
|
|
32
32
|
"@reduxjs/toolkit": "^1.8.5",
|
|
33
|
-
"@scrabble-solver/configs": "^2.8.
|
|
34
|
-
"@scrabble-solver/constants": "^2.8.
|
|
35
|
-
"@scrabble-solver/dictionaries": "^2.8.
|
|
36
|
-
"@scrabble-solver/logger": "^2.8.
|
|
37
|
-
"@scrabble-solver/solver": "^2.8.
|
|
38
|
-
"@scrabble-solver/types": "^2.8.
|
|
39
|
-
"@scrabble-solver/word-definitions": "^2.8.
|
|
33
|
+
"@scrabble-solver/configs": "^2.8.4",
|
|
34
|
+
"@scrabble-solver/constants": "^2.8.4",
|
|
35
|
+
"@scrabble-solver/dictionaries": "^2.8.4",
|
|
36
|
+
"@scrabble-solver/logger": "^2.8.4",
|
|
37
|
+
"@scrabble-solver/solver": "^2.8.4",
|
|
38
|
+
"@scrabble-solver/types": "^2.8.4",
|
|
39
|
+
"@scrabble-solver/word-definitions": "^2.8.4",
|
|
40
40
|
"classnames": "^2.3.2",
|
|
41
41
|
"next": "^12.3.1",
|
|
42
42
|
"normalize.css": "^8.0.1",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"react-modal": "^3.15.1",
|
|
46
46
|
"react-popper": "^2.3.0",
|
|
47
47
|
"react-portal": "^4.2.2",
|
|
48
|
-
"react-redux": "^8.0.
|
|
48
|
+
"react-redux": "^8.0.4",
|
|
49
49
|
"react-use": "^17.4.0",
|
|
50
50
|
"react-window": "^1.8.7",
|
|
51
51
|
"redux": "^4.2.0",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"uuid": "^9.0.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@svgr/webpack": "^6.
|
|
57
|
+
"@svgr/webpack": "^6.4.0",
|
|
58
58
|
"@types/classnames": "^2.3.0",
|
|
59
|
-
"@types/react": "^18.0.
|
|
59
|
+
"@types/react": "^18.0.21",
|
|
60
60
|
"@types/react-dom": "^18.0.6",
|
|
61
61
|
"@types/react-modal": "^3.13.1",
|
|
62
62
|
"@types/react-portal": "^4.0.4",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@types/redux-saga": "^0.10.5",
|
|
67
67
|
"@types/uuid": "^8.3.4",
|
|
68
68
|
"env-cmd": "^10.1.0",
|
|
69
|
-
"sass": "^1.
|
|
69
|
+
"sass": "^1.55.0"
|
|
70
70
|
},
|
|
71
71
|
"gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
|
|
72
72
|
}
|
|
@@ -214,6 +214,15 @@ const useGrid = (rows: Cell[][]): [State, Actions] => {
|
|
|
214
214
|
dispatch(boardSlice.actions.changeCellValue({ ...position, value: character }));
|
|
215
215
|
onMoveFocus('forward');
|
|
216
216
|
},
|
|
217
|
+
onSpace: (event) => {
|
|
218
|
+
const position = getInputRefPosition(event.target as HTMLInputElement);
|
|
219
|
+
|
|
220
|
+
if (!position) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
dispatch(boardSlice.actions.toggleCellIsBlank(position));
|
|
225
|
+
},
|
|
217
226
|
});
|
|
218
227
|
}, [changeActiveIndex, config, dispatch, lastDirectionRef, onDirectionToggle, rows]);
|
|
219
228
|
|
|
@@ -42,7 +42,7 @@ const KeyMap: FunctionComponent<Props> = ({ className, isOpen, onClose }) => {
|
|
|
42
42
|
</Sidebar.Section>
|
|
43
43
|
|
|
44
44
|
<Sidebar.Section title={translate('keyMap.board')}>
|
|
45
|
-
<Mapping description={translate('keyMap.board.toggle-blank')} mapping={[[CTRL, <Key key="b">B</Key>]]} />
|
|
45
|
+
<Mapping description={translate('keyMap.board.toggle-blank')} mapping={[SPACE, [CTRL, <Key key="b">B</Key>]]} />
|
|
46
46
|
<Mapping description={translate('keyMap.board.toggle-direction')} mapping={[[CTRL, ARROWS]]} />
|
|
47
47
|
</Sidebar.Section>
|
|
48
48
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
|
-
import { FunctionComponent, ReactNode } from 'react';
|
|
2
|
+
import { Fragment, FunctionComponent, ReactNode } from 'react';
|
|
3
3
|
|
|
4
4
|
import styles from './Mapping.module.scss';
|
|
5
5
|
|
|
@@ -15,17 +15,21 @@ const Mapping: FunctionComponent<Props> = ({ className, description, mapping })
|
|
|
15
15
|
|
|
16
16
|
<div className={styles.keys}>
|
|
17
17
|
{mapping.map((key, index) => (
|
|
18
|
-
<
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
<Fragment key={index}>
|
|
19
|
+
<div className={styles.group}>
|
|
20
|
+
{Array.isArray(key) ? (
|
|
21
|
+
<>
|
|
22
|
+
{key[0]}
|
|
23
|
+
<span className={styles.plus}>+</span>
|
|
24
|
+
{key[1]}
|
|
25
|
+
</>
|
|
26
|
+
) : (
|
|
27
|
+
key
|
|
28
|
+
)}
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
{mapping.length > 1 && index < mapping.length - 1 && <span className={styles.slash}>/</span>}
|
|
32
|
+
</Fragment>
|
|
29
33
|
))}
|
|
30
34
|
</div>
|
|
31
35
|
</div>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
2
|
import { CSSProperties, FunctionComponent, useMemo } from 'react';
|
|
3
3
|
|
|
4
|
+
import SvgFontCss from '../SvgFontCss';
|
|
5
|
+
|
|
4
6
|
import { createPlainTiles, getViewbox } from './lib';
|
|
5
7
|
import styles from './PlainTiles.module.scss';
|
|
6
8
|
import Tile from './Tile';
|
|
@@ -28,6 +30,8 @@ const PlainTiles: FunctionComponent<Props> = ({ className, color, content, dropS
|
|
|
28
30
|
viewBox={getViewbox(content)}
|
|
29
31
|
xmlns="http://www.w3.org/2000/svg"
|
|
30
32
|
>
|
|
33
|
+
<SvgFontCss />
|
|
34
|
+
|
|
31
35
|
{tiles.map((tile, index) => (
|
|
32
36
|
<Tile
|
|
33
37
|
character={tile.character}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line max-len
|
|
4
|
+
const CSS = `@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Open+Sans:wght@400;700&family=Roboto+Mono&display=swap');
|
|
5
|
+
|
|
6
|
+
text {
|
|
7
|
+
font-family: 'Open Sans';
|
|
8
|
+
}`;
|
|
9
|
+
|
|
10
|
+
const SvgFontCss: FunctionComponent = () => <style type="text/css">{CSS}</style>;
|
|
11
|
+
|
|
12
|
+
export default SvgFontCss;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './SvgFontCss';
|
|
@@ -21,6 +21,7 @@ export { default as Settings } from './Settings';
|
|
|
21
21
|
export { default as Sidebar } from './Sidebar';
|
|
22
22
|
export { default as Splash } from './Splash';
|
|
23
23
|
export { default as SquareButton } from './SquareButton';
|
|
24
|
+
export { default as SvgFontCss } from './SvgFontCss';
|
|
24
25
|
export { default as Tile } from './Tile';
|
|
25
26
|
export { useTooltip } from './Tooltip';
|
|
26
27
|
export { default as Well } from './Well';
|
|
@@ -11,6 +11,7 @@ interface Parameters {
|
|
|
11
11
|
onDelete?: KeyboardEventHandler<HTMLInputElement>;
|
|
12
12
|
onEnter?: KeyboardEventHandler<HTMLInputElement>;
|
|
13
13
|
onKeyDown?: KeyboardEventHandler<HTMLInputElement>;
|
|
14
|
+
onSpace?: KeyboardEventHandler<HTMLInputElement>;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
const createKeyboardNavigation = ({
|
|
@@ -22,6 +23,7 @@ const createKeyboardNavigation = ({
|
|
|
22
23
|
onDelete = noop,
|
|
23
24
|
onEnter = noop,
|
|
24
25
|
onKeyDown = noop,
|
|
26
|
+
onSpace = noop,
|
|
25
27
|
}: Parameters): KeyboardEventHandler<HTMLInputElement> => {
|
|
26
28
|
const handlers: Record<string, KeyboardEventHandler<HTMLInputElement>> = {
|
|
27
29
|
ArrowUp: onArrowUp,
|
|
@@ -31,6 +33,7 @@ const createKeyboardNavigation = ({
|
|
|
31
33
|
Backspace: onBackspace,
|
|
32
34
|
Delete: onDelete,
|
|
33
35
|
Enter: onEnter,
|
|
36
|
+
' ': onSpace,
|
|
34
37
|
};
|
|
35
38
|
|
|
36
39
|
const handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {
|
|
@@ -134,20 +134,11 @@ export const getStaticProps = async (): Promise<{ props: Props }> => {
|
|
|
134
134
|
return { props: { version } };
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
const readVersion = (): Promise<string> => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (error) {
|
|
143
|
-
reject(error);
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const packageJson = JSON.parse(data);
|
|
148
|
-
resolve(packageJson.version);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
137
|
+
const readVersion = async (): Promise<string> => {
|
|
138
|
+
const packageJsonFilepath = path.resolve(process.cwd(), 'package.json');
|
|
139
|
+
const data = await fs.promises.readFile(packageJsonFilepath, 'utf-8');
|
|
140
|
+
const packageJson = JSON.parse(data);
|
|
141
|
+
return packageJson.version;
|
|
151
142
|
};
|
|
152
143
|
|
|
153
144
|
export default Index;
|
|
@@ -16,7 +16,7 @@ class PatternsFiller {
|
|
|
16
16
|
const tilesPermutations = this.generateBlankTilesPermutations(tiles);
|
|
17
17
|
for (let index = 0; index < tilesPermutations.length; ++index) {
|
|
18
18
|
const tilesPermutation = tilesPermutations[index];
|
|
19
|
-
this.fillPattern(pattern,
|
|
19
|
+
this.fillPattern(pattern, pattern.toString(), tilesPermutation, onPatternFound);
|
|
20
20
|
}
|
|
21
21
|
return patterns;
|
|
22
22
|
}
|
|
@@ -51,11 +51,7 @@ class PatternsFiller {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
canAddPattern(pattern, word) {
|
|
54
|
-
return
|
|
55
|
-
pattern
|
|
56
|
-
.getCollisions()
|
|
57
|
-
.map(String)
|
|
58
|
-
.every((collision) => this.trie.has(collision)));
|
|
54
|
+
return this.trie.has(word) && pattern.getCollisions().every((collision) => this.trie.has(collision.toString()));
|
|
59
55
|
}
|
|
60
56
|
generateBlankTilesPermutations(tiles) {
|
|
61
57
|
const { alphabet } = this.config;
|