scrabble-solver 2.13.5-alpha.2 → 2.13.5-alpha.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 (252) hide show
  1. package/.nx/cache/file-map.json +338 -338
  2. package/.nx/cache/lockfile.hash +1 -1
  3. package/.nx/cache/nx_files.nxt +0 -0
  4. package/.nx/cache/parsed-lock-file.json +2525 -3436
  5. package/.nx/cache/project-graph.json +2549 -2983
  6. package/lerna.json +2 -2
  7. package/package.json +15 -15
  8. package/packages/configs/build/games/superScrabble.d.ts +2 -2
  9. package/packages/configs/build/games/superScrabble.js +2 -2
  10. package/packages/configs/package.json +3 -3
  11. package/packages/constants/package.json +1 -1
  12. package/packages/dictionaries/package-lock.json +4 -4
  13. package/packages/dictionaries/package.json +5 -5
  14. package/packages/logger/package-lock.json +4 -4
  15. package/packages/logger/package.json +2 -2
  16. package/packages/scrabble-solver/.next/BUILD_ID +1 -0
  17. package/packages/scrabble-solver/.next/build-manifest.json +24 -15
  18. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  19. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  20. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  21. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  22. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  23. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  24. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  25. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  26. package/packages/scrabble-solver/.next/export-marker.json +1 -0
  27. package/packages/scrabble-solver/.next/images-manifest.json +1 -0
  28. package/packages/scrabble-solver/.next/next-minimal-server.js.nft.json +1 -0
  29. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -0
  30. package/packages/scrabble-solver/.next/prerender-manifest.js +1 -0
  31. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -0
  32. package/packages/scrabble-solver/.next/required-server-files.json +1 -0
  33. package/packages/scrabble-solver/.next/routes-manifest.json +1 -0
  34. package/packages/scrabble-solver/.next/server/InjectManifest.js.nft.json +1 -0
  35. package/packages/scrabble-solver/.next/server/chunks/331.js +6 -0
  36. package/packages/scrabble-solver/.next/server/chunks/577.js +1 -0
  37. package/packages/scrabble-solver/.next/server/chunks/807.js +1 -0
  38. package/packages/scrabble-solver/.next/server/chunks/911.js +1 -0
  39. package/packages/scrabble-solver/.next/server/chunks/977.js +1 -0
  40. package/packages/scrabble-solver/.next/server/chunks/font-manifest.json +1 -0
  41. package/packages/scrabble-solver/.next/server/font-manifest.json +1 -0
  42. package/packages/scrabble-solver/.next/server/functions-config-manifest.json +1 -0
  43. package/packages/scrabble-solver/.next/server/interception-route-rewrite-manifest.js +1 -0
  44. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  45. package/packages/scrabble-solver/.next/server/middleware-manifest.json +2 -2
  46. package/packages/scrabble-solver/.next/server/middleware-react-loadable-manifest.js +1 -1
  47. package/packages/scrabble-solver/.next/server/next-font-manifest.js +1 -1
  48. package/packages/scrabble-solver/.next/server/pages/404.html +1 -0
  49. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -0
  50. package/packages/scrabble-solver/.next/server/pages/500.html +1 -0
  51. package/packages/scrabble-solver/.next/server/pages/_app.js +1 -3720
  52. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -0
  53. package/packages/scrabble-solver/.next/server/pages/_document.js +1 -86
  54. package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -0
  55. package/packages/scrabble-solver/.next/server/pages/_error.js +1 -3742
  56. package/packages/scrabble-solver/.next/server/pages/_error.js.nft.json +1 -0
  57. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +2 -1116
  58. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -0
  59. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -0
  60. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -0
  61. package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1496
  62. package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -0
  63. package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -946
  64. package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -0
  65. package/packages/scrabble-solver/.next/server/pages/api/visit.js +1 -176
  66. package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +1 -0
  67. package/packages/scrabble-solver/.next/server/pages/index.html +1 -0
  68. package/packages/scrabble-solver/.next/server/pages/index.js +1 -4312
  69. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -0
  70. package/packages/scrabble-solver/.next/server/pages/index.json +1 -0
  71. package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -10
  72. package/packages/scrabble-solver/.next/server/webpack-api-runtime.js +1 -168
  73. package/packages/scrabble-solver/.next/server/webpack-runtime.js +1 -237
  74. package/packages/scrabble-solver/.next/static/A32z-31QgM-37h8Hpm9f_/_buildManifest.js +1 -0
  75. package/packages/scrabble-solver/.next/static/A32z-31QgM-37h8Hpm9f_/_ssgManifest.js +1 -0
  76. package/packages/scrabble-solver/.next/static/chunks/framework-c623a49d0bf89652.js +49 -0
  77. package/packages/scrabble-solver/.next/static/chunks/main-6e708370ad13b1f9.js +1 -0
  78. package/packages/scrabble-solver/.next/static/chunks/pages/404-129e0943628b6fab.js +1 -0
  79. package/packages/scrabble-solver/.next/static/chunks/pages/_app-8788856de4b1b755.js +17 -0
  80. package/packages/scrabble-solver/.next/static/chunks/pages/_error-6f16571cf9224b25.js +1 -0
  81. package/packages/scrabble-solver/.next/static/chunks/pages/index-caaf20b2488cb10e.js +1 -0
  82. package/packages/scrabble-solver/.next/static/chunks/polyfills-78c92fac7aa8fdd8.js +1 -0
  83. package/packages/scrabble-solver/.next/static/chunks/webpack-6ef43a8d4a395f49.js +1 -0
  84. package/packages/scrabble-solver/.next/static/css/11366b7489cf90ac.css +1 -0
  85. package/packages/scrabble-solver/.next/static/css/f549d7823f599b8d.css +2 -0
  86. package/packages/scrabble-solver/.next/trace +44 -17
  87. package/packages/scrabble-solver/package-lock.json +19 -20
  88. package/packages/scrabble-solver/package.json +25 -25
  89. package/packages/scrabble-solver/public/service-worker.js +2 -2
  90. package/packages/scrabble-solver/public/service-worker.js.map +1 -1
  91. package/packages/solver/package-lock.json +4 -4
  92. package/packages/solver/package.json +6 -6
  93. package/packages/types/package.json +2 -2
  94. package/packages/word-definitions/package-lock.json +4 -4
  95. package/packages/word-definitions/package.json +3 -3
  96. package/packages/word-lists/package-lock.json +5 -5
  97. package/packages/word-lists/package.json +4 -4
  98. package/packages/configs/build/locales/deDe.d.ts +0 -3
  99. package/packages/configs/build/locales/deDe.js +0 -42
  100. package/packages/configs/build/locales/enGb.d.ts +0 -3
  101. package/packages/configs/build/locales/enGb.js +0 -104
  102. package/packages/configs/build/locales/enUs.d.ts +0 -3
  103. package/packages/configs/build/locales/enUs.js +0 -104
  104. package/packages/configs/build/locales/esEs.d.ts +0 -3
  105. package/packages/configs/build/locales/esEs.js +0 -41
  106. package/packages/configs/build/locales/faIr.d.ts +0 -3
  107. package/packages/configs/build/locales/faIr.js +0 -45
  108. package/packages/configs/build/locales/frFr.d.ts +0 -3
  109. package/packages/configs/build/locales/frFr.js +0 -39
  110. package/packages/configs/build/locales/index.d.ts +0 -8
  111. package/packages/configs/build/locales/index.js +0 -22
  112. package/packages/configs/build/locales/plPl.d.ts +0 -3
  113. package/packages/configs/build/locales/plPl.js +0 -83
  114. package/packages/configs/build/locales/roRo.d.ts +0 -3
  115. package/packages/configs/build/locales/roRo.js +0 -38
  116. package/packages/scrabble-solver/.next/cache/webpack/client-development/0.pack.gz +0 -0
  117. package/packages/scrabble-solver/.next/cache/webpack/client-development/1.pack.gz +0 -0
  118. package/packages/scrabble-solver/.next/cache/webpack/client-development/10.pack.gz +0 -0
  119. package/packages/scrabble-solver/.next/cache/webpack/client-development/11.pack.gz +0 -0
  120. package/packages/scrabble-solver/.next/cache/webpack/client-development/12.pack.gz +0 -0
  121. package/packages/scrabble-solver/.next/cache/webpack/client-development/13.pack.gz +0 -0
  122. package/packages/scrabble-solver/.next/cache/webpack/client-development/14.pack.gz +0 -0
  123. package/packages/scrabble-solver/.next/cache/webpack/client-development/15.pack.gz +0 -0
  124. package/packages/scrabble-solver/.next/cache/webpack/client-development/2.pack.gz +0 -0
  125. package/packages/scrabble-solver/.next/cache/webpack/client-development/3.pack.gz +0 -0
  126. package/packages/scrabble-solver/.next/cache/webpack/client-development/4.pack.gz +0 -0
  127. package/packages/scrabble-solver/.next/cache/webpack/client-development/5.pack.gz +0 -0
  128. package/packages/scrabble-solver/.next/cache/webpack/client-development/6.pack.gz +0 -0
  129. package/packages/scrabble-solver/.next/cache/webpack/client-development/7.pack.gz +0 -0
  130. package/packages/scrabble-solver/.next/cache/webpack/client-development/8.pack.gz +0 -0
  131. package/packages/scrabble-solver/.next/cache/webpack/client-development/9.pack.gz +0 -0
  132. package/packages/scrabble-solver/.next/cache/webpack/client-development/index.pack.gz +0 -0
  133. package/packages/scrabble-solver/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
  134. package/packages/scrabble-solver/.next/cache/webpack/client-development-fallback/0.pack.gz +0 -0
  135. package/packages/scrabble-solver/.next/cache/webpack/client-development-fallback/index.pack.gz +0 -0
  136. package/packages/scrabble-solver/.next/cache/webpack/client-production/1.pack +0 -0
  137. package/packages/scrabble-solver/.next/cache/webpack/client-production/2.pack +0 -0
  138. package/packages/scrabble-solver/.next/cache/webpack/client-production/3.pack +0 -0
  139. package/packages/scrabble-solver/.next/cache/webpack/client-production/4.pack +0 -0
  140. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
  141. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/1.pack +0 -0
  142. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/2.pack +0 -0
  143. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  144. package/packages/scrabble-solver/.next/cache/webpack/server-development/0.pack.gz +0 -0
  145. package/packages/scrabble-solver/.next/cache/webpack/server-development/1.pack.gz +0 -0
  146. package/packages/scrabble-solver/.next/cache/webpack/server-development/10.pack.gz +0 -0
  147. package/packages/scrabble-solver/.next/cache/webpack/server-development/11.pack.gz +0 -0
  148. package/packages/scrabble-solver/.next/cache/webpack/server-development/12.pack.gz +0 -0
  149. package/packages/scrabble-solver/.next/cache/webpack/server-development/13.pack.gz +0 -0
  150. package/packages/scrabble-solver/.next/cache/webpack/server-development/14.pack.gz +0 -0
  151. package/packages/scrabble-solver/.next/cache/webpack/server-development/15.pack.gz +0 -0
  152. package/packages/scrabble-solver/.next/cache/webpack/server-development/16.pack.gz +0 -0
  153. package/packages/scrabble-solver/.next/cache/webpack/server-development/17.pack.gz +0 -0
  154. package/packages/scrabble-solver/.next/cache/webpack/server-development/18.pack.gz +0 -0
  155. package/packages/scrabble-solver/.next/cache/webpack/server-development/19.pack.gz +0 -0
  156. package/packages/scrabble-solver/.next/cache/webpack/server-development/2.pack.gz +0 -0
  157. package/packages/scrabble-solver/.next/cache/webpack/server-development/20.pack.gz +0 -0
  158. package/packages/scrabble-solver/.next/cache/webpack/server-development/21.pack.gz +0 -0
  159. package/packages/scrabble-solver/.next/cache/webpack/server-development/22.pack.gz +0 -0
  160. package/packages/scrabble-solver/.next/cache/webpack/server-development/23.pack.gz +0 -0
  161. package/packages/scrabble-solver/.next/cache/webpack/server-development/3.pack.gz +0 -0
  162. package/packages/scrabble-solver/.next/cache/webpack/server-development/4.pack.gz +0 -0
  163. package/packages/scrabble-solver/.next/cache/webpack/server-development/5.pack.gz +0 -0
  164. package/packages/scrabble-solver/.next/cache/webpack/server-development/6.pack.gz +0 -0
  165. package/packages/scrabble-solver/.next/cache/webpack/server-development/7.pack.gz +0 -0
  166. package/packages/scrabble-solver/.next/cache/webpack/server-development/8.pack.gz +0 -0
  167. package/packages/scrabble-solver/.next/cache/webpack/server-development/9.pack.gz +0 -0
  168. package/packages/scrabble-solver/.next/cache/webpack/server-development/index.pack.gz +0 -0
  169. package/packages/scrabble-solver/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
  170. package/packages/scrabble-solver/.next/cache/webpack/server-production/1.pack +0 -0
  171. package/packages/scrabble-solver/.next/cache/webpack/server-production/2.pack +0 -0
  172. package/packages/scrabble-solver/.next/cache/webpack/server-production/3.pack +0 -0
  173. package/packages/scrabble-solver/.next/cache/webpack/server-production/4.pack +0 -0
  174. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
  175. package/packages/scrabble-solver/.next/server/vendor-chunks/@swc.js +0 -35
  176. package/packages/scrabble-solver/.next/server/vendor-chunks/next.js +0 -517
  177. package/packages/scrabble-solver/.next/static/chunks/main.js +0 -1285
  178. package/packages/scrabble-solver/.next/static/chunks/pages/_app.js +0 -4854
  179. package/packages/scrabble-solver/.next/static/chunks/pages/_error.js +0 -28
  180. package/packages/scrabble-solver/.next/static/chunks/pages/index.js +0 -717
  181. package/packages/scrabble-solver/.next/static/chunks/polyfills.js +0 -1
  182. package/packages/scrabble-solver/.next/static/chunks/react-refresh.js +0 -62
  183. package/packages/scrabble-solver/.next/static/chunks/webpack.js +0 -1261
  184. package/packages/scrabble-solver/.next/static/development/_buildManifest.js +0 -1
  185. package/packages/scrabble-solver/.next/static/development/_ssgManifest.js +0 -1
  186. package/packages/scrabble-solver/.next/static/webpack/29a2bd94727d51e6.webpack.hot-update.json +0 -1
  187. package/packages/scrabble-solver/.next/static/webpack/3754455b7d774808.webpack.hot-update.json +0 -1
  188. package/packages/scrabble-solver/.next/static/webpack/633457081244afec._.hot-update.json +0 -1
  189. package/packages/scrabble-solver/.next/static/webpack/b71388f846dd4d8b.webpack.hot-update.json +0 -1
  190. package/packages/scrabble-solver/.next/static/webpack/e7718e8f7cbe05a0.webpack.hot-update.json +0 -1
  191. package/packages/scrabble-solver/.next/static/webpack/pages/_app.29a2bd94727d51e6.hot-update.js +0 -22
  192. package/packages/scrabble-solver/.next/static/webpack/pages/_app.3754455b7d774808.hot-update.js +0 -262
  193. package/packages/scrabble-solver/.next/static/webpack/pages/_app.e7718e8f7cbe05a0.hot-update.js +0 -251
  194. package/packages/scrabble-solver/.next/static/webpack/pages/index.3754455b7d774808.hot-update.js +0 -75
  195. package/packages/scrabble-solver/.next/static/webpack/pages/index.b71388f846dd4d8b.hot-update.js +0 -22
  196. package/packages/scrabble-solver/.next/static/webpack/pages/index.e7718e8f7cbe05a0.hot-update.js +0 -32
  197. package/packages/scrabble-solver/.next/static/webpack/webpack.29a2bd94727d51e6.hot-update.js +0 -18
  198. package/packages/scrabble-solver/.next/static/webpack/webpack.3754455b7d774808.hot-update.js +0 -18
  199. package/packages/scrabble-solver/.next/static/webpack/webpack.b71388f846dd4d8b.hot-update.js +0 -18
  200. package/packages/scrabble-solver/.next/static/webpack/webpack.e7718e8f7cbe05a0.hot-update.js +0 -18
  201. package/packages/word-definitions/build/crawl/crawl.d.ts +0 -3
  202. package/packages/word-definitions/build/crawl/crawl.js +0 -27
  203. package/packages/word-definitions/build/crawl/crawlEnglish.d.ts +0 -2
  204. package/packages/word-definitions/build/crawl/crawlEnglish.js +0 -11
  205. package/packages/word-definitions/build/crawl/crawlFarsi.d.ts +0 -2
  206. package/packages/word-definitions/build/crawl/crawlFarsi.js +0 -11
  207. package/packages/word-definitions/build/crawl/crawlFrench.d.ts +0 -2
  208. package/packages/word-definitions/build/crawl/crawlFrench.js +0 -11
  209. package/packages/word-definitions/build/crawl/crawlGerman.d.ts +0 -2
  210. package/packages/word-definitions/build/crawl/crawlGerman.js +0 -11
  211. package/packages/word-definitions/build/crawl/crawlPolish.d.ts +0 -2
  212. package/packages/word-definitions/build/crawl/crawlPolish.js +0 -11
  213. package/packages/word-definitions/build/crawl/crawlRomanian.d.ts +0 -2
  214. package/packages/word-definitions/build/crawl/crawlRomanian.js +0 -11
  215. package/packages/word-definitions/build/crawl/crawlSpanish.d.ts +0 -2
  216. package/packages/word-definitions/build/crawl/crawlSpanish.js +0 -11
  217. package/packages/word-definitions/build/crawl/index.d.ts +0 -6
  218. package/packages/word-definitions/build/crawl/index.js +0 -18
  219. package/packages/word-definitions/build/parse/index.d.ts +0 -8
  220. package/packages/word-definitions/build/parse/index.js +0 -22
  221. package/packages/word-definitions/build/parse/parse.d.ts +0 -4
  222. package/packages/word-definitions/build/parse/parse.js +0 -32
  223. package/packages/word-definitions/build/parse/parseEnglish.d.ts +0 -3
  224. package/packages/word-definitions/build/parse/parseEnglish.js +0 -18
  225. package/packages/word-definitions/build/parse/parseFarsi.d.ts +0 -3
  226. package/packages/word-definitions/build/parse/parseFarsi.js +0 -13
  227. package/packages/word-definitions/build/parse/parseFrench.d.ts +0 -3
  228. package/packages/word-definitions/build/parse/parseFrench.js +0 -12
  229. package/packages/word-definitions/build/parse/parseGerman.d.ts +0 -3
  230. package/packages/word-definitions/build/parse/parseGerman.js +0 -60
  231. package/packages/word-definitions/build/parse/parsePolish.d.ts +0 -3
  232. package/packages/word-definitions/build/parse/parsePolish.js +0 -14
  233. package/packages/word-definitions/build/parse/parseRomanian.d.ts +0 -3
  234. package/packages/word-definitions/build/parse/parseRomanian.js +0 -16
  235. package/packages/word-definitions/build/parse/parseSpanish.d.ts +0 -3
  236. package/packages/word-definitions/build/parse/parseSpanish.js +0 -29
  237. package/packages/word-lists/build/getDeDeWordList.d.ts +0 -2
  238. package/packages/word-lists/build/getDeDeWordList.js +0 -9
  239. package/packages/word-lists/build/getEnGbWordList.d.ts +0 -2
  240. package/packages/word-lists/build/getEnGbWordList.js +0 -9
  241. package/packages/word-lists/build/getEnUsWordList.d.ts +0 -2
  242. package/packages/word-lists/build/getEnUsWordList.js +0 -9
  243. package/packages/word-lists/build/getEsEsWordList.d.ts +0 -2
  244. package/packages/word-lists/build/getEsEsWordList.js +0 -18
  245. package/packages/word-lists/build/getFaIrWordList.d.ts +0 -2
  246. package/packages/word-lists/build/getFaIrWordList.js +0 -9
  247. package/packages/word-lists/build/getFrFrWordList.d.ts +0 -2
  248. package/packages/word-lists/build/getFrFrWordList.js +0 -10
  249. package/packages/word-lists/build/getPlPlWordList.d.ts +0 -2
  250. package/packages/word-lists/build/getPlPlWordList.js +0 -41
  251. package/packages/word-lists/build/getRoRoWordList.d.ts +0 -2
  252. package/packages/word-lists/build/getRoRoWordList.js +0 -10
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../package.json","../../../package.json","../../chunks/911.js","../../chunks/977.js","../../webpack-api-runtime.js"]}
@@ -1,176 +1 @@
1
- "use strict";
2
- /*
3
- * ATTENTION: An "eval-source-map" devtool has been used.
4
- * This devtool is neither made for production nor for readable output files.
5
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
6
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
7
- * or disable the default devtool with "devtool: false".
8
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
9
- */
10
- (() => {
11
- var exports = {};
12
- exports.id = "pages/api/visit";
13
- exports.ids = ["pages/api/visit"];
14
- exports.modules = {
15
-
16
- /***/ "next/dist/compiled/next-server/pages-api.runtime.dev.js":
17
- /*!**************************************************************************!*\
18
- !*** external "next/dist/compiled/next-server/pages-api.runtime.dev.js" ***!
19
- \**************************************************************************/
20
- /***/ ((module) => {
21
-
22
- module.exports = require("next/dist/compiled/next-server/pages-api.runtime.dev.js");
23
-
24
- /***/ }),
25
-
26
- /***/ "winston":
27
- /*!**************************!*\
28
- !*** external "winston" ***!
29
- \**************************/
30
- /***/ ((module) => {
31
-
32
- module.exports = require("winston");
33
-
34
- /***/ }),
35
-
36
- /***/ "os":
37
- /*!*********************!*\
38
- !*** external "os" ***!
39
- \*********************/
40
- /***/ ((module) => {
41
-
42
- module.exports = require("os");
43
-
44
- /***/ }),
45
-
46
- /***/ "path":
47
- /*!***********************!*\
48
- !*** external "path" ***!
49
- \***********************/
50
- /***/ ((module) => {
51
-
52
- module.exports = require("path");
53
-
54
- /***/ }),
55
-
56
- /***/ "(api)/../../node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fvisit&preferredRegion=&absolutePagePath=.%2Fsrc%2Fpages%2Fapi%2Fvisit.ts&middlewareConfigBase64=e30%3D!":
57
- /*!**************************************************************************************************************************************************************************************************************************!*\
58
- !*** ../../node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fvisit&preferredRegion=&absolutePagePath=.%2Fsrc%2Fpages%2Fapi%2Fvisit.ts&middlewareConfigBase64=e30%3D! ***!
59
- \**************************************************************************************************************************************************************************************************************************/
60
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
61
-
62
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ routeModule: () => (/* binding */ routeModule)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages-api/module.compiled */ \"(api)/../../node_modules/next/dist/server/future/route-modules/pages-api/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(api)/../../node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(api)/../../node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var _src_pages_api_visit_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/pages/api/visit.ts */ \"(api)/./src/pages/api/visit.ts\");\n\n\n\n// Import the userland code.\n\n// Re-export the handler (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_src_pages_api_visit_ts__WEBPACK_IMPORTED_MODULE_3__, \"default\"));\n// Re-export config.\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_src_pages_api_visit_ts__WEBPACK_IMPORTED_MODULE_3__, \"config\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesAPIRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES_API,\n page: \"/api/visit\",\n pathname: \"/api/visit\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n userland: _src_pages_api_visit_ts__WEBPACK_IMPORTED_MODULE_3__\n});\n\n//# sourceMappingURL=pages-api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1yb3V0ZS1sb2FkZXIvaW5kZXguanM/a2luZD1QQUdFU19BUEkmcGFnZT0lMkZhcGklMkZ2aXNpdCZwcmVmZXJyZWRSZWdpb249JmFic29sdXRlUGFnZVBhdGg9LiUyRnNyYyUyRnBhZ2VzJTJGYXBpJTJGdmlzaXQudHMmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQXNHO0FBQ3ZDO0FBQ0w7QUFDMUQ7QUFDcUQ7QUFDckQ7QUFDQSxpRUFBZSx3RUFBSyxDQUFDLG9EQUFRLFlBQVksRUFBQztBQUMxQztBQUNPLGVBQWUsd0VBQUssQ0FBQyxvREFBUTtBQUNwQztBQUNPLHdCQUF3QixnSEFBbUI7QUFDbEQ7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsWUFBWTtBQUNaLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac2NyYWJibGUtc29sdmVyL3NjcmFiYmxlLXNvbHZlci8/OGU3MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlc0FQSVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvcGFnZXMtYXBpL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbmltcG9ydCB7IGhvaXN0IH0gZnJvbSBcIm5leHQvZGlzdC9idWlsZC90ZW1wbGF0ZXMvaGVscGVyc1wiO1xuLy8gSW1wb3J0IHRoZSB1c2VybGFuZCBjb2RlLlxuaW1wb3J0ICogYXMgdXNlcmxhbmQgZnJvbSBcIi4vc3JjL3BhZ2VzL2FwaS92aXNpdC50c1wiO1xuLy8gUmUtZXhwb3J0IHRoZSBoYW5kbGVyIChzaG91bGQgYmUgdGhlIGRlZmF1bHQgZXhwb3J0KS5cbmV4cG9ydCBkZWZhdWx0IGhvaXN0KHVzZXJsYW5kLCBcImRlZmF1bHRcIik7XG4vLyBSZS1leHBvcnQgY29uZmlnLlxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IGhvaXN0KHVzZXJsYW5kLCBcImNvbmZpZ1wiKTtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IFBhZ2VzQVBJUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLlBBR0VTX0FQSSxcbiAgICAgICAgcGFnZTogXCIvYXBpL3Zpc2l0XCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hcGkvdmlzaXRcIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIlxuICAgIH0sXG4gICAgdXNlcmxhbmRcbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWdlcy1hcGkuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(api)/../../node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fvisit&preferredRegion=&absolutePagePath=.%2Fsrc%2Fpages%2Fapi%2Fvisit.ts&middlewareConfigBase64=e30%3D!\n");
63
-
64
- /***/ }),
65
-
66
- /***/ "(api)/./src/api/getServerLoggingData.ts":
67
- /*!*****************************************!*\
68
- !*** ./src/api/getServerLoggingData.ts ***!
69
- \*****************************************/
70
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
71
-
72
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst getServerLoggingData = (request)=>({\n origin: request.headers.origin,\n referer: request.headers.referer,\n userAgent: request.headers[\"user-agent\"],\n xForwardedFor: request.headers[\"x-forwarded-for\"],\n xRealIp: request.headers[\"x-real-ip\"]\n });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getServerLoggingData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvYXBpL2dldFNlcnZlckxvZ2dpbmdEYXRhLnRzIiwibWFwcGluZ3MiOiI7Ozs7QUFVQSxNQUFNQSx1QkFBdUIsQ0FBQ0MsVUFBZ0Q7UUFDNUVDLFFBQVFELFFBQVFFLE9BQU8sQ0FBQ0QsTUFBTTtRQUM5QkUsU0FBU0gsUUFBUUUsT0FBTyxDQUFDQyxPQUFPO1FBQ2hDQyxXQUFXSixRQUFRRSxPQUFPLENBQUMsYUFBYTtRQUN4Q0csZUFBZUwsUUFBUUUsT0FBTyxDQUFDLGtCQUFrQjtRQUNqREksU0FBU04sUUFBUUUsT0FBTyxDQUFDLFlBQVk7SUFDdkM7QUFFQSxpRUFBZUgsb0JBQW9CQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHNjcmFiYmxlLXNvbHZlci9zY3JhYmJsZS1zb2x2ZXIvLi9zcmMvYXBpL2dldFNlcnZlckxvZ2dpbmdEYXRhLnRzP2UwOWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV4dEFwaVJlcXVlc3QgfSBmcm9tICduZXh0JztcblxuaW50ZXJmYWNlIFNlcnZlckxvZ2dpbmdEYXRhIHtcbiAgb3JpZ2luPzogc3RyaW5nO1xuICByZWZlcmVyPzogc3RyaW5nO1xuICB1c2VyQWdlbnQ/OiBzdHJpbmc7XG4gIHhGb3J3YXJkZWRGb3I/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgeFJlYWxJcD86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5jb25zdCBnZXRTZXJ2ZXJMb2dnaW5nRGF0YSA9IChyZXF1ZXN0OiBOZXh0QXBpUmVxdWVzdCk6IFNlcnZlckxvZ2dpbmdEYXRhID0+ICh7XG4gIG9yaWdpbjogcmVxdWVzdC5oZWFkZXJzLm9yaWdpbixcbiAgcmVmZXJlcjogcmVxdWVzdC5oZWFkZXJzLnJlZmVyZXIsXG4gIHVzZXJBZ2VudDogcmVxdWVzdC5oZWFkZXJzWyd1c2VyLWFnZW50J10sXG4gIHhGb3J3YXJkZWRGb3I6IHJlcXVlc3QuaGVhZGVyc1sneC1mb3J3YXJkZWQtZm9yJ10sXG4gIHhSZWFsSXA6IHJlcXVlc3QuaGVhZGVyc1sneC1yZWFsLWlwJ10sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0U2VydmVyTG9nZ2luZ0RhdGE7XG4iXSwibmFtZXMiOlsiZ2V0U2VydmVyTG9nZ2luZ0RhdGEiLCJyZXF1ZXN0Iiwib3JpZ2luIiwiaGVhZGVycyIsInJlZmVyZXIiLCJ1c2VyQWdlbnQiLCJ4Rm9yd2FyZGVkRm9yIiwieFJlYWxJcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(api)/./src/api/getServerLoggingData.ts\n");
73
-
74
- /***/ }),
75
-
76
- /***/ "(api)/./src/api/index.ts":
77
- /*!**************************!*\
78
- !*** ./src/api/index.ts ***!
79
- \**************************/
80
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
81
-
82
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getServerLoggingData: () => (/* reexport safe */ _getServerLoggingData__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ isBoardValid: () => (/* reexport safe */ _isBoardValid__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ isCellValid: () => (/* reexport safe */ _isCellValid__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ isCharacterValid: () => (/* reexport safe */ _isCharacterValid__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ isRowValid: () => (/* reexport safe */ _isRowValid__WEBPACK_IMPORTED_MODULE_4__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _getServerLoggingData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getServerLoggingData */ \"(api)/./src/api/getServerLoggingData.ts\");\n/* harmony import */ var _isBoardValid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isBoardValid */ \"(api)/./src/api/isBoardValid.ts\");\n/* harmony import */ var _isCellValid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isCellValid */ \"(api)/./src/api/isCellValid.ts\");\n/* harmony import */ var _isCharacterValid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isCharacterValid */ \"(api)/./src/api/isCharacterValid.ts\");\n/* harmony import */ var _isRowValid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isRowValid */ \"(api)/./src/api/isRowValid.ts\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvYXBpL2luZGV4LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBeUU7QUFDaEI7QUFDRjtBQUNVO0FBQ1oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac2NyYWJibGUtc29sdmVyL3NjcmFiYmxlLXNvbHZlci8uL3NyYy9hcGkvaW5kZXgudHM/MDI2MCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIGdldFNlcnZlckxvZ2dpbmdEYXRhIH0gZnJvbSAnLi9nZXRTZXJ2ZXJMb2dnaW5nRGF0YSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzQm9hcmRWYWxpZCB9IGZyb20gJy4vaXNCb2FyZFZhbGlkJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNDZWxsVmFsaWQgfSBmcm9tICcuL2lzQ2VsbFZhbGlkJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaXNDaGFyYWN0ZXJWYWxpZCB9IGZyb20gJy4vaXNDaGFyYWN0ZXJWYWxpZCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGlzUm93VmFsaWQgfSBmcm9tICcuL2lzUm93VmFsaWQnO1xuIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJnZXRTZXJ2ZXJMb2dnaW5nRGF0YSIsImlzQm9hcmRWYWxpZCIsImlzQ2VsbFZhbGlkIiwiaXNDaGFyYWN0ZXJWYWxpZCIsImlzUm93VmFsaWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(api)/./src/api/index.ts\n");
83
-
84
- /***/ }),
85
-
86
- /***/ "(api)/./src/api/isBoardValid.ts":
87
- /*!*********************************!*\
88
- !*** ./src/api/isBoardValid.ts ***!
89
- \*********************************/
90
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
91
-
92
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isRowValid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isRowValid */ \"(api)/./src/api/isRowValid.ts\");\n\nconst isBoardValid = (board, config)=>{\n if (board.length !== config.boardHeight) {\n return false;\n }\n for (const row of board){\n if (!(0,_isRowValid__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(row, config)) {\n return false;\n }\n }\n return areTwoCharacterTilesValid(board, config);\n};\nconst areTwoCharacterTilesValid = (board, config)=>{\n const cells = board.flat().filter((cell)=>cell && cell.tile && config.isTwoCharacterTilePrefix(cell.tile.character));\n for (const cell of cells){\n for (const characters of config.twoCharacterTiles){\n const canCheckDown = cell.y + 1 < board.length;\n const canCheckRight = cell.x + 1 < board[0].length;\n const cellDown = board[cell.y + 1][cell.x];\n const cellRight = board[cell.y][cell.x + 1];\n const collidesDown = canCheckDown && cellDown.tile && cellDown.tile.character === characters[1];\n const collidesRight = canCheckRight && cellRight.tile && cellRight.tile.character === characters[1];\n const collides = collidesDown || collidesRight;\n if (cell.tile && characters.startsWith(cell.tile.character) && collides) {\n return false;\n }\n }\n }\n return true;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isBoardValid);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvYXBpL2lzQm9hcmRWYWxpZC50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUVzQztBQUV0QyxNQUFNQyxlQUFlLENBQUNDLE9BQWtCQztJQUN0QyxJQUFJRCxNQUFNRSxNQUFNLEtBQUtELE9BQU9FLFdBQVcsRUFBRTtRQUN2QyxPQUFPO0lBQ1Q7SUFFQSxLQUFLLE1BQU1DLE9BQU9KLE1BQU87UUFDdkIsSUFBSSxDQUFDRix1REFBVUEsQ0FBQ00sS0FBS0gsU0FBUztZQUM1QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9JLDBCQUEwQkwsT0FBT0M7QUFDMUM7QUFFQSxNQUFNSSw0QkFBNEIsQ0FBQ0wsT0FBcUJDO0lBQ3RELE1BQU1LLFFBQW9CTixNQUN2Qk8sSUFBSSxHQUNKQyxNQUFNLENBQUMsQ0FBQ0MsT0FBU0EsUUFBUUEsS0FBS0MsSUFBSSxJQUFJVCxPQUFPVSx3QkFBd0IsQ0FBQ0YsS0FBS0MsSUFBSSxDQUFDRSxTQUFTO0lBRTVGLEtBQUssTUFBTUgsUUFBUUgsTUFBTztRQUN4QixLQUFLLE1BQU1PLGNBQWNaLE9BQU9hLGlCQUFpQixDQUFFO1lBQ2pELE1BQU1DLGVBQWVOLEtBQUtPLENBQUMsR0FBRyxJQUFJaEIsTUFBTUUsTUFBTTtZQUM5QyxNQUFNZSxnQkFBZ0JSLEtBQUtTLENBQUMsR0FBRyxJQUFJbEIsS0FBSyxDQUFDLEVBQUUsQ0FBQ0UsTUFBTTtZQUNsRCxNQUFNaUIsV0FBV25CLEtBQUssQ0FBQ1MsS0FBS08sQ0FBQyxHQUFHLEVBQUUsQ0FBQ1AsS0FBS1MsQ0FBQyxDQUFDO1lBQzFDLE1BQU1FLFlBQVlwQixLQUFLLENBQUNTLEtBQUtPLENBQUMsQ0FBQyxDQUFDUCxLQUFLUyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxNQUFNRyxlQUFlTixnQkFBZ0JJLFNBQVNULElBQUksSUFBSVMsU0FBU1QsSUFBSSxDQUFDRSxTQUFTLEtBQUtDLFVBQVUsQ0FBQyxFQUFFO1lBQy9GLE1BQU1TLGdCQUFnQkwsaUJBQWlCRyxVQUFVVixJQUFJLElBQUlVLFVBQVVWLElBQUksQ0FBQ0UsU0FBUyxLQUFLQyxVQUFVLENBQUMsRUFBRTtZQUNuRyxNQUFNVSxXQUFXRixnQkFBZ0JDO1lBRWpDLElBQUliLEtBQUtDLElBQUksSUFBSUcsV0FBV1csVUFBVSxDQUFDZixLQUFLQyxJQUFJLENBQUNFLFNBQVMsS0FBS1csVUFBVTtnQkFDdkUsT0FBTztZQUNUO1FBQ0Y7SUFDRjtJQUVBLE9BQU87QUFDVDtBQUVBLGlFQUFleEIsWUFBWUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BzY3JhYmJsZS1zb2x2ZXIvc2NyYWJibGUtc29sdmVyLy4vc3JjL2FwaS9pc0JvYXJkVmFsaWQudHM/MjlkNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb2FyZEpzb24sIENlbGxKc29uLCBDb25maWcgfSBmcm9tICdAc2NyYWJibGUtc29sdmVyL3R5cGVzJztcblxuaW1wb3J0IGlzUm93VmFsaWQgZnJvbSAnLi9pc1Jvd1ZhbGlkJztcblxuY29uc3QgaXNCb2FyZFZhbGlkID0gKGJvYXJkOiBCb2FyZEpzb24sIGNvbmZpZzogQ29uZmlnKTogYm9vbGVhbiA9PiB7XG4gIGlmIChib2FyZC5sZW5ndGggIT09IGNvbmZpZy5ib2FyZEhlaWdodCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgcm93IG9mIGJvYXJkKSB7XG4gICAgaWYgKCFpc1Jvd1ZhbGlkKHJvdywgY29uZmlnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmVUd29DaGFyYWN0ZXJUaWxlc1ZhbGlkKGJvYXJkLCBjb25maWcpO1xufTtcblxuY29uc3QgYXJlVHdvQ2hhcmFjdGVyVGlsZXNWYWxpZCA9IChib2FyZDogQ2VsbEpzb25bXVtdLCBjb25maWc6IENvbmZpZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBjZWxsczogQ2VsbEpzb25bXSA9IGJvYXJkXG4gICAgLmZsYXQoKVxuICAgIC5maWx0ZXIoKGNlbGwpID0+IGNlbGwgJiYgY2VsbC50aWxlICYmIGNvbmZpZy5pc1R3b0NoYXJhY3RlclRpbGVQcmVmaXgoY2VsbC50aWxlLmNoYXJhY3RlcikpO1xuXG4gIGZvciAoY29uc3QgY2VsbCBvZiBjZWxscykge1xuICAgIGZvciAoY29uc3QgY2hhcmFjdGVycyBvZiBjb25maWcudHdvQ2hhcmFjdGVyVGlsZXMpIHtcbiAgICAgIGNvbnN0IGNhbkNoZWNrRG93biA9IGNlbGwueSArIDEgPCBib2FyZC5sZW5ndGg7XG4gICAgICBjb25zdCBjYW5DaGVja1JpZ2h0ID0gY2VsbC54ICsgMSA8IGJvYXJkWzBdLmxlbmd0aDtcbiAgICAgIGNvbnN0IGNlbGxEb3duID0gYm9hcmRbY2VsbC55ICsgMV1bY2VsbC54XTtcbiAgICAgIGNvbnN0IGNlbGxSaWdodCA9IGJvYXJkW2NlbGwueV1bY2VsbC54ICsgMV07XG4gICAgICBjb25zdCBjb2xsaWRlc0Rvd24gPSBjYW5DaGVja0Rvd24gJiYgY2VsbERvd24udGlsZSAmJiBjZWxsRG93bi50aWxlLmNoYXJhY3RlciA9PT0gY2hhcmFjdGVyc1sxXTtcbiAgICAgIGNvbnN0IGNvbGxpZGVzUmlnaHQgPSBjYW5DaGVja1JpZ2h0ICYmIGNlbGxSaWdodC50aWxlICYmIGNlbGxSaWdodC50aWxlLmNoYXJhY3RlciA9PT0gY2hhcmFjdGVyc1sxXTtcbiAgICAgIGNvbnN0IGNvbGxpZGVzID0gY29sbGlkZXNEb3duIHx8IGNvbGxpZGVzUmlnaHQ7XG5cbiAgICAgIGlmIChjZWxsLnRpbGUgJiYgY2hhcmFjdGVycy5zdGFydHNXaXRoKGNlbGwudGlsZS5jaGFyYWN0ZXIpICYmIGNvbGxpZGVzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGlzQm9hcmRWYWxpZDtcbiJdLCJuYW1lcyI6WyJpc1Jvd1ZhbGlkIiwiaXNCb2FyZFZhbGlkIiwiYm9hcmQiLCJjb25maWciLCJsZW5ndGgiLCJib2FyZEhlaWdodCIsInJvdyIsImFyZVR3b0NoYXJhY3RlclRpbGVzVmFsaWQiLCJjZWxscyIsImZsYXQiLCJmaWx0ZXIiLCJjZWxsIiwidGlsZSIsImlzVHdvQ2hhcmFjdGVyVGlsZVByZWZpeCIsImNoYXJhY3RlciIsImNoYXJhY3RlcnMiLCJ0d29DaGFyYWN0ZXJUaWxlcyIsImNhbkNoZWNrRG93biIsInkiLCJjYW5DaGVja1JpZ2h0IiwieCIsImNlbGxEb3duIiwiY2VsbFJpZ2h0IiwiY29sbGlkZXNEb3duIiwiY29sbGlkZXNSaWdodCIsImNvbGxpZGVzIiwic3RhcnRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(api)/./src/api/isBoardValid.ts\n");
93
-
94
- /***/ }),
95
-
96
- /***/ "(api)/./src/api/isCellValid.ts":
97
- /*!********************************!*\
98
- !*** ./src/api/isCellValid.ts ***!
99
- \********************************/
100
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
101
-
102
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isCharacterValid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isCharacterValid */ \"(api)/./src/api/isCharacterValid.ts\");\n\nconst isCellValid = (cell, config)=>{\n const { isEmpty, tile, x, y } = cell;\n if (x < 0 || x >= config.boardWidth) {\n return false;\n }\n if (y < 0 || y >= config.boardHeight) {\n return false;\n }\n if (isEmpty && tile !== null) {\n return false;\n }\n if (tile !== null && !(0,_isCharacterValid__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(tile.character)) {\n return false;\n }\n return true;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isCellValid);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvYXBpL2lzQ2VsbFZhbGlkLnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBRWtEO0FBRWxELE1BQU1DLGNBQWMsQ0FBQ0MsTUFBZ0JDO0lBQ25DLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFLEdBQUdMO0lBRWhDLElBQUlJLElBQUksS0FBS0EsS0FBS0gsT0FBT0ssVUFBVSxFQUFFO1FBQ25DLE9BQU87SUFDVDtJQUVBLElBQUlELElBQUksS0FBS0EsS0FBS0osT0FBT00sV0FBVyxFQUFFO1FBQ3BDLE9BQU87SUFDVDtJQUVBLElBQUlMLFdBQVdDLFNBQVMsTUFBTTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxJQUFJQSxTQUFTLFFBQVEsQ0FBQ0wsNkRBQWdCQSxDQUFDSyxLQUFLSyxTQUFTLEdBQUc7UUFDdEQsT0FBTztJQUNUO0lBRUEsT0FBTztBQUNUO0FBRUEsaUVBQWVULFdBQVdBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac2NyYWJibGUtc29sdmVyL3NjcmFiYmxlLXNvbHZlci8uL3NyYy9hcGkvaXNDZWxsVmFsaWQudHM/MmUxNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZWxsSnNvbiwgQ29uZmlnIH0gZnJvbSAnQHNjcmFiYmxlLXNvbHZlci90eXBlcyc7XG5cbmltcG9ydCBpc0NoYXJhY3RlclZhbGlkIGZyb20gJy4vaXNDaGFyYWN0ZXJWYWxpZCc7XG5cbmNvbnN0IGlzQ2VsbFZhbGlkID0gKGNlbGw6IENlbGxKc29uLCBjb25maWc6IENvbmZpZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IGlzRW1wdHksIHRpbGUsIHgsIHkgfSA9IGNlbGw7XG5cbiAgaWYgKHggPCAwIHx8IHggPj0gY29uZmlnLmJvYXJkV2lkdGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoeSA8IDAgfHwgeSA+PSBjb25maWcuYm9hcmRIZWlnaHQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaXNFbXB0eSAmJiB0aWxlICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHRpbGUgIT09IG51bGwgJiYgIWlzQ2hhcmFjdGVyVmFsaWQodGlsZS5jaGFyYWN0ZXIpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpc0NlbGxWYWxpZDtcbiJdLCJuYW1lcyI6WyJpc0NoYXJhY3RlclZhbGlkIiwiaXNDZWxsVmFsaWQiLCJjZWxsIiwiY29uZmlnIiwiaXNFbXB0eSIsInRpbGUiLCJ4IiwieSIsImJvYXJkV2lkdGgiLCJib2FyZEhlaWdodCIsImNoYXJhY3RlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(api)/./src/api/isCellValid.ts\n");
103
-
104
- /***/ }),
105
-
106
- /***/ "(api)/./src/api/isCharacterValid.ts":
107
- /*!*************************************!*\
108
- !*** ./src/api/isCharacterValid.ts ***!
109
- \*************************************/
110
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
111
-
112
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst TWO_TILE_CHARACTER_LENGTH = 2;\nconst MAX_CHARACTER_LENGTH = TWO_TILE_CHARACTER_LENGTH;\nconst isCharacterValid = (character)=>{\n /*\n * We could be strict here and check whether config.hasCharacter(character) || character === BLANK\n * but since this case won't really affect/break solving, we don't need to worry about it.\n * It's better to display an empty state than error state in UI, so this is a sanity check only.\n */ return character.length !== 0 && character.length <= MAX_CHARACTER_LENGTH;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isCharacterValid);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvYXBpL2lzQ2hhcmFjdGVyVmFsaWQudHMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU1BLDRCQUE0QjtBQUNsQyxNQUFNQyx1QkFBdUJEO0FBRTdCLE1BQU1FLG1CQUFtQixDQUFDQztJQUN4Qjs7OztHQUlDLEdBQ0QsT0FBT0EsVUFBVUMsTUFBTSxLQUFLLEtBQUtELFVBQVVDLE1BQU0sSUFBSUg7QUFDdkQ7QUFFQSxpRUFBZUMsZ0JBQWdCQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHNjcmFiYmxlLXNvbHZlci9zY3JhYmJsZS1zb2x2ZXIvLi9zcmMvYXBpL2lzQ2hhcmFjdGVyVmFsaWQudHM/YWQzYyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUV09fVElMRV9DSEFSQUNURVJfTEVOR1RIID0gMjtcbmNvbnN0IE1BWF9DSEFSQUNURVJfTEVOR1RIID0gVFdPX1RJTEVfQ0hBUkFDVEVSX0xFTkdUSDtcblxuY29uc3QgaXNDaGFyYWN0ZXJWYWxpZCA9IChjaGFyYWN0ZXI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAvKlxuICAgKiBXZSBjb3VsZCBiZSBzdHJpY3QgaGVyZSBhbmQgY2hlY2sgd2hldGhlciBjb25maWcuaGFzQ2hhcmFjdGVyKGNoYXJhY3RlcikgfHwgY2hhcmFjdGVyID09PSBCTEFOS1xuICAgKiBidXQgc2luY2UgdGhpcyBjYXNlIHdvbid0IHJlYWxseSBhZmZlY3QvYnJlYWsgc29sdmluZywgd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBpdC5cbiAgICogSXQncyBiZXR0ZXIgdG8gZGlzcGxheSBhbiBlbXB0eSBzdGF0ZSB0aGFuIGVycm9yIHN0YXRlIGluIFVJLCBzbyB0aGlzIGlzIGEgc2FuaXR5IGNoZWNrIG9ubHkuXG4gICAqL1xuICByZXR1cm4gY2hhcmFjdGVyLmxlbmd0aCAhPT0gMCAmJiBjaGFyYWN0ZXIubGVuZ3RoIDw9IE1BWF9DSEFSQUNURVJfTEVOR1RIO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaXNDaGFyYWN0ZXJWYWxpZDtcbiJdLCJuYW1lcyI6WyJUV09fVElMRV9DSEFSQUNURVJfTEVOR1RIIiwiTUFYX0NIQVJBQ1RFUl9MRU5HVEgiLCJpc0NoYXJhY3RlclZhbGlkIiwiY2hhcmFjdGVyIiwibGVuZ3RoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./src/api/isCharacterValid.ts\n");
113
-
114
- /***/ }),
115
-
116
- /***/ "(api)/./src/api/isRowValid.ts":
117
- /*!*******************************!*\
118
- !*** ./src/api/isRowValid.ts ***!
119
- \*******************************/
120
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
121
-
122
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isCellValid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isCellValid */ \"(api)/./src/api/isCellValid.ts\");\n\nconst isRowValid = (row, config)=>{\n if (row.length !== config.boardWidth) {\n return false;\n }\n for (const cell of row){\n if (!(0,_isCellValid__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(cell, config)) {\n return false;\n }\n }\n return true;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isRowValid);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvYXBpL2lzUm93VmFsaWQudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFd0M7QUFFeEMsTUFBTUMsYUFBYSxDQUFDQyxLQUFpQkM7SUFDbkMsSUFBSUQsSUFBSUUsTUFBTSxLQUFLRCxPQUFPRSxVQUFVLEVBQUU7UUFDcEMsT0FBTztJQUNUO0lBRUEsS0FBSyxNQUFNQyxRQUFRSixJQUFLO1FBQ3RCLElBQUksQ0FBQ0Ysd0RBQVdBLENBQUNNLE1BQU1ILFNBQVM7WUFDOUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPO0FBQ1Q7QUFFQSxpRUFBZUYsVUFBVUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BzY3JhYmJsZS1zb2x2ZXIvc2NyYWJibGUtc29sdmVyLy4vc3JjL2FwaS9pc1Jvd1ZhbGlkLnRzPzRhY2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VsbEpzb24sIENvbmZpZyB9IGZyb20gJ0BzY3JhYmJsZS1zb2x2ZXIvdHlwZXMnO1xuXG5pbXBvcnQgaXNDZWxsVmFsaWQgZnJvbSAnLi9pc0NlbGxWYWxpZCc7XG5cbmNvbnN0IGlzUm93VmFsaWQgPSAocm93OiBDZWxsSnNvbltdLCBjb25maWc6IENvbmZpZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAocm93Lmxlbmd0aCAhPT0gY29uZmlnLmJvYXJkV2lkdGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKGNvbnN0IGNlbGwgb2Ygcm93KSB7XG4gICAgaWYgKCFpc0NlbGxWYWxpZChjZWxsLCBjb25maWcpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpc1Jvd1ZhbGlkO1xuIl0sIm5hbWVzIjpbImlzQ2VsbFZhbGlkIiwiaXNSb3dWYWxpZCIsInJvdyIsImNvbmZpZyIsImxlbmd0aCIsImJvYXJkV2lkdGgiLCJjZWxsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./src/api/isRowValid.ts\n");
123
-
124
- /***/ }),
125
-
126
- /***/ "(api)/./src/pages/api/visit.ts":
127
- /*!********************************!*\
128
- !*** ./src/pages/api/visit.ts ***!
129
- \********************************/
130
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
131
-
132
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @scrabble-solver/logger */ \"(api)/../logger/build/index.js\");\n/* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! api */ \"(api)/./src/api/index.ts\");\n\n\nconst visit = async (request, response)=>{\n const meta = (0,api__WEBPACK_IMPORTED_MODULE_1__.getServerLoggingData)(request);\n try {\n _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0___default().info(\"visit - request\", {\n meta\n });\n response.status(200).send(true);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0___default().error(\"visit - error\", {\n error,\n meta\n });\n response.status(500).send({\n error: \"Server error\",\n message\n });\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (visit);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9zcmMvcGFnZXMvYXBpL3Zpc2l0LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNkM7QUFHRjtBQUUzQyxNQUFNRSxRQUFRLE9BQU9DLFNBQXlCQztJQUM1QyxNQUFNQyxPQUFPSix5REFBb0JBLENBQUNFO0lBRWxDLElBQUk7UUFDRkgsbUVBQVcsQ0FBQyxtQkFBbUI7WUFBRUs7UUFBSztRQUN0Q0QsU0FBU0csTUFBTSxDQUFDLEtBQUtDLElBQUksQ0FBQztJQUM1QixFQUFFLE9BQU9DLE9BQU87UUFDZCxNQUFNQyxVQUFVRCxpQkFBaUJFLFFBQVFGLE1BQU1DLE9BQU8sR0FBRztRQUN6RFYsb0VBQVksQ0FBQyxpQkFBaUI7WUFBRVM7WUFBT0o7UUFBSztRQUM1Q0QsU0FBU0csTUFBTSxDQUFDLEtBQUtDLElBQUksQ0FBQztZQUFFQyxPQUFPO1lBQWdCQztRQUFRO0lBQzdEO0FBQ0Y7QUFFQSxpRUFBZVIsS0FBS0EsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BzY3JhYmJsZS1zb2x2ZXIvc2NyYWJibGUtc29sdmVyLy4vc3JjL3BhZ2VzL2FwaS92aXNpdC50cz9iZjE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2dnZXIgZnJvbSAnQHNjcmFiYmxlLXNvbHZlci9sb2dnZXInO1xuaW1wb3J0IHsgTmV4dEFwaVJlcXVlc3QsIE5leHRBcGlSZXNwb25zZSB9IGZyb20gJ25leHQnO1xuXG5pbXBvcnQgeyBnZXRTZXJ2ZXJMb2dnaW5nRGF0YSB9IGZyb20gJ2FwaSc7XG5cbmNvbnN0IHZpc2l0ID0gYXN5bmMgKHJlcXVlc3Q6IE5leHRBcGlSZXF1ZXN0LCByZXNwb25zZTogTmV4dEFwaVJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRTZXJ2ZXJMb2dnaW5nRGF0YShyZXF1ZXN0KTtcblxuICB0cnkge1xuICAgIGxvZ2dlci5pbmZvKCd2aXNpdCAtIHJlcXVlc3QnLCB7IG1ldGEgfSk7XG4gICAgcmVzcG9uc2Uuc3RhdHVzKDIwMCkuc2VuZCh0cnVlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcic7XG4gICAgbG9nZ2VyLmVycm9yKCd2aXNpdCAtIGVycm9yJywgeyBlcnJvciwgbWV0YSB9KTtcbiAgICByZXNwb25zZS5zdGF0dXMoNTAwKS5zZW5kKHsgZXJyb3I6ICdTZXJ2ZXIgZXJyb3InLCBtZXNzYWdlIH0pO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB2aXNpdDtcbiJdLCJuYW1lcyI6WyJsb2dnZXIiLCJnZXRTZXJ2ZXJMb2dnaW5nRGF0YSIsInZpc2l0IiwicmVxdWVzdCIsInJlc3BvbnNlIiwibWV0YSIsImluZm8iLCJzdGF0dXMiLCJzZW5kIiwiZXJyb3IiLCJtZXNzYWdlIiwiRXJyb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(api)/./src/pages/api/visit.ts\n");
133
-
134
- /***/ }),
135
-
136
- /***/ "(api)/../logger/build/constants.js":
137
- /*!************************************!*\
138
- !*** ../logger/build/constants.js ***!
139
- \************************************/
140
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
141
-
142
- eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OUTPUT_DIRECTORY = void 0;\nconst os_1 = __importDefault(__webpack_require__(/*! os */ \"os\"));\nconst path_1 = __importDefault(__webpack_require__(/*! path */ \"path\"));\nexports.OUTPUT_DIRECTORY = path_1.default.resolve(os_1.default.homedir(), '.scrabble-solver', 'logs');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi4vbG9nZ2VyL2J1aWxkL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4Qiw2QkFBNkIsbUJBQU8sQ0FBQyxjQUFJO0FBQ3pDLCtCQUErQixtQkFBTyxDQUFDLGtCQUFNO0FBQzdDLHdCQUF3QiIsInNvdXJjZXMiOlsid2VicGFjazovL0BzY3JhYmJsZS1zb2x2ZXIvc2NyYWJibGUtc29sdmVyLy4uL2xvZ2dlci9idWlsZC9jb25zdGFudHMuanM/MTc4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuT1VUUFVUX0RJUkVDVE9SWSA9IHZvaWQgMDtcbmNvbnN0IG9zXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIm9zXCIpKTtcbmNvbnN0IHBhdGhfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicGF0aFwiKSk7XG5leHBvcnRzLk9VVFBVVF9ESVJFQ1RPUlkgPSBwYXRoXzEuZGVmYXVsdC5yZXNvbHZlKG9zXzEuZGVmYXVsdC5ob21lZGlyKCksICcuc2NyYWJibGUtc29sdmVyJywgJ2xvZ3MnKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/../logger/build/constants.js\n");
143
-
144
- /***/ }),
145
-
146
- /***/ "(api)/../logger/build/index.js":
147
- /*!********************************!*\
148
- !*** ../logger/build/index.js ***!
149
- \********************************/
150
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
151
-
152
- eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports[\"default\"] = void 0;\nvar logger_1 = __webpack_require__(/*! ./logger */ \"(api)/../logger/build/logger.js\");\nObject.defineProperty(exports, \"default\", ({ enumerable: true, get: function () { return __importDefault(logger_1).default; } }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi4vbG9nZ2VyL2J1aWxkL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWU7QUFDZixlQUFlLG1CQUFPLENBQUMsaURBQVU7QUFDakMsMkNBQTBDLEVBQUUscUNBQXFDLDZDQUE2QyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHNjcmFiYmxlLXNvbHZlci9zY3JhYmJsZS1zb2x2ZXIvLi4vbG9nZ2VyL2J1aWxkL2luZGV4LmpzPzIzNWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgbG9nZ2VyXzEgPSByZXF1aXJlKFwiLi9sb2dnZXJcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBfX2ltcG9ydERlZmF1bHQobG9nZ2VyXzEpLmRlZmF1bHQ7IH0gfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(api)/../logger/build/index.js\n");
153
-
154
- /***/ }),
155
-
156
- /***/ "(api)/../logger/build/logger.js":
157
- /*!*********************************!*\
158
- !*** ../logger/build/logger.js ***!
159
- \*********************************/
160
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
161
-
162
- eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst path_1 = __importDefault(__webpack_require__(/*! path */ \"path\"));\nconst winston_1 = __webpack_require__(/*! winston */ \"winston\");\nconst constants_1 = __webpack_require__(/*! ./constants */ \"(api)/../logger/build/constants.js\");\nconst logger = (0, winston_1.createLogger)({\n level: 'info',\n format: winston_1.format.combine(winston_1.format.timestamp({\n format: 'YYYY-MM-DD HH:mm:ss',\n }), winston_1.format.errors({ stack: true }), winston_1.format.splat(), winston_1.format.json(), winston_1.format.prettyPrint()),\n transports: [\n new winston_1.transports.File({\n filename: path_1.default.resolve(constants_1.OUTPUT_DIRECTORY, 'error.log'),\n level: 'error',\n }),\n new winston_1.transports.File({\n filename: path_1.default.resolve(constants_1.OUTPUT_DIRECTORY, 'all.log'),\n }),\n new winston_1.transports.Console({\n format: winston_1.format.combine(winston_1.format.colorize(), winston_1.format.simple()),\n level: 'error',\n }),\n ],\n});\nexports[\"default\"] = logger;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi4vbG9nZ2VyL2J1aWxkL2xvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELCtCQUErQixtQkFBTyxDQUFDLGtCQUFNO0FBQzdDLGtCQUFrQixtQkFBTyxDQUFDLHdCQUFTO0FBQ25DLG9CQUFvQixtQkFBTyxDQUFDLHVEQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyw2QkFBNkIsYUFBYTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLENBQUM7QUFDRCxrQkFBZSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzY3JhYmJsZS1zb2x2ZXIvc2NyYWJibGUtc29sdmVyLy4uL2xvZ2dlci9idWlsZC9sb2dnZXIuanM/NDA1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHBhdGhfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicGF0aFwiKSk7XG5jb25zdCB3aW5zdG9uXzEgPSByZXF1aXJlKFwid2luc3RvblwiKTtcbmNvbnN0IGNvbnN0YW50c18xID0gcmVxdWlyZShcIi4vY29uc3RhbnRzXCIpO1xuY29uc3QgbG9nZ2VyID0gKDAsIHdpbnN0b25fMS5jcmVhdGVMb2dnZXIpKHtcbiAgICBsZXZlbDogJ2luZm8nLFxuICAgIGZvcm1hdDogd2luc3Rvbl8xLmZvcm1hdC5jb21iaW5lKHdpbnN0b25fMS5mb3JtYXQudGltZXN0YW1wKHtcbiAgICAgICAgZm9ybWF0OiAnWVlZWS1NTS1ERCBISDptbTpzcycsXG4gICAgfSksIHdpbnN0b25fMS5mb3JtYXQuZXJyb3JzKHsgc3RhY2s6IHRydWUgfSksIHdpbnN0b25fMS5mb3JtYXQuc3BsYXQoKSwgd2luc3Rvbl8xLmZvcm1hdC5qc29uKCksIHdpbnN0b25fMS5mb3JtYXQucHJldHR5UHJpbnQoKSksXG4gICAgdHJhbnNwb3J0czogW1xuICAgICAgICBuZXcgd2luc3Rvbl8xLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgICAgICBmaWxlbmFtZTogcGF0aF8xLmRlZmF1bHQucmVzb2x2ZShjb25zdGFudHNfMS5PVVRQVVRfRElSRUNUT1JZLCAnZXJyb3IubG9nJyksXG4gICAgICAgICAgICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyB3aW5zdG9uXzEudHJhbnNwb3J0cy5GaWxlKHtcbiAgICAgICAgICAgIGZpbGVuYW1lOiBwYXRoXzEuZGVmYXVsdC5yZXNvbHZlKGNvbnN0YW50c18xLk9VVFBVVF9ESVJFQ1RPUlksICdhbGwubG9nJyksXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgd2luc3Rvbl8xLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IHdpbnN0b25fMS5mb3JtYXQuY29tYmluZSh3aW5zdG9uXzEuZm9ybWF0LmNvbG9yaXplKCksIHdpbnN0b25fMS5mb3JtYXQuc2ltcGxlKCkpLFxuICAgICAgICAgICAgbGV2ZWw6ICdlcnJvcicsXG4gICAgICAgIH0pLFxuICAgIF0sXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGxvZ2dlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/../logger/build/logger.js\n");
163
-
164
- /***/ })
165
-
166
- };
167
- ;
168
-
169
- // load runtime
170
- var __webpack_require__ = require("../../webpack-api-runtime.js");
171
- __webpack_require__.C(exports);
172
- var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
173
- var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next"], () => (__webpack_exec__("(api)/../../node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fvisit&preferredRegion=&absolutePagePath=.%2Fsrc%2Fpages%2Fapi%2Fvisit.ts&middlewareConfigBase64=e30%3D!")));
174
- module.exports = __webpack_exports__;
175
-
176
- })();
1
+ "use strict";(()=>{var e={};e.id=322,e.ids=[322],e.modules={145:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},7773:e=>{e.exports=require("winston")},2037:e=>{e.exports=require("os")},1017:e=>{e.exports=require("path")},6835:(e,r)=>{Object.defineProperty(r,"l",{enumerable:!0,get:function(){return function e(r,t){return t in r?r[t]:"then"in r&&"function"==typeof r.then?r.then(r=>e(r,t)):"function"==typeof r&&"default"===t?r:void 0}}})},5633:(e,r,t)=>{t.r(r),t.d(r,{config:()=>p,default:()=>d,routeModule:()=>m});var o={};t.r(o),t.d(o,{default:()=>f});var n=t(9150),a=t(1631),i=t(6835),s=t(2954),l=t.n(s),u=t(9927);let f=async(e,r)=>{let t=(0,u.Z)(e);try{l().info("visit - request",{meta:t}),r.status(200).send(!0)}catch(o){let e=o instanceof Error?o.message:"Unknown error";l().error("visit - error",{error:o,meta:t}),r.status(500).send({error:"Server error",message:e})}},d=(0,i.l)(o,"default"),p=(0,i.l)(o,"config"),m=new n.PagesAPIRouteModule({definition:{kind:a.x.PAGES_API,page:"/api/visit",pathname:"/api/visit",bundlePath:"",filename:""},userland:o})},9927:(e,r,t)=>{t.d(r,{Z:()=>o});let o=e=>({origin:e.headers.origin,referer:e.headers.referer,userAgent:e.headers["user-agent"],xForwardedFor:e.headers["x-forwarded-for"],xRealIp:e.headers["x-real-ip"]})},1631:(e,r)=>{var t;Object.defineProperty(r,"x",{enumerable:!0,get:function(){return t}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(t||(t={}))},9150:(e,r,t)=>{e.exports=t(145)},8793:function(e,r,t){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.OUTPUT_DIRECTORY=void 0;let n=o(t(2037)),a=o(t(1017));r.OUTPUT_DIRECTORY=a.default.resolve(n.default.homedir(),".scrabble-solver","logs")},2954:function(e,r,t){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=t(6730);Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o(n).default}})},6730:function(e,r,t){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});let n=o(t(1017)),a=t(7773),i=t(8793),s=(0,a.createLogger)({level:"info",format:a.format.combine(a.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),a.format.errors({stack:!0}),a.format.splat(),a.format.json(),a.format.prettyPrint()),transports:[new a.transports.File({filename:n.default.resolve(i.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new a.transports.File({filename:n.default.resolve(i.OUTPUT_DIRECTORY,"all.log")}),new a.transports.Console({format:a.format.combine(a.format.colorize(),a.format.simple()),level:"error"})]});r.default=s}};var r=require("../../webpack-api-runtime.js");r.C(e);var t=r(r.s=5633);module.exports=t})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../package.json","../../../package.json","../../webpack-api-runtime.js"]}
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/f549d7823f599b8d.css" as="style"/><link rel="stylesheet" href="/_next/static/css/f549d7823f599b8d.css" data-n-g=""/><link rel="preload" href="/_next/static/css/11366b7489cf90ac.css" as="style"/><link rel="stylesheet" href="/_next/static/css/11366b7489cf90ac.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-6e708370ad13b1f9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-8788856de4b1b755.js" defer=""></script><script src="/_next/static/chunks/pages/index-caaf20b2488cb10e.js" defer=""></script><script src="/_next/static/A32z-31QgM-37h8Hpm9f_/_buildManifest.js" defer=""></script><script src="/_next/static/A32z-31QgM-37h8Hpm9f_/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.13.5-alpha.3"},"__N_SSG":true},"page":"/","query":{},"buildId":"A32z-31QgM-37h8Hpm9f_","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>