scrabble-solver 2.10.3 → 2.10.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.
Files changed (208) hide show
  1. package/README.md +29 -18
  2. package/lerna.json +1 -1
  3. package/package.json +2 -2
  4. package/packages/configs/package-lock.json +4 -4
  5. package/packages/configs/package.json +3 -3
  6. package/packages/constants/package-lock.json +2 -2
  7. package/packages/constants/package.json +1 -1
  8. package/packages/dictionaries/package-lock.json +2 -2
  9. package/packages/dictionaries/package.json +4 -4
  10. package/packages/logger/package-lock.json +2 -2
  11. package/packages/logger/package.json +1 -1
  12. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  13. package/packages/scrabble-solver/.next/build-manifest.json +13 -13
  14. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  15. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  16. package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
  17. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  18. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  19. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  20. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  21. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  22. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  23. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
  24. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  25. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  26. package/packages/scrabble-solver/.next/server/chunks/176.js +1269 -1559
  27. package/packages/scrabble-solver/.next/server/chunks/579.js +50 -26
  28. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  29. package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
  30. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  31. package/packages/scrabble-solver/.next/server/pages/500.html +2 -2
  32. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  33. package/packages/scrabble-solver/.next/server/pages/api/solve.js +22 -6
  34. package/packages/scrabble-solver/.next/server/pages/index.html +2 -2
  35. package/packages/scrabble-solver/.next/server/pages/index.js +1539 -52
  36. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  37. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  38. package/packages/scrabble-solver/.next/server/pages-manifest.json +3 -3
  39. package/packages/scrabble-solver/.next/static/P7XhuDLmwJJqC8kgPjX42/_buildManifest.js +1 -0
  40. package/packages/scrabble-solver/.next/static/{FJkPF91uL-OCAJKTTpVSP → P7XhuDLmwJJqC8kgPjX42}/_ssgManifest.js +0 -0
  41. package/packages/scrabble-solver/.next/static/chunks/490-d29992f1c264d70e.js +5 -0
  42. package/packages/scrabble-solver/.next/static/chunks/528-9942ddad0031ff79.js +1 -0
  43. package/packages/scrabble-solver/.next/static/chunks/pages/{404-24f9617eeb8d6dc1.js → 404-6c99a0c91257c60b.js} +1 -1
  44. package/packages/scrabble-solver/.next/static/chunks/pages/_app-fa0661b072fc6af9.js +24 -0
  45. package/packages/scrabble-solver/.next/static/chunks/pages/index-d761f0af070273d2.js +1 -0
  46. package/packages/scrabble-solver/.next/static/css/78e42ad01f580f64.css +1 -0
  47. package/packages/scrabble-solver/.next/static/css/97eb6ee0c4300c83.css +1 -0
  48. package/packages/scrabble-solver/.next/static/css/dcca0c1a39cf5ef5.css +1 -0
  49. package/packages/scrabble-solver/.next/trace +55 -52
  50. package/packages/scrabble-solver/package-lock.json +27 -2
  51. package/packages/scrabble-solver/package.json +10 -8
  52. package/packages/scrabble-solver/src/components/Badge/Badge.module.scss +4 -5
  53. package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +5 -5
  54. package/packages/scrabble-solver/src/components/Button/Button.module.scss +10 -38
  55. package/packages/scrabble-solver/src/components/Button/Button.tsx +6 -5
  56. package/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss +1 -2
  57. package/packages/scrabble-solver/src/components/Dictionary/Dictionary.tsx +2 -6
  58. package/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.module.scss +1 -3
  59. package/packages/scrabble-solver/src/components/EmptyState/EmptyState.module.scss +6 -7
  60. package/packages/scrabble-solver/src/components/EmptyState/EmptyState.tsx +6 -6
  61. package/packages/scrabble-solver/src/components/Key/Key.module.scss +0 -1
  62. package/packages/scrabble-solver/src/components/{Splash/Splash.module.scss → LogoSplashScreen/LogoSplashScreen.module.scss} +1 -1
  63. package/packages/scrabble-solver/src/components/{Splash/Splash.tsx → LogoSplashScreen/LogoSplashScreen.tsx} +7 -7
  64. package/packages/scrabble-solver/src/components/LogoSplashScreen/index.ts +1 -0
  65. package/packages/scrabble-solver/src/components/{Sidebar/Sidebar.module.scss → Modal/Modal.module.scss} +25 -20
  66. package/packages/scrabble-solver/src/components/{Sidebar/Sidebar.tsx → Modal/Modal.tsx} +9 -9
  67. package/packages/scrabble-solver/src/components/{Sidebar → Modal}/components/Section/Section.module.scss +0 -0
  68. package/packages/scrabble-solver/src/components/{Sidebar → Modal}/components/Section/Section.tsx +0 -0
  69. package/packages/scrabble-solver/src/components/{Sidebar → Modal}/components/Section/index.ts +0 -0
  70. package/packages/scrabble-solver/src/components/{Sidebar → Modal}/components/index.ts +0 -0
  71. package/packages/scrabble-solver/src/components/Modal/index.ts +1 -0
  72. package/packages/scrabble-solver/src/components/NavButtons/NavButtons.tsx +22 -3
  73. package/packages/scrabble-solver/src/components/Progress/Progress.module.scss +9 -0
  74. package/packages/scrabble-solver/src/components/Progress/Progress.tsx +38 -0
  75. package/packages/scrabble-solver/src/components/Progress/index.ts +1 -0
  76. package/packages/scrabble-solver/src/components/Rack/Rack.module.scss +2 -0
  77. package/packages/scrabble-solver/src/components/Rack/Rack.tsx +3 -1
  78. package/packages/scrabble-solver/src/components/Rack/RackTile.tsx +3 -2
  79. package/packages/scrabble-solver/src/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +76 -0
  80. package/packages/scrabble-solver/src/components/ResultCandidatePicker/ResultCandidatePicker.tsx +38 -0
  81. package/packages/scrabble-solver/src/components/ResultCandidatePicker/index.ts +1 -0
  82. package/packages/scrabble-solver/src/components/Results/Result.tsx +64 -43
  83. package/packages/scrabble-solver/src/components/Results/Results.module.scss +9 -16
  84. package/packages/scrabble-solver/src/components/Results/Results.tsx +45 -28
  85. package/packages/scrabble-solver/src/components/Results/SolveButton.tsx +9 -7
  86. package/packages/scrabble-solver/src/components/Results/{getColumns.ts → getLocaleColumns.ts} +2 -2
  87. package/packages/scrabble-solver/src/components/Results/types.ts +16 -0
  88. package/packages/scrabble-solver/src/components/Results/useColumns.ts +44 -0
  89. package/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.module.scss +1 -3
  90. package/packages/scrabble-solver/src/components/Sizer/Sizer.module.scss +10 -0
  91. package/packages/scrabble-solver/src/components/Sizer/Sizer.tsx +10 -0
  92. package/packages/scrabble-solver/src/components/Sizer/index.ts +1 -0
  93. package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +83 -27
  94. package/packages/scrabble-solver/src/components/Solver/Solver.tsx +157 -24
  95. package/packages/scrabble-solver/src/components/Solver/components/ApplyButton/ApplyButton.module.scss +5 -0
  96. package/packages/scrabble-solver/src/components/Solver/components/ApplyButton/ApplyButton.tsx +37 -0
  97. package/packages/scrabble-solver/src/components/Solver/components/ApplyButton/index.ts +1 -0
  98. package/packages/scrabble-solver/src/components/Solver/components/EmptyState/EmptyState.module.scss +59 -0
  99. package/packages/scrabble-solver/src/components/Solver/components/EmptyState/EmptyState.tsx +41 -0
  100. package/packages/scrabble-solver/src/components/Solver/components/EmptyState/index.ts +1 -0
  101. package/packages/scrabble-solver/src/components/Solver/components/SolveButton/SolveButton.module.scss +4 -0
  102. package/packages/scrabble-solver/src/components/Solver/components/SolveButton/SolveButton.tsx +42 -0
  103. package/packages/scrabble-solver/src/components/Solver/components/SolveButton/index.ts +1 -0
  104. package/packages/scrabble-solver/src/components/Solver/components/index.ts +3 -0
  105. package/packages/scrabble-solver/src/components/{Screen/Screen.module.scss → SplashScreen/SplashScreen.module.scss} +2 -12
  106. package/packages/scrabble-solver/src/components/{Screen/Screen.tsx → SplashScreen/SplashScreen.tsx} +4 -4
  107. package/packages/scrabble-solver/src/components/SplashScreen/index.ts +1 -0
  108. package/packages/scrabble-solver/src/components/SquareButton/SquareButton.module.scss +3 -3
  109. package/packages/scrabble-solver/src/components/Tile/Tile.module.scss +7 -15
  110. package/packages/scrabble-solver/src/components/Tooltip/Tooltip.module.scss +0 -1
  111. package/packages/scrabble-solver/src/components/index.ts +6 -7
  112. package/packages/scrabble-solver/src/hooks/index.ts +1 -1
  113. package/packages/scrabble-solver/src/hooks/useMediaQuery.ts +11 -0
  114. package/packages/scrabble-solver/src/hooks/usePortal.tsx +1 -1
  115. package/packages/scrabble-solver/src/i18n/de.json +2 -0
  116. package/packages/scrabble-solver/src/i18n/en.json +2 -0
  117. package/packages/scrabble-solver/src/i18n/es.json +2 -0
  118. package/packages/scrabble-solver/src/i18n/fa.json +2 -0
  119. package/packages/scrabble-solver/src/i18n/fr.json +2 -0
  120. package/packages/scrabble-solver/src/i18n/pl.json +2 -0
  121. package/packages/scrabble-solver/src/icons/CardChecklist.svg +5 -0
  122. package/packages/scrabble-solver/src/icons/Check.svg +2 -2
  123. package/packages/scrabble-solver/src/icons/ChevronDown.svg +4 -0
  124. package/packages/scrabble-solver/src/icons/CrossCircleFill.svg +4 -0
  125. package/packages/scrabble-solver/src/icons/{CrossFill.svg → CrossSquareFill.svg} +0 -0
  126. package/packages/scrabble-solver/src/icons/ExclamationTriangleFill.svg +4 -0
  127. package/packages/scrabble-solver/src/icons/InfoCircleFill.svg +4 -0
  128. package/packages/scrabble-solver/src/icons/List.svg +4 -0
  129. package/packages/scrabble-solver/src/icons/Search.svg +4 -0
  130. package/packages/scrabble-solver/src/icons/index.ts +8 -2
  131. package/packages/scrabble-solver/src/{components/KeyMap/KeyMap.tsx → modals/KeyMapModal/KeyMapModal.tsx} +11 -13
  132. package/packages/scrabble-solver/src/{components/KeyMap → modals/KeyMapModal}/components/Mapping/Mapping.module.scss +0 -0
  133. package/packages/scrabble-solver/src/{components/KeyMap → modals/KeyMapModal}/components/Mapping/Mapping.tsx +0 -0
  134. package/packages/scrabble-solver/src/{components/KeyMap → modals/KeyMapModal}/components/Mapping/index.ts +0 -0
  135. package/packages/scrabble-solver/src/{components/KeyMap → modals/KeyMapModal}/components/index.ts +0 -0
  136. package/packages/scrabble-solver/src/modals/KeyMapModal/index.ts +1 -0
  137. package/packages/scrabble-solver/src/{components/KeyMap → modals/KeyMapModal}/keys.tsx +1 -2
  138. package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.module.scss +46 -0
  139. package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.tsx +54 -0
  140. package/packages/scrabble-solver/src/modals/MenuModal/index.ts +1 -0
  141. package/packages/scrabble-solver/src/modals/RemainingTilesModal/RemainingTilesModal.module.scss +28 -0
  142. package/packages/scrabble-solver/src/{components/RemainingTiles/RemainingTiles.tsx → modals/RemainingTilesModal/RemainingTilesModal.tsx} +14 -12
  143. package/packages/scrabble-solver/src/{components/RemainingTiles → modals/RemainingTilesModal/components/Character}/Character.module.scss +6 -2
  144. package/packages/scrabble-solver/src/{components/RemainingTiles → modals/RemainingTilesModal/components/Character}/Character.tsx +11 -3
  145. package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/index.ts +1 -0
  146. package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/index.ts +1 -0
  147. package/packages/scrabble-solver/src/modals/RemainingTilesModal/index.ts +1 -0
  148. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.module.scss +7 -0
  149. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +58 -0
  150. package/packages/scrabble-solver/src/modals/ResultsModal/index.ts +1 -0
  151. package/packages/scrabble-solver/src/modals/SettingsModal/SettingsModal.tsx +34 -0
  152. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/AutoGroupTilesSetting/AutoGroupTilesSetting.module.scss +0 -0
  153. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +1 -2
  154. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/AutoGroupTilesSetting/constants.ts +0 -0
  155. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/AutoGroupTilesSetting/index.ts +0 -0
  156. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/AutoGroupTilesSetting/lib.ts +0 -0
  157. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/ConfigSetting/ConfigSetting.module.scss +0 -0
  158. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/ConfigSetting/ConfigSetting.tsx +1 -2
  159. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/ConfigSetting/index.ts +0 -0
  160. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/ConfigSetting/options.ts +0 -0
  161. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/ConfigSetting/types.ts +0 -0
  162. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/LocaleSetting/LocaleSetting.module.scss +0 -0
  163. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/LocaleSetting/LocaleSetting.tsx +1 -2
  164. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/LocaleSetting/index.ts +0 -0
  165. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/LocaleSetting/options.ts +0 -0
  166. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/LocaleSetting/types.ts +0 -0
  167. package/packages/scrabble-solver/src/{components/Settings → modals/SettingsModal}/components/index.ts +0 -0
  168. package/packages/scrabble-solver/src/modals/SettingsModal/index.ts +1 -0
  169. package/packages/scrabble-solver/src/{components/Words/Words.module.scss → modals/WordsModal/WordsModal.module.scss} +7 -1
  170. package/packages/scrabble-solver/src/{components/Words/Words.tsx → modals/WordsModal/WordsModal.tsx} +10 -12
  171. package/packages/scrabble-solver/src/modals/WordsModal/index.ts +1 -0
  172. package/packages/scrabble-solver/src/modals/index.ts +6 -0
  173. package/packages/scrabble-solver/src/pages/index.module.scss +6 -4
  174. package/packages/scrabble-solver/src/pages/index.tsx +63 -26
  175. package/packages/scrabble-solver/src/parameters/index.ts +28 -6
  176. package/packages/scrabble-solver/src/state/createAppStore.ts +7 -4
  177. package/packages/scrabble-solver/src/styles/mixins.scss +15 -13
  178. package/packages/scrabble-solver/src/styles/variables.scss +15 -17
  179. package/packages/scrabble-solver/src/types/index.ts +2 -0
  180. package/packages/scrabble-solver/tsconfig.json +1 -0
  181. package/packages/solver/package-lock.json +2 -2
  182. package/packages/solver/package.json +5 -5
  183. package/packages/types/package-lock.json +3 -3
  184. package/packages/types/package.json +2 -2
  185. package/packages/word-definitions/package-lock.json +8 -8
  186. package/packages/word-definitions/package.json +2 -2
  187. package/packages/word-lists/package-lock.json +2 -2
  188. package/packages/word-lists/package.json +2 -2
  189. package/packages/scrabble-solver/.next/cache/webpack/client-development/7.pack_ +0 -0
  190. package/packages/scrabble-solver/.next/static/FJkPF91uL-OCAJKTTpVSP/_buildManifest.js +0 -1
  191. package/packages/scrabble-solver/.next/static/chunks/361-d16f336a9752a55a.js +0 -1
  192. package/packages/scrabble-solver/.next/static/chunks/724-eb48df4d1ba3df8b.js +0 -5
  193. package/packages/scrabble-solver/.next/static/chunks/pages/_app-959e495f0f221247.js +0 -24
  194. package/packages/scrabble-solver/.next/static/chunks/pages/index-1e30dafa41bddb80.js +0 -1
  195. package/packages/scrabble-solver/.next/static/css/aafd07997120f1e4.css +0 -1
  196. package/packages/scrabble-solver/.next/static/css/cb5b206454513f3c.css +0 -1
  197. package/packages/scrabble-solver/.next/static/css/eb9d57f7103525ab.css +0 -1
  198. package/packages/scrabble-solver/src/components/KeyMap/index.ts +0 -1
  199. package/packages/scrabble-solver/src/components/RemainingTiles/RemainingTiles.module.scss +0 -16
  200. package/packages/scrabble-solver/src/components/RemainingTiles/index.ts +0 -1
  201. package/packages/scrabble-solver/src/components/Screen/index.ts +0 -1
  202. package/packages/scrabble-solver/src/components/Settings/Settings.tsx +0 -35
  203. package/packages/scrabble-solver/src/components/Settings/index.ts +0 -1
  204. package/packages/scrabble-solver/src/components/Sidebar/index.ts +0 -1
  205. package/packages/scrabble-solver/src/components/Splash/index.ts +0 -1
  206. package/packages/scrabble-solver/src/components/Words/index.ts +0 -1
  207. package/packages/scrabble-solver/src/hooks/useIsTablet.ts +0 -10
  208. package/packages/scrabble-solver/src/icons/Play.svg +0 -4
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </p>
7
7
 
