scrabble-solver 2.9.3 → 2.10.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 (226) hide show
  1. package/.prettierignore +2 -0
  2. package/README.md +3 -1
  3. package/lerna.json +1 -1
  4. package/package.json +1 -1
  5. package/packages/configs/build/literaki/literaki.d.ts +1 -0
  6. package/packages/configs/build/literaki/literaki.js +1 -0
  7. package/packages/configs/build/literaki/tiles/index.d.ts +1 -0
  8. package/packages/configs/build/literaki/tiles/index.js +3 -1
  9. package/packages/configs/build/literaki/tiles/tilesFa.d.ts +6 -0
  10. package/packages/configs/build/literaki/tiles/tilesFa.js +37 -0
  11. package/packages/configs/build/scrabble/scrabble.d.ts +1 -0
  12. package/packages/configs/build/scrabble/scrabble.js +1 -0
  13. package/packages/configs/build/scrabble/tiles/index.d.ts +1 -0
  14. package/packages/configs/build/scrabble/tiles/index.js +3 -1
  15. package/packages/configs/build/scrabble/tiles/tilesFa.d.ts +6 -0
  16. package/packages/configs/build/scrabble/tiles/tilesFa.js +37 -0
  17. package/packages/configs/package.json +3 -3
  18. package/packages/configs/src/literaki/literaki.ts +2 -1
  19. package/packages/configs/src/literaki/tiles/index.ts +1 -0
  20. package/packages/configs/src/literaki/tiles/tilesFa.ts +36 -0
  21. package/packages/configs/src/scrabble/scrabble.ts +2 -1
  22. package/packages/configs/src/scrabble/tiles/index.ts +1 -0
  23. package/packages/configs/src/scrabble/tiles/tilesFa.ts +36 -0
  24. package/packages/constants/build/index.js +1 -0
  25. package/packages/constants/package.json +1 -1
  26. package/packages/constants/src/index.ts +1 -0
  27. package/packages/dictionaries/package-lock.json +2 -2
  28. package/packages/dictionaries/package.json +4 -4
  29. package/packages/logger/package-lock.json +2 -2
  30. package/packages/logger/package.json +1 -1
  31. package/packages/logger/scripts/stats.js +1 -1
  32. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  33. package/packages/scrabble-solver/.next/build-manifest.json +11 -11
  34. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  35. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  36. package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
  37. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  38. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  39. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  40. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  41. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  42. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  43. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
  44. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  45. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  46. package/packages/scrabble-solver/.next/server/chunks/{429.js → 131.js} +2 -3652
  47. package/packages/scrabble-solver/.next/server/chunks/413.js +399 -199
  48. package/packages/scrabble-solver/.next/server/chunks/44.js +71 -45
  49. package/packages/scrabble-solver/.next/server/chunks/515.js +1114 -542
  50. package/packages/scrabble-solver/.next/server/chunks/911.js +96 -2
  51. package/packages/scrabble-solver/.next/server/chunks/939.js +1 -0
  52. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  53. package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
  54. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  55. package/packages/scrabble-solver/.next/server/pages/500.html +2 -2
  56. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  57. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +49 -11
  58. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  59. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -8
  60. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  61. package/packages/scrabble-solver/.next/server/pages/api/solve.js +67 -57
  62. package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
  63. package/packages/scrabble-solver/.next/server/pages/api/verify.js +2 -9
  64. package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
  65. package/packages/scrabble-solver/.next/server/pages/index.html +9 -1
  66. package/packages/scrabble-solver/.next/server/pages/index.js +43 -36
  67. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  68. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  69. package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -1
  70. package/packages/scrabble-solver/.next/static/chunks/368-8b386c3106556f62.js +1 -0
  71. package/packages/scrabble-solver/.next/static/chunks/pages/{404-8650986dc56dab75.js → 404-932294135c3206dd.js} +1 -1
  72. package/packages/scrabble-solver/.next/static/chunks/pages/_app-8f0df20f771045ed.js +1 -0
  73. package/packages/scrabble-solver/.next/static/chunks/pages/index-8af7a9d7a2cd98a7.js +1 -0
  74. package/packages/scrabble-solver/.next/static/css/6b1833fd19d3a74a.css +1 -0
  75. package/packages/scrabble-solver/.next/static/css/a6154e4ca046ca13.css +1 -0
  76. package/packages/scrabble-solver/.next/static/css/bad53af6f8616677.css +1 -0
  77. package/packages/scrabble-solver/.next/static/hf94cues-LcXZRCpAzQ6w/_buildManifest.js +1 -0
  78. package/packages/scrabble-solver/.next/static/{s5pE_3C3ebZuSfaqE7xat → hf94cues-LcXZRCpAzQ6w}/_ssgManifest.js +0 -0
  79. package/packages/scrabble-solver/.next/trace +52 -52
  80. package/packages/scrabble-solver/package-lock.json +2 -2
  81. package/packages/scrabble-solver/package.json +8 -8
  82. package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +45 -9
  83. package/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts +6 -4
  84. package/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss +8 -1
  85. package/packages/scrabble-solver/src/components/EmptyState/EmptyState.tsx +6 -2
  86. package/packages/scrabble-solver/src/components/Loading/Loading.tsx +13 -2
  87. package/packages/scrabble-solver/src/components/NavButtons/NavButtons.module.scss +8 -7
  88. package/packages/scrabble-solver/src/components/NavButtons/NavButtons.tsx +35 -28
  89. package/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.tsx +7 -1
  90. package/packages/scrabble-solver/src/components/PlainTiles/Tile.tsx +4 -3
  91. package/packages/scrabble-solver/src/components/Rack/Rack.tsx +18 -4
  92. package/packages/scrabble-solver/src/components/Radio/Radio.module.scss +1 -1
  93. package/packages/scrabble-solver/src/components/RemainingTiles/Character.tsx +7 -2
  94. package/packages/scrabble-solver/src/components/RemainingTiles/RemainingTiles.tsx +28 -20
  95. package/packages/scrabble-solver/src/components/Results/Cell.tsx +5 -3
  96. package/packages/scrabble-solver/src/components/Results/Result.tsx +8 -3
  97. package/packages/scrabble-solver/src/components/Results/Results.module.scss +31 -9
  98. package/packages/scrabble-solver/src/components/Results/Results.tsx +8 -4
  99. package/packages/scrabble-solver/src/components/Results/getColumns.ts +58 -0
  100. package/packages/scrabble-solver/src/components/Settings/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +2 -2
  101. package/packages/scrabble-solver/src/components/Settings/components/ConfigSetting/ConfigSetting.module.scss +1 -0
  102. package/packages/scrabble-solver/src/components/Settings/components/LocaleSetting/LocaleSetting.module.scss +12 -1
  103. package/packages/scrabble-solver/src/components/Settings/components/LocaleSetting/LocaleSetting.tsx +1 -1
  104. package/packages/scrabble-solver/src/components/Settings/components/LocaleSetting/options.ts +16 -2
  105. package/packages/scrabble-solver/src/components/Sidebar/Sidebar.module.scss +42 -8
  106. package/packages/scrabble-solver/src/components/SvgFontCss/SvgFontCss.tsx +8 -7
  107. package/packages/scrabble-solver/src/components/SvgFontCss/createCss.ts +11 -0
  108. package/packages/scrabble-solver/src/components/SvgFontCss/createStyle.ts +9 -0
  109. package/packages/scrabble-solver/src/components/SvgFontCss/createSvg.ts +10 -0
  110. package/packages/scrabble-solver/src/components/SvgFontFix/SvgFontFix.module.scss +5 -0
  111. package/packages/scrabble-solver/src/components/SvgFontFix/SvgFontFix.tsx +21 -0
  112. package/packages/scrabble-solver/src/components/SvgFontFix/index.ts +1 -0
  113. package/packages/scrabble-solver/src/components/Tile/Tile.module.scss +10 -2
  114. package/packages/scrabble-solver/src/components/Tile/Tile.tsx +4 -0
  115. package/packages/scrabble-solver/src/components/Tile/TilePure.tsx +3 -1
  116. package/packages/scrabble-solver/src/components/Words/Words.tsx +4 -3
  117. package/packages/scrabble-solver/src/components/index.ts +1 -0
  118. package/packages/scrabble-solver/src/hooks/index.ts +2 -0
  119. package/packages/scrabble-solver/src/hooks/useDirection.ts +22 -0
  120. package/packages/scrabble-solver/src/hooks/useLanguage.ts +22 -0
  121. package/packages/scrabble-solver/src/i18n/constants.ts +53 -0
  122. package/packages/scrabble-solver/src/i18n/fa.json +56 -0
  123. package/packages/scrabble-solver/src/i18n/fr.json +1 -1
  124. package/packages/scrabble-solver/src/i18n/i18n.ts +22 -0
  125. package/packages/scrabble-solver/src/i18n/index.ts +2 -20
  126. package/packages/scrabble-solver/src/icons/FlagFa.svg +95 -0
  127. package/packages/scrabble-solver/src/icons/index.ts +1 -0
  128. package/packages/scrabble-solver/src/lib/createComparator.ts +22 -0
  129. package/packages/scrabble-solver/src/lib/createKeyComparator.ts +4 -2
  130. package/packages/scrabble-solver/src/lib/createStringComparator.ts +5 -0
  131. package/packages/scrabble-solver/src/lib/detectLocale.ts +4 -0
  132. package/packages/scrabble-solver/src/lib/getRemainingTiles.ts +4 -2
  133. package/packages/scrabble-solver/src/lib/getRemainingTilesGroups.ts +54 -31
  134. package/packages/scrabble-solver/src/lib/index.ts +2 -2
  135. package/packages/scrabble-solver/src/lib/sortResults.ts +11 -9
  136. package/packages/scrabble-solver/src/lib/unorderedArraysEqual.ts +3 -2
  137. package/packages/scrabble-solver/src/pages/api/verify.ts +1 -1
  138. package/packages/scrabble-solver/src/pages/index.module.scss +7 -18
  139. package/packages/scrabble-solver/src/pages/index.tsx +10 -2
  140. package/packages/scrabble-solver/src/sdk/findWordDefinitions.ts +1 -1
  141. package/packages/scrabble-solver/src/service-worker/routeVerifyRequests.ts +1 -1
  142. package/packages/scrabble-solver/src/state/sagas.ts +19 -5
  143. package/packages/scrabble-solver/src/state/selectors.ts +15 -7
  144. package/packages/scrabble-solver/src/styles/global.scss +6 -1
  145. package/packages/solver/package-lock.json +2 -2
  146. package/packages/solver/package.json +5 -5
  147. package/packages/types/build/Locale.d.ts +1 -0
  148. package/packages/types/build/Locale.js +1 -0
  149. package/packages/types/build/Result.d.ts +0 -1
  150. package/packages/types/build/Result.js +0 -5
  151. package/packages/types/package.json +2 -2
  152. package/packages/types/src/Locale.ts +1 -0
  153. package/packages/types/src/Result.ts +0 -11
  154. package/packages/word-definitions/build/crawl/crawl.js +2 -0
  155. package/packages/word-definitions/build/crawl/crawlFarsi.d.ts +2 -0
  156. package/packages/word-definitions/build/crawl/crawlFarsi.js +11 -0
  157. package/packages/word-definitions/build/lib/normalizeDefinition.js +2 -1
  158. package/packages/word-definitions/build/parse/index.d.ts +1 -0
  159. package/packages/word-definitions/build/parse/index.js +3 -1
  160. package/packages/word-definitions/build/parse/parse.js +2 -0
  161. package/packages/word-definitions/build/parse/parseEnglish.js +1 -1
  162. package/packages/word-definitions/build/parse/parseFarsi.d.ts +3 -0
  163. package/packages/word-definitions/build/parse/parseFarsi.js +13 -0
  164. package/packages/word-definitions/package-lock.json +2 -2
  165. package/packages/word-definitions/package.json +2 -2
  166. package/packages/word-definitions/src/crawl/crawl.ts +2 -0
  167. package/packages/word-definitions/src/crawl/crawlFarsi.ts +11 -0
  168. package/packages/word-definitions/src/lib/normalizeDefinition.ts +2 -1
  169. package/packages/word-definitions/src/parse/__tests__/input/en-US.awe.html +2170 -323
  170. package/packages/word-definitions/src/parse/__tests__/input/en-US.pawn.html +2405 -349
  171. package/packages/word-definitions/src/parse/__tests__/input/en-US.pawnee.html +1326 -222
  172. package/packages/word-definitions/src/parse/__tests__/input/en-US.pean.html +1490 -201
  173. package/packages/word-definitions/src/parse/__tests__/input/en-US.wiz.html +1526 -272
  174. package/packages/word-definitions/src/parse/index.ts +1 -0
  175. package/packages/word-definitions/src/parse/parse.ts +2 -0
  176. package/packages/word-definitions/src/parse/parseEnglish.ts +2 -1
  177. package/packages/word-definitions/src/parse/parseFarsi.ts +17 -0
  178. package/packages/word-lists/build/getDeDeWordList.js +2 -1
  179. package/packages/word-lists/build/getEnGbWordList.js +2 -1
  180. package/packages/word-lists/build/getEnUsWordList.js +2 -1
  181. package/packages/word-lists/build/getEsEsWordList.js +2 -1
  182. package/packages/word-lists/build/getFaIrWordList.d.ts +2 -0
  183. package/packages/word-lists/build/getFaIrWordList.js +9 -0
  184. package/packages/word-lists/build/getFrFrWordList.js +2 -1
  185. package/packages/word-lists/build/getPlPlWordList.js +9 -9
  186. package/packages/word-lists/build/getWordList.js +2 -0
  187. package/packages/word-lists/build/lib/downloadFile.js +5 -5
  188. package/packages/word-lists/build/lib/extractWords.d.ts +1 -1
  189. package/packages/word-lists/build/lib/extractWords.js +10 -7
  190. package/packages/word-lists/build/lib/findFirstWordIndex.d.ts +1 -1
  191. package/packages/word-lists/build/lib/findFirstWordIndex.js +2 -2
  192. package/packages/word-lists/build/lib/getTempFilepath.d.ts +2 -0
  193. package/packages/word-lists/build/lib/getTempFilepath.js +14 -0
  194. package/packages/word-lists/build/lib/getTxtWordList.d.ts +1 -1
  195. package/packages/word-lists/build/lib/getTxtWordList.js +5 -5
  196. package/packages/word-lists/build/lib/index.d.ts +1 -1
  197. package/packages/word-lists/build/lib/index.js +3 -3
  198. package/packages/word-lists/package-lock.json +2 -32
  199. package/packages/word-lists/package.json +2 -3
  200. package/packages/word-lists/src/getDeDeWordList.ts +3 -1
  201. package/packages/word-lists/src/getEnGbWordList.ts +3 -1
  202. package/packages/word-lists/src/getEnUsWordList.ts +3 -1
  203. package/packages/word-lists/src/getEsEsWordList.ts +3 -1
  204. package/packages/word-lists/src/getFaIrWordList.ts +11 -0
  205. package/packages/word-lists/src/getFrFrWordList.ts +3 -1
  206. package/packages/word-lists/src/getPlPlWordList.ts +7 -7
  207. package/packages/word-lists/src/getWordList.ts +2 -0
  208. package/packages/word-lists/src/lib/downloadFile.ts +5 -5
  209. package/packages/word-lists/src/lib/extractWords.ts +13 -7
  210. package/packages/word-lists/src/lib/findFirstWordIndex.ts +2 -2
  211. package/packages/word-lists/src/lib/getTempFilepath.ts +13 -0
  212. package/packages/word-lists/src/lib/getTxtWordList.ts +3 -3
  213. package/packages/word-lists/src/lib/index.ts +1 -1
  214. package/packages/scrabble-solver/.next/static/chunks/880-18e3aea6915aebe7.js +0 -1
  215. package/packages/scrabble-solver/.next/static/chunks/pages/_app-183f598b1d4d480b.js +0 -1
  216. package/packages/scrabble-solver/.next/static/chunks/pages/index-f1cef1e67e14d022.js +0 -1
  217. package/packages/scrabble-solver/.next/static/css/751e8a14776d05d8.css +0 -1
  218. package/packages/scrabble-solver/.next/static/css/ad2a08918868cad8.css +0 -1
  219. package/packages/scrabble-solver/.next/static/css/e8de67ad5ea35427.css +0 -1
  220. package/packages/scrabble-solver/.next/static/s5pE_3C3ebZuSfaqE7xat/_buildManifest.js +0 -1
  221. package/packages/scrabble-solver/src/components/Results/constants.ts +0 -42
  222. package/packages/scrabble-solver/src/lib/comparator.ts +0 -16
  223. package/packages/scrabble-solver/src/lib/stringComparator.ts +0 -5
  224. package/packages/word-lists/build/lib/getTempFilename.d.ts +0 -2
  225. package/packages/word-lists/build/lib/getTempFilename.js +0 -10
  226. package/packages/word-lists/src/lib/getTempFilename.ts +0 -7
