scrabble-solver 2.18.3 → 2.18.5

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 (188) hide show
  1. package/.nx/workspace-data/d/server-process.json +3 -3
  2. package/.nx/workspace-data/file-map.json +1615 -1582
  3. package/.nx/workspace-data/lockfile-dependencies.hash +1 -1
  4. package/.nx/workspace-data/lockfile-nodes.hash +1 -1
  5. package/.nx/workspace-data/nx_files.nxt +0 -0
  6. package/.nx/workspace-data/parsed-lock-file.dependencies.json +1091 -1156
  7. package/.nx/workspace-data/parsed-lock-file.nodes.json +2038 -2029
  8. package/.nx/workspace-data/project-graph.json +3290 -3338
  9. package/.nx/workspace-data/source-maps.json +44 -8
  10. package/.oxlintrc.json +0 -1
  11. package/CLAUDE.md +10 -8
  12. package/bun.lock +707 -424
  13. package/lerna.json +1 -1
  14. package/package.json +11 -11
  15. package/packages/configs/package.json +3 -3
  16. package/packages/constants/package.json +1 -1
  17. package/packages/dictionaries/bin/update-dictionaries.js +2 -5
  18. package/packages/dictionaries/build/Dictionaries.d.ts +1 -1
  19. package/packages/dictionaries/build/Dictionaries.js +9 -4
  20. package/packages/dictionaries/build/lib/DiskCache.js +1 -1
  21. package/packages/dictionaries/build/lib/downloadDictionary.d.ts +1 -1
  22. package/packages/dictionaries/build/lib/downloadDictionary.js +12 -7
  23. package/packages/dictionaries/package.json +5 -5
  24. package/packages/dictionaries/src/Dictionaries.ts +13 -6
  25. package/packages/dictionaries/src/lib/DiskCache.ts +2 -2
  26. package/packages/dictionaries/src/lib/downloadDictionary.ts +14 -6
  27. package/packages/logger/README.md +18 -0
  28. package/packages/logger/build/constants.d.ts +3 -0
  29. package/packages/logger/build/constants.js +4 -1
  30. package/packages/logger/build/describeError.d.ts +5 -0
  31. package/packages/logger/build/describeError.js +23 -0
  32. package/packages/logger/build/events.d.ts +92 -0
  33. package/packages/logger/build/events.js +13 -0
  34. package/packages/logger/build/formatCsvRow.d.ts +2 -0
  35. package/packages/logger/build/formatCsvRow.js +20 -0
  36. package/packages/logger/build/index.d.ts +5 -1
  37. package/packages/logger/build/index.js +13 -3
  38. package/packages/logger/build/logError.d.ts +4 -0
  39. package/packages/logger/build/logError.js +17 -0
  40. package/packages/logger/build/logEvent.d.ts +3 -0
  41. package/packages/logger/build/logEvent.js +29 -0
  42. package/packages/logger/package.json +7 -8
  43. package/packages/logger/scripts/export-csv.ts +113 -0
  44. package/packages/logger/scripts/readEvents.ts +34 -0
  45. package/packages/logger/scripts/tsconfig.json +10 -0
  46. package/packages/logger/src/constants.ts +9 -0
  47. package/packages/logger/src/describeError.test.ts +44 -0
  48. package/packages/logger/src/describeError.ts +30 -0
  49. package/packages/logger/src/events.ts +103 -0
  50. package/packages/logger/src/formatCsvRow.test.ts +41 -0
  51. package/packages/logger/src/formatCsvRow.ts +24 -0
  52. package/packages/logger/src/index.ts +13 -1
  53. package/packages/logger/src/logError.ts +24 -0
  54. package/packages/logger/src/logEvent.test.ts +59 -0
  55. package/packages/logger/src/logEvent.ts +26 -0
  56. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  57. package/packages/scrabble-solver/.next/build-manifest.json +19 -19
  58. package/packages/scrabble-solver/.next/cache/.previewinfo +1 -1
  59. package/packages/scrabble-solver/.next/cache/.rscinfo +1 -1
  60. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  61. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +2 -2
  62. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  63. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
  64. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  65. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  66. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  67. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  68. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
  69. package/packages/scrabble-solver/.next/diagnostics/framework.json +1 -1
  70. package/packages/scrabble-solver/.next/dynamic-css-manifest.json +1 -1
  71. package/packages/scrabble-solver/.next/next-minimal-server.js.nft.json +1 -1
  72. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
  73. package/packages/scrabble-solver/.next/prerender-manifest.json +4 -4
  74. package/packages/scrabble-solver/.next/react-loadable-manifest.json +6 -6
  75. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  76. package/packages/scrabble-solver/.next/server/chunks/30.js +1 -1
  77. package/packages/scrabble-solver/.next/server/chunks/546.js +1 -1
  78. package/packages/scrabble-solver/.next/server/chunks/612.js +5 -0
  79. package/packages/scrabble-solver/.next/server/chunks/712.js +1 -1
  80. package/packages/scrabble-solver/.next/server/chunks/715.js +1 -0
  81. package/packages/scrabble-solver/.next/server/chunks/853.js +2 -2
  82. package/packages/scrabble-solver/.next/server/chunks/961.js +1 -1
  83. package/packages/scrabble-solver/.next/server/dynamic-css-manifest.js +1 -1
  84. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  85. package/packages/scrabble-solver/.next/server/middleware-react-loadable-manifest.js +1 -1
  86. package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
  87. package/packages/scrabble-solver/.next/server/pages/500.html +2 -2
  88. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  89. package/packages/scrabble-solver/.next/server/pages/_document.js +2 -2
  90. package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
  91. package/packages/scrabble-solver/.next/server/pages/_error.js +1 -1
  92. package/packages/scrabble-solver/.next/server/pages/_error.js.nft.json +1 -1
  93. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +2 -2
  94. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  95. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
  96. package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  97. package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1
  98. package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
  99. package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
  100. package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
  101. package/packages/scrabble-solver/.next/server/pages/api/visit.js +1 -1
  102. package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +1 -1
  103. package/packages/scrabble-solver/.next/server/pages/index.html +2 -2
  104. package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
  105. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  106. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  107. package/packages/scrabble-solver/.next/server/pages/index.meta +1 -0
  108. package/packages/scrabble-solver/.next/server/pages/not-found.html +2 -2
  109. package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.html +29 -0
  110. package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.json +1 -0
  111. package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.meta +1 -0
  112. package/packages/scrabble-solver/.next/static/{8WnIUTe-yJvPD6stltvYI → YHx536pklAqlc9UGAXCj8}/_buildManifest.js +1 -1
  113. package/packages/scrabble-solver/.next/static/chunks/101-fee295c7587c0836.js +3 -0
  114. package/packages/scrabble-solver/.next/static/chunks/{256.6a20b23a766cfebd.js → 256.2a4fa7f278e0a97d.js} +1 -1
  115. package/packages/scrabble-solver/.next/static/chunks/693.d295da7c7b873986.js +1 -0
  116. package/packages/scrabble-solver/.next/static/chunks/827.09f660ca0a951d12.js +1 -0
  117. package/packages/scrabble-solver/.next/static/chunks/980.dd35e807b18063c1.js +1 -0
  118. package/packages/scrabble-solver/.next/static/chunks/framework-988fd6f19d2744e8.js +1 -0
  119. package/packages/scrabble-solver/.next/static/chunks/main-d397eb8af33c5163.js +5 -0
  120. package/packages/scrabble-solver/.next/static/chunks/pages/_app-0c68f165d6de8507.js +1 -0
  121. package/packages/scrabble-solver/.next/static/chunks/pages/index-ea21d96a88f25000.js +1 -0
  122. package/packages/scrabble-solver/.next/static/chunks/{webpack-d7138f1ef6b8c9d6.js → webpack-31879a8fb6dcffd0.js} +1 -1
  123. package/packages/scrabble-solver/.next/static/css/{92f85ce358a0a468.css → 4dbcacc1122ac6b9.css} +1 -1
  124. package/packages/scrabble-solver/.next/static/css/8b8087461767360a.css +1 -0
  125. package/packages/scrabble-solver/.next/static/css/{65bcc9440e067113.css → 98051ed25076b896.css} +1 -1
  126. package/packages/scrabble-solver/.next/trace +22 -22
  127. package/packages/scrabble-solver/.next/trace-build +1 -1
  128. package/packages/scrabble-solver/package.json +18 -18
  129. package/packages/scrabble-solver/public/service-worker.js +1 -1
  130. package/packages/scrabble-solver/src/api/BadRequestError.ts +6 -0
  131. package/packages/scrabble-solver/src/api/index.ts +2 -1
  132. package/packages/scrabble-solver/src/api/withApiLog.ts +85 -0
  133. package/packages/scrabble-solver/src/components/Button/Button.module.scss +1 -1
  134. package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +4 -4
  135. package/packages/scrabble-solver/src/components/Solver/Solver.tsx +2 -2
  136. package/packages/scrabble-solver/src/hooks/useColumns.ts +5 -7
  137. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +2 -2
  138. package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss +1 -1
  139. package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.tsx +2 -2
  140. package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.tsx +2 -2
  141. package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/[word].ts +22 -30
  142. package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/index.ts +36 -42
  143. package/packages/scrabble-solver/src/pages/api/solve.ts +32 -42
  144. package/packages/scrabble-solver/src/pages/api/verify.ts +35 -43
  145. package/packages/scrabble-solver/src/pages/api/visit.ts +38 -13
  146. package/packages/scrabble-solver/src/pages/index.tsx +2 -2
  147. package/packages/scrabble-solver/src/parameters/index.ts +0 -2
  148. package/packages/scrabble-solver/src/sdk/solve.ts +3 -9
  149. package/packages/scrabble-solver/src/sdk/verify.ts +2 -10
  150. package/packages/scrabble-solver/src/sdk/visit.ts +8 -3
  151. package/packages/scrabble-solver/src/state/sagas.ts +7 -1
  152. package/packages/scrabble-solver/src/styles/_tokens.scss +0 -2
  153. package/packages/scrabble-solver/src/styles/mixins.scss +0 -5
  154. package/packages/scrabble-solver/src/styles/variables.module.scss +0 -1
  155. package/packages/scrabble-solver/src/styles/variables.module.scss.d.ts +0 -1
  156. package/packages/scrabble-solver/src/styles/variables.scss +1 -1
  157. package/packages/scrabble-solver/src/types/api.ts +7 -0
  158. package/packages/scrabble-solver/tsconfig.tsbuildinfo +1 -1
  159. package/packages/solver/package.json +6 -6
  160. package/packages/types/package.json +2 -2
  161. package/packages/word-definitions/package.json +3 -3
  162. package/packages/word-lists/package.json +3 -3
  163. package/playwright-report/index.html +6 -6
  164. package/packages/gaddag/build/Gaddag.d.ts +0 -39
  165. package/packages/gaddag/build/Gaddag.js +0 -128
  166. package/packages/gaddag/build/buildGaddag.d.ts +0 -10
  167. package/packages/gaddag/build/buildGaddag.js +0 -360
  168. package/packages/gaddag/build/constants.d.ts +0 -12
  169. package/packages/gaddag/build/constants.js +0 -15
  170. package/packages/gaddag/build/index.d.ts +0 -3
  171. package/packages/gaddag/build/index.js +0 -13
  172. package/packages/logger/build/logger.d.ts +0 -1
  173. package/packages/logger/build/logger.js +0 -28
  174. package/packages/logger/scripts/stats.js +0 -73
  175. package/packages/logger/src/logger.ts +0 -30
  176. package/packages/scrabble-solver/.next/server/chunks/392.js +0 -1
  177. package/packages/scrabble-solver/.next/static/chunks/101-829ab8a8d310e7a0.js +0 -3
  178. package/packages/scrabble-solver/.next/static/chunks/693.677c88e0eb1340b5.js +0 -1
  179. package/packages/scrabble-solver/.next/static/chunks/827.c81b92b383a748c9.js +0 -1
  180. package/packages/scrabble-solver/.next/static/chunks/980.7ce17464fc56648a.js +0 -1
  181. package/packages/scrabble-solver/.next/static/chunks/framework-626cbd48ac5aca57.js +0 -1
  182. package/packages/scrabble-solver/.next/static/chunks/main-7e52da35a4beea0b.js +0 -5
  183. package/packages/scrabble-solver/.next/static/chunks/pages/_app-e3fe880e24c024ab.js +0 -1
  184. package/packages/scrabble-solver/.next/static/chunks/pages/index-b073a1686818dd26.js +0 -1
  185. package/packages/scrabble-solver/.next/static/css/a691348b788f8bc0.css +0 -1
  186. package/packages/scrabble-solver/src/api/getServerLoggingData.ts +0 -17
  187. package/packages/scrabble-solver/src/hooks/useIsCompactLayout.ts +0 -14
  188. /package/packages/scrabble-solver/.next/static/{8WnIUTe-yJvPD6stltvYI → YHx536pklAqlc9UGAXCj8}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- exports.id=712,exports.ids=[712],exports.modules={674:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{M:()=>v});var e=c(69198),f=c(68455),g=c(54283),h=c(15226),i=c(84411),j=c(48736),k=c(14703),l=c(85131),m=c(98892),n=c(28245),o=c(26096),p=c(79194),q=c(32535),r=c(73407),s=c(69347),t=a([e,f,g,h,i,j,k,l,m,n,o,q,r,s,p]);[e,f,g,h,i,j,k,l,m,n,o,q,r,s,p]=t.then?(await t)():t;let u=(0,f.default)(),v=(0,e.configureStore)({reducer:{app:g.A.reducer,board:h.h.reducer,cellFilters:i.g.reducer,dictionary:j.z.reducer,hoveredTile:k.w.reducer,hoveredWord:l.Y.reducer,i18n:m.v.reducer,rack:n.o.reducer,results:o.N.reducer,settings:q.s.reducer,solve:r.A.reducer,verify:s.Y.reducer},middleware:a=>a({serializableCheck:!1}).concat([u])});u.run(p.H),d()}catch(a){d(a)}})},2827:(a,b,c)=>{"use strict";c.d(b,{P:()=>f,Z:()=>h});var d=c(97616);let e=JSON.parse('{"cell.enter-word":"Enter word","cell.filter-cell.exclude":"Exclude destination","cell.filter-cell.include":"Target destination","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile {{coordinates}}","cell.toggle-direction":"Typing direction","common.arrows":"Arrow keys","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.off":"Off","common.on":"On","common.points":"Points","common.previous":"Previous","common.space":"Spacebar","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Word definition will be shown here.","dictionary.input.placeholder":"Search dictionary…","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-cell-filter":"Toggle destination filter","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Solve","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","rack.touchscreen.placeholder":"Letters…","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.preview":"Preview","results.select":"Select...","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.highlightUnreachableCells":"Highlight unreachable cells","settings.inputMode":"Input mode","settings.inputMode.keyboard":"Keyboard","settings.inputMode.touchscreen":"Touchscreen","settings.language":"Language","settings.removeCellFilters":"Automatically remove filters from board","settings.removeCellFilters.always":"Always","settings.removeCellFilters.never":"Never","settings.showCoordinates":"Coordinates","settings.showCoordinates.alternative":"Alternative","settings.showCoordinates.original":"Original","words":"Created words","words.empty-state.no-words":"No created words - the board is empty.","words.input.placeholder":"Search words... (RegExp)","words.invalid":"Invalid","words.preview":"Preview","words.valid":"Valid","words.validity":"Validity"}'),f=e,g={[d.Locale.DE_DE]:async()=>(await c.e(371).then(c.t.bind(c,17371,19))).default,[d.Locale.EN_GB]:async()=>e,[d.Locale.EN_US]:async()=>e,[d.Locale.ES_ES]:async()=>(await c.e(953).then(c.t.bind(c,79953,19))).default,[d.Locale.FA_IR]:async()=>(await c.e(309).then(c.t.bind(c,94309,19))).default,[d.Locale.FR_FR]:async()=>(await c.e(846).then(c.t.bind(c,99465,19))).default,[d.Locale.PL_PL]:async()=>(await c.e(886).then(c.t.bind(c,74886,19))).default,[d.Locale.RO_RO]:async()=>(await c.e(344).then(c.t.bind(c,63344,19))).default,[d.Locale.TR_TR]:async()=>(await c.e(465).then(c.t.bind(c,73465,19))).default},h=a=>g[a]()},5712:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>n});var e=c(8732),f=c(38849),g=c(99247),h=c.n(g),i=c(14062),j=c(96768),k=c(674);c(84426);var l=a([f,i,k]);[f,i,k]=l.then?(await l)():l;let m="Scrabble Solver 2 - Board Solver & Word Finder",n=({Component:a,pageProps:b,router:c})=>{let d="/"===c.pathname;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(h(),{children:[(0,e.jsx)("title",{children:m}),(0,e.jsx)("meta",{charSet:"utf-8"}),(0,e.jsx)("meta",{name:"author",content:"Kamil Mielnik"}),(0,e.jsx)("meta",{name:"description",content:j.b2}),d?(0,e.jsx)("link",{rel:"canonical",href:`${j.W6}/`}):(0,e.jsx)("meta",{name:"robots",content:"noindex"}),(0,e.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),(0,e.jsx)("meta",{property:"og:site_name",content:"Scrabble Solver"}),(0,e.jsx)("meta",{property:"og:title",content:m}),(0,e.jsx)("meta",{property:"og:description",content:j.b2}),(0,e.jsx)("meta",{property:"og:type",content:"website"}),(0,e.jsx)("meta",{property:"og:url",content:`${j.W6}/`}),(0,e.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,e.jsx)("meta",{property:"og:image",content:`${j.W6}/og.png`}),(0,e.jsx)("meta",{property:"og:image:type",content:"image/png"}),(0,e.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,e.jsx)("meta",{property:"og:image:height",content:"630"}),(0,e.jsx)("meta",{property:"og:image:alt",content:"Scrabble tiles spelling out Scrabble Solver 2"}),(0,e.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,e.jsx)("meta",{name:"twitter:title",content:m}),(0,e.jsx)("meta",{name:"twitter:description",content:j.b2}),(0,e.jsx)("meta",{name:"twitter:image",content:`${j.W6}/og.png`})]}),(0,e.jsx)(i.Provider,{store:k.M,children:(0,e.jsx)(f.FloatingDelayGroup,{delay:0,children:(0,e.jsx)(a,{...b})})})]})};d()}catch(a){d(a)}})},10623:(a,b,c)=>{"use strict";c.d(b,{n:()=>d});let d=(a,b)=>a.length===b.length&&a.every((a,c)=>a===b[c])},11117:(a,b,c)=>{"use strict";c.d(b,{u:()=>d});let d={error:void 0,input:"",isLoading:!1,results:[]}},13681:(a,b,c)=>{"use strict";c.d(b,{x:()=>f});var d=c(97616);let e=async(a,b)=>{let c;try{c=await window.fetch(a,b)}catch(b){let a=(0,d.isError)(b)?b.message:"Unknown error";throw Error(`Network error: ${a}`)}if(c.ok)return c;{let a=await c.json();if((0,d.isError)(a))throw Error(a.message)}throw Error(`HTTP ${c.status}: ${c.statusText}`)},f=async(a,b)=>{let c=new Headers(b?.headers);return c.set("Content-Type","application/json"),(await e(a,{...b,headers:c})).json()}},14703:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{w:()=>h});var e=c(69198),f=c(17312),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.z,name:"hoveredTile",reducers:{set:(a,b)=>{a.character=b.payload},clear:a=>{a.character=null}}});d()}catch(a){d(a)}})},14887:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{f:()=>h,o:()=>g});var e=c(69198),f=a([e]);e=(f.then?(await f)():f)[0];let g=a=>a.cellFilters,h=(0,e.createSelector)([g,(a,b)=>b],(a,b)=>a.find(a=>a.x===b.x&&a.y===b.y));d()}catch(a){d(a)}})},15226:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{h:()=>l});var e=c(69198),f=c(38454),g=c(57472),h=c(97616),i=c(32535),j=c(83491),k=a([e,j,i]);[e,j,i]=k.then?(await k)():k;let l=(0,e.createSlice)({initialState:j._,name:"board",reducers:{applyResult:(a,b)=>{let c=a.clone();return b.payload.cells.forEach(a=>{c.updateCell(a.x,a.y,()=>new h.Cell({isEmpty:!1,tile:a.tile,x:a.x,y:a.y}))}),c},change:(a,b)=>b.payload,changeCellValue:(a,b)=>{let c=a.clone(),{value:d,x:e,y:f}=b.payload,i=!d||d===g.EMPTY_CELL,j=i?h.Tile.Null:new h.Tile({character:d});return c.updateCell(e,f,a=>new h.Cell({isEmpty:i,tile:j,x:a.x,y:a.y})),c},init:(a,b)=>b.payload,toggleCellIsBlank:(a,b)=>{let c=a.clone(),{x:d,y:e}=b.payload;return c.updateCell(d,e,a=>{let b=a.isEmpty?a.tile:new h.Tile({isBlank:!a.tile.isBlank,character:a.tile.character});return new h.Cell({isEmpty:a.isEmpty,tile:b,x:a.x,y:a.y})}),c}},extraReducers:a=>{a.addCase(i.s.actions.changeGame,(a,b)=>{let c=b.payload,d=Object.values(f.games).find(a=>a.game===c);if(!d)throw Error(`Cannot find config for game "${c}"`);if(a.rows.length!==d.boardHeight||a.rows[0].length!==d.boardWidth){let b=h.Board.create(d.boardWidth,d.boardHeight),c=Math.floor(d.boardWidth/2)-Math.floor(a.rows[0].length/2),e=Math.floor(d.boardHeight/2)-Math.floor(a.rows.length/2);for(let f=0;f<a.rows.length;++f)for(let g=0;g<a.rows[f].length;++g){let i=a.rows[f][g];if(i.isEmpty)continue;let j=g+c,k=f+e;j<0||j>=d.boardWidth||k<0||k>=d.boardHeight||b.updateCell(j,k,()=>new h.Cell({...i,x:j,y:k}))}return b}return a})}});d()}catch(a){d(a)}})},16202:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$:()=>h,I:()=>g});var e=c(38454),f=c(71528);let a=(0,e.getConfig)(f.n.game,f.n.locale),g=Array(a.rackSize).fill(null),h=g;d()}catch(a){d(a)}})},16375:(a,b,c)=>{"use strict";c.d(b,{C:()=>f});var d=c(97616),e=c(13681);let f=async(a,b)=>(await (0,e.x)(`/api/dictionary/${a}/${encodeURIComponent(b)}`)).map(d.WordDefinition.fromJson)},17312:(a,b,c)=>{"use strict";c.d(b,{z:()=>d});let d={character:null}},17568:(a,b,c)=>{"use strict";c.d(b,{_:()=>e});var d=c(57472);let e=(a,b)=>{let c=[...b];return a.map(a=>{let b=c.findIndex(b=>a===d.BLANK?b.isBlank:a===b.character);if(b>=0){let d=c[b];return c=[...c.slice(0,b),...c.slice(b+1)],{character:a,tile:d}}return{character:a,tile:null}})}},17791:(a,b,c)=>{"use strict";c.d(b,{L:()=>n});var d=c(97616),e=c(96481),f=c.n(e),g=c(2827);let h="board",i="rack",j="settings",k="translations",l={autoGroupTiles:"auto-group-tiles",game:"config-id",highlightUnreachableCells:"highlight-unreachable-cells",inputMode:"input-mode",locale:"locale",removeCellFilters:"remove-cell-filters",showCoordinates:"show-coordinates"},m=f().namespace("scrabble-solver"),n={getBoard(){try{let a=m.get(h);return a?d.Board.fromJson(JSON.parse(a)):void 0}catch{m.remove(h);return}},setBoard(a){let b=a?JSON.stringify(a.toJson()):a;m.set(h,b,!0)},getRack(){let a=m.get(i);return void 0===a||Array.isArray(a)?a:void m.remove(i)},setRack(a){m.set(i,a,!0)},getSettings(){let a=m.get(j);return void 0===a||(0,d.isObject)(a)||m.remove(j),function(a){if("hidden"!==String(a.showCoordinates))return a;let b={...a,showCoordinates:"original"};return m.set(j,b,!0),b}((0,d.isObject)(a)?a:function(){let a={},b=!1;for(let[c,d]of Object.entries(l))m.has(d)&&(a[c]=m.get(d),m.remove(d),b=!0);return b&&m.set(j,a,!0),a}())},setSettings(a){m.set(j,a,!0)},getTranslations(a,b){let c=m.get(k);if(void 0!==c){var e;return(0,d.isObject)(c)&&c.locale===a&&c.version===b&&(0,d.isObject)(c.translations)&&(e=c.translations,Object.keys(g.P).every(a=>"string"==typeof e[a]))?c.translations:void m.remove(k)}},setTranslations(a,b,c){m.set(k,{locale:a,translations:c,version:b},!0)}}},20904:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{c:()=>h,n:()=>g});var e=c(69198),f=a([e]);e=(f.then?(await f)():f)[0];let g=(0,e.createAction)("initialize"),h=(0,e.createAction)("reset");d()}catch(a){d(a)}})},22672:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{T:()=>g});var e=c(83491),f=a([e]);e=(f.then?(await f)():f)[0];let g={error:void 0,isLoading:!1,lastSolvedParameters:{board:e._,characters:[]}};d()}catch(a){d(a)}})},26096:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{N:()=>i});var e=c(69198),f=c(90736),g=c(49053),h=a([e]);e=(h.then?(await h)():h)[0];let i=(0,e.createSlice)({initialState:g.i,name:"results",reducers:{applyResult:(a,b)=>g.i,changeQuery:(a,b)=>{let c=b.payload;return{...a,query:c}},changeResultCandidate:(a,b)=>{let c=b.payload;return c===a.candidate?a:{...a,candidate:c}},changeResults:(a,b)=>{let c=b.payload;return{...a,candidate:g.i.candidate,query:g.i.query,results:c}},sort:(a,b)=>({...a,sort:(0,f.O)(a.sort,b.payload)}),reset:()=>g.i}});d()}catch(a){d(a)}})},28245:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{o:()=>l});var e=c(69198),f=c(10623),g=c(98260),h=c(55958),i=c(17568),j=c(16202),k=a([e,j]);[e,j]=k.then?(await k)():k;let l=(0,e.createSlice)({initialState:j.$,name:"rack",reducers:{changeCharacter:(a,b)=>{let{character:c,index:d}=b.payload;return[...a.slice(0,d),c,...a.slice(d+1)]},changeCharacters:(a,b)=>{let{characters:c,index:d}=b.payload;if(0===c.length)return a;let e=a.length;return[...a.slice(0,d),...c,...a.slice(d+c.length)].slice(0,e)},groupTiles:(a,b)=>{if(null===b.payload)return a;let c=(0,g.O)((0,h.G)(b.payload)),d=[...a].sort(c);return(0,f.n)(a,d)?a:d},init:(a,b)=>(0,f.n)(a,b.payload)?a:b.payload,removeTiles:(a,b)=>{let c=b.payload;return(0,i._)(a,c).map(({character:a,tile:b})=>b?null:a)},reset:()=>j.I}});d()}catch(a){d(a)}})},29024:(a,b,c)=>{"use strict";c.d(b,{g:()=>e});var d=c(97616);let e=()=>{if(!globalThis.navigator)return d.Locale.EN_US;let a=globalThis.navigator.languages;if(a.includes("pl")||a.includes("pl-PL"))return d.Locale.PL_PL;if(a.includes("en-GB"))return d.Locale.EN_GB;if(a.includes("fa")||a.includes("fa-IR"))return d.Locale.FA_IR;if(a.includes("fr-FR"))return d.Locale.FR_FR;if(a.includes("ro")||a.includes("ro-RO"))return d.Locale.RO_RO;let b=Object.values(d.Locale),c=b.find(a=>globalThis.navigator.language===String(a));return c||(b.find(a=>globalThis.navigator.language===a.substring(0,2))??d.Locale.EN_US)}},29365:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{i:()=>g,x:()=>h});var e=c(69198),f=a([e]);e=(f.then?(await f)():f)[0];let g=a=>a.rack,h=(0,e.createSelector)(g,a=>a.filter(a=>null!==a));d()}catch(a){d(a)}})},31635:(a,b,c)=>{"use strict";c.d(b,{B:()=>d});let d=a=>{let b=[],c=a=>b.find(b=>e(b.parameters,a))?.result;return Object.assign((...d)=>{let f=c(d);if(f)return f;let g=a(...d);return g instanceof Promise&&g.catch(()=>{let a;(a=b.findIndex(a=>e(a.parameters,d)))>=0&&b.splice(a,1)}),b.push({parameters:d,result:g}),g},{hasCache:(...a)=>!!c(a)})},e=(a,b)=>a.length===b.length&&a.every((a,c)=>a===b[c])},32535:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{s:()=>h});var e=c(69198),f=c(71528),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.n,name:"settings",reducers:{changeAutoGroupTiles:(a,b)=>{let c=b.payload;return{...a,autoGroupTiles:c}},changeGame:(a,b)=>{let c=b.payload;return{...a,game:c}},changeHighlightUnreachableCells:(a,b)=>{let c=b.payload;return{...a,highlightUnreachableCells:c}},changeInputMode:(a,b)=>{let c=b.payload;return{...a,inputMode:c}},changeLocale:(a,b)=>{let c=b.payload;return{...a,locale:c}},changeShowCoordinates:(a,b)=>{let c=b.payload;return{...a,showCoordinates:c}},changeRemoveCellFilters:(a,b)=>{let c=b.payload;return{...a,removeCellFilters:c}},init:(a,b)=>{let c={...a,...b.payload};return Object.keys(c).some(b=>c[b]!==a[b])?c:a}}});d()}catch(a){d(a)}})},34428:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{L:()=>h});var e=c(38741),f=c(83491),g=a([f]);f=(g.then?(await g)():g)[0];let h={isLoading:!1,lastSolvedParameters:{board:f._},invalidWords:[],query:"",sort:{column:e.mh.Word,direction:e.UE.Ascending},validWords:[]};d()}catch(a){d(a)}})},38741:(a,b,c)=>{"use strict";c.d(b,{NN:()=>h,UE:()=>g,mh:()=>i});var d,e,f,g=((d={}).Ascending="ascending",d.Descending="descending",d),h=((e={}).BlanksCount="blanks-count",e.ConsonantsCount="consonants-count",e.Coordinates="coordinates",e.Points="points",e.TilesCount="tiles-count",e.VowelsCount="vowels-count",e.Word="word",e.WordsCount="words-count",e),i=((f={}).Coordinates="coordinates",f.Validity="validity",f.Word="word",f)},38744:(a,b,c)=>{"use strict";c.d(b,{W:()=>d});let d=a=>a.i18n.translations},48475:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{JV:()=>s,QN:()=>r,Vv:()=>p,fF:()=>y,fy:()=>w,hN:()=>u,i0:()=>n,sE:()=>x,u2:()=>t,u_:()=>q,up:()=>o,yI:()=>z,zg:()=>v});var e=c(69198),f=c(38454),g=c(57472),h=c(91891),i=c(2827),j=c(38744),k=a([e]);e=(k.then?(await k)():k)[0];let l=(a,b)=>b,m=(a,b)=>b,n=a=>a.settings,o=(0,e.createSelector)([n],a=>a.autoGroupTiles),p=(0,e.createSelector)([n],a=>a.game),q=(0,e.createSelector)([n],a=>a.highlightUnreachableCells),r=(0,e.createSelector)([n],a=>a.inputMode),s=(0,e.createSelector)([n],a=>a.locale),t=(0,e.createSelector)([s,n],(a,b)=>"ltr"===h.x[a].direction||null===b.autoGroupTiles?b.autoGroupTiles:"left"===b.autoGroupTiles?"right":"left"),u=(0,e.createSelector)([n],a=>a.showCoordinates),v=(0,e.createSelector)([p,s],f.getConfig),w=(0,e.createSelector)([v,m],(a,b)=>a.getCharacterPoints(b)),x=(0,e.createSelector)([v,m],(a,b)=>null===b||b===g.BLANK||a.tiles.some(a=>a.character===b));(0,e.createSelector)([v,l],(a,b)=>a.getCellBonus(b)),(0,e.createSelector)([v,(a,b)=>b],(a,b)=>a.getTilePoints(b)),(0,e.createSelector)([v,l],(a,b)=>!b.hasTile()||a.tiles.some(a=>a.character===b.tile.character));let y=(0,e.createSelector)([s,j.W],(a,b)=>b[a]??i.P),z=(0,e.createSelector)([n],a=>a.removeCellFilters);d()}catch(a){d(a)}})},48736:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{z:()=>h});var e=c(69198),f=c(11117),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.u,name:"dictionary",reducers:{changeInput:(a,b)=>({...a,input:b.payload}),reset:()=>f.u,submit:a=>{let b=f.u.error,c=f.u.results;return{...a,error:b,isLoading:!0,results:c}},submitFailure:(a,b)=>{let c=b.payload,d=f.u.results;return{...a,error:c,isLoading:!1,results:d}},submitSuccess:(a,b)=>{let c=f.u.error,d=b.payload;return{...a,error:c,isLoading:!1,results:d}}}});d()}catch(a){d(a)}})},49053:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});var d=c(38741);let e={candidate:null,query:"",results:void 0,sort:{column:d.NN.Points,direction:d.UE.Descending}}},54283:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>i});var e=c(69198),f=c(20904),g=c(89540),h=a([e,f]);[e,f]=h.then?(await h)():h;let i=(0,e.createSlice)({initialState:g.H,name:"app",reducers:{hydrated:a=>{a.isHydrated=!0}},extraReducers:a=>{a.addCase(f.n,(a,b)=>{a.version=b.payload.version})}});d()}catch(a){d(a)}})},54820:(a,b,c)=>{"use strict";c.d(b,{z:()=>d});let d={word:null}},55958:(a,b,c)=>{"use strict";c.d(b,{G:()=>d});let d=a=>"left"===a?"right":"left"},57472:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.VOWELS=b.CONSONANTS=b.NO_BONUS=b.EMPTY_CELL=b.BONUS_WORD=b.BONUS_CHARACTER=b.BLANK=b.COMMA_LATIN=b.COMMA_ARABIC=void 0,b.COMMA_ARABIC="،",b.COMMA_LATIN=",",b.BLANK=" ",b.BONUS_CHARACTER="BONUS_CHARACTER",b.BONUS_WORD="BONUS_WORD",b.EMPTY_CELL=" ",b.NO_BONUS={characterMultiplier:1,wordMultiplier:1},b.CONSONANTS="bc\xe7ćdfgğhjklłmnń\xf1pqrsşśtvwxzźż".split(""),b.VOWELS="aą\xe4eęio\xf3\xf6u\xfcyı".split("")},60145:(a,b,c)=>{"use strict";c.d(b,{q:()=>d});let d={translations:{}}},68209:(a,b,c)=>{"use strict";c.d(b,{M:()=>f});var d=c(83571),e=c(13681);let f=async({board:a,game:b,locale:c})=>{let f={board:a,game:b,locale:c};return await (0,d.cv)(f)??(0,e.x)("/api/verify",{method:"POST",body:JSON.stringify(f)})}},69347:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>i});var e=c(69198),f=c(90736),g=c(34428),h=a([e,g]);[e,g]=h.then?(await h)():h;let i=(0,e.createSlice)({initialState:g.L,name:"verify",reducers:{submit:a=>({...a,isLoading:!0}),changeQuery:(a,b)=>({...a,query:b.payload}),submitFailure:a=>({...a,isLoading:!1}),sort:(a,b)=>({...a,sort:(0,f.O)(a.sort,b.payload)}),submitSuccess:(a,b)=>{let{board:c,invalidWords:d,validWords:e}=b.payload;return{...a,isLoading:!1,lastSolvedParameters:{board:c},invalidWords:d,validWords:e}}}});d()}catch(a){d(a)}})},71528:(a,b,c)=>{"use strict";c.d(b,{n:()=>e});var d=c(97616);let e={autoGroupTiles:null,game:d.Game.Scrabble,highlightUnreachableCells:!1,inputMode:"keyboard",locale:d.Locale.EN_US,removeCellFilters:"always",showCoordinates:"original"}},73407:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>h});var e=c(69198),f=c(22672),g=a([e,f]);[e,f]=g.then?(await g)():g;let h=(0,e.createSlice)({initialState:f.T,name:"solve",reducers:{reset:()=>f.T,submit:a=>{let b=f.T.error;return{...a,error:b,isLoading:!0}},submitFailure:(a,b)=>{let c=b.payload;return{...a,error:c,isLoading:!1}},submitSuccess:(a,b)=>{let c=f.T.error,d=b.payload;return{...a,error:c,isLoading:!1,lastSolvedParameters:d}}}});d()}catch(a){d(a)}})},73495:(a,b,c)=>{"use strict";c.d(b,{M:()=>d,f:()=>e});let d=a=>a.app.isHydrated,e=a=>a.app.version},79194:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H:()=>N});var e=c(38454),f=c(97616),g=c(18314),h=c(91891),i=c(2827),j=c(31635),k=c(94254),l=c(16375),m=c(91679),n=c(83531),o=c(68209),p=c(83571),q=c(20904),r=c(54283),s=c(73495),t=c(15226),u=c(91282),v=c(14887),w=c(84411),x=c(48736),y=c(84932),z=c(85131),A=c(98892),B=c(38744),C=c(17791),D=c(28245),E=c(29365),F=c(26096),G=c(32535),H=c(48475),I=c(71528),J=c(29024),K=c(73407),L=c(69347),M=a([g,t,D,F,z,G,x,q,K,L,v,w,H,E,y,r,A]);[g,t,D,F,z,G,x,q,K,L,v,w,H,E,y,r,A]=M.then?(await M)():M;let ae=(0,j.B)(l.C);function*N(){yield(0,g.takeEvery)(t.h.actions.changeCellValue.type,O),yield(0,g.takeEvery)([D.o.actions.changeCharacter.type,D.o.actions.changeCharacters.type],P),yield(0,g.takeEvery)(F.N.actions.applyResult.type,Q),yield(0,g.takeLatest)(F.N.actions.changeResultCandidate.type,$),yield(0,g.takeLatest)([z.Y.actions.set.type,z.Y.actions.clear.type],_),yield(0,g.takeEvery)(G.s.actions.changeGame.type,R),yield(0,g.takeEvery)(G.s.actions.changeLocale.type,Z),yield(0,g.takeLatest)(x.z.actions.submit.type,S),yield(0,g.takeLatest)(q.n.type,T),yield(0,g.takeLatest)(q.c.type,Y),yield(0,g.takeLatest)(K.A.actions.submit.type,ab),yield(0,g.takeLatest)(L.Y.actions.submit.type,ac)}function*O({payload:a}){(yield(0,g.select)(b=>(0,v.f)(b,a)))&&(yield(0,g.put)(w.g.actions.cancel(a))),yield(0,g.put)(F.N.actions.changeResultCandidate(null)),yield(0,g.put)(z.Y.actions.clear()),yield(0,g.put)(L.Y.actions.submit())}function*P(){yield(0,g.put)(F.N.actions.changeResultCandidate(null))}function*Q({payload:a}){let b=yield(0,g.select)(H.u2),c=yield(0,g.select)(H.yI);yield(0,g.put)(t.h.actions.applyResult(a)),"never"===c?yield(0,g.put)(w.g.actions.removeCells(a.cells)):yield(0,g.put)(w.g.actions.reset()),yield(0,g.put)(D.o.actions.removeTiles(a.tiles)),yield(0,g.put)(D.o.actions.groupTiles(b)),yield(0,g.put)(L.Y.actions.submit())}function*R(){(yield(0,g.select)(E.x)).length>0?yield(0,g.put)(K.A.actions.submit()):yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(z.Y.actions.clear()),yield*ad(),yield(0,g.put)(L.Y.actions.submit())}function*S(){let{input:a}=yield(0,g.select)(y.Tx),b=yield(0,g.select)(H.JV);ae.hasCache(b,a)||(yield(0,g.delay)(150));try{let c=yield(0,g.call)(ae,b,a),{input:d}=yield(0,g.select)(y.Tx);a===d&&(yield(0,g.put)(x.z.actions.submitSuccess(c)))}catch(c){let{input:b}=yield(0,g.select)(y.Tx);a===b&&(yield(0,g.put)(x.z.actions.submitFailure(c)))}}function*T({payload:a}){try{yield*function*(a){let b=globalThis.matchMedia?.("(hover: none)").matches??!1,c={game:I.n.game,inputMode:b?"touchscreen":"keyboard",locale:(0,J.g)(),...C.L.getSettings()};if(!(0,e.hasConfig)(c.game,c.locale)){let a=Object.values(e.languages).find(a=>a.locale===c.locale);c.game=a?.game??I.n.game,c.locale=a?.locale??(0,J.g)()}yield(0,g.put)(G.s.actions.init(c)),yield*function*(a,b){let c=C.L.getTranslations(a,b);c&&(yield(0,g.put)(A.v.actions.loaded({locale:a,translations:c})))}(c.locale,a);let d=yield(0,g.select)(H.zg),h=yield(0,g.select)(u.p),i=C.L.getBoard();i?yield(0,g.put)(t.h.actions.init(i)):(h.rows.length!==d.boardHeight||h.rows[0].length!==d.boardWidth)&&(yield(0,g.put)(t.h.actions.init(f.Board.create(d.boardWidth,d.boardHeight))));let j=yield(0,g.select)(E.i),k=C.L.getRack();k?yield(0,g.put)(D.o.actions.init(k)):j.length!==d.rackSize&&(yield(0,g.put)(D.o.actions.init(Array(d.rackSize).fill(null))))}(a.version)}catch{}finally{yield(0,g.put)(r.A.actions.hydrated())}let b=yield(0,g.select)(u.p),c=yield(0,g.select)(H.JV);yield(0,g.spawn)(V),yield(0,g.spawn)(W,c),yield(0,g.spawn)(X),yield(0,g.spawn)(U),b.isEmpty()||(yield*ad(),yield(0,g.put)(L.Y.actions.submit()))}function*U(){yield(0,g.call)(k.cH),yield(0,g.call)(m.Y)}function*V(){yield(0,g.call)(k.j7);let a=yield(0,g.select)(H.JV);yield(0,g.call)(p.W3,a)}function*W(a){if((yield(0,g.select)(B.W))[a])return;let b=yield(0,g.call)(i.Z,a);yield(0,g.put)(A.v.actions.loaded({locale:a,translations:b}));let c=yield(0,g.select)(H.JV);if(a===c){let c=yield(0,g.select)(s.f);C.L.setTranslations(a,c,b)}}function*X(){for(let a of(yield(0,g.call)(k.cH),Object.values(f.Locale)))yield(0,g.spawn)(W,a)}function*Y(){let a=yield(0,g.select)(H.zg);yield(0,g.put)(t.h.actions.init(f.Board.create(a.boardWidth,a.boardHeight))),yield(0,g.put)(w.g.actions.reset()),yield(0,g.put)(x.z.actions.reset()),yield(0,g.put)(z.Y.actions.clear()),yield(0,g.put)(D.o.actions.reset()),yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(K.A.actions.reset()),yield(0,g.put)(L.Y.actions.submit())}function*Z({payload:a}){yield(0,g.spawn)(W,a),yield(0,g.spawn)(p.W3,a),yield*function*(a){let b=yield(0,g.select)(B.W),c=yield(0,g.select)(s.f);b[a]&&C.L.setTranslations(a,c,b[a])}(a);let b=yield(0,g.select)(H.Vv);if(!(0,e.hasConfig)(b,a)){let b=Object.values(e.languages).find(b=>b.locale===a);b&&(yield(0,g.put)(G.s.actions.changeGame(b.game)))}(yield(0,g.select)(E.x)).length>0?yield(0,g.put)(K.A.actions.submit()):yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(x.z.actions.reset()),yield(0,g.put)(z.Y.actions.clear()),yield(0,g.put)(F.N.actions.changeResultCandidate(null)),yield(0,g.put)(L.Y.actions.submit())}function*$({payload:a}){a&&(yield(0,g.put)(z.Y.actions.clear()),yield*aa(a.words))}function*_({payload:a}){if(!a)return;yield(0,g.put)(F.N.actions.changeResultCandidate(null));let b=(yield(0,g.select)(u.p)).getCollidingWords(a);yield*aa([a.word,...b.map(a=>a.word)])}function*aa(a){let b=yield(0,g.select)(H.JV),c=Array.from(new Set(a)).join(h.x[b].separator);ae.hasCache(b,c)||(yield(0,g.delay)(150)),yield(0,g.put)(x.z.actions.changeInput(c)),yield(0,g.put)(x.z.actions.submit())}function*ab(){let a=yield(0,g.select)(u.p),{config:b}=yield(0,g.select)(H.zg),c=yield(0,g.select)(H.JV),d=yield(0,g.select)(E.x);if(0===d.length){yield(0,g.put)(K.A.actions.submitSuccess({board:a,characters:d})),yield(0,g.put)(F.N.actions.changeResults([]));return}try{let e=yield(0,g.call)(n.k,{board:a.toJson(),characters:d,game:b.game,locale:c});yield(0,g.put)(F.N.actions.changeResults(e)),yield(0,g.put)(K.A.actions.submitSuccess({board:a,characters:d}))}catch(a){yield(0,g.put)(F.N.actions.changeResults([])),yield(0,g.put)(K.A.actions.submitFailure(a))}}function*ac(){yield(0,g.delay)(150);let a=yield(0,g.select)(u.p),{config:b}=yield(0,g.select)(H.zg),c=yield(0,g.select)(H.JV);try{let{invalidWords:d,validWords:e}=yield(0,g.call)(o.M,{board:a.toJson(),game:b.game,locale:c});yield(0,g.put)(L.Y.actions.submitSuccess({board:a,invalidWords:d,validWords:e}))}catch(a){yield(0,g.put)(L.Y.actions.submitFailure())}}function*ad(){let{config:a}=yield(0,g.select)(H.zg),b=yield(0,g.select)(E.i);if(a.rackSize>b.length){let c=Math.abs(a.rackSize-b.length);yield(0,g.put)(D.o.actions.init([...b,...Array(c).fill(null)]))}else if(a.rackSize<b.length){let c=b.filter(Boolean).slice(0,a.rackSize),d=Math.abs(a.rackSize-c.length),e=yield(0,g.select)(H.u2);yield(0,g.put)(D.o.actions.init([...c,...Array(d).fill(null)])),yield(0,g.put)(D.o.actions.groupTiles(e))}}d()}catch(a){d(a)}})},82461:a=>{a.exports={breakpointXs:"480",breakpointS:"768",breakpointM:"992",breakpointL:"1200",breakpointXl:"1400",breakpointHeightL:"860",borderColorLight:"#d9d9d9",borderWidth:"1",colorBlueLight:"#dde4f6",colorGreenLight:"#d6ebd6",colorRedLight:"#fbe0d4",colorVioletLight:"#b284b8",colorYellowLight:"#f7f1d6",colorBackground:"#f4f4f4",colorBonusCharacterMultiplier2:"#b8d5ed",colorBonusCharacterMultiplier3:"#86aed1",colorBonusCharacterMultiplier4:"#3477b2",colorBonusWordMultiplier2:"#fbc997",colorBonusWordMultiplier3:"#f19393",colorBonusWordMultiplier4:"#ed5e5e",transitionDuration:"100",transitionDurationLong:"250",resultsItemHeight:"40"}},82876:(a,b,c)=>{"use strict";c.d(b,{E:()=>d});let d=a=>{let b=["include","exclude",null],c=(b.indexOf(a)+1)%b.length;return b[c]}},83491:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{_:()=>j});var e=c(38454),f=c(97616);let{game:a,locale:g}=c(71528).n,{boardHeight:h,boardWidth:i}=(0,e.getConfig)(a,g),j=f.Board.create(i,h);d()}catch(a){d(a)}})},83531:(a,b,c)=>{"use strict";c.d(b,{k:()=>g});var d=c(97616),e=c(83571),f=c(13681);let g=async({board:a,characters:b,game:c,locale:g})=>{let h={board:a,characters:b,game:c,locale:g},i=await (0,e.as)(h)??await (0,f.x)("/api/solve",{method:"POST",body:JSON.stringify(h)}),j=d.Board.fromJson(a);return i.map(a=>d.Result.fromJson(a,j))}},83571:(a,b,c)=>{"use strict";let d;c.d(b,{W3:()=>k,as:()=>i,cv:()=>j});let e=0,f=0,g=Promise.resolve(void 0),h=new Map;function i(a){let b=++e,c=l(b,a);return f=b,g=c,c}async function j(a){let b=await m({id:++e,type:"verify",payload:a});return"answered"===b.outcome?b.data:void 0}function k(a){o()?.postMessage({id:++e,locale:a,type:"prefetch"})}async function l(a,b){let c=await m({id:a,type:"solve",payload:b});return"superseded"===c.outcome&&a!==f?g:"answered"===c.outcome?c.data:void 0}function m(a){let b=o();return b?new Promise(c=>{let d=setTimeout(()=>n({id:a.id,outcome:"unavailable"}),3e4);h.set(a.id,{resolve:c,timeout:d}),b.postMessage(a)}):Promise.resolve({id:a.id,outcome:"unavailable"})}function n(a){let b=h.get(a.id);b&&(h.delete(a.id),clearTimeout(b.timeout),b.resolve(a))}function o(){if("u">typeof Worker&&"caches"in globalThis)return d||((d=new Worker(new URL(c.p+c.u(942),c.b))).addEventListener("message",({data:a})=>n(a)),d.addEventListener("error",p)),d}function p(){for(let a of h.keys())n({id:a,outcome:"unavailable"});d?.terminate(),d=void 0}},84411:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{g:()=>i});var e=c(69198),f=c(87092),g=c(82876),h=a([e]);e=(h.then?(await h)():h)[0];let i=(0,e.createSlice)({initialState:f.x,name:"cellFilters",reducers:{toggle:(a,b)=>{let{x:c,y:d}=b.payload,e=a.find(a=>a.x===c&&a.y===d),f=!!e,h=e?(0,g.E)(e.type):"include";return null===h?a.filter(a=>a.x!==c||a.y!==d):f?a.map(a=>a.x===c&&a.y===d?{...a,type:h}:a):[...a,{...b.payload,type:h}]},cancel:(a,b)=>{let{x:c,y:d}=b.payload;return a.filter(a=>a.x!==c||a.y!==d)},removeCells:(a,b)=>{let c=b.payload;return a.filter(a=>c.every(b=>b.x!==a.x||b.y!==a.y))},reset:()=>f.x}});d()}catch(a){d(a)}})},84426:()=>{},84932:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fe:()=>i,Tx:()=>h,dp:()=>j,nD:()=>k});var e=c(69198),f=c(97616),g=a([e]);e=(g.then?(await g)():g)[0];let h=a=>a.dictionary;(0,e.createSelector)([h],a=>a.input);let i=(0,e.createSelector)([h],a=>a.results),j=(0,e.createSelector)([h],a=>a.isLoading),k=(0,e.createSelector)([h],a=>(0,f.isError)(a.error)?a.error:void 0);d()}catch(a){d(a)}})},85131:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>h});var e=c(69198),f=c(54820),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.z,name:"hoveredWord",reducers:{set:(a,b)=>{a.word=b.payload},clear:a=>{a.word=null}}});d()}catch(a){d(a)}})},87092:(a,b,c)=>{"use strict";c.d(b,{x:()=>d});let d=[]},89540:(a,b,c)=>{"use strict";c.d(b,{H:()=>d});let d={isHydrated:!1,version:""}},90736:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38741);let e=(a,b)=>({column:b,direction:a.column===b?f(a.direction):a.direction}),f=a=>a===d.UE.Ascending?d.UE.Descending:d.UE.Ascending},91282:(a,b,c)=>{"use strict";c.d(b,{p:()=>d});let d=a=>a.board},91679:(a,b,c)=>{"use strict";c.d(b,{Y:()=>d});let d=()=>fetch("/api/visit",{method:"PUT"})},91891:(a,b,c)=>{"use strict";c.d(b,{x:()=>f});var d=c(57472),e=c(97616);let f={[e.Locale.DE_DE]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Deutsch",locale:e.Locale.DE_DE,name:"German",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.EN_GB]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"English (GB)",locale:e.Locale.EN_GB,name:"English (GB)",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.EN_US]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"English (US)",locale:e.Locale.EN_US,name:"English (US)",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.ES_ES]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Espa\xf1ol",locale:e.Locale.ES_ES,name:"Spanish",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.FA_IR]:{comma:d.COMMA_ARABIC,consonants:!1,direction:"rtl",label:"فارسی",locale:e.Locale.FA_IR,name:"Persian",separator:`${d.COMMA_ARABIC} `,vowels:!1},[e.Locale.FR_FR]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Fran\xe7ais",locale:e.Locale.FR_FR,name:"French",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.PL_PL]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Polski",locale:e.Locale.PL_PL,name:"Polish",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.RO_RO]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Rom\xe2nă",locale:e.Locale.RO_RO,name:"Romanian",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.TR_TR]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"T\xfcrk\xe7e",locale:e.Locale.TR_TR,name:"Turkish",separator:`${d.COMMA_LATIN} `,vowels:!0}}},94254:(a,b,c)=>{"use strict";function d(){return new Promise(a=>{h(g(a))})}function e(){return new Promise(a=>{g(a)})}function f(){return new Promise(a=>h(a))}function g(a){let b=()=>{window.removeEventListener("pointerdown",b),window.removeEventListener("keydown",b),a()};return window.addEventListener("pointerdown",b,{once:!0}),window.addEventListener("keydown",b,{once:!0}),b}function h(a){let b=()=>{"requestIdleCallback"in window?window.requestIdleCallback(a,{timeout:5e3}):setTimeout(a,5e3)};"complete"===document.readyState?b():window.addEventListener("load",b,{once:!0})}c.d(b,{$J:()=>f,cH:()=>d,j7:()=>e})},96768:(a,b,c)=>{"use strict";c.d(b,{CP:()=>w,Ce:()=>l,Gr:()=>u,Ip:()=>t,J2:()=>H,KG:()=>o,LO:()=>f,Ln:()=>v,Lo:()=>s,RO:()=>q,T7:()=>C,Uk:()=>G,W6:()=>j,_Q:()=>z,b2:()=>k,dW:()=>F,dX:()=>A,fd:()=>n,g:()=>h,gP:()=>y,hO:()=>r,lB:()=>g,m4:()=>x,oH:()=>p,oK:()=>m,pw:()=>B,tg:()=>I,v0:()=>i,vK:()=>D,wu:()=>E});var d=c(82461),e=c.n(d);let f={xs:Number(e().breakpointXs),s:Number(e().breakpointS),m:Number(e().breakpointM),l:Number(e().breakpointL),xl:Number(e().breakpointXl)},g=Number(e().breakpointHeightL),h="https://github.com/kamilmielnik/scrabble-solver",i="https://www.npmjs.com/package/scrabble-solver",j="https://scrabble-solver.org",k="Free, open-source board solver and word finder for Scrabble, Letter League, and Literaki. Enter your letters and board to get the highest-scoring words.",l="config-pending",m=Number(e().transitionDurationLong),n="var(--color--blue)",o="var(--color--green)",p="var(--color--red)",q="var(--color--yellow)",r=e().colorBackground,s=e().colorVioletLight,t={1:e().colorYellowLight,2:e().colorGreenLight,3:e().colorBlueLight,5:e().colorRedLight},u={2:e().colorBonusCharacterMultiplier2,3:e().colorBonusCharacterMultiplier3,4:e().colorBonusCharacterMultiplier4},v={2:e().colorBonusWordMultiplier2,3:e().colorBonusWordMultiplier3,4:e().colorBonusWordMultiplier4},w=3,x=e().borderColorLight,y=Number(e().borderWidth),z=166,A="/logo.svg",B=682,C=Number(e().transitionDuration),D=o,E={1:q,2:o,3:n,4:p,5:p,6:p,7:p,8:p,9:p,10:p},F=6,G=80,H=Number(e().resultsItemHeight),I=10},97616:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.WordDefinition=b.WordBonus=b.isTileJson=b.isScoreBingo=b.isObject=b.isMultiplierBingo=b.isLocale=b.isGame=b.isError=b.isCellJson=b.isBoardJson=b.isBingo=b.Tile=b.Result=b.Locale=b.isSameBoardWord=b.Game=b.Config=b.CharacterBonus=b.Cell=b.Bonus=b.Board=void 0;var d=c(53340);Object.defineProperty(b,"Board",{enumerable:!0,get:function(){return d.Board}});var e=c(67553);Object.defineProperty(b,"Bonus",{enumerable:!0,get:function(){return e.Bonus}});var f=c(22540);Object.defineProperty(b,"Cell",{enumerable:!0,get:function(){return f.Cell}});var g=c(94322);Object.defineProperty(b,"CharacterBonus",{enumerable:!0,get:function(){return g.CharacterBonus}});var h=c(12794);Object.defineProperty(b,"Config",{enumerable:!0,get:function(){return h.Config}});var i=c(62574);Object.defineProperty(b,"Game",{enumerable:!0,get:function(){return i.Game}});var j=c(95832);Object.defineProperty(b,"isSameBoardWord",{enumerable:!0,get:function(){return j.isSameBoardWord}});var k=c(80274);Object.defineProperty(b,"Locale",{enumerable:!0,get:function(){return k.Locale}});var l=c(45875);Object.defineProperty(b,"Result",{enumerable:!0,get:function(){return l.Result}});var m=c(70528);Object.defineProperty(b,"Tile",{enumerable:!0,get:function(){return m.Tile}});var n=c(80906);Object.defineProperty(b,"isBingo",{enumerable:!0,get:function(){return n.isBingo}}),Object.defineProperty(b,"isBoardJson",{enumerable:!0,get:function(){return n.isBoardJson}}),Object.defineProperty(b,"isCellJson",{enumerable:!0,get:function(){return n.isCellJson}}),Object.defineProperty(b,"isError",{enumerable:!0,get:function(){return n.isError}}),Object.defineProperty(b,"isGame",{enumerable:!0,get:function(){return n.isGame}}),Object.defineProperty(b,"isLocale",{enumerable:!0,get:function(){return n.isLocale}}),Object.defineProperty(b,"isMultiplierBingo",{enumerable:!0,get:function(){return n.isMultiplierBingo}}),Object.defineProperty(b,"isObject",{enumerable:!0,get:function(){return n.isObject}}),Object.defineProperty(b,"isScoreBingo",{enumerable:!0,get:function(){return n.isScoreBingo}}),Object.defineProperty(b,"isTileJson",{enumerable:!0,get:function(){return n.isTileJson}});var o=c(87189);Object.defineProperty(b,"WordBonus",{enumerable:!0,get:function(){return o.WordBonus}});var p=c(25479);Object.defineProperty(b,"WordDefinition",{enumerable:!0,get:function(){return p.WordDefinition}})},98260:(a,b,c)=>{"use strict";c.d(b,{O:()=>d});let d=a=>(b,c)=>b===c?0:null===b?"right"===a?1:-1:null===c?"right"===a?-1:1:0},98892:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{v:()=>h});var e=c(69198),f=c(60145),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.q,name:"i18n",reducers:{loaded:(a,b)=>{a.translations[b.payload.locale]=b.payload.translations}}});d()}catch(a){d(a)}})}};