8
8
  <p>
9
- Free and open-source analysis tool for <a href="https://en.wikipedia.org/wiki/Scrabble">Scrabble</a> and <a href="https://pl.wikipedia.org/wiki/Literaki">Literaki</a>.
9
+ Free, open-source, and cross-platform analysis tool for <a href="https://en.wikipedia.org/wiki/Scrabble">Scrabble</a> and <a href="https://pl.wikipedia.org/wiki/Literaki">Literaki</a>.
10
10
  </p>
11
11
 
12
12
  <p>
@@ -39,15 +39,18 @@
39
39
  <img src="https://github.com/kamilmielnik/scrabble-solver/workflows/ESLint/badge.svg" alt="ESLint" />
40
40
  </p>
41
41
 
42
- <p>
43
- You can run it on your machine, it's cross-platform - all you need is <a href="https://nodejs.org/">Node.js</a>.
44
- </p>
45
-
46
42
  <img alt="Screencast GIF showing user interface when solving for oxyphenbutazone, which is a top-scoring word in English version of Scrabble" src="https://raw.githubusercontent.com/kamilmielnik/scrabble-solver/master/img/screencast.gif" />
47
43
  </div>
48
44
 
49
45
  # scrabble-solver
50
46
 
47
+ - [Dictionaries](#dictionaries)
48
+ - [Run](#run)
49
+ - [Uninstall](#uninstall)
50
+ - [Develop](#develop)
51
+ - [Tech stack](#tech-stack)
52
+ - [Related projects](#related-projects)
53
+
51
54
  ## Dictionaries
52
55
 
53
56
  | Language | Word list | Word definitions | [Highest-scoring word](https://codesandbox.io/s/highest-scoring-words-in-scrabble-vbj1ns?file=/src/index.js) |
@@ -60,13 +63,10 @@
60
63
  | 🇵🇱 Polish | [💾](https://sjp.pl/slownik/growy/) [SJP.PL](https://sjp.pl/slownik/dp.phtml) | [SJP.PL](https://sjp.pl) | współposiądźmyż (1512) |
61
64
  | 🇪🇸 Spanish | [💾](https://github.com/kamilmielnik/fise-2/blob/master/fise-2.txt) [FISE-2](https://fisescrabble.org/) | [Diccionarios.com](https://www.diccionarios.com/) | flexibilizabais (1323) |
62
65
 
63
- ## Requirements
64
-
65
- - [Node.js](https://nodejs.org/) 16+
66
- - min. `1000px x 700px` viewport size (`1500px x 1200px` recommended)
67
-
68
66
  ## Run
69
67
 
68
+ You can run Scrabble Solver on your machine - all you need is [Node.js](https://nodejs.org/) 16 or later.
69
+
70
70
  ```Shell
71
71
  npx scrabble-solver
72
72
  ```
@@ -80,7 +80,7 @@ npm install -g scrabble-solver
80
80
  scrabble-solver
81
81
  ```
82
82
 
83
- Open http://localhost:3333/ if it didn't open up for you.
83
+ Dictionaries will be downloaded and processed during the first run - this can take a few minutes.
84
84
 
85
85
  ## Uninstall
86
86
 
@@ -94,9 +94,6 @@ rm -rf $HOME/.scrabble-solver
94
94
 
95
95
  ## Develop
96
96
 
97
- - All commands below are meant to be executed in the root directory
98
- - Some of these commands can take a lot of time if you have never run them before
99
-
100
97
  ### Setup
101
98
 
102
99
  ```Shell
@@ -106,13 +103,12 @@ npm run install:dev
106
103
 
107
104
  ### App dev server
108
105
 
109
- Runs at [http://localhost:3000/](http://localhost:3000/).
110
-
111
106
  ```Shell
112
107
  npx lerna run dev --scope=@scrabble-solver/scrabble-solver
113
108
  ```
114
109
 
115
- Hot code reload works for [`scrabble-solver` package](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver) only.
110
+ - Starts server on [http://localhost:3000](http://localhost:3000)
111
+ - Hot code reload works for [`scrabble-solver`](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver) package only
116
112
 
117
113
  ### Rebuild a single package
118
114
 
@@ -122,13 +118,28 @@ npx lerna run build --scope=@scrabble-solver/PACKAGE_NAME_HERE
122
118
 
123
119
  ## Tech stack
124
120
 
125
- - [Lerna](https://lerna.js.org/)
126
121
  - [TypeScript](https://www.typescriptlang.org/)
122
+ - [Node.js](https://nodejs.org/)
127
123
  - [Next.js](https://nextjs.org/)
124
+ - [Express](https://expressjs.com/)
125
+ - [Workbox](https://developer.chrome.com/docs/workbox/)
128
126
  - [React](https://reactjs.org/)
129
127
  - [Redux](https://redux.js.org/)
130
128
  - [Redux Toolkit](https://redux-toolkit.js.org/)
131
129
  - [Redux-Saga](https://redux-saga.js.org/)
130
+ - [SCSS](https://sass-lang.com/)
131
+ - [CSS Modules](https://github.com/css-modules/css-modules)
132
+ - [include-media](https://eduardoboucas.github.io/include-media/)
133
+ - [Lerna](https://lerna.js.org/)
132
134
  - [Jest](https://jestjs.io/)
133
135
  - [ESLint](https://eslint.org/)
134
136
  - [Prettier](https://prettier.io/)
137
+
138
+ ## Related projects
139
+
140
+ ### Lexatious
141
+
142
+ The user interface and source code for the web front end of Lexatious is based on Scrabble Solver.
143
+
144
+ - Web: https://lexatious.com
145
+ - GitHub: https://github.com/ericgjackson/lexatious_web
package/lerna.json CHANGED
@@ -6,5 +6,5 @@
6
6
  "access": "public"
7
7
  },
8
8
  "tagVersionPrefix": "",
9
- "version": "2.10.3"
9
+ "version": "2.10.4"
10
10
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "scrabble-solver",
3
- "version": "2.10.3",
4
- "description": "Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish.",
3
+ "version": "2.10.4",
4
+ "description": "Scrabble Solver 2 - Free, open-source, and cross-platform analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish.",
5
5
  "keywords": [
6
6
  "Scrabble",
7
7
  "Literaki",
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@scrabble-solver/configs",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/configs",
9
- "version": "2.10.3",
9
+ "version": "2.10.4",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
- "@scrabble-solver/constants": "^2.10.3",
13
- "@scrabble-solver/types": "^2.10.3"
12
+ "@scrabble-solver/constants": "^2.10.4",
13
+ "@scrabble-solver/types": "^2.10.4"
14
14
  }
15
15
  },
16
16
  "node_modules/@scrabble-solver/constants": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/configs",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "description": "Scrabble Solver 2 - Configs",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -24,8 +24,8 @@
24
24
  "clean:force": "npm run clean && rimraf package-lock.json"
25
25
  },
26
26
  "dependencies": {
27
- "@scrabble-solver/constants": "^2.10.3",
28
- "@scrabble-solver/types": "^2.10.3"
27
+ "@scrabble-solver/constants": "^2.10.4",
28
+ "@scrabble-solver/types": "^2.10.4"
29
29
  },
30
30
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
31
31
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/constants",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/constants",
9
- "version": "2.10.3",
9
+ "version": "2.10.4",
10
10
  "license": "CC-BY-NC-ND-4.0"
11
11
  }
12
12
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/constants",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "description": "Scrabble Solver 2 - Constants",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/dictionaries",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/dictionaries",
9
- "version": "2.10.3",
9
+ "version": "2.10.4",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "@kamilmielnik/trie": "^2.0.1"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/dictionaries",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "description": "Scrabble Solver 2 - Dictionaries",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -31,9 +31,9 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@kamilmielnik/trie": "^2.0.1",
34
- "@scrabble-solver/logger": "^2.10.3",
35
- "@scrabble-solver/types": "^2.10.3",
36
- "@scrabble-solver/word-lists": "^2.10.3"
34
+ "@scrabble-solver/logger": "^2.10.4",
35
+ "@scrabble-solver/types": "^2.10.4",
36
+ "@scrabble-solver/word-lists": "^2.10.4"
37
37
  },
38
38
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
39
39
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/logger",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/logger",
9
- "version": "2.10.3",
9
+ "version": "2.10.4",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "winston": "^3.8.2"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/logger",
3
- "version": "2.10.3",
3
+ "version": "2.10.4",
4
4
  "description": "Scrabble Solver 2 - Logger",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1 +1 @@
1
- FJkPF91uL-OCAJKTTpVSP
1
+ P7XhuDLmwJJqC8kgPjX42
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/FJkPF91uL-OCAJKTTpVSP/_buildManifest.js",
9
- "static/FJkPF91uL-OCAJKTTpVSP/_ssgManifest.js"
8
+ "static/P7XhuDLmwJJqC8kgPjX42/_buildManifest.js",
9
+ "static/P7XhuDLmwJJqC8kgPjX42/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "pages": {
@@ -14,27 +14,27 @@
14
14
  "static/chunks/webpack-59c5c889f52620d6.js",
15
15
  "static/chunks/framework-2c79e2a64abdb08b.js",
16
16
  "static/chunks/main-f11614d8aa7ee555.js",
17
- "static/chunks/724-eb48df4d1ba3df8b.js",
18
- "static/css/cb5b206454513f3c.css",
19
- "static/chunks/361-d16f336a9752a55a.js",
20
- "static/css/aafd07997120f1e4.css",
21
- "static/chunks/pages/index-1e30dafa41bddb80.js"
17
+ "static/chunks/490-d29992f1c264d70e.js",
18
+ "static/css/97eb6ee0c4300c83.css",
19
+ "static/chunks/528-9942ddad0031ff79.js",
20
+ "static/css/dcca0c1a39cf5ef5.css",
21
+ "static/chunks/pages/index-d761f0af070273d2.js"
22
22
  ],
23
23
  "/404": [
24
24
  "static/chunks/webpack-59c5c889f52620d6.js",
25
25
  "static/chunks/framework-2c79e2a64abdb08b.js",
26
26
  "static/chunks/main-f11614d8aa7ee555.js",
27
- "static/chunks/724-eb48df4d1ba3df8b.js",
28
- "static/css/cb5b206454513f3c.css",
29
- "static/chunks/361-d16f336a9752a55a.js",
30
- "static/chunks/pages/404-24f9617eeb8d6dc1.js"
27
+ "static/chunks/490-d29992f1c264d70e.js",
28
+ "static/css/97eb6ee0c4300c83.css",
29
+ "static/chunks/528-9942ddad0031ff79.js",
30
+ "static/chunks/pages/404-6c99a0c91257c60b.js"
31
31
  ],
32
32
  "/_app": [
33
33
  "static/chunks/webpack-59c5c889f52620d6.js",
34
34
  "static/chunks/framework-2c79e2a64abdb08b.js",
35
35
  "static/chunks/main-f11614d8aa7ee555.js",
36
- "static/css/eb9d57f7103525ab.css",
37
- "static/chunks/pages/_app-959e495f0f221247.js"
36
+ "static/css/78e42ad01f580f64.css",
37
+ "static/chunks/pages/_app-fa0661b072fc6af9.js"
38
38
  ],
39
39
  "/_error": [
40
40
  "static/chunks/webpack-59c5c889f52620d6.js",