package/.prettierignore CHANGED
@@ -1,3 +1,5 @@
1
1
  .next/
2
2
  build/
3
+ coverage/
3
4
  node_modules/
5
+ packages/scrabble-solver/public/service-worker.js
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
  </p>
15
15
 
16
16
  <p>
17
- Available at <a href="https://scrabble-solver.org">https://scrabble-solver.org</a>, in 6 languages.
17
+ Available at <a href="https://scrabble-solver.org">https://scrabble-solver.org</a> in 7 languages.
18
18
  </p>
19
19
 
20
20
  <p>
@@ -22,6 +22,7 @@
22
22
  <img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1fa-1f1f8.svg" alt="Flag of United States" title="English (US)" />
23
23
  <img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1eb-1f1f7.svg" alt="Flag of France" title="French" />
24
24
  <img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1e9-1f1ea.svg" alt="Flag of Germany" title="German" />
25
+ <img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ee-1f1f7.svg" alt="Flag of Iran" title="Persian" />
25
26
  <img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1f5-1f1f1.svg" alt="Flag of Poland" title="Polish" />
26
27
  <img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ea-1f1f8.svg" alt="Flag of Spain" title="Spanish" />
27
28
  </p>
@@ -55,6 +56,7 @@
55
56
  | 🇺🇸 English | [💾](https://www.wordgamedictionary.com/twl06/download/twl06.txt) [TWL06](https://en.wikipedia.org/wiki/NASPA_Word_List) | [Merriam-Webster](https://www.merriam-webster.com/) | oxyphenbutazone (1458) |
56
57
  | 🇫🇷 French | [💾](https://raw.githubusercontent.com/hbenbel/French-Dictionary/a573eab10cc798d7d5da7daab4d2ac0259bb46a3/dictionary/dictionary.txt) [hbenbel/French-Dictionary](https://github.com/hbenbel/French-Dictionary/) | [CNRTL](https://www.cnrtl.fr/) | encyclopediques (1512) |
57
58
  | 🇩🇪 German | [💾](https://raw.githubusercontent.com/hippler/german-wordlist/master/words.txt) [hippler/german-wordlist](https://github.com/hippler/german-wordlist) | [DWDS](https://www.dwds.de) | polytoxikomanem (1512) |
59
+ | 🇮🇷 Persian | [💾](https://raw.githubusercontent.com/MansourM/persian-to-persian-dictionary/main/moein/words.txt) [MansourM/persian-to-persian-dictionary](https://github.com/MansourM/persian-to-persian-dictionary) | [واژه یاب](https://vajehyab.com) | ‏(756) اگزیستانسیالیست |
58
60
  | 🇵🇱 Polish | [💾](https://sjp.pl/slownik/growy/) [SJP.PL](https://sjp.pl/slownik/dp.phtml) | [SJP.PL](https://sjp.pl) | współposiądźmyż (1512) |
59
61
  | 🇪🇸 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) |
60
62
 
package/lerna.json CHANGED
@@ -6,5 +6,5 @@
6
6
  "access": "public"
7
7
  },
8
8
  "tagVersionPrefix": "",
9
- "version": "2.9.3"
9
+ "version": "2.10.1"
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scrabble-solver",
3
- "version": "2.9.3",
3
+ "version": "2.10.1",
4
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.",
5
5
  "keywords": [
6
6
  "Scrabble",
@@ -6,6 +6,7 @@ declare const literaki: {
6
6
  "en-GB": Config;
7
7
  "en-US": Config;
8
8
  "es-ES": Config;
9
+ "fa-IR": Config;
9
10
  "fr-FR": Config;
10
11
  "pl-PL": Config;
11
12
  };
@@ -24,6 +24,7 @@ const literaki = {
24
24
  [types_1.Locale.EN_GB]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesEn }),
25
25
  [types_1.Locale.EN_US]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesEn }),
26
26
  [types_1.Locale.ES_ES]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesEs }),