1
+ exports.id=712,exports.ids=[712],exports.modules={674:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{M:()=>v});var e=c(69198),f=c(68455),g=c(54283),h=c(15226),i=c(84411),j=c(48736),k=c(14703),l=c(85131),m=c(98892),n=c(28245),o=c(26096),p=c(79194),q=c(32535),r=c(73407),s=c(69347),t=a([e,f,g,h,i,j,k,l,m,n,o,q,r,s,p]);[e,f,g,h,i,j,k,l,m,n,o,q,r,s,p]=t.then?(await t)():t;let u=(0,f.default)(),v=(0,e.configureStore)({reducer:{app:g.A.reducer,board:h.h.reducer,cellFilters:i.g.reducer,dictionary:j.z.reducer,hoveredTile:k.w.reducer,hoveredWord:l.Y.reducer,i18n:m.v.reducer,rack:n.o.reducer,results:o.N.reducer,settings:q.s.reducer,solve:r.A.reducer,verify:s.Y.reducer},middleware:a=>a({serializableCheck:!1}).concat([u])});u.run(p.H),d()}catch(a){d(a)}})},2827:(a,b,c)=>{"use strict";c.d(b,{P:()=>f,Z:()=>h});var d=c(97616);let e=JSON.parse('{"cell.enter-word":"Enter word","cell.filter-cell.exclude":"Exclude destination","cell.filter-cell.include":"Target destination","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile {{coordinates}}","cell.toggle-direction":"Typing direction","common.arrows":"Arrow keys","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.off":"Off","common.on":"On","common.points":"Points","common.previous":"Previous","common.space":"Spacebar","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Word definition will be shown here.","dictionary.input.placeholder":"Search dictionary…","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-cell-filter":"Toggle destination filter","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Solve","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","rack.touchscreen.placeholder":"Letters…","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.preview":"Preview","results.select":"Select...","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.highlightUnreachableCells":"Highlight unreachable cells","settings.inputMode":"Input mode","settings.inputMode.keyboard":"Keyboard","settings.inputMode.touchscreen":"Touchscreen","settings.language":"Language","settings.removeCellFilters":"Automatically remove filters from board","settings.removeCellFilters.always":"Always","settings.removeCellFilters.never":"Never","settings.showCoordinates":"Coordinates","settings.showCoordinates.alternative":"Alternative","settings.showCoordinates.original":"Original","words":"Created words","words.empty-state.no-words":"No created words - the board is empty.","words.input.placeholder":"Search words... (RegExp)","words.invalid":"Invalid","words.preview":"Preview","words.valid":"Valid","words.validity":"Validity"}'),f=e,g={[d.Locale.DE_DE]:async()=>(await c.e(371).then(c.t.bind(c,17371,19))).default,[d.Locale.EN_GB]:async()=>e,[d.Locale.EN_US]:async()=>e,[d.Locale.ES_ES]:async()=>(await c.e(953).then(c.t.bind(c,79953,19))).default,[d.Locale.FA_IR]:async()=>(await c.e(309).then(c.t.bind(c,94309,19))).default,[d.Locale.FR_FR]:async()=>(await c.e(846).then(c.t.bind(c,99465,19))).default,[d.Locale.PL_PL]:async()=>(await c.e(886).then(c.t.bind(c,74886,19))).default,[d.Locale.RO_RO]:async()=>(await c.e(344).then(c.t.bind(c,63344,19))).default,[d.Locale.TR_TR]:async()=>(await c.e(465).then(c.t.bind(c,73465,19))).default},h=a=>g[a]()},5712:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>n});var e=c(8732),f=c(38849),g=c(99247),h=c.n(g),i=c(14062),j=c(96768),k=c(674);c(84426);var l=a([f,i,k]);[f,i,k]=l.then?(await l)():l;let m="Scrabble Solver 2 - Board Solver & Word Finder",n=({Component:a,pageProps:b,router:c})=>{let d="/"===c.pathname;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(h(),{children:[(0,e.jsx)("title",{children:m}),(0,e.jsx)("meta",{charSet:"utf-8"}),(0,e.jsx)("meta",{name:"author",content:"Kamil Mielnik"}),(0,e.jsx)("meta",{name:"description",content:j.b2}),d?(0,e.jsx)("link",{rel:"canonical",href:`${j.W6}/`}):(0,e.jsx)("meta",{name:"robots",content:"noindex"}),(0,e.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),(0,e.jsx)("meta",{property:"og:site_name",content:"Scrabble Solver"}),(0,e.jsx)("meta",{property:"og:title",content:m}),(0,e.jsx)("meta",{property:"og:description",content:j.b2}),(0,e.jsx)("meta",{property:"og:type",content:"website"}),(0,e.jsx)("meta",{property:"og:url",content:`${j.W6}/`}),(0,e.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,e.jsx)("meta",{property:"og:image",content:`${j.W6}/og.png`}),(0,e.jsx)("meta",{property:"og:image:type",content:"image/png"}),(0,e.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,e.jsx)("meta",{property:"og:image:height",content:"630"}),(0,e.jsx)("meta",{property:"og:image:alt",content:"Scrabble tiles spelling out Scrabble Solver 2"}),(0,e.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,e.jsx)("meta",{name:"twitter:title",content:m}),(0,e.jsx)("meta",{name:"twitter:description",content:j.b2}),(0,e.jsx)("meta",{name:"twitter:image",content:`${j.W6}/og.png`})]}),(0,e.jsx)(i.Provider,{store:k.M,children:(0,e.jsx)(f.FloatingDelayGroup,{delay:0,children:(0,e.jsx)(a,{...b})})})]})};d()}catch(a){d(a)}})},10623:(a,b,c)=>{"use strict";c.d(b,{n:()=>d});let d=(a,b)=>a.length===b.length&&a.every((a,c)=>a===b[c])},11117:(a,b,c)=>{"use strict";c.d(b,{u:()=>d});let d={error:void 0,input:"",isLoading:!1,results:[]}},13681:(a,b,c)=>{"use strict";c.d(b,{x:()=>f});var d=c(97616);let e=async(a,b)=>{let c;try{c=await window.fetch(a,b)}catch(b){let a=(0,d.isError)(b)?b.message:"Unknown error";throw Error(`Network error: ${a}`)}if(c.ok)return c;{let a=await c.json();if((0,d.isError)(a))throw Error(a.message)}throw Error(`HTTP ${c.status}: ${c.statusText}`)},f=async(a,b)=>{let c=new Headers(b?.headers);return c.set("Content-Type","application/json"),(await e(a,{...b,headers:c})).json()}},14703:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{w:()=>h});var e=c(69198),f=c(17312),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.z,name:"hoveredTile",reducers:{set:(a,b)=>{a.character=b.payload},clear:a=>{a.character=null}}});d()}catch(a){d(a)}})},14887:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{f:()=>h,o:()=>g});var e=c(69198),f=a([e]);e=(f.then?(await f)():f)[0];let g=a=>a.cellFilters,h=(0,e.createSelector)([g,(a,b)=>b],(a,b)=>a.find(a=>a.x===b.x&&a.y===b.y));d()}catch(a){d(a)}})},15226:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{h:()=>l});var e=c(69198),f=c(38454),g=c(57472),h=c(97616),i=c(32535),j=c(83491),k=a([e,j,i]);[e,j,i]=k.then?(await k)():k;let l=(0,e.createSlice)({initialState:j._,name:"board",reducers:{applyResult:(a,b)=>{let c=a.clone();return b.payload.cells.forEach(a=>{c.updateCell(a.x,a.y,()=>new h.Cell({isEmpty:!1,tile:a.tile,x:a.x,y:a.y}))}),c},change:(a,b)=>b.payload,changeCellValue:(a,b)=>{let c=a.clone(),{value:d,x:e,y:f}=b.payload,i=!d||d===g.EMPTY_CELL,j=i?h.Tile.Null:new h.Tile({character:d});return c.updateCell(e,f,a=>new h.Cell({isEmpty:i,tile:j,x:a.x,y:a.y})),c},init:(a,b)=>b.payload,toggleCellIsBlank:(a,b)=>{let c=a.clone(),{x:d,y:e}=b.payload;return c.updateCell(d,e,a=>{let b=a.isEmpty?a.tile:new h.Tile({isBlank:!a.tile.isBlank,character:a.tile.character});return new h.Cell({isEmpty:a.isEmpty,tile:b,x:a.x,y:a.y})}),c}},extraReducers:a=>{a.addCase(i.s.actions.changeGame,(a,b)=>{let c=b.payload,d=Object.values(f.games).find(a=>a.game===c);if(!d)throw Error(`Cannot find config for game "${c}"`);if(a.rows.length!==d.boardHeight||a.rows[0].length!==d.boardWidth){let b=h.Board.create(d.boardWidth,d.boardHeight),c=Math.floor(d.boardWidth/2)-Math.floor(a.rows[0].length/2),e=Math.floor(d.boardHeight/2)-Math.floor(a.rows.length/2);for(let f=0;f<a.rows.length;++f)for(let g=0;g<a.rows[f].length;++g){let i=a.rows[f][g];if(i.isEmpty)continue;let j=g+c,k=f+e;j<0||j>=d.boardWidth||k<0||k>=d.boardHeight||b.updateCell(j,k,()=>new h.Cell({...i,x:j,y:k}))}return b}return a})}});d()}catch(a){d(a)}})},16202:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$:()=>h,I:()=>g});var e=c(38454),f=c(71528);let a=(0,e.getConfig)(f.n.game,f.n.locale),g=Array(a.rackSize).fill(null),h=g;d()}catch(a){d(a)}})},16375:(a,b,c)=>{"use strict";c.d(b,{C:()=>f});var d=c(97616),e=c(13681);let f=async(a,b)=>(await (0,e.x)(`/api/dictionary/${a}/${encodeURIComponent(b)}`)).map(d.WordDefinition.fromJson)},17312:(a,b,c)=>{"use strict";c.d(b,{z:()=>d});let d={character:null}},17568:(a,b,c)=>{"use strict";c.d(b,{_:()=>e});var d=c(57472);let e=(a,b)=>{let c=[...b];return a.map(a=>{let b=c.findIndex(b=>a===d.BLANK?b.isBlank:a===b.character);if(b>=0){let d=c[b];return c=[...c.slice(0,b),...c.slice(b+1)],{character:a,tile:d}}return{character:a,tile:null}})}},17791:(a,b,c)=>{"use strict";c.d(b,{L:()=>n});var d=c(97616),e=c(96481),f=c.n(e),g=c(2827);let h="board",i="rack",j="settings",k="translations",l={autoGroupTiles:"auto-group-tiles",game:"config-id",highlightUnreachableCells:"highlight-unreachable-cells",inputMode:"input-mode",locale:"locale",removeCellFilters:"remove-cell-filters",showCoordinates:"show-coordinates"},m=f().namespace("scrabble-solver"),n={getBoard(){try{let a=m.get(h);return a?d.Board.fromJson(JSON.parse(a)):void 0}catch{m.remove(h);return}},setBoard(a){let b=a?JSON.stringify(a.toJson()):a;m.set(h,b,!0)},getRack(){let a=m.get(i);return void 0===a||Array.isArray(a)?a:void m.remove(i)},setRack(a){m.set(i,a,!0)},getSettings(){let a=m.get(j);return void 0===a||(0,d.isObject)(a)||m.remove(j),function(a){if("hidden"!==String(a.showCoordinates))return a;let b={...a,showCoordinates:"original"};return m.set(j,b,!0),b}((0,d.isObject)(a)?a:function(){let a={},b=!1;for(let[c,d]of Object.entries(l))m.has(d)&&(a[c]=m.get(d),m.remove(d),b=!0);return b&&m.set(j,a,!0),a}())},setSettings(a){m.set(j,a,!0)},getTranslations(a,b){let c=m.get(k);if(void 0!==c){var e;return(0,d.isObject)(c)&&c.locale===a&&c.version===b&&(0,d.isObject)(c.translations)&&(e=c.translations,Object.keys(g.P).every(a=>"string"==typeof e[a]))?c.translations:void m.remove(k)}},setTranslations(a,b,c){m.set(k,{locale:a,translations:c,version:b},!0)}}},20904:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{c:()=>h,n:()=>g});var e=c(69198),f=a([e]);e=(f.then?(await f)():f)[0];let g=(0,e.createAction)("initialize"),h=(0,e.createAction)("reset");d()}catch(a){d(a)}})},22672:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{T:()=>g});var e=c(83491),f=a([e]);e=(f.then?(await f)():f)[0];let g={error:void 0,isLoading:!1,lastSolvedParameters:{board:e._,characters:[]}};d()}catch(a){d(a)}})},26096:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{N:()=>i});var e=c(69198),f=c(90736),g=c(49053),h=a([e]);e=(h.then?(await h)():h)[0];let i=(0,e.createSlice)({initialState:g.i,name:"results",reducers:{applyResult:(a,b)=>g.i,changeQuery:(a,b)=>{let c=b.payload;return{...a,query:c}},changeResultCandidate:(a,b)=>{let c=b.payload;return c===a.candidate?a:{...a,candidate:c}},changeResults:(a,b)=>{let c=b.payload;return{...a,candidate:g.i.candidate,query:g.i.query,results:c}},sort:(a,b)=>({...a,sort:(0,f.O)(a.sort,b.payload)}),reset:()=>g.i}});d()}catch(a){d(a)}})},28245:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{o:()=>l});var e=c(69198),f=c(10623),g=c(98260),h=c(55958),i=c(17568),j=c(16202),k=a([e,j]);[e,j]=k.then?(await k)():k;let l=(0,e.createSlice)({initialState:j.$,name:"rack",reducers:{changeCharacter:(a,b)=>{let{character:c,index:d}=b.payload;return[...a.slice(0,d),c,...a.slice(d+1)]},changeCharacters:(a,b)=>{let{characters:c,index:d}=b.payload;if(0===c.length)return a;let e=a.length;return[...a.slice(0,d),...c,...a.slice(d+c.length)].slice(0,e)},groupTiles:(a,b)=>{if(null===b.payload)return a;let c=(0,g.O)((0,h.G)(b.payload)),d=[...a].sort(c);return(0,f.n)(a,d)?a:d},init:(a,b)=>(0,f.n)(a,b.payload)?a:b.payload,removeTiles:(a,b)=>{let c=b.payload;return(0,i._)(a,c).map(({character:a,tile:b})=>b?null:a)},reset:()=>j.I}});d()}catch(a){d(a)}})},29024:(a,b,c)=>{"use strict";c.d(b,{g:()=>e});var d=c(97616);let e=()=>{if(!globalThis.navigator)return d.Locale.EN_US;let a=globalThis.navigator.languages;if(a.includes("pl")||a.includes("pl-PL"))return d.Locale.PL_PL;if(a.includes("en-GB"))return d.Locale.EN_GB;if(a.includes("fa")||a.includes("fa-IR"))return d.Locale.FA_IR;if(a.includes("fr-FR"))return d.Locale.FR_FR;if(a.includes("ro")||a.includes("ro-RO"))return d.Locale.RO_RO;let b=Object.values(d.Locale),c=b.find(a=>globalThis.navigator.language===String(a));return c||(b.find(a=>globalThis.navigator.language===a.substring(0,2))??d.Locale.EN_US)}},29365:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{i:()=>g,x:()=>h});var e=c(69198),f=a([e]);e=(f.then?(await f)():f)[0];let g=a=>a.rack,h=(0,e.createSelector)(g,a=>a.filter(a=>null!==a));d()}catch(a){d(a)}})},31635:(a,b,c)=>{"use strict";c.d(b,{B:()=>d});let d=a=>{let b=[],c=a=>b.find(b=>e(b.parameters,a))?.result;return Object.assign((...d)=>{let f=c(d);if(f)return f;let g=a(...d);return g instanceof Promise&&g.catch(()=>{let a;(a=b.findIndex(a=>e(a.parameters,d)))>=0&&b.splice(a,1)}),b.push({parameters:d,result:g}),g},{hasCache:(...a)=>!!c(a)})},e=(a,b)=>a.length===b.length&&a.every((a,c)=>a===b[c])},32535:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{s:()=>h});var e=c(69198),f=c(71528),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.n,name:"settings",reducers:{changeAutoGroupTiles:(a,b)=>{let c=b.payload;return{...a,autoGroupTiles:c}},changeGame:(a,b)=>{let c=b.payload;return{...a,game:c}},changeHighlightUnreachableCells:(a,b)=>{let c=b.payload;return{...a,highlightUnreachableCells:c}},changeInputMode:(a,b)=>{let c=b.payload;return{...a,inputMode:c}},changeLocale:(a,b)=>{let c=b.payload;return{...a,locale:c}},changeShowCoordinates:(a,b)=>{let c=b.payload;return{...a,showCoordinates:c}},changeRemoveCellFilters:(a,b)=>{let c=b.payload;return{...a,removeCellFilters:c}},init:(a,b)=>{let c={...a,...b.payload};return Object.keys(c).some(b=>c[b]!==a[b])?c:a}}});d()}catch(a){d(a)}})},34428:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{L:()=>h});var e=c(38741),f=c(83491),g=a([f]);f=(g.then?(await g)():g)[0];let h={isLoading:!1,lastSolvedParameters:{board:f._},invalidWords:[],query:"",sort:{column:e.mh.Word,direction:e.UE.Ascending},validWords:[]};d()}catch(a){d(a)}})},38741:(a,b,c)=>{"use strict";c.d(b,{NN:()=>h,UE:()=>g,mh:()=>i});var d,e,f,g=((d={}).Ascending="ascending",d.Descending="descending",d),h=((e={}).BlanksCount="blanks-count",e.ConsonantsCount="consonants-count",e.Coordinates="coordinates",e.Points="points",e.TilesCount="tiles-count",e.VowelsCount="vowels-count",e.Word="word",e.WordsCount="words-count",e),i=((f={}).Coordinates="coordinates",f.Validity="validity",f.Word="word",f)},38744:(a,b,c)=>{"use strict";c.d(b,{W:()=>d});let d=a=>a.i18n.translations},48475:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{JV:()=>s,QN:()=>r,Vv:()=>p,fF:()=>y,fy:()=>w,hN:()=>u,i0:()=>n,sE:()=>x,u2:()=>t,u_:()=>q,up:()=>o,yI:()=>z,zg:()=>v});var e=c(69198),f=c(38454),g=c(57472),h=c(91891),i=c(2827),j=c(38744),k=a([e]);e=(k.then?(await k)():k)[0];let l=(a,b)=>b,m=(a,b)=>b,n=a=>a.settings,o=(0,e.createSelector)([n],a=>a.autoGroupTiles),p=(0,e.createSelector)([n],a=>a.game),q=(0,e.createSelector)([n],a=>a.highlightUnreachableCells),r=(0,e.createSelector)([n],a=>a.inputMode),s=(0,e.createSelector)([n],a=>a.locale),t=(0,e.createSelector)([s,n],(a,b)=>"ltr"===h.x[a].direction||null===b.autoGroupTiles?b.autoGroupTiles:"left"===b.autoGroupTiles?"right":"left"),u=(0,e.createSelector)([n],a=>a.showCoordinates),v=(0,e.createSelector)([p,s],f.getConfig),w=(0,e.createSelector)([v,m],(a,b)=>a.getCharacterPoints(b)),x=(0,e.createSelector)([v,m],(a,b)=>null===b||b===g.BLANK||a.tiles.some(a=>a.character===b));(0,e.createSelector)([v,l],(a,b)=>a.getCellBonus(b)),(0,e.createSelector)([v,(a,b)=>b],(a,b)=>a.getTilePoints(b)),(0,e.createSelector)([v,l],(a,b)=>!b.hasTile()||a.tiles.some(a=>a.character===b.tile.character));let y=(0,e.createSelector)([s,j.W],(a,b)=>b[a]??i.P),z=(0,e.createSelector)([n],a=>a.removeCellFilters);d()}catch(a){d(a)}})},48736:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{z:()=>h});var e=c(69198),f=c(11117),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.u,name:"dictionary",reducers:{changeInput:(a,b)=>({...a,input:b.payload}),reset:()=>f.u,submit:a=>{let b=f.u.error,c=f.u.results;return{...a,error:b,isLoading:!0,results:c}},submitFailure:(a,b)=>{let c=b.payload,d=f.u.results;return{...a,error:c,isLoading:!1,results:d}},submitSuccess:(a,b)=>{let c=f.u.error,d=b.payload;return{...a,error:c,isLoading:!1,results:d}}}});d()}catch(a){d(a)}})},49053:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});var d=c(38741);let e={candidate:null,query:"",results:void 0,sort:{column:d.NN.Points,direction:d.UE.Descending}}},54283:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>i});var e=c(69198),f=c(20904),g=c(89540),h=a([e,f]);[e,f]=h.then?(await h)():h;let i=(0,e.createSlice)({initialState:g.H,name:"app",reducers:{hydrated:a=>{a.isHydrated=!0}},extraReducers:a=>{a.addCase(f.n,(a,b)=>{a.version=b.payload.version})}});d()}catch(a){d(a)}})},54820:(a,b,c)=>{"use strict";c.d(b,{z:()=>d});let d={word:null}},55958:(a,b,c)=>{"use strict";c.d(b,{G:()=>d});let d=a=>"left"===a?"right":"left"},57472:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.VOWELS=b.CONSONANTS=b.NO_BONUS=b.EMPTY_CELL=b.BONUS_WORD=b.BONUS_CHARACTER=b.BLANK=b.COMMA_LATIN=b.COMMA_ARABIC=void 0,b.COMMA_ARABIC="،",b.COMMA_LATIN=",",b.BLANK=" ",b.BONUS_CHARACTER="BONUS_CHARACTER",b.BONUS_WORD="BONUS_WORD",b.EMPTY_CELL=" ",b.NO_BONUS={characterMultiplier:1,wordMultiplier:1},b.CONSONANTS="bc\xe7ćdfgğhjklłmnń\xf1pqrsşśtvwxzźż".split(""),b.VOWELS="aą\xe4eęio\xf3\xf6u\xfcyı".split("")},60145:(a,b,c)=>{"use strict";c.d(b,{q:()=>d});let d={translations:{}}},68209:(a,b,c)=>{"use strict";c.d(b,{M:()=>f});var d=c(83571),e=c(13681);let f=async({board:a,game:b,locale:c})=>{let f={board:a,game:b,locale:c};return await (0,d.cv)(f)??(0,e.x)("/api/verify",{method:"POST",body:JSON.stringify(f)})}},69347:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>i});var e=c(69198),f=c(90736),g=c(34428),h=a([e,g]);[e,g]=h.then?(await h)():h;let i=(0,e.createSlice)({initialState:g.L,name:"verify",reducers:{submit:a=>({...a,isLoading:!0}),changeQuery:(a,b)=>({...a,query:b.payload}),submitFailure:a=>({...a,isLoading:!1}),sort:(a,b)=>({...a,sort:(0,f.O)(a.sort,b.payload)}),submitSuccess:(a,b)=>{let{board:c,invalidWords:d,validWords:e}=b.payload;return{...a,isLoading:!1,lastSolvedParameters:{board:c},invalidWords:d,validWords:e}}}});d()}catch(a){d(a)}})},71528:(a,b,c)=>{"use strict";c.d(b,{n:()=>e});var d=c(97616);let e={autoGroupTiles:null,game:d.Game.Scrabble,highlightUnreachableCells:!1,inputMode:"keyboard",locale:d.Locale.EN_US,removeCellFilters:"always",showCoordinates:"original"}},73407:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>h});var e=c(69198),f=c(22672),g=a([e,f]);[e,f]=g.then?(await g)():g;let h=(0,e.createSlice)({initialState:f.T,name:"solve",reducers:{reset:()=>f.T,submit:a=>{let b=f.T.error;return{...a,error:b,isLoading:!0}},submitFailure:(a,b)=>{let c=b.payload;return{...a,error:c,isLoading:!1}},submitSuccess:(a,b)=>{let c=f.T.error,d=b.payload;return{...a,error:c,isLoading:!1,lastSolvedParameters:d}}}});d()}catch(a){d(a)}})},73495:(a,b,c)=>{"use strict";c.d(b,{M:()=>d,f:()=>e});let d=a=>a.app.isHydrated,e=a=>a.app.version},79194:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H:()=>N});var e=c(38454),f=c(97616),g=c(18314),h=c(91891),i=c(2827),j=c(31635),k=c(94254),l=c(16375),m=c(91679),n=c(83531),o=c(68209),p=c(83571),q=c(20904),r=c(54283),s=c(73495),t=c(15226),u=c(91282),v=c(14887),w=c(84411),x=c(48736),y=c(84932),z=c(85131),A=c(98892),B=c(38744),C=c(17791),D=c(28245),E=c(29365),F=c(26096),G=c(32535),H=c(48475),I=c(71528),J=c(29024),K=c(73407),L=c(69347),M=a([g,t,D,F,z,G,x,q,K,L,v,w,H,E,y,r,A]);[g,t,D,F,z,G,x,q,K,L,v,w,H,E,y,r,A]=M.then?(await M)():M;let ae=(0,j.B)(l.C);function*N(){yield(0,g.takeEvery)(t.h.actions.changeCellValue.type,O),yield(0,g.takeEvery)([D.o.actions.changeCharacter.type,D.o.actions.changeCharacters.type],P),yield(0,g.takeEvery)(F.N.actions.applyResult.type,Q),yield(0,g.takeLatest)(F.N.actions.changeResultCandidate.type,$),yield(0,g.takeLatest)([z.Y.actions.set.type,z.Y.actions.clear.type],_),yield(0,g.takeEvery)(G.s.actions.changeGame.type,R),yield(0,g.takeEvery)(G.s.actions.changeLocale.type,Z),yield(0,g.takeLatest)(x.z.actions.submit.type,S),yield(0,g.takeLatest)(q.n.type,T),yield(0,g.takeLatest)(q.c.type,Y),yield(0,g.takeLatest)(K.A.actions.submit.type,ab),yield(0,g.takeLatest)(L.Y.actions.submit.type,ac)}function*O({payload:a}){(yield(0,g.select)(b=>(0,v.f)(b,a)))&&(yield(0,g.put)(w.g.actions.cancel(a))),yield(0,g.put)(F.N.actions.changeResultCandidate(null)),yield(0,g.put)(z.Y.actions.clear()),yield(0,g.put)(L.Y.actions.submit())}function*P(){yield(0,g.put)(F.N.actions.changeResultCandidate(null))}function*Q({payload:a}){let b=yield(0,g.select)(H.u2),c=yield(0,g.select)(H.yI);yield(0,g.put)(t.h.actions.applyResult(a)),"never"===c?yield(0,g.put)(w.g.actions.removeCells(a.cells)):yield(0,g.put)(w.g.actions.reset()),yield(0,g.put)(D.o.actions.removeTiles(a.tiles)),yield(0,g.put)(D.o.actions.groupTiles(b)),yield(0,g.put)(L.Y.actions.submit())}function*R(){(yield(0,g.select)(E.x)).length>0?yield(0,g.put)(K.A.actions.submit()):yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(z.Y.actions.clear()),yield*ad(),yield(0,g.put)(L.Y.actions.submit())}function*S(){let{input:a}=yield(0,g.select)(y.Tx),b=yield(0,g.select)(H.JV);ae.hasCache(b,a)||(yield(0,g.delay)(150));try{let c=yield(0,g.call)(ae,b,a),{input:d}=yield(0,g.select)(y.Tx);a===d&&(yield(0,g.put)(x.z.actions.submitSuccess(c)))}catch(c){let{input:b}=yield(0,g.select)(y.Tx);a===b&&(yield(0,g.put)(x.z.actions.submitFailure(c)))}}function*T({payload:a}){try{yield*function*(a){let b=globalThis.matchMedia?.("(hover: none)").matches??!1,c={game:I.n.game,inputMode:b?"touchscreen":"keyboard",locale:(0,J.g)(),...C.L.getSettings()};if(!(0,e.hasConfig)(c.game,c.locale)){let a=Object.values(e.languages).find(a=>a.locale===c.locale);c.game=a?.game??I.n.game,c.locale=a?.locale??(0,J.g)()}yield(0,g.put)(G.s.actions.init(c)),yield*function*(a,b){let c=C.L.getTranslations(a,b);c&&(yield(0,g.put)(A.v.actions.loaded({locale:a,translations:c})))}(c.locale,a);let d=yield(0,g.select)(H.zg),h=yield(0,g.select)(u.p),i=C.L.getBoard();i?yield(0,g.put)(t.h.actions.init(i)):(h.rows.length!==d.boardHeight||h.rows[0].length!==d.boardWidth)&&(yield(0,g.put)(t.h.actions.init(f.Board.create(d.boardWidth,d.boardHeight))));let j=yield(0,g.select)(E.i),k=C.L.getRack();k?yield(0,g.put)(D.o.actions.init(k)):j.length!==d.rackSize&&(yield(0,g.put)(D.o.actions.init(Array(d.rackSize).fill(null))))}(a.version)}catch{}finally{yield(0,g.put)(r.A.actions.hydrated())}let b=yield(0,g.select)(u.p),c=yield(0,g.select)(H.JV);yield(0,g.spawn)(V),yield(0,g.spawn)(W,c),yield(0,g.spawn)(X),yield(0,g.spawn)(U),b.isEmpty()||(yield*ad(),yield(0,g.put)(L.Y.actions.submit()))}function*U(){yield(0,g.call)(k.cH);let a=yield(0,g.select)(H.JV),b=yield(0,g.select)(H.Vv);try{yield(0,g.call)(m.Y,{game:b,locale:a,referrer:document.referrer,url:location.href})}catch{}}function*V(){yield(0,g.call)(k.j7);let a=yield(0,g.select)(H.JV);yield(0,g.call)(p.W3,a)}function*W(a){if((yield(0,g.select)(B.W))[a])return;let b=yield(0,g.call)(i.Z,a);yield(0,g.put)(A.v.actions.loaded({locale:a,translations:b}));let c=yield(0,g.select)(H.JV);if(a===c){let c=yield(0,g.select)(s.f);C.L.setTranslations(a,c,b)}}function*X(){for(let a of(yield(0,g.call)(k.cH),Object.values(f.Locale)))yield(0,g.spawn)(W,a)}function*Y(){let a=yield(0,g.select)(H.zg);yield(0,g.put)(t.h.actions.init(f.Board.create(a.boardWidth,a.boardHeight))),yield(0,g.put)(w.g.actions.reset()),yield(0,g.put)(x.z.actions.reset()),yield(0,g.put)(z.Y.actions.clear()),yield(0,g.put)(D.o.actions.reset()),yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(K.A.actions.reset()),yield(0,g.put)(L.Y.actions.submit())}function*Z({payload:a}){yield(0,g.spawn)(W,a),yield(0,g.spawn)(p.W3,a),yield*function*(a){let b=yield(0,g.select)(B.W),c=yield(0,g.select)(s.f);b[a]&&C.L.setTranslations(a,c,b[a])}(a);let b=yield(0,g.select)(H.Vv);if(!(0,e.hasConfig)(b,a)){let b=Object.values(e.languages).find(b=>b.locale===a);b&&(yield(0,g.put)(G.s.actions.changeGame(b.game)))}(yield(0,g.select)(E.x)).length>0?yield(0,g.put)(K.A.actions.submit()):yield(0,g.put)(F.N.actions.reset()),yield(0,g.put)(x.z.actions.reset()),yield(0,g.put)(z.Y.actions.clear()),yield(0,g.put)(F.N.actions.changeResultCandidate(null)),yield(0,g.put)(L.Y.actions.submit())}function*$({payload:a}){a&&(yield(0,g.put)(z.Y.actions.clear()),yield*aa(a.words))}function*_({payload:a}){if(!a)return;yield(0,g.put)(F.N.actions.changeResultCandidate(null));let b=(yield(0,g.select)(u.p)).getCollidingWords(a);yield*aa([a.word,...b.map(a=>a.word)])}function*aa(a){let b=yield(0,g.select)(H.JV),c=Array.from(new Set(a)).join(h.x[b].separator);ae.hasCache(b,c)||(yield(0,g.delay)(150)),yield(0,g.put)(x.z.actions.changeInput(c)),yield(0,g.put)(x.z.actions.submit())}function*ab(){let a=yield(0,g.select)(u.p),{config:b}=yield(0,g.select)(H.zg),c=yield(0,g.select)(H.JV),d=yield(0,g.select)(E.x);if(0===d.length){yield(0,g.put)(K.A.actions.submitSuccess({board:a,characters:d})),yield(0,g.put)(F.N.actions.changeResults([]));return}try{let e=yield(0,g.call)(n.k,{board:a.toJson(),characters:d,game:b.game,locale:c});yield(0,g.put)(F.N.actions.changeResults(e)),yield(0,g.put)(K.A.actions.submitSuccess({board:a,characters:d}))}catch(a){yield(0,g.put)(F.N.actions.changeResults([])),yield(0,g.put)(K.A.actions.submitFailure(a))}}function*ac(){yield(0,g.delay)(150);let a=yield(0,g.select)(u.p),{config:b}=yield(0,g.select)(H.zg),c=yield(0,g.select)(H.JV);try{let{invalidWords:d,validWords:e}=yield(0,g.call)(o.M,{board:a.toJson(),game:b.game,locale:c});yield(0,g.put)(L.Y.actions.submitSuccess({board:a,invalidWords:d,validWords:e}))}catch(a){yield(0,g.put)(L.Y.actions.submitFailure())}}function*ad(){let{config:a}=yield(0,g.select)(H.zg),b=yield(0,g.select)(E.i);if(a.rackSize>b.length){let c=Math.abs(a.rackSize-b.length);yield(0,g.put)(D.o.actions.init([...b,...Array(c).fill(null)]))}else if(a.rackSize<b.length){let c=b.filter(Boolean).slice(0,a.rackSize),d=Math.abs(a.rackSize-c.length),e=yield(0,g.select)(H.u2);yield(0,g.put)(D.o.actions.init([...c,...Array(d).fill(null)])),yield(0,g.put)(D.o.actions.groupTiles(e))}}d()}catch(a){d(a)}})},82461:a=>{a.exports={breakpointXs:"480",breakpointS:"768",breakpointM:"992",breakpointL:"1200",breakpointXl:"1400",borderColorLight:"#d9d9d9",borderWidth:"1",colorBlueLight:"#dde4f6",colorGreenLight:"#d6ebd6",colorRedLight:"#fbe0d4",colorVioletLight:"#b284b8",colorYellowLight:"#f7f1d6",colorBackground:"#f4f4f4",colorBonusCharacterMultiplier2:"#b8d5ed",colorBonusCharacterMultiplier3:"#86aed1",colorBonusCharacterMultiplier4:"#3477b2",colorBonusWordMultiplier2:"#fbc997",colorBonusWordMultiplier3:"#f19393",colorBonusWordMultiplier4:"#ed5e5e",transitionDuration:"100",transitionDurationLong:"250",resultsItemHeight:"40"}},82876:(a,b,c)=>{"use strict";c.d(b,{E:()=>d});let d=a=>{let b=["include","exclude",null],c=(b.indexOf(a)+1)%b.length;return b[c]}},83491:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{_:()=>j});var e=c(38454),f=c(97616);let{game:a,locale:g}=c(71528).n,{boardHeight:h,boardWidth:i}=(0,e.getConfig)(a,g),j=f.Board.create(i,h);d()}catch(a){d(a)}})},83531:(a,b,c)=>{"use strict";c.d(b,{k:()=>g});var d=c(97616),e=c(83571),f=c(13681);let g=async({board:a,characters:b,game:c,locale:g})=>{let h={board:a,characters:b,game:c,locale:g},i=await (0,e.as)(h)??await (0,f.x)("/api/solve",{method:"POST",body:JSON.stringify(h)}),j=d.Board.fromJson(a);return i.map(a=>d.Result.fromJson(a,j))}},83571:(a,b,c)=>{"use strict";let d;c.d(b,{W3:()=>k,as:()=>i,cv:()=>j});let e=0,f=0,g=Promise.resolve(void 0),h=new Map;function i(a){let b=++e,c=l(b,a);return f=b,g=c,c}async function j(a){let b=await m({id:++e,type:"verify",payload:a});return"answered"===b.outcome?b.data:void 0}function k(a){o()?.postMessage({id:++e,locale:a,type:"prefetch"})}async function l(a,b){let c=await m({id:a,type:"solve",payload:b});return"superseded"===c.outcome&&a!==f?g:"answered"===c.outcome?c.data:void 0}function m(a){let b=o();return b?new Promise(c=>{let d=setTimeout(()=>n({id:a.id,outcome:"unavailable"}),3e4);h.set(a.id,{resolve:c,timeout:d}),b.postMessage(a)}):Promise.resolve({id:a.id,outcome:"unavailable"})}function n(a){let b=h.get(a.id);b&&(h.delete(a.id),clearTimeout(b.timeout),b.resolve(a))}function o(){if("u">typeof Worker&&"caches"in globalThis)return d||((d=new Worker(new URL(c.p+c.u(942),c.b))).addEventListener("message",({data:a})=>n(a)),d.addEventListener("error",p)),d}function p(){for(let a of h.keys())n({id:a,outcome:"unavailable"});d?.terminate(),d=void 0}},84411:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{g:()=>i});var e=c(69198),f=c(87092),g=c(82876),h=a([e]);e=(h.then?(await h)():h)[0];let i=(0,e.createSlice)({initialState:f.x,name:"cellFilters",reducers:{toggle:(a,b)=>{let{x:c,y:d}=b.payload,e=a.find(a=>a.x===c&&a.y===d),f=!!e,h=e?(0,g.E)(e.type):"include";return null===h?a.filter(a=>a.x!==c||a.y!==d):f?a.map(a=>a.x===c&&a.y===d?{...a,type:h}:a):[...a,{...b.payload,type:h}]},cancel:(a,b)=>{let{x:c,y:d}=b.payload;return a.filter(a=>a.x!==c||a.y!==d)},removeCells:(a,b)=>{let c=b.payload;return a.filter(a=>c.every(b=>b.x!==a.x||b.y!==a.y))},reset:()=>f.x}});d()}catch(a){d(a)}})},84426:()=>{},84932:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fe:()=>i,Tx:()=>h,dp:()=>j,nD:()=>k});var e=c(69198),f=c(97616),g=a([e]);e=(g.then?(await g)():g)[0];let h=a=>a.dictionary;(0,e.createSelector)([h],a=>a.input);let i=(0,e.createSelector)([h],a=>a.results),j=(0,e.createSelector)([h],a=>a.isLoading),k=(0,e.createSelector)([h],a=>(0,f.isError)(a.error)?a.error:void 0);d()}catch(a){d(a)}})},85131:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>h});var e=c(69198),f=c(54820),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.z,name:"hoveredWord",reducers:{set:(a,b)=>{a.word=b.payload},clear:a=>{a.word=null}}});d()}catch(a){d(a)}})},87092:(a,b,c)=>{"use strict";c.d(b,{x:()=>d});let d=[]},89540:(a,b,c)=>{"use strict";c.d(b,{H:()=>d});let d={isHydrated:!1,version:""}},90736:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38741);let e=(a,b)=>({column:b,direction:a.column===b?f(a.direction):a.direction}),f=a=>a===d.UE.Ascending?d.UE.Descending:d.UE.Ascending},91282:(a,b,c)=>{"use strict";c.d(b,{p:()=>d});let d=a=>a.board},91679:(a,b,c)=>{"use strict";c.d(b,{Y:()=>e});var d=c(13681);function e(a){return(0,d.x)("/api/visit",{method:"PUT",body:JSON.stringify(a)})}},91891:(a,b,c)=>{"use strict";c.d(b,{x:()=>f});var d=c(57472),e=c(97616);let f={[e.Locale.DE_DE]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Deutsch",locale:e.Locale.DE_DE,name:"German",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.EN_GB]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"English (GB)",locale:e.Locale.EN_GB,name:"English (GB)",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.EN_US]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"English (US)",locale:e.Locale.EN_US,name:"English (US)",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.ES_ES]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Espa\xf1ol",locale:e.Locale.ES_ES,name:"Spanish",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.FA_IR]:{comma:d.COMMA_ARABIC,consonants:!1,direction:"rtl",label:"فارسی",locale:e.Locale.FA_IR,name:"Persian",separator:`${d.COMMA_ARABIC} `,vowels:!1},[e.Locale.FR_FR]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Fran\xe7ais",locale:e.Locale.FR_FR,name:"French",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.PL_PL]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Polski",locale:e.Locale.PL_PL,name:"Polish",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.RO_RO]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"Rom\xe2nă",locale:e.Locale.RO_RO,name:"Romanian",separator:`${d.COMMA_LATIN} `,vowels:!0},[e.Locale.TR_TR]:{comma:d.COMMA_LATIN,consonants:!0,direction:"ltr",label:"T\xfcrk\xe7e",locale:e.Locale.TR_TR,name:"Turkish",separator:`${d.COMMA_LATIN} `,vowels:!0}}},94254:(a,b,c)=>{"use strict";function d(){return new Promise(a=>{h(g(a))})}function e(){return new Promise(a=>{g(a)})}function f(){return new Promise(a=>h(a))}function g(a){let b=()=>{window.removeEventListener("pointerdown",b),window.removeEventListener("keydown",b),a()};return window.addEventListener("pointerdown",b,{once:!0}),window.addEventListener("keydown",b,{once:!0}),b}function h(a){let b=()=>{"requestIdleCallback"in window?window.requestIdleCallback(a,{timeout:5e3}):setTimeout(a,5e3)};"complete"===document.readyState?b():window.addEventListener("load",b,{once:!0})}c.d(b,{$J:()=>f,cH:()=>d,j7:()=>e})},96768:(a,b,c)=>{"use strict";c.d(b,{CP:()=>v,Ce:()=>k,Gr:()=>t,Ip:()=>s,J2:()=>G,KG:()=>n,LO:()=>f,Ln:()=>u,Lo:()=>r,RO:()=>p,T7:()=>B,Uk:()=>F,W6:()=>i,_Q:()=>y,b2:()=>j,dW:()=>E,dX:()=>z,fd:()=>m,g:()=>g,gP:()=>x,hO:()=>q,m4:()=>w,oH:()=>o,oK:()=>l,pw:()=>A,tg:()=>H,v0:()=>h,vK:()=>C,wu:()=>D});var d=c(82461),e=c.n(d);let f={xs:Number(e().breakpointXs),s:Number(e().breakpointS),m:Number(e().breakpointM),l:Number(e().breakpointL),xl:Number(e().breakpointXl)},g="https://github.com/kamilmielnik/scrabble-solver",h="https://www.npmjs.com/package/scrabble-solver",i="https://scrabble-solver.org",j="Free, open-source board solver and word finder for Scrabble, Letter League, and Literaki. Enter your letters and board to get the highest-scoring words.",k="config-pending",l=Number(e().transitionDurationLong),m="var(--color--blue)",n="var(--color--green)",o="var(--color--red)",p="var(--color--yellow)",q=e().colorBackground,r=e().colorVioletLight,s={1:e().colorYellowLight,2:e().colorGreenLight,3:e().colorBlueLight,5:e().colorRedLight},t={2:e().colorBonusCharacterMultiplier2,3:e().colorBonusCharacterMultiplier3,4:e().colorBonusCharacterMultiplier4},u={2:e().colorBonusWordMultiplier2,3:e().colorBonusWordMultiplier3,4:e().colorBonusWordMultiplier4},v=3,w=e().borderColorLight,x=Number(e().borderWidth),y=166,z="/logo.svg",A=682,B=Number(e().transitionDuration),C=n,D={1:p,2:n,3:m,4:o,5:o,6:o,7:o,8:o,9:o,10:o},E=6,F=80,G=Number(e().resultsItemHeight),H=10},97616:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.WordDefinition=b.WordBonus=b.isTileJson=b.isScoreBingo=b.isObject=b.isMultiplierBingo=b.isLocale=b.isGame=b.isError=b.isCellJson=b.isBoardJson=b.isBingo=b.Tile=b.Result=b.Locale=b.isSameBoardWord=b.Game=b.Config=b.CharacterBonus=b.Cell=b.Bonus=b.Board=void 0;var d=c(53340);Object.defineProperty(b,"Board",{enumerable:!0,get:function(){return d.Board}});var e=c(67553);Object.defineProperty(b,"Bonus",{enumerable:!0,get:function(){return e.Bonus}});var f=c(22540);Object.defineProperty(b,"Cell",{enumerable:!0,get:function(){return f.Cell}});var g=c(94322);Object.defineProperty(b,"CharacterBonus",{enumerable:!0,get:function(){return g.CharacterBonus}});var h=c(12794);Object.defineProperty(b,"Config",{enumerable:!0,get:function(){return h.Config}});var i=c(62574);Object.defineProperty(b,"Game",{enumerable:!0,get:function(){return i.Game}});var j=c(95832);Object.defineProperty(b,"isSameBoardWord",{enumerable:!0,get:function(){return j.isSameBoardWord}});var k=c(80274);Object.defineProperty(b,"Locale",{enumerable:!0,get:function(){return k.Locale}});var l=c(45875);Object.defineProperty(b,"Result",{enumerable:!0,get:function(){return l.Result}});var m=c(70528);Object.defineProperty(b,"Tile",{enumerable:!0,get:function(){return m.Tile}});var n=c(80906);Object.defineProperty(b,"isBingo",{enumerable:!0,get:function(){return n.isBingo}}),Object.defineProperty(b,"isBoardJson",{enumerable:!0,get:function(){return n.isBoardJson}}),Object.defineProperty(b,"isCellJson",{enumerable:!0,get:function(){return n.isCellJson}}),Object.defineProperty(b,"isError",{enumerable:!0,get:function(){return n.isError}}),Object.defineProperty(b,"isGame",{enumerable:!0,get:function(){return n.isGame}}),Object.defineProperty(b,"isLocale",{enumerable:!0,get:function(){return n.isLocale}}),Object.defineProperty(b,"isMultiplierBingo",{enumerable:!0,get:function(){return n.isMultiplierBingo}}),Object.defineProperty(b,"isObject",{enumerable:!0,get:function(){return n.isObject}}),Object.defineProperty(b,"isScoreBingo",{enumerable:!0,get:function(){return n.isScoreBingo}}),Object.defineProperty(b,"isTileJson",{enumerable:!0,get:function(){return n.isTileJson}});var o=c(87189);Object.defineProperty(b,"WordBonus",{enumerable:!0,get:function(){return o.WordBonus}});var p=c(25479);Object.defineProperty(b,"WordDefinition",{enumerable:!0,get:function(){return p.WordDefinition}})},98260:(a,b,c)=>{"use strict";c.d(b,{O:()=>d});let d=a=>(b,c)=>b===c?0:null===b?"right"===a?1:-1:null===c?"right"===a?-1:1:0},98892:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{v:()=>h});var e=c(69198),f=c(60145),g=a([e]);e=(g.then?(await g)():g)[0];let h=(0,e.createSlice)({initialState:f.q,name:"i18n",reducers:{loaded:(a,b)=>{a.translations[b.payload.locale]=b.payload.translations}}});d()}catch(a){d(a)}})}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=715,exports.ids=[715],exports.modules={1356:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getLegacyDictionaryFilepath=b.getDictionaryFilepath=void 0;let e=d(c(33873)),f=c(62579);b.getDictionaryFilepath=(a,b=f.OUTPUT_DIRECTORY)=>e.default.resolve(b,`${a}.gaddag`),b.getLegacyDictionaryFilepath=(a,b=f.OUTPUT_DIRECTORY)=>e.default.resolve(b,`${a}.txt`)},2655:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MemoryCache=b.LayeredCache=b.getDictionaryFilepath=b.downloadDictionary=b.DiskCache=b.createCacheTimestampComparator=b.createAsyncProxy=void 0;var d=c(80457);Object.defineProperty(b,"createAsyncProxy",{enumerable:!0,get:function(){return d.createAsyncProxy}});var e=c(10743);Object.defineProperty(b,"createCacheTimestampComparator",{enumerable:!0,get:function(){return e.createCacheTimestampComparator}});var f=c(70928);Object.defineProperty(b,"DiskCache",{enumerable:!0,get:function(){return f.DiskCache}});var g=c(49085);Object.defineProperty(b,"downloadDictionary",{enumerable:!0,get:function(){return g.downloadDictionary}});var h=c(1356);Object.defineProperty(b,"getDictionaryFilepath",{enumerable:!0,get:function(){return h.getDictionaryFilepath}});var i=c(16299);Object.defineProperty(b,"LayeredCache",{enumerable:!0,get:function(){return i.LayeredCache}});var j=c(70294);Object.defineProperty(b,"MemoryCache",{enumerable:!0,get:function(){return j.MemoryCache}})},5145:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getTxtWordList=void 0;let e=d(c(29021)),f=c(77279),g=c(33471);b.getTxtWordList=async(a,b)=>{let c=await (0,f.downloadFile)(a),d=e.default.readFileSync(c,"utf-8"),h=(0,g.extractWords)(d.toLocaleString(),b);return e.default.unlinkSync(c),h}},5878:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.findFirstWordIndex=void 0,b.findFirstWordIndex=(a,b)=>{let c=a.findIndex((a,c)=>{let d=a[c+1]||"",e=a.localeCompare(d,b)>0,f=!!a.match(/\s/);return 0!==a.trim().length&&!f&&e});if(void 0===c)throw Error("Cannot find index of the first word in the file");return c}},10305:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/french/ods8.txt",d.Locale.FR_FR);return(0,e.transliterateDiacritics)(a)}},10743:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createCacheTimestampComparator=void 0,b.createCacheTimestampComparator=a=>(b,c)=>{let d=b.getLastModifiedTimestamp(a),e=c.getLastModifiedTimestamp(a);return d===e?0:void 0===d?1:void 0===e?-1:e-d}},16299:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.LayeredCache=void 0;let d=c(10743),e=c(70928),f=c(70294);class g{constructor(){this.layers=[new f.MemoryCache,new e.DiskCache]}async get(a){let b=this.getLastModifiedLayer(a);if(!b)return Promise.resolve(void 0);let[c,d]=this.layers,e=await b.get(a);return b===d&&void 0!==e&&await c.set(a,e),e}getLastModifiedTimestamp(a){let b=this.getLastModifiedLayer(a);if(b)return b.getLastModifiedTimestamp(a)}has(a){return this.layers.some(b=>b.has(a))}isStale(a){return!!this.layers.some(b=>b.isStale(a))||!!this.layers.every(b=>void 0===b.isStale(a))&&void 0}async set(a,b){let[c,d]=this.layers;await d.set(a,b),await c.set(a,b)}getLastModifiedLayer(a){let[b]=[...this.layers.filter(b=>b.has(a))].sort((0,d.createCacheTimestampComparator)(a));return b}}b.LayeredCache=g},27475:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;var f=c(42507);Object.defineProperty(b,"getWordList",{enumerable:!0,get:function(){return f.getWordList}}),e(c(67511),b),e(c(98335),b)},33471:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.extractWords=void 0;let d=c(5878);b.extractWords=(a,b)=>{let c=a.split(/\r?\n/g),e=(0,d.findFirstWordIndex)(c,b),f=[];for(let a=e;a<c.length;++a){let b=c[a].trim();b.length>0&&f.push(b.toLocaleLowerCase())}return f}},37779:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/german/german.txt",d.Locale.DE_DE)},38670:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.transliterateDiacritics=void 0;let d=c(66605),e=c(40224);b.transliterateDiacritics=(a,b)=>(0,e.unique)(a.map(a=>(0,d.transliterate)(a,b)))},39287:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/file-2017.txt",d.Locale.ES_ES);return(0,e.transliterateDiacritics)(a,{ignore:["\xf1"]})}},40224:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unique=void 0,b.unique=a=>Array.from(new Set(a))},42507:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(67511),f={[d.Locale.DE_DE]:e.german.getWordList,[d.Locale.EN_GB]:e.english.getWordListGb,[d.Locale.EN_US]:e.english.getWordListUs,[d.Locale.ES_ES]:e.spanish.getWordList,[d.Locale.FA_IR]:e.persian.getWordList,[d.Locale.FR_FR]:e.french.getWordList,[d.Locale.PL_PL]:e.polish.getWordList,[d.Locale.RO_RO]:e.romanian.getWordList,[d.Locale.TR_TR]:e.turkish.getWordList};b.getWordList=a=>f[a]()},49085:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.downloadDictionary=g;let d=c(11366),e=c(57519),f=c(27475);async function g(a){let b=performance.now(),c=await (0,f.getWordList)(a),g=performance.now(),h=d.Gaddag.fromArray(c);return(0,e.logEvent)({type:"build",locale:a,words:c.length,download_ms:Math.round(g-b),build_ms:Math.round(performance.now()-g)}),h}},52250:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.downloadHtml=void 0;let d=c(31097);b.downloadHtml=a=>new Promise((b,c)=>{(a.startsWith("https")?d.https:d.http).get(a,a=>{let d="";a.setEncoding("utf8"),a.on("data",a=>{d+=a}),a.on("end",()=>{b(d)}),a.on("error",c)})})},52498:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getTempFilepath=void 0;let e=d(c(21820)),f=d(c(33873)),g=c(93839),h=f.default.resolve(e.default.homedir(),".scrabble-solver");b.getTempFilepath=()=>{let a=`${(0,g.getHash)()}.txt`;return f.default.join(h,a)}},59321:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.unzip=void 0;let e=d(c(29021)),f=d(c(42029));b.unzip=(a,b,c)=>e.default.createReadStream(a).pipe(f.default.Parse()).on("entry",a=>{a.path===b?a.pipe(e.default.createWriteStream(c)):a.autodrain()}).promise()},62579:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.OUTPUT_DIRECTORY=b.CACHE_STALE_THRESHOLD=b.DAY=void 0;let e=d(c(21820)),f=d(c(33873));b.DAY=864e5,b.CACHE_STALE_THRESHOLD=+b.DAY,b.OUTPUT_DIRECTORY=f.default.resolve(e.default.homedir(),".scrabble-solver","dictionaries")},67511:function(a,b,c){var d,e=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),f=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),g=this&&this.__importStar||(d=function(a){return(d=Object.getOwnPropertyNames||function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[b.length]=c);return b})(a)},function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c=d(a),g=0;g<c.length;g++)"default"!==c[g]&&e(b,a,c[g]);return f(b,a),b});Object.defineProperty(b,"__esModule",{value:!0}),b.turkish=b.spanish=b.romanian=b.polish=b.persian=b.french=b.german=b.english=void 0,b.english=g(c(80119)),b.german=g(c(37779)),b.french=g(c(10305)),b.persian=g(c(91135)),b.polish=g(c(72794)),b.romanian=g(c(82248)),b.spanish=g(c(39287)),b.turkish=g(c(92639))},70294:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MemoryCache=void 0;let d=c(62579);class e{constructor(){this.cache={},this.cacheTimestamps={}}get(a){return Promise.resolve(this.cache[a])}getLastModifiedTimestamp(a){return this.cacheTimestamps[a]}has(a){return void 0!==this.cache[a]}isStale(a){let b=this.getLastModifiedTimestamp(a);if(this.has(a)&&void 0!==b)return Math.abs(b-Date.now())>d.CACHE_STALE_THRESHOLD}set(a,b){return this.cacheTimestamps[a]=Date.now(),this.cache[a]=b,Promise.resolve()}}b.MemoryCache=e},70928:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.DiskCache=void 0;let e=c(11366),f=c(57519),g=d(c(29021)),h=c(62579),i=c(1356);class j{constructor(a=h.OUTPUT_DIRECTORY){this.directory=a}async get(a){if(!this.has(a))return;let b=(0,i.getDictionaryFilepath)(a,this.directory);try{let a=await g.default.promises.readFile(b);return e.Gaddag.deserialize(new Uint8Array(a.buffer,a.byteOffset,a.byteLength))}catch(c){(0,f.logError)("cache",c,{level:"warn",locale:a}),await g.default.promises.rm(b,{force:!0});return}}getLastModifiedTimestamp(a){let b=(0,i.getDictionaryFilepath)(a,this.directory);if(g.default.existsSync(b))return g.default.statSync(b).mtimeMs}has(a){let b=(0,i.getDictionaryFilepath)(a,this.directory);return g.default.existsSync(b)}isStale(a){if(!this.has(a))return;let b=this.getLastModifiedTimestamp(a);if(void 0!==b)return Math.abs(b-Date.now())>h.CACHE_STALE_THRESHOLD}async set(a,b){let c=(0,i.getDictionaryFilepath)(a,this.directory);await g.default.promises.writeFile(c,b.serialize()),await g.default.promises.rm((0,i.getLegacyDictionaryFilepath)(a,this.directory),{force:!0})}}b.DiskCache=j},72794:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let e=c(29562),f=c(14217),g=d(c(29021)),h=c(79551),i=c(98335);b.getWordList=async()=>{try{let a=(0,i.getTempFilepath)(),b=await j("https://sjp.pl/sl/growy/"),c=await (0,i.downloadFile)(b);await (0,i.unzip)(c,"slowa.txt",a),g.default.unlinkSync(c);let d=g.default.readFileSync(a,"utf-8");g.default.unlinkSync(a);let e=(0,i.extractWords)(d.toLocaleString(),"pl-PL");if(e.length<2e6)return l();return e}catch{return l()}};let j=async a=>{let b=k(await (0,i.downloadHtml)(a)),{href:c}=new h.URL(b,a);return c},k=a=>{let b=(0,f.load)(a),c=Array.from(b("a")).map(a=>b(a).attr("href")).filter(Boolean).find(a=>a.endsWith(".zip"));if(void 0===c)throw Error("Cannot find link to zip file on the page");return c},l=()=>(0,i.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/polish/sjp.txt",e.Locale.PL_PL)},77279:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.downloadFile=void 0;let e=c(31097),f=d(c(29021)),g=c(52498);b.downloadFile=a=>new Promise((b,c)=>{let d=(0,g.getTempFilepath)(),h=a.startsWith("https")?e.https:e.http,i=f.default.createWriteStream(d);h.get(a,e=>{void 0===e.statusCode||e.statusCode>=400?c(Error(`Cannot download file: ${a}`)):(e.on("error",a=>{i.close(),c(a)}),e.on("end",()=>{i.on("finish",()=>{i.close(),b(d)})}),e.pipe(i))}).on("error",a=>{i.close(),c(a)})})},77715:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.dictionaries=void 0;let f=c(90949);e(c(2655),b),b.dictionaries=new f.Dictionaries},80119:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordListUs=b.getWordListGb=void 0;let d=c(29562),e=c(98335);b.getWordListGb=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/sowpods.txt",d.Locale.EN_GB),b.getWordListUs=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/twl06.txt",d.Locale.EN_US)},80457:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createAsyncProxy=void 0,b.createAsyncProxy=a=>{let b=null;return async()=>{if(b)return b;try{return b=a(),await b}finally{b=null}}}},82248:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt",d.Locale.RO_RO);return(0,e.transliterateDiacritics)(a)}},90949:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.Dictionaries=void 0;let e=c(57519),f=c(29562),g=d(c(29021)),h=c(62579),i=c(2655);class j{constructor(){this.cache=new i.LayeredCache,this.downloadDictionaryProxies=Object.fromEntries(Object.values(f.Locale).map(a=>[a,(0,i.createAsyncProxy)(()=>(0,i.downloadDictionary)(a))]))}async get(a){if(this.cache.has(a)){let b=await this.cache.get(a);if(b)return b}return this.updateDictionary(a)}remove(){g.default.rmdirSync(h.OUTPUT_DIRECTORY,{recursive:!0})}async update(a){let b=a?Object.values(f.Locale):this.getLocalesToUpdate(),c=await Promise.allSettled(b.map(a=>this.updateDictionary(a))),d=[];return c.forEach((a,c)=>{"rejected"===a.status&&((0,e.logError)("build",a.reason,{locale:b[c]}),d.push(b[c]))}),d}getLocalesToUpdate(){return Object.values(f.Locale).filter(a=>!1!==this.cache.isStale(a))}async updateDictionary(a){g.default.mkdirSync(h.OUTPUT_DIRECTORY,{recursive:!0});let b=this.downloadDictionaryProxies[a],c=await b();return await this.cache.set(a,c),c}}b.Dictionaries=j},91135:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/persian/persian.txt",d.Locale.FA_IR)},92639:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/turkish/kelimelik.txt",d.Locale.TR_TR)},93839:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getHash=void 0;let e=d(c(55511));b.getHash=(a=8)=>e.default.randomBytes(a).toString("hex")},98335:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unzip=b.unique=b.transliterateDiacritics=b.getTxtWordList=b.getTempFilepath=b.getHash=b.findFirstWordIndex=b.extractWords=b.downloadHtml=b.downloadFile=void 0;var d=c(77279);Object.defineProperty(b,"downloadFile",{enumerable:!0,get:function(){return d.downloadFile}});var e=c(52250);Object.defineProperty(b,"downloadHtml",{enumerable:!0,get:function(){return e.downloadHtml}});var f=c(33471);Object.defineProperty(b,"extractWords",{enumerable:!0,get:function(){return f.extractWords}});var g=c(5878);Object.defineProperty(b,"findFirstWordIndex",{enumerable:!0,get:function(){return g.findFirstWordIndex}});var h=c(93839);Object.defineProperty(b,"getHash",{enumerable:!0,get:function(){return h.getHash}});var i=c(52498);Object.defineProperty(b,"getTempFilepath",{enumerable:!0,get:function(){return i.getTempFilepath}});var j=c(5145);Object.defineProperty(b,"getTxtWordList",{enumerable:!0,get:function(){return j.getTxtWordList}});var k=c(38670);Object.defineProperty(b,"transliterateDiacritics",{enumerable:!0,get:function(){return k.transliterateDiacritics}});var l=c(40224);Object.defineProperty(b,"unique",{enumerable:!0,get:function(){return l.unique}});var m=c(59321);Object.defineProperty(b,"unzip",{enumerable:!0,get:function(){return m.unzip}})}};