27
+ [types_1.Locale.FA_IR]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesFa }),
27
28
  [types_1.Locale.FR_FR]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesFr }),
28
29
  [types_1.Locale.PL_PL]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesPl }),
29
30
  };
@@ -1,5 +1,6 @@
1
1
  export { default as tilesEn } from './tilesEn';
2
2
  export { default as tilesEs } from './tilesEs';
3
+ export { default as tilesFa } from './tilesFa';
3
4
  export { default as tilesFr } from './tilesFr';
4
5
  export { default as tilesPl } from './tilesPl';
5
6
  export { default as tilesDe } from './tilesDe';
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tilesDe = exports.tilesPl = exports.tilesFr = exports.tilesEs = exports.tilesEn = void 0;
6
+ exports.tilesDe = exports.tilesPl = exports.tilesFr = exports.tilesFa = exports.tilesEs = exports.tilesEn = void 0;
7
7
  var tilesEn_1 = require("./tilesEn");
8
8
  Object.defineProperty(exports, "tilesEn", { enumerable: true, get: function () { return __importDefault(tilesEn_1).default; } });
9
9
  var tilesEs_1 = require("./tilesEs");
10
10
  Object.defineProperty(exports, "tilesEs", { enumerable: true, get: function () { return __importDefault(tilesEs_1).default; } });
11
+ var tilesFa_1 = require("./tilesFa");
12
+ Object.defineProperty(exports, "tilesFa", { enumerable: true, get: function () { return __importDefault(tilesFa_1).default; } });
11
13
  var tilesFr_1 = require("./tilesFr");
12
14
  Object.defineProperty(exports, "tilesFr", { enumerable: true, get: function () { return __importDefault(tilesFr_1).default; } });
13
15
  var tilesPl_1 = require("./tilesPl");
@@ -0,0 +1,6 @@
1
+ declare const tilesFa: {
2
+ character: string;
3
+ count: number;
4
+ score: number;
5
+ }[];
6
+ export default tilesFa;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tilesFa = [
4
+ { character: 'ا', count: 12, score: 1 },
5
+ { character: 'ب', count: 4, score: 1 },
6
+ { character: 'پ', count: 1, score: 6 },
7
+ { character: 'ت', count: 4, score: 1 },
8
+ { character: 'ث', count: 1, score: 10 },
9
+ { character: 'ج', count: 2, score: 5 },
10
+ { character: 'چ', count: 1, score: 6 },
11
+ { character: 'ح', count: 1, score: 6 },
12
+ { character: 'خ', count: 2, score: 5 },
13
+ { character: 'د', count: 6, score: 1 },
14
+ { character: 'ذ', count: 1, score: 10 },
15
+ { character: 'ر', count: 7, score: 1 },
16
+ { character: 'ز', count: 3, score: 4 },
17
+ { character: 'ژ', count: 1, score: 10 },
18
+ { character: 'س', count: 3, score: 2 },
19
+ { character: 'ش', count: 3, score: 3 },
20
+ { character: 'ص', count: 1, score: 6 },
21
+ { character: 'ض', count: 1, score: 8 },
22
+ { character: 'ط', count: 1, score: 8 },
23
+ { character: 'ظ', count: 1, score: 10 },
24
+ { character: 'ع', count: 2, score: 5 },
25
+ { character: 'غ', count: 1, score: 8 },
26
+ { character: 'ف', count: 2, score: 4 },
27
+ { character: 'ق', count: 2, score: 5 },
28
+ { character: 'ک', count: 3, score: 3 },
29
+ { character: 'گ', count: 2, score: 4 },
30
+ { character: 'ل', count: 3, score: 2 },
31
+ { character: 'م', count: 5, score: 1 },
32
+ { character: 'ن', count: 6, score: 1 },
33
+ { character: 'و', count: 5, score: 1 },
34
+ { character: 'ه', count: 5, score: 1 },
35
+ { character: 'ی', count: 8, score: 1 },
36
+ ];
37
+ exports.default = tilesFa;
@@ -6,6 +6,7 @@ declare const scrabble: {
6
6
  "de-DE": Config;
7
7
  "en-US": Config;
8
8
  "es-ES": Config;
9
+ "fa-IR": Config;
9
10
  "fr-FR": Config;
10
11
  "pl-PL": Config;
11
12
  };
@@ -24,6 +24,7 @@ const scrabble = {
24
24
  [types_1.Locale.DE_DE]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesDe }),
25
25
  [types_1.Locale.EN_US]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesEn }),
26
26
  [types_1.Locale.ES_ES]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesEs }),
27
+ [types_1.Locale.FA_IR]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesFa }),
27
28
  [types_1.Locale.FR_FR]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesFr }),
28
29
  [types_1.Locale.PL_PL]: types_1.Config.fromJson({ ...base, tiles: tiles_1.tilesPl }),
29
30
  };
@@ -1,5 +1,6 @@
1
1
  export { default as tilesEn } from './tilesEn';
2
2
  export { default as tilesEs } from './tilesEs';
3
+ export { default as tilesFa } from './tilesFa';
3
4
  export { default as tilesFr } from './tilesFr';
4
5
  export { default as tilesPl } from './tilesPl';
5
6
  export { default as tilesDe } from './tilesDe';
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tilesDe = exports.tilesPl = exports.tilesFr = exports.tilesEs = exports.tilesEn = void 0;
6
+ exports.tilesDe = exports.tilesPl = exports.tilesFr = exports.tilesFa = exports.tilesEs = exports.tilesEn = void 0;
7
7
  var tilesEn_1 = require("./tilesEn");
8
8
  Object.defineProperty(exports, "tilesEn", { enumerable: true, get: function () { return __importDefault(tilesEn_1).default; } });
9
9
  var tilesEs_1 = require("./tilesEs");
10
10
  Object.defineProperty(exports, "tilesEs", { enumerable: true, get: function () { return __importDefault(tilesEs_1).default; } });
11
+ var tilesFa_1 = require("./tilesFa");
12
+ Object.defineProperty(exports, "tilesFa", { enumerable: true, get: function () { return __importDefault(tilesFa_1).default; } });
11
13
  var tilesFr_1 = require("./tilesFr");
12
14
  Object.defineProperty(exports, "tilesFr", { enumerable: true, get: function () { return __importDefault(tilesFr_1).default; } });
13
15
  var tilesPl_1 = require("./tilesPl");
@@ -0,0 +1,6 @@
1
+ declare const tilesFa: {
2
+ character: string;
3
+ count: number;
4
+ score: number;
5
+ }[];
6
+ export default tilesFa;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tilesFa = [
4
+ { character: 'ا', count: 12, score: 1 },
5
+ { character: 'ب', count: 4, score: 1 },
6
+ { character: 'پ', count: 1, score: 6 },
7
+ { character: 'ت', count: 4, score: 1 },
8
+ { character: 'ث', count: 1, score: 10 },
9
+ { character: 'ج', count: 2, score: 5 },
10
+ { character: 'چ', count: 1, score: 6 },
11
+ { character: 'ح', count: 1, score: 6 },
12
+ { character: 'خ', count: 2, score: 5 },
13
+ { character: 'د', count: 6, score: 1 },
14
+ { character: 'ذ', count: 1, score: 10 },
15
+ { character: 'ر', count: 7, score: 1 },
16
+ { character: 'ز', count: 3, score: 4 },
17
+ { character: 'ژ', count: 1, score: 10 },
18
+ { character: 'س', count: 3, score: 2 },
19
+ { character: 'ش', count: 3, score: 3 },
20
+ { character: 'ص', count: 1, score: 6 },
21
+ { character: 'ض', count: 1, score: 8 },
22
+ { character: 'ط', count: 1, score: 8 },
23
+ { character: 'ظ', count: 1, score: 10 },
24
+ { character: 'ع', count: 2, score: 5 },
25
+ { character: 'غ', count: 1, score: 8 },
26
+ { character: 'ف', count: 2, score: 4 },
27
+ { character: 'ق', count: 2, score: 5 },
28
+ { character: 'ک', count: 3, score: 3 },
29
+ { character: 'گ', count: 2, score: 4 },
30
+ { character: 'ل', count: 3, score: 2 },
31
+ { character: 'م', count: 5, score: 1 },
32
+ { character: 'ن', count: 6, score: 1 },
33
+ { character: 'و', count: 5, score: 1 },
34
+ { character: 'ه', count: 5, score: 1 },
35
+ { character: 'ی', count: 8, score: 1 },
36
+ ];
37
+ exports.default = tilesFa;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/configs",
3
- "version": "2.9.3",
3
+ "version": "2.10.1",
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.9.3",
28
- "@scrabble-solver/types": "^2.9.3"
27
+ "@scrabble-solver/constants": "^2.10.1",
28
+ "@scrabble-solver/types": "^2.10.1"
29
29
  },
30
30
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
31
31
  }
@@ -1,7 +1,7 @@
1
1
  import { Config, Locale } from '@scrabble-solver/types';
2
2
 
3
3
  import bonuses from './bonuses';
4
- import { tilesDe, tilesEn, tilesEs, tilesFr, tilesPl } from './tiles';
4
+ import { tilesDe, tilesEn, tilesEs, tilesFa, tilesFr, tilesPl } from './tiles';
5
5
 
6
6
  const base = {
7
7
  allTilesBonusScore: 50,
@@ -22,6 +22,7 @@ const literaki = {
22
22
  [Locale.EN_GB]: Config.fromJson({ ...base, tiles: tilesEn }),
23
23
  [Locale.EN_US]: Config.fromJson({ ...base, tiles: tilesEn }),
24
24
  [Locale.ES_ES]: Config.fromJson({ ...base, tiles: tilesEs }),
25
+ [Locale.FA_IR]: Config.fromJson({ ...base, tiles: tilesFa }),
25
26
  [Locale.FR_FR]: Config.fromJson({ ...base, tiles: tilesFr }),
26
27
  [Locale.PL_PL]: Config.fromJson({ ...base, tiles: tilesPl }),
27
28
  };
@@ -1,5 +1,6 @@
1
1
  export { default as tilesEn } from './tilesEn';
2
2
  export { default as tilesEs } from './tilesEs';
3
+ export { default as tilesFa } from './tilesFa';
3
4
  export { default as tilesFr } from './tilesFr';
4
5
  export { default as tilesPl } from './tilesPl';
5
6
  export { default as tilesDe } from './tilesDe';
@@ -0,0 +1,36 @@
1
+ const tilesFa = [
2
+ { character: 'ا', count: 12, score: 1 },
3
+ { character: 'ب', count: 4, score: 1 },
4
+ { character: 'پ', count: 1, score: 6 },
5
+ { character: 'ت', count: 4, score: 1 },
6
+ { character: 'ث', count: 1, score: 10 },
7
+ { character: 'ج', count: 2, score: 5 },
8
+ { character: 'چ', count: 1, score: 6 },
9
+ { character: 'ح', count: 1, score: 6 },
10
+ { character: 'خ', count: 2, score: 5 },
11
+ { character: 'د', count: 6, score: 1 },
12
+ { character: 'ذ', count: 1, score: 10 },
13
+ { character: 'ر', count: 7, score: 1 },
14
+ { character: 'ز', count: 3, score: 4 },
15
+ { character: 'ژ', count: 1, score: 10 },
16
+ { character: 'س', count: 3, score: 2 },
17
+ { character: 'ش', count: 3, score: 3 },
18
+ { character: 'ص', count: 1, score: 6 },
19
+ { character: 'ض', count: 1, score: 8 },
20
+ { character: 'ط', count: 1, score: 8 },
21
+ { character: 'ظ', count: 1, score: 10 },
22
+ { character: 'ع', count: 2, score: 5 },
23
+ { character: 'غ', count: 1, score: 8 },
24
+ { character: 'ف', count: 2, score: 4 },
25
+ { character: 'ق', count: 2, score: 5 },
26
+ { character: 'ک', count: 3, score: 3 },
27
+ { character: 'گ', count: 2, score: 4 },
28
+ { character: 'ل', count: 3, score: 2 },
29
+ { character: 'م', count: 5, score: 1 },
30
+ { character: 'ن', count: 6, score: 1 },
31
+ { character: 'و', count: 5, score: 1 },
32
+ { character: 'ه', count: 5, score: 1 },
33
+ { character: 'ی', count: 8, score: 1 },
34
+ ];
35
+
36
+ export default tilesFa;
@@ -1,7 +1,7 @@
1
1
  import { Config, Locale } from '@scrabble-solver/types';
2
2
 
3
3
  import bonuses from './bonuses';
4
- import { tilesEn, tilesEs, tilesFr, tilesPl, tilesDe } from './tiles';
4
+ import { tilesEn, tilesEs, tilesFa, tilesFr, tilesPl, tilesDe } from './tiles';
5
5
 
6
6
  const base = {
7
7
  allTilesBonusScore: 50,
@@ -22,6 +22,7 @@ const scrabble = {
22
22
  [Locale.DE_DE]: Config.fromJson({ ...base, tiles: tilesDe }),
23
23
  [Locale.EN_US]: Config.fromJson({ ...base, tiles: tilesEn }),
24
24
  [Locale.ES_ES]: Config.fromJson({ ...base, tiles: tilesEs }),
25
+ [Locale.FA_IR]: Config.fromJson({ ...base, tiles: tilesFa }),
25
26
  [Locale.FR_FR]: Config.fromJson({ ...base, tiles: tilesFr }),
26
27
  [Locale.PL_PL]: Config.fromJson({ ...base, tiles: tilesPl }),
27
28
  };
@@ -1,5 +1,6 @@
1
1
  export { default as tilesEn } from './tilesEn';
2
2
  export { default as tilesEs } from './tilesEs';
3
+ export { default as tilesFa } from './tilesFa';
3
4
  export { default as tilesFr } from './tilesFr';
4
5
  export { default as tilesPl } from './tilesPl';
5
6
  export { default as tilesDe } from './tilesDe';
@@ -0,0 +1,36 @@
1
+ const tilesFa = [
2
+ { character: 'ا', count: 12, score: 1 },
3
+ { character: 'ب', count: 4, score: 1 },
4
+ { character: 'پ', count: 1, score: 6 },
5
+ { character: 'ت', count: 4, score: 1 },
6
+ { character: 'ث', count: 1, score: 10 },
7
+ { character: 'ج', count: 2, score: 5 },
8
+ { character: 'چ', count: 1, score: 6 },
9
+ { character: 'ح', count: 1, score: 6 },
10
+ { character: 'خ', count: 2, score: 5 },
11
+ { character: 'د', count: 6, score: 1 },
12
+ { character: 'ذ', count: 1, score: 10 },
13
+ { character: 'ر', count: 7, score: 1 },
14
+ { character: 'ز', count: 3, score: 4 },
15
+ { character: 'ژ', count: 1, score: 10 },
16
+ { character: 'س', count: 3, score: 2 },
17
+ { character: 'ش', count: 3, score: 3 },
18
+ { character: 'ص', count: 1, score: 6 },
19
+ { character: 'ض', count: 1, score: 8 },
20
+ { character: 'ط', count: 1, score: 8 },
21
+ { character: 'ظ', count: 1, score: 10 },
22
+ { character: 'ع', count: 2, score: 5 },
23
+ { character: 'غ', count: 1, score: 8 },
24
+ { character: 'ف', count: 2, score: 4 },
25
+ { character: 'ق', count: 2, score: 5 },
26
+ { character: 'ک', count: 3, score: 3 },
27
+ { character: 'گ', count: 2, score: 4 },
28
+ { character: 'ل', count: 3, score: 2 },
29
+ { character: 'م', count: 5, score: 1 },
30
+ { character: 'ن', count: 6, score: 1 },
31
+ { character: 'و', count: 5, score: 1 },
32
+ { character: 'ه', count: 5, score: 1 },
33
+ { character: 'ی', count: 8, score: 1 },
34
+ ];
35
+
36
+ export default tilesFa;
@@ -21,6 +21,7 @@ exports.CONSONANTS = [
21
21
  'm',
22
22
  'n',
23
23
  'ń',
24
+ 'ñ',
24
25
  'p',
25
26
  'q',
26
27
  'r',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/constants",
3
- "version": "2.9.3",
3
+ "version": "2.10.1",
4
4
  "description": "Scrabble Solver 2 - Constants",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -23,6 +23,7 @@ export const CONSONANTS = [
23
23
  'm',
24
24
  'n',
25
25
  'ń',
26
+ 'ñ',
26
27
  'p',
27
28
  'q',
28
29
  'r',
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/dictionaries",
3
- "version": "2.9.3",
3
+ "version": "2.10.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/dictionaries",
9
- "version": "2.9.3",
9
+ "version": "2.10.1",
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.9.3",
3
+ "version": "2.10.1",
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.9.3",
35
- "@scrabble-solver/types": "^2.9.3",
36
- "@scrabble-solver/word-lists": "^2.9.3"
34
+ "@scrabble-solver/logger": "^2.10.1",
35
+ "@scrabble-solver/types": "^2.10.1",
36
+ "@scrabble-solver/word-lists": "^2.10.1"
37
37
  },
38
38
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
39
39
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/logger",
3
- "version": "2.9.3",
3
+ "version": "2.10.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/logger",
9
- "version": "2.9.3",
9
+ "version": "2.10.1",
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.9.3",
3
+ "version": "2.10.1",
4
4
  "description": "Scrabble Solver 2 - Logger",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -23,7 +23,7 @@ const getStats = (event, lines, since) => {
23
23
 
24
24
  const filteredDays = Object.fromEntries(
25
25
  Object.entries(days).filter(([key]) => {
26
- return key.localeCompare(since) !== -1;
26
+ return key.localeCompare(since) >= 0;
27
27
  }),
28
28
  );
29
29
 
@@ -1 +1 @@
1
- s5pE_3C3ebZuSfaqE7xat
1
+ hf94cues-LcXZRCpAzQ6w
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/s5pE_3C3ebZuSfaqE7xat/_buildManifest.js",
9
- "static/s5pE_3C3ebZuSfaqE7xat/_ssgManifest.js"
8
+ "static/hf94cues-LcXZRCpAzQ6w/_buildManifest.js",
9
+ "static/hf94cues-LcXZRCpAzQ6w/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "pages": {
@@ -15,26 +15,26 @@
15
15
  "static/chunks/framework-4556c45dd113b893.js",
16
16
  "static/chunks/main-a75cf611e061d8f8.js",
17
17
  "static/chunks/546-447e243fc9de2c59.js",
18
- "static/css/e8de67ad5ea35427.css",
19
- "static/chunks/880-18e3aea6915aebe7.js",
20
- "static/css/751e8a14776d05d8.css",
21
- "static/chunks/pages/index-f1cef1e67e14d022.js"
18
+ "static/css/a6154e4ca046ca13.css",
19
+ "static/chunks/368-8b386c3106556f62.js",
20
+ "static/css/6b1833fd19d3a74a.css",
21
+ "static/chunks/pages/index-8af7a9d7a2cd98a7.js"
22
22
  ],
23
23
  "/404": [
24
24
  "static/chunks/webpack-5752944655d749a0.js",
25
25
  "static/chunks/framework-4556c45dd113b893.js",
26
26
  "static/chunks/main-a75cf611e061d8f8.js",
27
27
  "static/chunks/546-447e243fc9de2c59.js",
28
- "static/css/e8de67ad5ea35427.css",
29
- "static/chunks/880-18e3aea6915aebe7.js",
30
- "static/chunks/pages/404-8650986dc56dab75.js"
28
+ "static/css/a6154e4ca046ca13.css",
29
+ "static/chunks/368-8b386c3106556f62.js",
30
+ "static/chunks/pages/404-932294135c3206dd.js"
31
31
  ],
32
32
  "/_app": [
33
33
  "static/chunks/webpack-5752944655d749a0.js",
34
34
  "static/chunks/framework-4556c45dd113b893.js",
35
35
  "static/chunks/main-a75cf611e061d8f8.js",
36
- "static/css/ad2a08918868cad8.css",
37
- "static/chunks/pages/_app-183f598b1d4d480b.js"
36
+ "static/css/bad53af6f8616677.css",
37
+ "static/chunks/pages/_app-8f0df20f771045ed.js"
38
38
  ],
39
39
  "/_error": [
40
40
  "static/chunks/webpack-5752944655d749a0.js",