@scrabble-solver/scrabble-solver 2.13.6 → 2.13.8

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 (102) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +11 -11
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/prerender-manifest.js +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/routes-manifest.json +1 -1
  14. package/.next/server/chunks/577.js +1 -1
  15. package/.next/server/chunks/807.js +1 -1
  16. package/.next/server/chunks/977.js +1 -1
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/pages/404.html +1 -1
  19. package/.next/server/pages/500.html +1 -1
  20. package/.next/server/pages/_app.js +1 -1
  21. package/.next/server/pages/_error.js +1 -1
  22. package/.next/server/pages/api/solve.js +1 -1
  23. package/.next/server/pages/index.html +1 -1
  24. package/.next/server/pages/index.js +1 -1
  25. package/.next/server/pages/index.json +1 -1
  26. package/.next/server/pages-manifest.json +1 -1
  27. package/.next/static/7zESQYo9UAqNh9LV0b7Sd/_buildManifest.js +1 -0
  28. package/.next/static/chunks/{main-6e708370ad13b1f9.js → main-b5b360c6afb66b05.js} +1 -1
  29. package/.next/static/chunks/pages/{404-129e0943628b6fab.js → 404-63b972b24be99c62.js} +1 -1
  30. package/.next/static/chunks/pages/_app-a2848b7efa6bb6b0.js +17 -0
  31. package/.next/static/chunks/pages/index-7b73be2915cc7099.js +1 -0
  32. package/.next/static/css/6682db14f926d4c7.css +1 -0
  33. package/.next/static/css/b37850c8d5270d91.css +2 -0
  34. package/.next/trace +44 -44
  35. package/package.json +12 -13
  36. package/src/components/Alert/Alert.module.scss +3 -12
  37. package/src/components/Board/Board.module.scss +1 -4
  38. package/src/components/Board/BoardPure.tsx +1 -1
  39. package/src/components/Board/components/Actions/Actions.module.scss +7 -27
  40. package/src/components/Board/components/Cell/Cell.module.scss +5 -32
  41. package/src/components/Board/components/InputPrompt/InputPrompt.module.scss +4 -18
  42. package/src/components/Board/hooks/useBackgroundImage.tsx +15 -4
  43. package/src/components/Board/hooks/useGrid.ts +13 -5
  44. package/src/components/Board/lib/index.ts +0 -1
  45. package/src/components/Button/Button.module.scss +1 -8
  46. package/src/components/Button/Button.tsx +16 -17
  47. package/src/components/Button/Link.tsx +15 -16
  48. package/src/components/Dictionary/Dictionary.module.scss +1 -8
  49. package/src/components/IconButton/IconButton.tsx +8 -8
  50. package/src/components/IconButton/Link.tsx +8 -8
  51. package/src/components/Loading/Loading.module.scss +1 -4
  52. package/src/components/Modal/Modal.module.scss +2 -16
  53. package/src/components/Rack/Rack.module.scss +4 -18
  54. package/src/components/Rack/components/InputPrompt/InputPrompt.module.scss +1 -4
  55. package/src/components/Results/Cell.tsx +4 -5
  56. package/src/components/Results/HeaderButton.tsx +25 -22
  57. package/src/components/Results/Result.tsx +15 -3
  58. package/src/components/Results/Results.module.scss +31 -48
  59. package/src/components/Results/Results.tsx +1 -1
  60. package/src/components/Results/getCoordinatesColumn.ts +15 -0
  61. package/src/components/Results/getLocaleColumns.ts +7 -0
  62. package/src/components/Results/types.ts +1 -0
  63. package/src/components/Results/useColumns.ts +10 -7
  64. package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +9 -40
  65. package/src/components/Tile/Tile.module.scss +6 -26
  66. package/src/components/Tooltip/Tooltip.tsx +28 -0
  67. package/src/components/Tooltip/TooltipContent.tsx +53 -0
  68. package/src/components/Tooltip/TooltipTrigger.tsx +26 -0
  69. package/src/components/Tooltip/context.ts +17 -0
  70. package/src/components/Tooltip/index.ts +1 -1
  71. package/src/components/Tooltip/useTooltip.ts +54 -0
  72. package/src/components/index.ts +1 -2
  73. package/src/hooks/index.ts +0 -1
  74. package/src/i18n/languages/german.json +1 -1
  75. package/src/icons/index.ts +0 -2
  76. package/src/lib/getCoordinates.ts +18 -0
  77. package/src/lib/groupResults.ts +16 -11
  78. package/src/lib/index.ts +2 -1
  79. package/src/lib/sortResults.ts +1 -0
  80. package/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +2 -2
  81. package/src/modals/MenuModal/MenuModal.module.scss +2 -15
  82. package/src/modals/RemainingTilesModal/RemainingTilesModal.module.scss +1 -7
  83. package/src/modals/WordsModal/WordsModal.module.scss +2 -15
  84. package/src/pages/_app.tsx +5 -1
  85. package/src/parameters/index.ts +1 -0
  86. package/src/styles/mixins.scss +2 -5
  87. package/src/types/index.ts +1 -0
  88. package/.next/static/4GWIKe7khKxREyq3ZamDK/_buildManifest.js +0 -1
  89. package/.next/static/chunks/pages/_app-cccda36d00fa2328.js +0 -17
  90. package/.next/static/chunks/pages/index-caaf20b2488cb10e.js +0 -1
  91. package/.next/static/css/11366b7489cf90ac.css +0 -1
  92. package/.next/static/css/f549d7823f599b8d.css +0 -2
  93. package/src/components/Checkbox/Checkbox.module.scss +0 -45
  94. package/src/components/Checkbox/Checkbox.tsx +0 -38
  95. package/src/components/Checkbox/index.ts +0 -1
  96. package/src/components/Tooltip/useTooltip.tsx +0 -134
  97. package/src/hooks/usePortal.tsx +0 -47
  98. package/src/icons/CheckboxChecked.svg +0 -4
  99. package/src/icons/CheckboxEmpty.svg +0 -4
  100. package/src/lib/canUseDom.ts +0 -3
  101. /package/.next/static/{4GWIKe7khKxREyq3ZamDK → 7zESQYo9UAqNh9LV0b7Sd}/_ssgManifest.js +0 -0
  102. /package/src/{components/Board/lib → lib}/getCoordinate.ts +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=977,exports.ids=[977],exports.modules={6835:(e,t)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return function e(t,r){return r in t?t[r]:"then"in t&&"function"==typeof t.then?t.then(t=>e(t,r)):"function"==typeof t&&"default"===r?t:void 0}}})},9927:(e,t,r)=>{r.d(t,{Z:()=>i});let i=e=>({origin:e.headers.origin,referer:e.headers.referer,userAgent:e.headers["user-agent"],xForwardedFor:e.headers["x-forwarded-for"],xRealIp:e.headers["x-real-ip"]})},1631:(e,t)=>{var r;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return r}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(r||(r={}))},9150:(e,t,r)=>{e.exports=r(145)},8436:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VOWELS=t.CONSONANTS=t.NO_BONUS=t.EMPTY_CELL=t.BONUS_WORD=t.BONUS_CHARACTER=t.BLANK=t.COMMA_LATIN=t.COMMA_ARABIC=void 0,t.COMMA_ARABIC="،",t.COMMA_LATIN=",",t.BLANK=" ",t.BONUS_CHARACTER="BONUS_CHARACTER",t.BONUS_WORD="BONUS_WORD",t.EMPTY_CELL=" ",t.NO_BONUS={characterMultiplier:1,wordMultiplier:1},t.CONSONANTS="bcćdfghjklłmnń\xf1pqrsśtvwxzźż".split(""),t.VOWELS="aą\xe4eęio\xf3\xf6u\xfcy".split("")},1285:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(2954)),o=r(6452),s=i(r(7147)),l=r(5823),a=r(6137);class u{constructor(){this.cache=new a.LayeredCache,this.downloadDictionaryProxies=Object.fromEntries(Object.values(o.Locale).map(e=>[e,(0,a.createAsyncProxy)(()=>(0,a.downloadDictionary)(e))]))}async get(e){if(this.cache.has(e)){let t=await this.cache.get(e);if(t)return t}return n.default.info("Dictionaries - cache miss",{locale:e}),this.updateDictionary(e)}remove(){s.default.rmdirSync(l.OUTPUT_DIRECTORY,{recursive:!0})}async update(e){let t=e?Object.values(o.Locale):this.getLocalesToUpdate();n.default.info("Dictionaries - update",{force:e,locales:t}),await Promise.all(t.map(e=>this.updateDictionary(e)))}getLocalesToUpdate(){return Object.values(o.Locale).filter(e=>!1!==this.cache.isStale(e))}async updateDictionary(e){n.default.info("Dictionaries - updateDictionary",{locale:e}),s.default.mkdirSync(l.OUTPUT_DIRECTORY,{recursive:!0});let t=this.downloadDictionaryProxies[e],r=await t();return await this.cache.set(e,r),r}}t.default=u},5823:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.OUTPUT_DIRECTORY=t.CACHE_STALE_THRESHOLD=t.DAY=void 0;let n=i(r(2037)),o=i(r(1017));t.DAY=864e5,t.CACHE_STALE_THRESHOLD=1*t.DAY,t.OUTPUT_DIRECTORY=o.default.resolve(n.default.homedir(),".scrabble-solver","dictionaries")},9044:function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.dictionaries=void 0;let s=o(r(1285));n(r(6137),t),t.dictionaries=new s.default},2812:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(9119),o=i(r(7147)),s=r(5823),l=i(r(8638));class a{async get(e){if(!this.has(e))return;let t=(0,l.default)(e),r=await o.default.promises.readFile(t,"utf-8");return n.Trie.deserialize(r)}getLastModifiedTimestamp(e){let t=(0,l.default)(e);if(o.default.existsSync(t))return o.default.statSync(t).mtimeMs}has(e){let t=(0,l.default)(e);return o.default.existsSync(t)}isStale(e){if(!this.has(e))return;let t=this.getLastModifiedTimestamp(e);if(void 0!==t)return Math.abs(t-Date.now())>s.CACHE_STALE_THRESHOLD}async set(e,t){let r=(0,l.default)(e);await o.default.promises.writeFile(r,t.serialize())}}t.default=a},287:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(494)),o=i(r(2812)),s=i(r(192));class l{constructor(){this.layers=[new s.default,new o.default]}async get(e){let t=this.getLastModifiedLayer(e);if(!t)return Promise.resolve(void 0);let[r,i]=this.layers,n=await t.get(e);return t===i&&void 0!==n&&await r.set(e,n),n}getLastModifiedTimestamp(e){let t=this.getLastModifiedLayer(e);if(t)return t.getLastModifiedTimestamp(e)}has(e){return this.layers.some(t=>t.has(e))}isStale(e){return!!this.layers.some(t=>t.isStale(e))||!!this.layers.every(t=>void 0===t.isStale(e))&&void 0}async set(e,t){let[r,i]=this.layers;await i.set(e,t),await r.set(e,t)}getLastModifiedLayer(e){let[t]=[...this.layers.filter(t=>t.has(e))].sort((0,n.default)(e));return t}}t.default=l},192:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(5823);class n{constructor(){this.cache={},this.cacheTimestamps={}}get(e){return Promise.resolve(this.cache[e])}getLastModifiedTimestamp(e){return this.cacheTimestamps[e]}has(e){return void 0!==this.cache[e]}isStale(e){let t=this.getLastModifiedTimestamp(e);if(this.has(e)&&void 0!==t)return Math.abs(t-Date.now())>i.CACHE_STALE_THRESHOLD}set(e,t){return this.cacheTimestamps[e]=Date.now(),this.cache[e]=t,Promise.resolve()}}t.default=n},6554:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>{let t=null;return async()=>{if(t)return t;try{return t=e(),await t}finally{t=null}}}},494:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>(t,r)=>{let i=t.getLastModifiedTimestamp(e),n=r.getLastModifiedTimestamp(e);return i===n?0:void 0===i?1:void 0===n?-1:n-i}},1281:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(9119),o=i(r(2954)),s=r(1585),l=async e=>{o.default.info("downloadDictionary",{locale:e});let t=await (0,s.getWordList)(e);return o.default.info("downloadDictionary - success",{locale:e}),n.Trie.fromArray(t)};t.default=l},8638:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(1017)),o=r(5823);t.default=e=>n.default.resolve(o.OUTPUT_DIRECTORY,`${e}.txt`)},6137:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemoryCache=t.LayeredCache=t.getDictionaryFilepath=t.downloadDictionary=t.DiskCache=t.createCacheTimestampComparator=t.createAsyncProxy=void 0;var n=r(6554);Object.defineProperty(t,"createAsyncProxy",{enumerable:!0,get:function(){return i(n).default}});var o=r(494);Object.defineProperty(t,"createCacheTimestampComparator",{enumerable:!0,get:function(){return i(o).default}});var s=r(2812);Object.defineProperty(t,"DiskCache",{enumerable:!0,get:function(){return i(s).default}});var l=r(1281);Object.defineProperty(t,"downloadDictionary",{enumerable:!0,get:function(){return i(l).default}});var a=r(8638);Object.defineProperty(t,"getDictionaryFilepath",{enumerable:!0,get:function(){return i(a).default}});var u=r(287);Object.defineProperty(t,"LayeredCache",{enumerable:!0,get:function(){return i(u).default}});var d=r(192);Object.defineProperty(t,"MemoryCache",{enumerable:!0,get:function(){return i(d).default}})},8793:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.OUTPUT_DIRECTORY=void 0;let n=i(r(2037)),o=i(r(1017));t.OUTPUT_DIRECTORY=o.default.resolve(n.default.homedir(),".scrabble-solver","logs")},2954:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(6730);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i(n).default}})},6730:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(1017)),o=r(7773),s=r(8793),l=(0,o.createLogger)({level:"info",format:o.format.combine(o.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),o.format.errors({stack:!0}),o.format.splat(),o.format.json(),o.format.prettyPrint()),transports:[new o.transports.File({filename:n.default.resolve(s.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new o.transports.File({filename:n.default.resolve(s.OUTPUT_DIRECTORY,"all.log")}),new o.transports.Console({format:o.format.combine(o.format.colorize(),o.format.simple()),level:"error"})]});t.default=l},4031:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(902)),s=i(r(580));class l{static create(e,t){return l.fromStringArray(Array(t).fill(Array(e).fill(" ").join("")))}static fromJson(e){return new l({rows:e.map(e=>e.map(o.default.fromJson))})}static fromStringArray(e){return new l({rows:e.map((e,t)=>e.split("").map((e,r)=>new o.default({isEmpty:!e||e===n.EMPTY_CELL,tile:e===n.EMPTY_CELL?s.default.Null:new s.default({character:e}),x:r,y:t})))})}constructor({rows:e}){this.rows=e,this.columnsCount=e[0].length,this.rowsCount=e.length}get center(){let e=Math.floor(this.columnsCount/2),t=Math.floor(this.rowsCount/2);return this.rows[t][e]}clone(){return new l({rows:this.rows.map(e=>e.map(e=>e.clone()))})}collides(e){return this.collidesUp(e)||this.collidesDown(e)||this.collidesLeft(e)||this.collidesRight(e)}collidesDown({x:e,y:t}){return t<this.rowsCount-1&&!this.rows[t+1][e].isEmpty}collidesLeft({x:e,y:t}){return e>0&&!this.rows[t][e-1].isEmpty}collidesRight({x:e,y:t}){return e<this.columnsCount-1&&!this.rows[t][e+1].isEmpty}collidesUp({x:e,y:t}){return t>0&&!this.rows[t-1][e].isEmpty}equals(e){return this.columnsCount===e.columnsCount&&this.rowsCount===e.rowsCount&&this.rows.every((t,r)=>t.every((t,i)=>t.equals(e.rows[r][i])))}getBlanksCount(){return this.rows.reduce((e,t)=>e+t.reduce((e,t)=>e+(t.tile.isBlank?1:0),0),0)}getColumn(e){return this.rows.map(t=>t[e])}getRow(e){return this.rows[e]}getTilesCount(){return this.rows.reduce((e,t)=>e+t.reduce((e,t)=>e+(t.hasTile()?1:0),0),0)}getWords(){let e=[];for(let t=0;t<this.columnsCount;++t){let r=[];for(let e=0;e<this.rowsCount;++e)r.push(this.rows[e][t]);e.push(r)}let t=new l({rows:e});return this.toString().split("\n").concat(t.toString().split("\n")).flatMap(e=>e.replaceAll(/\s+/g,n.EMPTY_CELL).split(" ")).filter(e=>e.length>1)}isEmpty(){return this.rows.every(e=>e.every(({isEmpty:e})=>e))}toJson(){return this.rows.map(e=>e.map(e=>e.toJson()))}toString(){return this.rows.map(e=>e.map(String).join("")).join("\n")}updateCell(e,t,r){this.rows[t][e]=r(this.rows[t][e])}updateRow(e,t){this.rows[e]=t(this.rows[e])}}t.default=l},8508:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isBoardJson=void 0;let i=r(6508);t.isBoardJson=e=>{if(!Array.isArray(e))return!1;for(let t of e){if(!Array.isArray(e))return!1;for(let e of t)if(!(0,i.isCellJson)(e))return!1}return!0}},769:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{constructor({multiplier:e,score:t,x:r,y:i}){this.multiplier=e,this.score=t,this.x=r,this.y=i}canApply(e,t){return t.isEmpty&&this.matchesCellCoordinates(t)}matchesCellCoordinates(e){return this.x===e.x&&this.y===e.y}toJson(){return{multiplier:this.multiplier,score:this.score,type:this.type,x:this.x,y:this.y}}get value(){return{characterMultiplier:1,wordMultiplier:1}}}t.default=r},902:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(580));class o{static fromJson(e){return new o({isEmpty:e.isEmpty,tile:n.default.fromJson(e.tile),x:e.x,y:e.y})}constructor({isEmpty:e=!0,tile:t=n.default.Null,x:r,y:i}){this.isEmpty=e,this.tile=t,this.x=r,this.y=i}clone(){return new o({isEmpty:this.isEmpty,tile:this.tile.clone(),x:this.x,y:this.y})}equals(e){return this.x===e.x&&this.y===e.y&&this.isEmpty===e.isEmpty&&this.tile.equals(e.tile)}hasTile(){return this.tile!==n.default.Null}isCandidate(){return this.isEmpty&&this.hasTile()}toJson(){return{isEmpty:this.isEmpty,tile:this.tile.toJson(),x:this.x,y:this.y}}toString(){return this.tile.toString()}}t.default=o},6508:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isCellJson=void 0;let n=i(r(3518)),o=r(2298);t.isCellJson=e=>(0,n.default)(e)&&"boolean"==typeof e.isEmpty&&((0,o.isTileJson)(e.tile)||null===e.tile)&&"number"==typeof e.x&&"number"==typeof e.y},5699:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(769));class s extends o.default{constructor(){super(...arguments),this.type=n.BONUS_CHARACTER}canApply(e,t){return super.canApply(e,t)&&this.matchesCellTileScore(e,t)}matchesCellTileScore(e,t){return void 0===this.score||this.score===e.pointsMap[t.tile.character]}get value(){return{characterMultiplier:this.multiplier,wordMultiplier:1}}}t.default=s},8725:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(5699)),s=i(r(9667));class l{static fromJson(e){return new l(e)}constructor(e){this.bonuses=a(e),this.config=e,this.pointsMap=d(this.config)}get allTilesBonusScore(){return this.config.allTilesBonusScore}get alphabet(){return u(this.config)}get blankScore(){return this.config.blankScore}get blanksCount(){return this.config.blanksCount}get boardHeight(){return this.config.boardHeight}get boardWidth(){return this.config.boardWidth}get game(){return this.config.game}get locale(){return this.config.locale}get twoCharacterTiles(){return this.config.tiles.filter(e=>2===e.character.length).map(e=>e.character)}getCellBonus(e){return this.bonuses.find(t=>t.matchesCellCoordinates(e))}getCellBonusValue(e){return this.getCellBonus(e)?.value||n.NO_BONUS}getCharacterPoints(e){return null===e?void 0:e===n.BLANK?this.blankScore:this.pointsMap[e]}getTwoCharacterTileByPrefix(e){if(1===e.length)return this.twoCharacterTiles.find(t=>t.startsWith(e))}getTilePoints(e){if(null!==e)return e.isBlank?this.blankScore:this.getCharacterPoints(e.character)}hasCharacter(e){return e in this.pointsMap}isTwoCharacterTilePrefix(e){return void 0!==this.getTwoCharacterTileByPrefix(e)}get maximumCharactersCount(){return this.config.maximumCharactersCount}get tiles(){return this.config.tiles}toJson(){return this.config}}let a=e=>e.bonuses.map(e=>{if(e.type===n.BONUS_CHARACTER)return new o.default(e);if(e.type===n.BONUS_WORD)return new s.default(e);throw Error(`Unsupported Bonus type: "${e.type}"`)}),u=e=>e.tiles.map(({character:e})=>e),d=e=>e.tiles.reduce((e,{character:t,score:r})=>({...e,[t]:r}),{});t.default=l},9238:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3600));class o extends n.default{constructor(e){super(e.board,e.cells),this.collisions=e.getCollisions()}getCollisions(){return this.collisions}}t.default=o},7659:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.isGame=void 0,function(e){e.Literaki="literaki",e.Scrabble="scrabble",e.SuperScrabble="super-scrabble"}(r||(r={}));let i=Object.values(r);t.isGame=e=>i.includes(e),t.default=r},4405:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3600));class o extends n.default{clone(){return new o(this.board,this.cells.map(e=>e.clone()))}getCollisions(){let e=[];return this.cells.filter(e=>e.isEmpty&&(this.board.collidesUp(e)||this.board.collidesDown(e))).forEach(t=>{let r=this.board.getColumn(t.x),i=t.y-1;for(;i>=0&&r[i].hasTile();)--i;let o=r.slice(i+1,t.y);for(i=t.y+1;i<r.length&&r[i].hasTile();)++i;let s=r.slice(t.y+1,i),l=[...o,t,...s];if(l.length>1){let t=new n.default(this.board,l);e.push(t)}}),e}}t.default=o},8044:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.isLocale=void 0,function(e){e.DE_DE="de-DE",e.EN_GB="en-GB",e.EN_US="en-US",e.ES_ES="es-ES",e.FA_IR="fa-IR",e.FR_FR="fr-FR",e.PL_PL="pl-PL",e.RO_RO="ro-RO"}(r||(r={}));let i=Object.values(r);t.isLocale=e=>i.includes(e),t.default=r},3600:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.board=e,this.cells=t}canBePlaced(e){let t=this.getEmptyCellsCount();return t>=1&&t<=e.maximumCharactersCount&&(this.hasAtLeast1NonEmptyCell()||this.collides()||this.goesThroughBoardCenter()&&this.board.isEmpty())}clone(){return new r(this.board,this.cells.map(e=>e.clone()))}collides(){return this.cells.some(e=>e.isEmpty&&this.board.collides(e))}getIndexOfFirstCellWithoutTile(){return this.cells.findIndex(e=>!e.hasTile())}getEmptyCellsCount(){return this.cells.filter(e=>e.isEmpty).length}goesThroughBoardCenter(){return this.cells.some(e=>e.x===this.board.center.x&&e.y===this.board.center.y&&e.isEmpty)}hasAtLeast1EmptyCell(){return this.cells.some(e=>e.isEmpty)}hasAtLeast1NonEmptyCell(){return this.cells.some(e=>!e.isEmpty)}getCollisions(){return[]}toJson(){return{cells:this.cells.map(e=>e.toJson()),collisions:this.getCollisions().map(e=>e.toJson()),word:this.toString()}}toString(){return this.cells.reduce((e,t)=>e+t.toString(),"")}}t.default=r},8211:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(902));class s{static fromJson(e){return new s({id:e.id,cells:e.cells.map(o.default.fromJson),collisions:e.collisions.map(e=>e.map(o.default.fromJson)),points:e.points})}constructor({cells:e,id:t,collisions:r,points:i}){let n=c(e);this.blanksCount=l(n).length,this.cells=e,this.collisions=r,this.consonantsCount=a(n).length,this.id=t,this.length=e.length,this.points=i,this.pointsRatio=d(n,i),this.tiles=n,this.tilesCount=n.length,this.vowelsCount=u(n).length,this.word=f(e),this.words=h(e,r),this.wordsCount=1+this.collisions.length}toJson(){return{cells:this.cells.map(e=>e.toJson()),id:this.id,collisions:this.collisions.map(e=>e.map(e=>e.toJson())),points:this.points}}}let l=e=>e.filter(({isBlank:e})=>e),a=e=>e.filter(p),u=e=>e.filter(_),d=(e,t)=>t/e.length,c=e=>e.filter(({isEmpty:e})=>e).map(({tile:e})=>e),f=e=>e.reduce((e,t)=>e+t.toString(),""),h=(e,t)=>[e,...t].map(f),p=({character:e,isBlank:t})=>n.CONSONANTS.includes(e)&&!t,_=({character:e,isBlank:t})=>n.VOWELS.includes(e)&&!t;t.default=s},580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(8436);class n{static fromJson(e){return e?new n({character:e.character,isBlank:e.isBlank}):n.Null}constructor({character:e,isBlank:t=!1}){this.character=e,this.isBlank=t}clone(){return new n({character:this.character,isBlank:this.isBlank})}equals(e){return this.character===e.character&&this.isBlank===e.isBlank}toJson(){return{character:this.character,isBlank:this.isBlank}}toString(){return this.character}}n.Null=Object.freeze({character:i.EMPTY_CELL,isBlank:!1,clone:()=>n.Null,equals:e=>e===n.Null,toJson:()=>null,toString:()=>i.EMPTY_CELL}),t.default=n},2298:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isTileJson=void 0;let n=i(r(3518));t.isTileJson=e=>(0,n.default)(e)&&"string"==typeof e.character&&"boolean"==typeof e.isBlank},6161:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3600));class o extends n.default{clone(){return new o(this.board,this.cells.map(e=>e.clone()))}getCollisions(){let e=[];return this.cells.filter(e=>e.isEmpty&&(this.board.collidesLeft(e)||this.board.collidesRight(e))).forEach(t=>{let r=this.board.getRow(t.y),i=t.x-1;for(;i>=0&&r[i].hasTile();)--i;let o=r.slice(i+1,t.x);for(i=t.x+1;i<r.length&&r[i].hasTile();)++i;let s=r.slice(t.x+1,i),l=[...o,t,...s];if(l.length>1){let t=new n.default(this.board,l);e.push(t)}}),e}}t.default=o},9667:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(769));class s extends o.default{constructor(){super(...arguments),this.type=n.BONUS_WORD}get value(){return{characterMultiplier:1,wordMultiplier:this.multiplier}}}t.default=s},3184:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{static fromJson(e){return e?new r({definitions:e.definitions,exists:e.exists,isAllowed:e.isAllowed,word:e.word}):r.Null}constructor({definitions:e,exists:t,isAllowed:r,word:i}){this.definitions=e,this.exists=t,this.isAllowed=r,this.word=i}toJson(){return{definitions:this.definitions,exists:this.exists,isAllowed:this.isAllowed,word:this.word}}}r.Null=Object.freeze({definitions:[],exists:!1,isAllowed:!1,word:"",toJson:()=>null}),t.default=r},6452:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isObject=t.isError=t.WordDefinition=t.WordBonus=t.VerticalPattern=t.isTileJson=t.Tile=t.Result=t.Pattern=t.isLocale=t.Locale=t.HorizontalPattern=t.isGame=t.Game=t.FinalPattern=t.Config=t.CharacterBonus=t.isCellJson=t.Cell=t.Bonus=t.isBoardJson=t.Board=void 0;var n=r(4031);Object.defineProperty(t,"Board",{enumerable:!0,get:function(){return i(n).default}});var o=r(8508);Object.defineProperty(t,"isBoardJson",{enumerable:!0,get:function(){return o.isBoardJson}});var s=r(769);Object.defineProperty(t,"Bonus",{enumerable:!0,get:function(){return i(s).default}});var l=r(902);Object.defineProperty(t,"Cell",{enumerable:!0,get:function(){return i(l).default}});var a=r(6508);Object.defineProperty(t,"isCellJson",{enumerable:!0,get:function(){return a.isCellJson}});var u=r(5699);Object.defineProperty(t,"CharacterBonus",{enumerable:!0,get:function(){return i(u).default}});var d=r(8725);Object.defineProperty(t,"Config",{enumerable:!0,get:function(){return i(d).default}});var c=r(9238);Object.defineProperty(t,"FinalPattern",{enumerable:!0,get:function(){return i(c).default}});var f=r(7659);Object.defineProperty(t,"Game",{enumerable:!0,get:function(){return i(f).default}}),Object.defineProperty(t,"isGame",{enumerable:!0,get:function(){return f.isGame}});var h=r(4405);Object.defineProperty(t,"HorizontalPattern",{enumerable:!0,get:function(){return i(h).default}});var p=r(8044);Object.defineProperty(t,"Locale",{enumerable:!0,get:function(){return i(p).default}}),Object.defineProperty(t,"isLocale",{enumerable:!0,get:function(){return p.isLocale}});var _=r(3600);Object.defineProperty(t,"Pattern",{enumerable:!0,get:function(){return i(_).default}});var m=r(8211);Object.defineProperty(t,"Result",{enumerable:!0,get:function(){return i(m).default}});var y=r(580);Object.defineProperty(t,"Tile",{enumerable:!0,get:function(){return i(y).default}});var g=r(2298);Object.defineProperty(t,"isTileJson",{enumerable:!0,get:function(){return g.isTileJson}});var b=r(6161);Object.defineProperty(t,"VerticalPattern",{enumerable:!0,get:function(){return i(b).default}});var v=r(9667);Object.defineProperty(t,"WordBonus",{enumerable:!0,get:function(){return i(v).default}});var O=r(3184);Object.defineProperty(t,"WordDefinition",{enumerable:!0,get:function(){return i(O).default}});var P=r(4075);Object.defineProperty(t,"isError",{enumerable:!0,get:function(){return i(P).default}});var w=r(3518);Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return i(w).default}})},4075:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3518));t.default=e=>!!(0,n.default)(e)&&"string"==typeof e.message},3518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>"object"==typeof e&&null!==e},8769:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(1390),o={[i.Locale.DE_DE]:n.german.getWordList,[i.Locale.EN_GB]:n.english.getWordListGb,[i.Locale.EN_US]:n.english.getWordListUs,[i.Locale.ES_ES]:n.spanish.getWordList,[i.Locale.FA_IR]:n.persian.getWordList,[i.Locale.FR_FR]:n.french.getWordList,[i.Locale.PL_PL]:n.polish.getWordList,[i.Locale.RO_RO]:n.romanian.getWordList};t.getWordList=e=>o[e]()},1585:function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;var o=r(8769);Object.defineProperty(t,"getWordList",{enumerable:!0,get:function(){return o.getWordList}}),n(r(1390),t),n(r(337),t)},9056:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordListUs=t.getWordListGb=void 0;let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://www.wordgamedictionary.com/sowpods/download/sowpods.txt",i.Locale.EN_GB);t.getWordListGb=o;let s=async()=>(0,n.getTxtWordList)("https://www.wordgamedictionary.com/twl06/download/twl06.txt",i.Locale.EN_US);t.getWordListUs=s},9637:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>{let e=await (0,n.getTxtWordList)("https://raw.githubusercontent.com/Thecoolsim/French-Scrabble-ODS8/main/French%20ODS%20dictionary.txt",i.Locale.FR_FR);return(0,n.latinizeDiacritics)(e)};t.getWordList=o},4342:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://raw.githubusercontent.com/hippler/german-wordlist/master/words.txt",i.Locale.DE_DE);t.getWordList=o},1390:function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.spanish=t.romanian=t.polish=t.persian=t.french=t.german=t.english=void 0,t.english=o(r(9056)),t.german=o(r(4342)),t.french=o(r(9637)),t.persian=o(r(6855)),t.polish=o(r(7872)),t.romanian=o(r(8311)),t.spanish=o(r(2726))},6855:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://raw.githubusercontent.com/MansourM/persian-to-persian-dictionary/main/moein/words.txt",i.Locale.FA_IR);t.getWordList=o},7872:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let n=r(8048),o=i(r(7147)),s=r(7310),l=r(337),a=async()=>{let e=(0,l.getTempFilepath)(),t=await u("https://sjp.pl/sl/growy/"),r=await (0,l.downloadFile)(t);await (0,l.unzip)(r,"slowa.txt",e),o.default.unlinkSync(r);let i=o.default.readFileSync(e,"utf-8");return o.default.unlinkSync(e),(0,l.extractWords)(i.toLocaleString(),"pl-PL")};t.getWordList=a;let u=async e=>{let t=await (0,l.downloadHtml)(e),r=await d(t),{href:i}=new s.URL(r,e);return i},d=e=>{let t=(0,n.load)(e),r=Array.from(t("a")).map(e=>t(e).attr("href")).filter(Boolean).find(e=>e.endsWith(".zip"));if(void 0===r)throw Error("Cannot find link to zip file on the page");return r}},8311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>{let e=await (0,n.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt",i.Locale.RO_RO);return(0,n.latinizeDiacritics)(e)};t.getWordList=o},2726:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let n=r(6452),o=i(r(1118)),s=r(337),l="---n---",a=async()=>(await (0,s.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/fise-2.txt",n.Locale.ES_ES)).map(e=>e.replaceAll("\xf1",l)).map(o.default).map(e=>e.replaceAll(l,"\xf1"));t.getWordList=a},920:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(6953),o=i(r(7147)),s=i(r(5026));t.default=e=>new Promise((t,r)=>{let i=(0,s.default)(),l=e.startsWith("https")?n.https:n.http,a=o.default.createWriteStream(i);l.get(e,n=>{if(void 0===n.statusCode||n.statusCode>=400){r(Error(`Cannot download file: ${e}`));return}n.on("error",e=>{a.close(),r(e)}),n.on("end",()=>{a.on("finish",()=>{a.close(),t(i)})}),n.pipe(a)}).on("error",e=>{a.close(),r(e)})})},8015:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(6953);t.default=e=>new Promise((t,r)=>{(e.startsWith("https")?i.https:i.http).get(e,e=>{let i="";e.setEncoding("utf8"),e.on("data",e=>{i+=e}),e.on("end",()=>{t(i)}),e.on("error",r)})})},9759:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(7669));t.default=(e,t)=>{let r=e.split(/\r?\n/g),i=(0,n.default)(r,t),o=[];for(let e=i;e<r.length;++e){let t=r[e].trim();t.length>0&&o.push(t.toLocaleLowerCase())}return o}},7669:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{let r=e.findIndex((e,r)=>{let i=e[r+1]||"",n=e.localeCompare(i,t)>0,o=!!e.match(/\s/);return 0!==e.trim().length&&!o&&n});if(void 0===r)throw Error("Cannot find index of the first word in the file");return r}},1108:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(6113));t.default=(e=8)=>n.default.randomBytes(e).toString("hex")},5026:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(2037)),o=i(r(1017)),s=i(r(1108)),l=o.default.resolve(n.default.homedir(),".scrabble-solver");t.default=()=>{let e=`${(0,s.default)()}.txt`;return o.default.join(l,e)}},8029:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(7147)),o=i(r(920)),s=i(r(9759)),l=async(e,t)=>{let r=await (0,o.default)(e),i=n.default.readFileSync(r,"utf-8"),l=(0,s.default)(i.toLocaleString(),t);return n.default.unlinkSync(r),l};t.default=l},337:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.unzip=t.unique=t.latinizeDiacritics=t.getTxtWordList=t.getTempFilepath=t.getHash=t.findFirstWordIndex=t.extractWords=t.downloadHtml=t.downloadFile=void 0;var n=r(920);Object.defineProperty(t,"downloadFile",{enumerable:!0,get:function(){return i(n).default}});var o=r(8015);Object.defineProperty(t,"downloadHtml",{enumerable:!0,get:function(){return i(o).default}});var s=r(9759);Object.defineProperty(t,"extractWords",{enumerable:!0,get:function(){return i(s).default}});var l=r(7669);Object.defineProperty(t,"findFirstWordIndex",{enumerable:!0,get:function(){return i(l).default}});var a=r(1108);Object.defineProperty(t,"getHash",{enumerable:!0,get:function(){return i(a).default}});var u=r(5026);Object.defineProperty(t,"getTempFilepath",{enumerable:!0,get:function(){return i(u).default}});var d=r(8029);Object.defineProperty(t,"getTxtWordList",{enumerable:!0,get:function(){return i(d).default}});var c=r(1563);Object.defineProperty(t,"latinizeDiacritics",{enumerable:!0,get:function(){return i(c).default}});var f=r(2017);Object.defineProperty(t,"unique",{enumerable:!0,get:function(){return i(f).default}});var h=r(6987);Object.defineProperty(t,"unzip",{enumerable:!0,get:function(){return i(h).default}})},1563:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(1118)),o=i(r(2017));t.default=e=>(0,o.default)(e.map(e=>(0,n.default)(e)))},2017:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>Array.from(new Set(e))},6987:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(7147)),o=i(r(4616));t.default=(e,t,r)=>n.default.createReadStream(e).pipe(o.default.Parse()).on("entry",e=>{e.path===t?e.pipe(n.default.createWriteStream(r)):e.autodrain()}).promise()}};
1
+ "use strict";exports.id=977,exports.ids=[977],exports.modules={6835:(e,t)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return function e(t,r){return r in t?t[r]:"then"in t&&"function"==typeof t.then?t.then(t=>e(t,r)):"function"==typeof t&&"default"===r?t:void 0}}})},9927:(e,t,r)=>{r.d(t,{Z:()=>i});let i=e=>({origin:e.headers.origin,referer:e.headers.referer,userAgent:e.headers["user-agent"],xForwardedFor:e.headers["x-forwarded-for"],xRealIp:e.headers["x-real-ip"]})},1631:(e,t)=>{var r;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return r}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(r||(r={}))},9150:(e,t,r)=>{e.exports=r(145)},8436:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VOWELS=t.CONSONANTS=t.NO_BONUS=t.EMPTY_CELL=t.BONUS_WORD=t.BONUS_CHARACTER=t.BLANK=t.COMMA_LATIN=t.COMMA_ARABIC=void 0,t.COMMA_ARABIC="،",t.COMMA_LATIN=",",t.BLANK=" ",t.BONUS_CHARACTER="BONUS_CHARACTER",t.BONUS_WORD="BONUS_WORD",t.EMPTY_CELL=" ",t.NO_BONUS={characterMultiplier:1,wordMultiplier:1},t.CONSONANTS="bcćdfghjklłmnń\xf1pqrsśtvwxzźż".split(""),t.VOWELS="aą\xe4eęio\xf3\xf6u\xfcy".split("")},1285:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(2954)),o=r(6452),s=i(r(7147)),l=r(5823),a=r(6137);class u{constructor(){this.cache=new a.LayeredCache,this.downloadDictionaryProxies=Object.fromEntries(Object.values(o.Locale).map(e=>[e,(0,a.createAsyncProxy)(()=>(0,a.downloadDictionary)(e))]))}async get(e){if(this.cache.has(e)){let t=await this.cache.get(e);if(t)return t}return n.default.info("Dictionaries - cache miss",{locale:e}),this.updateDictionary(e)}remove(){s.default.rmdirSync(l.OUTPUT_DIRECTORY,{recursive:!0})}async update(e){let t=e?Object.values(o.Locale):this.getLocalesToUpdate();n.default.info("Dictionaries - update",{force:e,locales:t}),await Promise.all(t.map(e=>this.updateDictionary(e)))}getLocalesToUpdate(){return Object.values(o.Locale).filter(e=>!1!==this.cache.isStale(e))}async updateDictionary(e){n.default.info("Dictionaries - updateDictionary",{locale:e}),s.default.mkdirSync(l.OUTPUT_DIRECTORY,{recursive:!0});let t=this.downloadDictionaryProxies[e],r=await t();return await this.cache.set(e,r),r}}t.default=u},5823:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.OUTPUT_DIRECTORY=t.CACHE_STALE_THRESHOLD=t.DAY=void 0;let n=i(r(2037)),o=i(r(1017));t.DAY=864e5,t.CACHE_STALE_THRESHOLD=1*t.DAY,t.OUTPUT_DIRECTORY=o.default.resolve(n.default.homedir(),".scrabble-solver","dictionaries")},9044:function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.dictionaries=void 0;let s=o(r(1285));n(r(6137),t),t.dictionaries=new s.default},2812:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(9119),o=i(r(7147)),s=r(5823),l=i(r(8638));class a{async get(e){if(!this.has(e))return;let t=(0,l.default)(e),r=await o.default.promises.readFile(t,"utf-8");return n.Trie.deserialize(r)}getLastModifiedTimestamp(e){let t=(0,l.default)(e);if(o.default.existsSync(t))return o.default.statSync(t).mtimeMs}has(e){let t=(0,l.default)(e);return o.default.existsSync(t)}isStale(e){if(!this.has(e))return;let t=this.getLastModifiedTimestamp(e);if(void 0!==t)return Math.abs(t-Date.now())>s.CACHE_STALE_THRESHOLD}async set(e,t){let r=(0,l.default)(e);await o.default.promises.writeFile(r,t.serialize())}}t.default=a},287:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(494)),o=i(r(2812)),s=i(r(192));class l{constructor(){this.layers=[new s.default,new o.default]}async get(e){let t=this.getLastModifiedLayer(e);if(!t)return Promise.resolve(void 0);let[r,i]=this.layers,n=await t.get(e);return t===i&&void 0!==n&&await r.set(e,n),n}getLastModifiedTimestamp(e){let t=this.getLastModifiedLayer(e);if(t)return t.getLastModifiedTimestamp(e)}has(e){return this.layers.some(t=>t.has(e))}isStale(e){return!!this.layers.some(t=>t.isStale(e))||!!this.layers.every(t=>void 0===t.isStale(e))&&void 0}async set(e,t){let[r,i]=this.layers;await i.set(e,t),await r.set(e,t)}getLastModifiedLayer(e){let[t]=[...this.layers.filter(t=>t.has(e))].sort((0,n.default)(e));return t}}t.default=l},192:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(5823);class n{constructor(){this.cache={},this.cacheTimestamps={}}get(e){return Promise.resolve(this.cache[e])}getLastModifiedTimestamp(e){return this.cacheTimestamps[e]}has(e){return void 0!==this.cache[e]}isStale(e){let t=this.getLastModifiedTimestamp(e);if(this.has(e)&&void 0!==t)return Math.abs(t-Date.now())>i.CACHE_STALE_THRESHOLD}set(e,t){return this.cacheTimestamps[e]=Date.now(),this.cache[e]=t,Promise.resolve()}}t.default=n},6554:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>{let t=null;return async()=>{if(t)return t;try{return t=e(),await t}finally{t=null}}}},494:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>(t,r)=>{let i=t.getLastModifiedTimestamp(e),n=r.getLastModifiedTimestamp(e);return i===n?0:void 0===i?1:void 0===n?-1:n-i}},1281:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(9119),o=i(r(2954)),s=r(1585),l=async e=>{o.default.info("downloadDictionary",{locale:e});let t=await (0,s.getWordList)(e);return o.default.info("downloadDictionary - success",{locale:e}),n.Trie.fromArray(t)};t.default=l},8638:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(1017)),o=r(5823);t.default=e=>n.default.resolve(o.OUTPUT_DIRECTORY,`${e}.txt`)},6137:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemoryCache=t.LayeredCache=t.getDictionaryFilepath=t.downloadDictionary=t.DiskCache=t.createCacheTimestampComparator=t.createAsyncProxy=void 0;var n=r(6554);Object.defineProperty(t,"createAsyncProxy",{enumerable:!0,get:function(){return i(n).default}});var o=r(494);Object.defineProperty(t,"createCacheTimestampComparator",{enumerable:!0,get:function(){return i(o).default}});var s=r(2812);Object.defineProperty(t,"DiskCache",{enumerable:!0,get:function(){return i(s).default}});var l=r(1281);Object.defineProperty(t,"downloadDictionary",{enumerable:!0,get:function(){return i(l).default}});var a=r(8638);Object.defineProperty(t,"getDictionaryFilepath",{enumerable:!0,get:function(){return i(a).default}});var u=r(287);Object.defineProperty(t,"LayeredCache",{enumerable:!0,get:function(){return i(u).default}});var d=r(192);Object.defineProperty(t,"MemoryCache",{enumerable:!0,get:function(){return i(d).default}})},8793:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.OUTPUT_DIRECTORY=void 0;let n=i(r(2037)),o=i(r(1017));t.OUTPUT_DIRECTORY=o.default.resolve(n.default.homedir(),".scrabble-solver","logs")},2954:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(6730);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i(n).default}})},6730:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(1017)),o=r(7773),s=r(8793),l=(0,o.createLogger)({level:"info",format:o.format.combine(o.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),o.format.errors({stack:!0}),o.format.splat(),o.format.json(),o.format.prettyPrint()),transports:[new o.transports.File({filename:n.default.resolve(s.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new o.transports.File({filename:n.default.resolve(s.OUTPUT_DIRECTORY,"all.log")}),new o.transports.Console({format:o.format.combine(o.format.colorize(),o.format.simple()),level:"error"})]});t.default=l},4031:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(902)),s=i(r(580));class l{static create(e,t){return l.fromStringArray(Array(t).fill(Array(e).fill(" ").join("")))}static fromJson(e){return new l({rows:e.map(e=>e.map(o.default.fromJson))})}static fromStringArray(e){return new l({rows:e.map((e,t)=>e.split("").map((e,r)=>new o.default({isEmpty:!e||e===n.EMPTY_CELL,tile:e===n.EMPTY_CELL?s.default.Null:new s.default({character:e}),x:r,y:t})))})}constructor({rows:e}){this.rows=e,this.columnsCount=e[0].length,this.rowsCount=e.length}get center(){let e=Math.floor(this.columnsCount/2),t=Math.floor(this.rowsCount/2);return this.rows[t][e]}clone(){return new l({rows:this.rows.map(e=>e.map(e=>e.clone()))})}collides(e){return this.collidesUp(e)||this.collidesDown(e)||this.collidesLeft(e)||this.collidesRight(e)}collidesDown({x:e,y:t}){return t<this.rowsCount-1&&!this.rows[t+1][e].isEmpty}collidesLeft({x:e,y:t}){return e>0&&!this.rows[t][e-1].isEmpty}collidesRight({x:e,y:t}){return e<this.columnsCount-1&&!this.rows[t][e+1].isEmpty}collidesUp({x:e,y:t}){return t>0&&!this.rows[t-1][e].isEmpty}equals(e){return this.columnsCount===e.columnsCount&&this.rowsCount===e.rowsCount&&this.rows.every((t,r)=>t.every((t,i)=>t.equals(e.rows[r][i])))}getBlanksCount(){return this.rows.reduce((e,t)=>e+t.reduce((e,t)=>e+(t.tile.isBlank?1:0),0),0)}getColumn(e){return this.rows.map(t=>t[e])}getRow(e){return this.rows[e]}getTilesCount(){return this.rows.reduce((e,t)=>e+t.reduce((e,t)=>e+(t.hasTile()?1:0),0),0)}getWords(){let e=[];for(let t=0;t<this.columnsCount;++t){let r=[];for(let e=0;e<this.rowsCount;++e)r.push(this.rows[e][t]);e.push(r)}let t=new l({rows:e});return this.toString().split("\n").concat(t.toString().split("\n")).flatMap(e=>e.replaceAll(/\s+/g,n.EMPTY_CELL).split(" ")).filter(e=>e.length>1)}isEmpty(){return this.rows.every(e=>e.every(({isEmpty:e})=>e))}toJson(){return this.rows.map(e=>e.map(e=>e.toJson()))}toString(){return this.rows.map(e=>e.map(String).join("")).join("\n")}updateCell(e,t,r){this.rows[t][e]=r(this.rows[t][e])}updateRow(e,t){this.rows[e]=t(this.rows[e])}}t.default=l},8508:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isBoardJson=void 0;let i=r(6508);t.isBoardJson=e=>{if(!Array.isArray(e))return!1;for(let t of e){if(!Array.isArray(e))return!1;for(let e of t)if(!(0,i.isCellJson)(e))return!1}return!0}},769:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{constructor({multiplier:e,score:t,x:r,y:i}){this.multiplier=e,this.score=t,this.x=r,this.y=i}canApply(e,t){return t.isEmpty&&this.matchesCellCoordinates(t)}matchesCellCoordinates(e){return this.x===e.x&&this.y===e.y}toJson(){return{multiplier:this.multiplier,score:this.score,type:this.type,x:this.x,y:this.y}}get value(){return{characterMultiplier:1,wordMultiplier:1}}}t.default=r},902:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(580));class o{static fromJson(e){return new o({isEmpty:e.isEmpty,tile:n.default.fromJson(e.tile),x:e.x,y:e.y})}constructor({isEmpty:e=!0,tile:t=n.default.Null,x:r,y:i}){this.isEmpty=e,this.tile=t,this.x=r,this.y=i}clone(){return new o({isEmpty:this.isEmpty,tile:this.tile.clone(),x:this.x,y:this.y})}equals(e){return this.x===e.x&&this.y===e.y&&this.isEmpty===e.isEmpty&&this.tile.equals(e.tile)}hasTile(){return this.tile!==n.default.Null}isCandidate(){return this.isEmpty&&this.hasTile()}toJson(){return{isEmpty:this.isEmpty,tile:this.tile.toJson(),x:this.x,y:this.y}}toString(){return this.tile.toString()}}t.default=o},6508:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isCellJson=void 0;let n=i(r(3518)),o=r(2298);t.isCellJson=e=>(0,n.default)(e)&&"boolean"==typeof e.isEmpty&&((0,o.isTileJson)(e.tile)||null===e.tile)&&"number"==typeof e.x&&"number"==typeof e.y},5699:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(769));class s extends o.default{constructor(){super(...arguments),this.type=n.BONUS_CHARACTER}canApply(e,t){return super.canApply(e,t)&&this.matchesCellTileScore(e,t)}matchesCellTileScore(e,t){return void 0===this.score||this.score===e.pointsMap[t.tile.character]}get value(){return{characterMultiplier:this.multiplier,wordMultiplier:1}}}t.default=s},8725:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(5699)),s=i(r(9667));class l{static fromJson(e){return new l(e)}constructor(e){this.bonuses=a(e),this.config=e,this.pointsMap=d(this.config)}get allTilesBonusScore(){return this.config.allTilesBonusScore}get alphabet(){return u(this.config)}get blankScore(){return this.config.blankScore}get blanksCount(){return this.config.blanksCount}get boardHeight(){return this.config.boardHeight}get boardWidth(){return this.config.boardWidth}get game(){return this.config.game}get locale(){return this.config.locale}get twoCharacterTiles(){return this.config.tiles.filter(e=>2===e.character.length).map(e=>e.character)}getCellBonus(e){return this.bonuses.find(t=>t.matchesCellCoordinates(e))}getCellBonusValue(e){return this.getCellBonus(e)?.value||n.NO_BONUS}getCharacterPoints(e){return null===e?void 0:e===n.BLANK?this.blankScore:this.pointsMap[e]}getTwoCharacterTileByPrefix(e){if(1===e.length)return this.twoCharacterTiles.find(t=>t.startsWith(e))}getTilePoints(e){if(null!==e)return e.isBlank?this.blankScore:this.getCharacterPoints(e.character)}hasCharacter(e){return e in this.pointsMap}isTwoCharacterTilePrefix(e){return void 0!==this.getTwoCharacterTileByPrefix(e)}get maximumCharactersCount(){return this.config.maximumCharactersCount}get tiles(){return this.config.tiles}toJson(){return this.config}}let a=e=>e.bonuses.map(e=>{if(e.type===n.BONUS_CHARACTER)return new o.default(e);if(e.type===n.BONUS_WORD)return new s.default(e);throw Error(`Unsupported Bonus type: "${e.type}"`)}),u=e=>e.tiles.map(({character:e})=>e),d=e=>e.tiles.reduce((e,{character:t,score:r})=>({...e,[t]:r}),{});t.default=l},9238:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3600));class o extends n.default{constructor(e){super(e.board,e.cells),this.collisions=e.getCollisions()}getCollisions(){return this.collisions}}t.default=o},7659:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.isGame=void 0,function(e){e.Literaki="literaki",e.Scrabble="scrabble",e.SuperScrabble="super-scrabble"}(r||(r={}));let i=Object.values(r);t.isGame=e=>i.includes(e),t.default=r},4405:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3600));class o extends n.default{clone(){return new o(this.board,this.cells.map(e=>e.clone()))}getCollisions(){let e=[];return this.cells.filter(e=>e.isEmpty&&(this.board.collidesUp(e)||this.board.collidesDown(e))).forEach(t=>{let r=this.board.getColumn(t.x),i=t.y-1;for(;i>=0&&r[i].hasTile();)--i;let o=r.slice(i+1,t.y);for(i=t.y+1;i<r.length&&r[i].hasTile();)++i;let s=r.slice(t.y+1,i),l=[...o,t,...s];if(l.length>1){let t=new n.default(this.board,l);e.push(t)}}),e}}t.default=o},8044:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.isLocale=void 0,function(e){e.DE_DE="de-DE",e.EN_GB="en-GB",e.EN_US="en-US",e.ES_ES="es-ES",e.FA_IR="fa-IR",e.FR_FR="fr-FR",e.PL_PL="pl-PL",e.RO_RO="ro-RO"}(r||(r={}));let i=Object.values(r);t.isLocale=e=>i.includes(e),t.default=r},3600:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.board=e,this.cells=t}canBePlaced(e){let t=this.getEmptyCellsCount();return t>=1&&t<=e.maximumCharactersCount&&(this.hasAtLeast1NonEmptyCell()||this.collides()||this.goesThroughBoardCenter()&&this.board.isEmpty())}clone(){return new r(this.board,this.cells.map(e=>e.clone()))}collides(){return this.cells.some(e=>e.isEmpty&&this.board.collides(e))}getIndexOfFirstCellWithoutTile(){return this.cells.findIndex(e=>!e.hasTile())}getEmptyCellsCount(){return this.cells.filter(e=>e.isEmpty).length}goesThroughBoardCenter(){return this.cells.some(e=>e.x===this.board.center.x&&e.y===this.board.center.y&&e.isEmpty)}hasAtLeast1EmptyCell(){return this.cells.some(e=>e.isEmpty)}hasAtLeast1NonEmptyCell(){return this.cells.some(e=>!e.isEmpty)}getCollisions(){return[]}toJson(){return{cells:this.cells.map(e=>e.toJson()),collisions:this.getCollisions().map(e=>e.toJson()),word:this.toString()}}toString(){return this.cells.reduce((e,t)=>e+t.toString(),"")}}t.default=r},8211:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(902));class s{static fromJson(e){return new s({id:e.id,cells:e.cells.map(o.default.fromJson),collisions:e.collisions.map(e=>e.map(o.default.fromJson)),points:e.points})}constructor({cells:e,id:t,collisions:r,points:i}){let n=c(e);this.blanksCount=l(n).length,this.cells=e,this.collisions=r,this.consonantsCount=a(n).length,this.id=t,this.length=e.length,this.points=i,this.pointsRatio=d(n,i),this.tiles=n,this.tilesCount=n.length,this.vowelsCount=u(n).length,this.word=f(e),this.words=h(e,r),this.wordsCount=1+this.collisions.length}toJson(){return{cells:this.cells.map(e=>e.toJson()),id:this.id,collisions:this.collisions.map(e=>e.map(e=>e.toJson())),points:this.points}}}let l=e=>e.filter(({isBlank:e})=>e),a=e=>e.filter(p),u=e=>e.filter(_),d=(e,t)=>t/e.length,c=e=>e.filter(({isEmpty:e})=>e).map(({tile:e})=>e),f=e=>e.reduce((e,t)=>e+t.toString(),""),h=(e,t)=>[e,...t].map(f),p=({character:e,isBlank:t})=>n.CONSONANTS.includes(e)&&!t,_=({character:e,isBlank:t})=>n.VOWELS.includes(e)&&!t;t.default=s},580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(8436);class n{static fromJson(e){return e?new n({character:e.character,isBlank:e.isBlank}):n.Null}constructor({character:e,isBlank:t=!1}){this.character=e,this.isBlank=t}clone(){return new n({character:this.character,isBlank:this.isBlank})}equals(e){return this.character===e.character&&this.isBlank===e.isBlank}toJson(){return{character:this.character,isBlank:this.isBlank}}toString(){return this.character}}n.Null=Object.freeze({character:i.EMPTY_CELL,isBlank:!1,clone:()=>n.Null,equals:e=>e===n.Null,toJson:()=>null,toString:()=>i.EMPTY_CELL}),t.default=n},2298:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isTileJson=void 0;let n=i(r(3518));t.isTileJson=e=>(0,n.default)(e)&&"string"==typeof e.character&&"boolean"==typeof e.isBlank},6161:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3600));class o extends n.default{clone(){return new o(this.board,this.cells.map(e=>e.clone()))}getCollisions(){let e=[];return this.cells.filter(e=>e.isEmpty&&(this.board.collidesLeft(e)||this.board.collidesRight(e))).forEach(t=>{let r=this.board.getRow(t.y),i=t.x-1;for(;i>=0&&r[i].hasTile();)--i;let o=r.slice(i+1,t.x);for(i=t.x+1;i<r.length&&r[i].hasTile();)++i;let s=r.slice(t.x+1,i),l=[...o,t,...s];if(l.length>1){let t=new n.default(this.board,l);e.push(t)}}),e}}t.default=o},9667:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436),o=i(r(769));class s extends o.default{constructor(){super(...arguments),this.type=n.BONUS_WORD}get value(){return{characterMultiplier:1,wordMultiplier:this.multiplier}}}t.default=s},3184:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{static fromJson(e){return e?new r({definitions:e.definitions,exists:e.exists,isAllowed:e.isAllowed,word:e.word}):r.Null}constructor({definitions:e,exists:t,isAllowed:r,word:i}){this.definitions=e,this.exists=t,this.isAllowed=r,this.word=i}toJson(){return{definitions:this.definitions,exists:this.exists,isAllowed:this.isAllowed,word:this.word}}}r.Null=Object.freeze({definitions:[],exists:!1,isAllowed:!1,word:"",toJson:()=>null}),t.default=r},6452:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.isObject=t.isError=t.WordDefinition=t.WordBonus=t.VerticalPattern=t.isTileJson=t.Tile=t.Result=t.Pattern=t.isLocale=t.Locale=t.HorizontalPattern=t.isGame=t.Game=t.FinalPattern=t.Config=t.CharacterBonus=t.isCellJson=t.Cell=t.Bonus=t.isBoardJson=t.Board=void 0;var n=r(4031);Object.defineProperty(t,"Board",{enumerable:!0,get:function(){return i(n).default}});var o=r(8508);Object.defineProperty(t,"isBoardJson",{enumerable:!0,get:function(){return o.isBoardJson}});var s=r(769);Object.defineProperty(t,"Bonus",{enumerable:!0,get:function(){return i(s).default}});var l=r(902);Object.defineProperty(t,"Cell",{enumerable:!0,get:function(){return i(l).default}});var a=r(6508);Object.defineProperty(t,"isCellJson",{enumerable:!0,get:function(){return a.isCellJson}});var u=r(5699);Object.defineProperty(t,"CharacterBonus",{enumerable:!0,get:function(){return i(u).default}});var d=r(8725);Object.defineProperty(t,"Config",{enumerable:!0,get:function(){return i(d).default}});var c=r(9238);Object.defineProperty(t,"FinalPattern",{enumerable:!0,get:function(){return i(c).default}});var f=r(7659);Object.defineProperty(t,"Game",{enumerable:!0,get:function(){return i(f).default}}),Object.defineProperty(t,"isGame",{enumerable:!0,get:function(){return f.isGame}});var h=r(4405);Object.defineProperty(t,"HorizontalPattern",{enumerable:!0,get:function(){return i(h).default}});var p=r(8044);Object.defineProperty(t,"Locale",{enumerable:!0,get:function(){return i(p).default}}),Object.defineProperty(t,"isLocale",{enumerable:!0,get:function(){return p.isLocale}});var _=r(3600);Object.defineProperty(t,"Pattern",{enumerable:!0,get:function(){return i(_).default}});var m=r(8211);Object.defineProperty(t,"Result",{enumerable:!0,get:function(){return i(m).default}});var y=r(580);Object.defineProperty(t,"Tile",{enumerable:!0,get:function(){return i(y).default}});var g=r(2298);Object.defineProperty(t,"isTileJson",{enumerable:!0,get:function(){return g.isTileJson}});var b=r(6161);Object.defineProperty(t,"VerticalPattern",{enumerable:!0,get:function(){return i(b).default}});var v=r(9667);Object.defineProperty(t,"WordBonus",{enumerable:!0,get:function(){return i(v).default}});var O=r(3184);Object.defineProperty(t,"WordDefinition",{enumerable:!0,get:function(){return i(O).default}});var P=r(4075);Object.defineProperty(t,"isError",{enumerable:!0,get:function(){return i(P).default}});var w=r(3518);Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return i(w).default}})},4075:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(3518));t.default=e=>!!(0,n.default)(e)&&"string"==typeof e.message},3518:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>"object"==typeof e&&null!==e},8769:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(1390),o={[i.Locale.DE_DE]:n.german.getWordList,[i.Locale.EN_GB]:n.english.getWordListGb,[i.Locale.EN_US]:n.english.getWordListUs,[i.Locale.ES_ES]:n.spanish.getWordList,[i.Locale.FA_IR]:n.persian.getWordList,[i.Locale.FR_FR]:n.french.getWordList,[i.Locale.PL_PL]:n.polish.getWordList,[i.Locale.RO_RO]:n.romanian.getWordList};t.getWordList=e=>o[e]()},1585:function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;var o=r(8769);Object.defineProperty(t,"getWordList",{enumerable:!0,get:function(){return o.getWordList}}),n(r(1390),t),n(r(337),t)},9056:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordListUs=t.getWordListGb=void 0;let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://www.wordgamedictionary.com/sowpods/download/sowpods.txt",i.Locale.EN_GB);t.getWordListGb=o;let s=async()=>(0,n.getTxtWordList)("https://www.wordgamedictionary.com/twl06/download/twl06.txt",i.Locale.EN_US);t.getWordListUs=s},9637:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>{let e=await (0,n.getTxtWordList)("https://raw.githubusercontent.com/Thecoolsim/French-Scrabble-ODS8/main/French%20ODS%20dictionary.txt",i.Locale.FR_FR);return(0,n.latinizeDiacritics)(e)};t.getWordList=o},4342:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://raw.githubusercontent.com/hippler/german-wordlist/master/words.txt",i.Locale.DE_DE);t.getWordList=o},1390:function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.spanish=t.romanian=t.polish=t.persian=t.french=t.german=t.english=void 0,t.english=o(r(9056)),t.german=o(r(4342)),t.french=o(r(9637)),t.persian=o(r(6855)),t.polish=o(r(7872)),t.romanian=o(r(8311)),t.spanish=o(r(2726))},6855:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://raw.githubusercontent.com/MansourM/persian-to-persian-dictionary/main/moein/words.txt",i.Locale.FA_IR);t.getWordList=o},7872:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let n=r(8048),o=i(r(7147)),s=r(7310),l=r(337),a=async()=>{let e=(0,l.getTempFilepath)(),t=await u("https://sjp.pl/sl/growy/"),r=await (0,l.downloadFile)(t);await (0,l.unzip)(r,"slowa.txt",e),o.default.unlinkSync(r);let i=o.default.readFileSync(e,"utf-8");return o.default.unlinkSync(e),(0,l.extractWords)(i.toLocaleString(),"pl-PL")};t.getWordList=a;let u=async e=>{let t=await (0,l.downloadHtml)(e),r=await d(t),{href:i}=new s.URL(r,e);return i},d=e=>{let t=(0,n.load)(e),r=Array.from(t("a")).map(e=>t(e).attr("href")).filter(Boolean).find(e=>e.endsWith(".zip"));if(void 0===r)throw Error("Cannot find link to zip file on the page");return r}},8311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let i=r(6452),n=r(337),o=async()=>{let e=await (0,n.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt",i.Locale.RO_RO);return(0,n.latinizeDiacritics)(e)};t.getWordList=o},2726:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=void 0;let n=r(6452),o=i(r(1118)),s=r(337),l="---n---",a=async()=>(await (0,s.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/fise-2.txt",n.Locale.ES_ES)).map(e=>e.replaceAll("\xf1",l)).map(o.default).map(e=>e.replaceAll(l,"\xf1"));t.getWordList=a},920:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=r(6953),o=i(r(7147)),s=i(r(5026));t.default=e=>new Promise((t,r)=>{let i=(0,s.default)(),l=e.startsWith("https")?n.https:n.http,a=o.default.createWriteStream(i);l.get(e,n=>{if(void 0===n.statusCode||n.statusCode>=400){r(Error(`Cannot download file: ${e}`));return}n.on("error",e=>{a.close(),r(e)}),n.on("end",()=>{a.on("finish",()=>{a.close(),t(i)})}),n.pipe(a)}).on("error",e=>{a.close(),r(e)})})},8015:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(6953);t.default=e=>new Promise((t,r)=>{(e.startsWith("https")?i.https:i.http).get(e,e=>{let i="";e.setEncoding("utf8"),e.on("data",e=>{i+=e}),e.on("end",()=>{t(i)}),e.on("error",r)})})},9759:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(7669));t.default=(e,t)=>{let r=e.split(/\r?\n/g),i=(0,n.default)(r,t),o=[];for(let e=i;e<r.length;++e){let t=r[e].trim();t.length>0&&o.push(t.toLocaleLowerCase())}return o}},7669:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{let r=e.findIndex((e,r)=>{let i=e[r+1]||"",n=e.localeCompare(i,t)>0,o=!!e.match(/\s/);return 0!==e.trim().length&&!o&&n});if(void 0===r)throw Error("Cannot find index of the first word in the file");return r}},3938:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(6113));t.default=(e=8)=>n.default.randomBytes(e).toString("hex")},5026:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(2037)),o=i(r(1017)),s=i(r(3938)),l=o.default.resolve(n.default.homedir(),".scrabble-solver");t.default=()=>{let e=`${(0,s.default)()}.txt`;return o.default.join(l,e)}},8029:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(7147)),o=i(r(920)),s=i(r(9759)),l=async(e,t)=>{let r=await (0,o.default)(e),i=n.default.readFileSync(r,"utf-8"),l=(0,s.default)(i.toLocaleString(),t);return n.default.unlinkSync(r),l};t.default=l},337:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.unzip=t.unique=t.latinizeDiacritics=t.getTxtWordList=t.getTempFilepath=t.getHash=t.findFirstWordIndex=t.extractWords=t.downloadHtml=t.downloadFile=void 0;var n=r(920);Object.defineProperty(t,"downloadFile",{enumerable:!0,get:function(){return i(n).default}});var o=r(8015);Object.defineProperty(t,"downloadHtml",{enumerable:!0,get:function(){return i(o).default}});var s=r(9759);Object.defineProperty(t,"extractWords",{enumerable:!0,get:function(){return i(s).default}});var l=r(7669);Object.defineProperty(t,"findFirstWordIndex",{enumerable:!0,get:function(){return i(l).default}});var a=r(3938);Object.defineProperty(t,"getHash",{enumerable:!0,get:function(){return i(a).default}});var u=r(5026);Object.defineProperty(t,"getTempFilepath",{enumerable:!0,get:function(){return i(u).default}});var d=r(8029);Object.defineProperty(t,"getTxtWordList",{enumerable:!0,get:function(){return i(d).default}});var c=r(1563);Object.defineProperty(t,"latinizeDiacritics",{enumerable:!0,get:function(){return i(c).default}});var f=r(2017);Object.defineProperty(t,"unique",{enumerable:!0,get:function(){return i(f).default}});var h=r(6987);Object.defineProperty(t,"unzip",{enumerable:!0,get:function(){return i(h).default}})},1563:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(1118)),o=i(r(2017));t.default=e=>(0,o.default)(e.map(e=>(0,n.default)(e)))},2017:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>Array.from(new Set(e))},6987:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let n=i(r(7147)),o=i(r(4616));t.default=(e,t,r)=>n.default.createReadStream(e).pipe(o.default.Parse()).on("entry",e=>{e.path===t?e.pipe(n.default.createWriteStream(r)):e.autodrain()}).promise()}};
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-78c92fac7aa8fdd8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/4GWIKe7khKxREyq3ZamDK/_buildManifest.js","static/4GWIKe7khKxREyq3ZamDK/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-6e708370ad13b1f9.js","static/css/11366b7489cf90ac.css","static/chunks/pages/index-caaf20b2488cb10e.js"],"/404":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-6e708370ad13b1f9.js","static/chunks/pages/404-129e0943628b6fab.js"],"/_app":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-6e708370ad13b1f9.js","static/css/f549d7823f599b8d.css","static/chunks/pages/_app-cccda36d00fa2328.js"],"/_error":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-6e708370ad13b1f9.js","static/chunks/pages/_error-6f16571cf9224b25.js"]},ampFirstPages:[]};
1
+ self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-78c92fac7aa8fdd8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/7zESQYo9UAqNh9LV0b7Sd/_buildManifest.js","static/7zESQYo9UAqNh9LV0b7Sd/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-b5b360c6afb66b05.js","static/css/6682db14f926d4c7.css","static/chunks/pages/index-7b73be2915cc7099.js"],"/404":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-b5b360c6afb66b05.js","static/chunks/pages/404-63b972b24be99c62.js"],"/_app":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-b5b360c6afb66b05.js","static/css/b37850c8d5270d91.css","static/chunks/pages/_app-a2848b7efa6bb6b0.js"],"/_error":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-c623a49d0bf89652.js","static/chunks/main-b5b360c6afb66b05.js","static/chunks/pages/_error-6f16571cf9224b25.js"]},ampFirstPages:[]};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/f549d7823f599b8d.css" as="style"/><link rel="stylesheet" href="/_next/static/css/f549d7823f599b8d.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-6e708370ad13b1f9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-cccda36d00fa2328.js" defer=""></script><script src="/_next/static/chunks/pages/404-129e0943628b6fab.js" defer=""></script><script src="/_next/static/4GWIKe7khKxREyq3ZamDK/_buildManifest.js" defer=""></script><script src="/_next/static/4GWIKe7khKxREyq3ZamDK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div class="NotFound_notFound__WN02P"><a class="NotFound_link__MEAuF" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="NotFound_icon__UWN1j"><path fill="currentColor" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1z"></path></svg><svg class="NotFound_tiles__TCY86" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><g class="PlainTiles_tile___NJSM" transform="rotate(0, 40, 40)"><rect fill="#f7c2aa" height="80" rx="12" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">H</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">T</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">T</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 298, 40)"><rect fill="#c7d8f9" height="80" rx="12" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">P</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 470, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">4</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 556, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">0</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">4</text></g></svg></a></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"4GWIKe7khKxREyq3ZamDK","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/b37850c8d5270d91.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b37850c8d5270d91.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-b5b360c6afb66b05.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a2848b7efa6bb6b0.js" defer=""></script><script src="/_next/static/chunks/pages/404-63b972b24be99c62.js" defer=""></script><script src="/_next/static/7zESQYo9UAqNh9LV0b7Sd/_buildManifest.js" defer=""></script><script src="/_next/static/7zESQYo9UAqNh9LV0b7Sd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div class="NotFound_notFound__WN02P"><a class="NotFound_link__MEAuF" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="NotFound_icon__UWN1j"><path fill="currentColor" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1z"></path></svg><svg class="NotFound_tiles__TCY86" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><g class="PlainTiles_tile___NJSM" transform="rotate(0, 40, 40)"><rect fill="#f7c2aa" height="80" rx="12" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">H</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">T</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">T</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 298, 40)"><rect fill="#c7d8f9" height="80" rx="12" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">P</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 470, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">4</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 556, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">0</text></g><g class="PlainTiles_tile___NJSM" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">4</text></g></svg></a></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"7zESQYo9UAqNh9LV0b7Sd","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><title>500: Internal Server Error</title><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/f549d7823f599b8d.css" as="style"/><link rel="stylesheet" href="/_next/static/css/f549d7823f599b8d.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-6e708370ad13b1f9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-cccda36d00fa2328.js" defer=""></script><script src="/_next/static/chunks/pages/_error-6f16571cf9224b25.js" defer=""></script><script src="/_next/static/4GWIKe7khKxREyq3ZamDK/_buildManifest.js" defer=""></script><script src="/_next/static/4GWIKe7khKxREyq3ZamDK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"4GWIKe7khKxREyq3ZamDK","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><title>500: Internal Server Error</title><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/b37850c8d5270d91.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b37850c8d5270d91.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-b5b360c6afb66b05.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a2848b7efa6bb6b0.js" defer=""></script><script src="/_next/static/chunks/pages/_error-6f16571cf9224b25.js" defer=""></script><script src="/_next/static/7zESQYo9UAqNh9LV0b7Sd/_buildManifest.js" defer=""></script><script src="/_next/static/7zESQYo9UAqNh9LV0b7Sd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"7zESQYo9UAqNh9LV0b7Sd","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=888,e.ids=[888],e.modules={8877:(e,r,t)=>{e.exports=t(2785)},9003:e=>{e.exports=require("classnames")},9744:e=>{e.exports=require("include-media-query-builder")},2785:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},968:e=>{e.exports=require("next/head")},6689:e=>{e.exports=require("react")},4620:e=>{e.exports=require("react-cool-onclickoutside")},6405:e=>{e.exports=require("react-dom")},7849:e=>{e.exports=require("react-dom/client")},8684:e=>{e.exports=require("react-dom/server")},1848:e=>{e.exports=require("react-highlight-words")},9931:e=>{e.exports=require("react-modal")},3938:e=>{e.exports=require("react-portal")},551:e=>{e.exports=require("react-window")},997:e=>{e.exports=require("react/jsx-runtime")},6477:e=>{e.exports=require("redux-saga/effects")},3453:e=>{e.exports=require("store2")},1964:e=>{e.exports=import("@floating-ui/react")},3258:e=>{e.exports=import("@reduxjs/toolkit")},3291:e=>{e.exports=import("react-redux")},5998:e=>{e.exports=import("redux-saga")},7083:(e,r)=>{r._=r._interop_require_default=function(e){return e&&e.__esModule?e:{default:e}}}};var r=require("../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[577,807],()=>t(7807));module.exports=o})();
1
+ "use strict";(()=>{var e={};e.id=888,e.ids=[888],e.modules={8877:(e,r,t)=>{e.exports=t(2785)},9003:e=>{e.exports=require("classnames")},9744:e=>{e.exports=require("include-media-query-builder")},2785:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},968:e=>{e.exports=require("next/head")},6689:e=>{e.exports=require("react")},4620:e=>{e.exports=require("react-cool-onclickoutside")},6405:e=>{e.exports=require("react-dom")},8684:e=>{e.exports=require("react-dom/server")},1848:e=>{e.exports=require("react-highlight-words")},9931:e=>{e.exports=require("react-modal")},551:e=>{e.exports=require("react-window")},997:e=>{e.exports=require("react/jsx-runtime")},6477:e=>{e.exports=require("redux-saga/effects")},3453:e=>{e.exports=require("store2")},1964:e=>{e.exports=import("@floating-ui/react")},3258:e=>{e.exports=import("@reduxjs/toolkit")},3291:e=>{e.exports=import("react-redux")},5998:e=>{e.exports=import("redux-saga")},7083:(e,r)=>{r._=r._interop_require_default=function(e){return e&&e.__esModule?e:{default:e}}}};var r=require("../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[577,807],()=>t(7807));module.exports=o})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=820,e.ids=[820,660],e.modules={6021:(e,t)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return function e(t,r){return r in t?t[r]:"then"in t&&"function"==typeof t.then?t.then(t=>e(t,r)):"function"==typeof t&&"default"===r?t:void 0}}})},8517:(e,t,r)=>{r.a(e,async(e,o)=>{try{r.r(t),r.d(t,{config:()=>h,default:()=>u,getServerSideProps:()=>g,getStaticPaths:()=>x,getStaticProps:()=>d,reportWebVitals:()=>m,routeModule:()=>S,unstable_getServerProps:()=>b,unstable_getServerSideProps:()=>y,unstable_getStaticParams:()=>P,unstable_getStaticPaths:()=>j,unstable_getStaticProps:()=>f});var i=r(8877),n=r(4591),s=r(6021),l=r(4725),a=r(7807),c=r(1445),p=e([a]);a=(p.then?(await p)():p)[0];let u=(0,s.l)(c,"default"),d=(0,s.l)(c,"getStaticProps"),x=(0,s.l)(c,"getStaticPaths"),g=(0,s.l)(c,"getServerSideProps"),h=(0,s.l)(c,"config"),m=(0,s.l)(c,"reportWebVitals"),f=(0,s.l)(c,"unstable_getStaticProps"),j=(0,s.l)(c,"unstable_getStaticPaths"),P=(0,s.l)(c,"unstable_getStaticParams"),b=(0,s.l)(c,"unstable_getServerProps"),y=(0,s.l)(c,"unstable_getServerSideProps"),S=new i.PagesRouteModule({definition:{kind:n.x.PAGES,page:"/_error",pathname:"/_error",bundlePath:"",filename:""},components:{App:a.default,Document:l.default},userland:c});o()}catch(e){o(e)}})},1445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return p}});let o=r(7083),i=r(997),n=o._(r(6689)),s=o._(r(44)),l={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function a(e){let{res:t,err:r}=e;return{statusCode:t&&t.statusCode?t.statusCode:r?r.statusCode:404}}let c={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class p extends n.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,r=this.props.title||l[e]||"An unexpected error has occurred";return(0,i.jsxs)("div",{style:c.error,children:[(0,i.jsx)(s.default,{children:(0,i.jsx)("title",{children:e?e+": "+r:"Application error: a client-side exception has occurred"})}),(0,i.jsxs)("div",{style:c.desc,children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,i.jsx)("h1",{className:"next-error-h1",style:c.h1,children:e}):null,(0,i.jsx)("div",{style:c.wrap,children:(0,i.jsxs)("h2",{style:c.h2,children:[this.props.title||e?r:(0,i.jsx)(i.Fragment,{children:"Application error: a client-side exception has occurred (see the browser console for more information)"}),"."]})})]})]})}}p.displayName="ErrorPage",p.getInitialProps=a,p.origGetInitialProps=a,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4725:(e,t,r)=>{r.r(t),r.d(t,{default:()=>l});var o=r(997),i=r(331),n=r.n(i);class s extends n(){render(){return(0,o.jsxs)(i.Html,{lang:"en",children:[(0,o.jsxs)(i.Head,{children:[o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"57x57",href:"icons/apple-touch-icon-57x57.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"114x114",href:"icons/apple-touch-icon-114x114.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"72x72",href:"icons/apple-touch-icon-72x72.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"144x144",href:"icons/apple-touch-icon-144x144.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"60x60",href:"icons/apple-touch-icon-60x60.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"120x120",href:"icons/apple-touch-icon-120x120.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"76x76",href:"icons/apple-touch-icon-76x76.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"152x152",href:"icons/apple-touch-icon-152x152.png"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-196x196.png",sizes:"196x196"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-96x96.png",sizes:"96x96"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-32x32.png",sizes:"32x32"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-16x16.png",sizes:"16x16"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-128.png",sizes:"128x128"}),o.jsx("link",{rel:"icon",href:"icons/favicon.svg"}),o.jsx("meta",{name:"application-name",content:"Scrabble Solver"}),o.jsx("meta",{name:"msapplication-TileColor",content:"#EFE3AE"}),o.jsx("meta",{name:"msapplication-TileImage",content:"icons/mstile-144x144.png"}),o.jsx("meta",{name:"msapplication-square70x70logo",content:"icons/mstile-70x70.png"}),o.jsx("meta",{name:"msapplication-square150x150logo",content:"icons/mstile-150x150.png"}),o.jsx("meta",{name:"msapplication-wide310x150logo",content:"icons/mstile-310x150.png"}),o.jsx("meta",{name:"msapplication-square310x310logo",content:"icons/mstile-310x310.png"})]}),(0,o.jsxs)("body",{children:[o.jsx(i.Main,{}),o.jsx(i.NextScript,{})]})]})}}let l=s},4591:(e,t)=>{var r;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return r}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(r||(r={}))},9003:e=>{e.exports=require("classnames")},9744:e=>{e.exports=require("include-media-query-builder")},2785:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},968:e=>{e.exports=require("next/head")},6689:e=>{e.exports=require("react")},4620:e=>{e.exports=require("react-cool-onclickoutside")},6405:e=>{e.exports=require("react-dom")},7849:e=>{e.exports=require("react-dom/client")},8684:e=>{e.exports=require("react-dom/server")},1848:e=>{e.exports=require("react-highlight-words")},9931:e=>{e.exports=require("react-modal")},3938:e=>{e.exports=require("react-portal")},551:e=>{e.exports=require("react-window")},997:e=>{e.exports=require("react/jsx-runtime")},6477:e=>{e.exports=require("redux-saga/effects")},3453:e=>{e.exports=require("store2")},1964:e=>{e.exports=import("@floating-ui/react")},3258:e=>{e.exports=import("@reduxjs/toolkit")},3291:e=>{e.exports=import("react-redux")},5998:e=>{e.exports=import("redux-saga")},1017:e=>{e.exports=require("path")}};var t=require("../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[331,577,807],()=>r(8517));module.exports=o})();
1
+ "use strict";(()=>{var e={};e.id=820,e.ids=[820,660],e.modules={6021:(e,t)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return function e(t,r){return r in t?t[r]:"then"in t&&"function"==typeof t.then?t.then(t=>e(t,r)):"function"==typeof t&&"default"===r?t:void 0}}})},8517:(e,t,r)=>{r.a(e,async(e,o)=>{try{r.r(t),r.d(t,{config:()=>h,default:()=>u,getServerSideProps:()=>g,getStaticPaths:()=>x,getStaticProps:()=>d,reportWebVitals:()=>m,routeModule:()=>S,unstable_getServerProps:()=>b,unstable_getServerSideProps:()=>y,unstable_getStaticParams:()=>P,unstable_getStaticPaths:()=>j,unstable_getStaticProps:()=>f});var i=r(8877),n=r(4591),s=r(6021),l=r(4725),a=r(7807),c=r(1445),p=e([a]);a=(p.then?(await p)():p)[0];let u=(0,s.l)(c,"default"),d=(0,s.l)(c,"getStaticProps"),x=(0,s.l)(c,"getStaticPaths"),g=(0,s.l)(c,"getServerSideProps"),h=(0,s.l)(c,"config"),m=(0,s.l)(c,"reportWebVitals"),f=(0,s.l)(c,"unstable_getStaticProps"),j=(0,s.l)(c,"unstable_getStaticPaths"),P=(0,s.l)(c,"unstable_getStaticParams"),b=(0,s.l)(c,"unstable_getServerProps"),y=(0,s.l)(c,"unstable_getServerSideProps"),S=new i.PagesRouteModule({definition:{kind:n.x.PAGES,page:"/_error",pathname:"/_error",bundlePath:"",filename:""},components:{App:a.default,Document:l.default},userland:c});o()}catch(e){o(e)}})},1445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return p}});let o=r(7083),i=r(997),n=o._(r(6689)),s=o._(r(44)),l={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function a(e){let{res:t,err:r}=e;return{statusCode:t&&t.statusCode?t.statusCode:r?r.statusCode:404}}let c={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class p extends n.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,r=this.props.title||l[e]||"An unexpected error has occurred";return(0,i.jsxs)("div",{style:c.error,children:[(0,i.jsx)(s.default,{children:(0,i.jsx)("title",{children:e?e+": "+r:"Application error: a client-side exception has occurred"})}),(0,i.jsxs)("div",{style:c.desc,children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,i.jsx)("h1",{className:"next-error-h1",style:c.h1,children:e}):null,(0,i.jsx)("div",{style:c.wrap,children:(0,i.jsxs)("h2",{style:c.h2,children:[this.props.title||e?r:(0,i.jsx)(i.Fragment,{children:"Application error: a client-side exception has occurred (see the browser console for more information)"}),"."]})})]})]})}}p.displayName="ErrorPage",p.getInitialProps=a,p.origGetInitialProps=a,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4725:(e,t,r)=>{r.r(t),r.d(t,{default:()=>l});var o=r(997),i=r(331),n=r.n(i);class s extends n(){render(){return(0,o.jsxs)(i.Html,{lang:"en",children:[(0,o.jsxs)(i.Head,{children:[o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"57x57",href:"icons/apple-touch-icon-57x57.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"114x114",href:"icons/apple-touch-icon-114x114.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"72x72",href:"icons/apple-touch-icon-72x72.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"144x144",href:"icons/apple-touch-icon-144x144.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"60x60",href:"icons/apple-touch-icon-60x60.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"120x120",href:"icons/apple-touch-icon-120x120.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"76x76",href:"icons/apple-touch-icon-76x76.png"}),o.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"152x152",href:"icons/apple-touch-icon-152x152.png"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-196x196.png",sizes:"196x196"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-96x96.png",sizes:"96x96"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-32x32.png",sizes:"32x32"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-16x16.png",sizes:"16x16"}),o.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-128.png",sizes:"128x128"}),o.jsx("link",{rel:"icon",href:"icons/favicon.svg"}),o.jsx("meta",{name:"application-name",content:"Scrabble Solver"}),o.jsx("meta",{name:"msapplication-TileColor",content:"#EFE3AE"}),o.jsx("meta",{name:"msapplication-TileImage",content:"icons/mstile-144x144.png"}),o.jsx("meta",{name:"msapplication-square70x70logo",content:"icons/mstile-70x70.png"}),o.jsx("meta",{name:"msapplication-square150x150logo",content:"icons/mstile-150x150.png"}),o.jsx("meta",{name:"msapplication-wide310x150logo",content:"icons/mstile-310x150.png"}),o.jsx("meta",{name:"msapplication-square310x310logo",content:"icons/mstile-310x310.png"})]}),(0,o.jsxs)("body",{children:[o.jsx(i.Main,{}),o.jsx(i.NextScript,{})]})]})}}let l=s},4591:(e,t)=>{var r;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return r}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(r||(r={}))},9003:e=>{e.exports=require("classnames")},9744:e=>{e.exports=require("include-media-query-builder")},2785:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},968:e=>{e.exports=require("next/head")},6689:e=>{e.exports=require("react")},4620:e=>{e.exports=require("react-cool-onclickoutside")},6405:e=>{e.exports=require("react-dom")},8684:e=>{e.exports=require("react-dom/server")},1848:e=>{e.exports=require("react-highlight-words")},9931:e=>{e.exports=require("react-modal")},551:e=>{e.exports=require("react-window")},997:e=>{e.exports=require("react/jsx-runtime")},6477:e=>{e.exports=require("redux-saga/effects")},3453:e=>{e.exports=require("store2")},1964:e=>{e.exports=import("@floating-ui/react")},3258:e=>{e.exports=import("@reduxjs/toolkit")},3291:e=>{e.exports=import("react-redux")},5998:e=>{e.exports=import("redux-saga")},1017:e=>{e.exports=require("path")}};var t=require("../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[331,577,807],()=>r(8517));module.exports=o})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=87,e.ids=[87],e.modules={9119:e=>{e.exports=require("@kamilmielnik/trie")},8048:e=>{e.exports=require("cheerio")},6953:e=>{e.exports=require("follow-redirects")},1118:e=>{e.exports=require("latinize")},145:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},4616:e=>{e.exports=require("unzipper")},7773:e=>{e.exports=require("winston")},6113:e=>{e.exports=require("crypto")},7147:e=>{e.exports=require("fs")},2037:e=>{e.exports=require("os")},1017:e=>{e.exports=require("path")},7310:e=>{e.exports=require("url")},9790:(e,t,r)=>{r.r(t),r.d(t,{config:()=>x,default:()=>w,routeModule:()=>k});var n,l,a={};r.r(a),r.d(a,{config:()=>O,default:()=>M});var o=r(9150),i=r(1631),u=r(6835),s=r(7911),f=r(8436),d=r(9044),c=r(2954),p=r.n(c),g=r(368),h=r(6452),b=r(9927),v=r(9953),m=r(1525);let P=e=>Array.isArray(e)&&e.every(e=>"string"==typeof e);(function(e){e.Ascending="ascending",e.Descending="descending"})(n||(n={})),function(e){e.BlanksCount="blanks-count",e.ConsonantsCount="consonants-count",e.Points="points",e.TilesCount="tiles-count",e.VowelsCount="vowels-count",e.Word="word",e.WordsCount="words-count"}(l||(l={}));let _=e=>(t,r)=>t.localeCompare(r,e),y=(e,t)=>e-t,C=(e,t)=>{let r=_(t);return(t,n)=>{let l=t[e],a=n[e];return"string"==typeof l&&"string"==typeof a?r(l,a):"number"==typeof l&&"number"==typeof a?y(l,a):0}};l.BlanksCount,l.ConsonantsCount,l.Points,l.TilesCount,l.VowelsCount,l.Word,l.WordsCount,e=>C("wordsCount",e);let j=e=>{let{board:t,characters:r,game:n,locale:l}=e.body;if(!(0,h.isLocale)(l))throw Error('Invalid "locale" parameter');if(!(0,h.isGame)(n))throw Error('Invalid "game" parameter');if(!P(r)||0===r.length)throw Error('Invalid "characters" parameter');if(!(0,s.hasConfig)(n,l))throw Error(`No game "${n}" in "${l}"`);let a=(0,s.getConfig)(n,l);for(let e of r)if(!(0,v.Z)(e))throw Error('Invalid "characters" parameter');if(r.filter(e=>e===f.BLANK).length>a.blanksCount)throw Error("Too many blank tiles passed");if(!(0,h.isBoardJson)(t)||!(0,m.Z)(t,a))throw Error('Invalid "board" parameter');return{board:h.Board.fromJson(t),characters:r,config:a,locale:l}},O={api:{responseLimit:"25mb"}},M=async(e,t)=>{let r=(0,b.Z)(e);try{let{board:n,characters:l,config:a,locale:o}=j(e);p().info("solve - request",{meta:r,payload:{board:n.toString(),boardBlanksCount:n.getBlanksCount(),boardTilesCount:n.getTilesCount(),characters:l.join(""),game:e.body.game,locale:o}});let i=await d.dictionaries.get(o),u=l.map(e=>new h.Tile({character:e,isBlank:e===f.BLANK})),s=(0,g.solve)(i,a,n,u);t.status(200).send(s)}catch(n){let e=n instanceof Error?n.message:"Unknown error";p().error("solve - error",{error:n,meta:r}),t.status(500).send({error:"Server error",message:e})}},w=(0,u.l)(a,"default"),x=(0,u.l)(a,"config"),k=new o.PagesAPIRouteModule({definition:{kind:i.x.PAGES_API,page:"/api/solve",pathname:"/api/solve",bundlePath:"",filename:""},userland:a})},1525:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(9953);let l=(e,t)=>{let{isEmpty:r,tile:l,x:a,y:o}=e;return!(a<0)&&!(a>=t.boardWidth)&&!(o<0)&&!(o>=t.boardHeight)&&(!r||null===l)&&(null===l||!!(0,n.Z)(l.character))},a=(e,t)=>{if(e.length!==t.boardWidth)return!1;for(let r of e)if(!l(r,t))return!1;return!0},o=(e,t)=>{for(let r of e.flat().filter(e=>e&&e.tile&&t.isTwoCharacterTilePrefix(e.tile.character)))for(let n of t.twoCharacterTiles){let t=r.y+1<e.length,l=r.x+1<e[0].length,a=e[r.y+1][r.x],o=e[r.y][r.x+1],i=t&&a.tile&&a.tile.character===n[1],u=l&&o.tile&&o.tile.character===n[1],s=i||u;if(r.tile&&n.startsWith(r.tile.character)&&s)return!1}return!0},i=(e,t)=>{if(e.length!==t.boardHeight)return!1;for(let r of e)if(!a(r,t))return!1;return o(e,t)}},9953:(e,t,r)=>{r.d(t,{Z:()=>n});let n=e=>0!==e.length&&e.length<=2},3904:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{let{twoCharacterTiles:r}=e,{cells:n}=t;for(let e=0;e<n.length-1;++e){let t=n[e],l=n[e+1],a=t.tile.character+l.tile.character;if(r.includes(a))return!1}return!0}},3594:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fillPatternRecursive=void 0;let n=r(8436),l=r(6452);t.fillPatternRecursive=(e,r,a,o,i,u)=>{let s=o.getIndexOfFirstCellWithoutTile();if(-1===s){r.has(i)&&o.getCollisions().every(e=>r.has(e.toString()))&&e.push(new l.FinalPattern(o.clone()));return}for(let f=0;f<u.length;++f){let d=u[f],c=o.cells[s].tile;o.cells[s].tile=d;let p=o.getIndexOfFirstCellWithoutTile(),g=i.indexOf(n.EMPTY_CELL),h=i.substring(0,g),b=i.substring(g+1);for(let n of d.isBlank?a.alphabet:[d.character]){let i=h+n,s=i+b;d.character=n,-1===p?r.has(s)&&o.getCollisions().every(e=>r.has(e.toString()))&&e.push(new l.FinalPattern(o.clone())):r.hasPrefix(i)&&(u.splice(f,1),(0,t.fillPatternRecursive)(e,r,a,o,s,u),u.splice(f,0,d))}o.cells[s].tile=c}},t.default=(e,r,n,l)=>{if(n.getEmptyCellsCount()>l.length)return[];let a=[];return(0,t.fillPatternRecursive)(a,e,r,n,n.toString(),l),a}},856:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{if(0===e.length)return[];let r=[];for(let n=t+1;n<e.length-1;++n)e[n+1].hasTile()||r.push(n);return r.push(e.length-1),r}},1331:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=r(6452),a=n(r(7984)),o=n(r(8618));t.default=(e,t)=>{let r=e.boardHeight;return(0,o.default)({getNthVector:e=>t.getRow(e),vectorsCount:r}).flatMap(r=>(0,a.default)({board:t,config:e,PatternModel:l.HorizontalPattern,cells:r}))}},7984:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(856)),a=n(r(8182));t.default=({board:e,cells:t,config:r,PatternModel:n})=>(0,a.default)(t).flatMap(a=>{let o=(0,l.default)(t,a),i=[];for(let l of o){let o=new n(e,t.slice(a,l+1));o.canBePlaced(r)&&i.push(o)}return i})},9480:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(1331)),a=n(r(5069));t.default=(e,t)=>{let r=(0,l.default)(e,t),n=(0,a.default)(e,t);return r.concat(n)}},8182:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>{if(0===e.length)return[];let t=[0];for(let r=1;r<e.length-1;++r)e[r-1].hasTile()||t.push(r);return t}},8618:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=({getNthVector:e,vectorsCount:t})=>Array.from({length:t},(t,r)=>e(r))},5069:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=r(6452),a=n(r(7984)),o=n(r(8618));t.default=(e,t)=>{let r=e.boardWidth;return(0,o.default)({getNthVector:e=>t.getColumn(e),vectorsCount:r}).flatMap(r=>(0,a.default)({board:t,config:e,PatternModel:l.VerticalPattern,cells:r}))}},6628:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436);t.default=(e,t)=>{let r=t.reduce(({multiplier:t,score:r},l)=>{let a=e.getCellBonus(l),{characterMultiplier:o,wordMultiplier:i}=a&&a.canApply(e,l)?a.value:n.NO_BONUS,u=e.pointsMap[l.tile.character]||0;return{multiplier:t*i,score:r+(l.tile.isBlank?e.blankScore:u)*o}},{multiplier:1,score:0});return r.score*r.multiplier}},2352:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>e.cells.filter(e=>e.isEmpty).map(e=>{let t=e.tile.isBlank?"!":"",r=e.tile.character+t;return[e.x,e.y,r].join(",")}).join("-")},4808:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(6628));t.default=(e,t)=>{let r=t.getEmptyCellsCount()===e.maximumCharactersCount?e.allTilesBonusScore:0;return t.getCollisions().reduce((t,r)=>t+(0,l.default)(e,r.cells),(0,l.default)(e,t.cells))+r}},5555:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(2352));t.default=e=>{let t=new Set,r=[];for(let n of e){let e=(0,l.default)(n);t.has(e)||(t.add(e),r.push(n))}return r}},368:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.solve=t.getUniquePatterns=t.getPatternScore=t.getPatternHash=t.getCellsScore=t.generateVerticalPatterns=t.generateVectors=t.generateStartIndices=t.generatePatterns=t.generatePattern=t.generateHorizontalPatterns=t.generateEndIndices=t.fillPattern=t.areDigraphsValid=void 0;var l=r(3904);Object.defineProperty(t,"areDigraphsValid",{enumerable:!0,get:function(){return n(l).default}});var a=r(3594);Object.defineProperty(t,"fillPattern",{enumerable:!0,get:function(){return n(a).default}});var o=r(856);Object.defineProperty(t,"generateEndIndices",{enumerable:!0,get:function(){return n(o).default}});var i=r(1331);Object.defineProperty(t,"generateHorizontalPatterns",{enumerable:!0,get:function(){return n(i).default}});var u=r(7984);Object.defineProperty(t,"generatePattern",{enumerable:!0,get:function(){return n(u).default}});var s=r(9480);Object.defineProperty(t,"generatePatterns",{enumerable:!0,get:function(){return n(s).default}});var f=r(8182);Object.defineProperty(t,"generateStartIndices",{enumerable:!0,get:function(){return n(f).default}});var d=r(8618);Object.defineProperty(t,"generateVectors",{enumerable:!0,get:function(){return n(d).default}});var c=r(5069);Object.defineProperty(t,"generateVerticalPatterns",{enumerable:!0,get:function(){return n(c).default}});var p=r(6628);Object.defineProperty(t,"getCellsScore",{enumerable:!0,get:function(){return n(p).default}});var g=r(2352);Object.defineProperty(t,"getPatternHash",{enumerable:!0,get:function(){return n(g).default}});var h=r(4808);Object.defineProperty(t,"getPatternScore",{enumerable:!0,get:function(){return n(h).default}});var b=r(5555);Object.defineProperty(t,"getUniquePatterns",{enumerable:!0,get:function(){return n(b).default}});var v=r(6243);Object.defineProperty(t,"solve",{enumerable:!0,get:function(){return n(v).default}})},6243:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(3904)),a=n(r(3594)),o=n(r(9480)),i=n(r(4808)),u=n(r(5555));t.default=(e,t,r,n)=>{let s=(0,o.default)(t,r).flatMap(r=>(0,a.default)(e,t,r,n)),f=t.twoCharacterTiles.length>0?s.filter(e=>(0,l.default)(t,e)):s;return(0,u.default)(f).map((e,r)=>({cells:e.cells.map(e=>e.toJson()),collisions:e.getCollisions().map(e=>e.cells.map(e=>e.toJson())),id:r,points:(0,i.default)(t,e)}))}}};var t=require("../../webpack-api-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[977,911],()=>r(9790));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=87,e.ids=[87],e.modules={9119:e=>{e.exports=require("@kamilmielnik/trie")},8048:e=>{e.exports=require("cheerio")},6953:e=>{e.exports=require("follow-redirects")},1118:e=>{e.exports=require("latinize")},145:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},4616:e=>{e.exports=require("unzipper")},7773:e=>{e.exports=require("winston")},6113:e=>{e.exports=require("crypto")},7147:e=>{e.exports=require("fs")},2037:e=>{e.exports=require("os")},1017:e=>{e.exports=require("path")},7310:e=>{e.exports=require("url")},2858:(e,t,r)=>{r.r(t),r.d(t,{config:()=>x,default:()=>w,routeModule:()=>k});var n,l,a={};r.r(a),r.d(a,{config:()=>O,default:()=>M});var o=r(9150),i=r(1631),u=r(6835),s=r(7911),f=r(8436),d=r(9044),c=r(2954),p=r.n(c),g=r(368),h=r(6452),b=r(9927),v=r(9953),m=r(1525);let P=e=>Array.isArray(e)&&e.every(e=>"string"==typeof e);(function(e){e.Ascending="ascending",e.Descending="descending"})(n||(n={})),function(e){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"}(l||(l={}));let _=e=>(t,r)=>t.localeCompare(r,e),y=(e,t)=>e-t,C=(e,t)=>{let r=_(t);return(t,n)=>{let l=t[e],a=n[e];return"string"==typeof l&&"string"==typeof a?r(l,a):"number"==typeof l&&"number"==typeof a?y(l,a):0}};l.BlanksCount,l.ConsonantsCount,l.Coordinates,l.Points,l.TilesCount,l.VowelsCount,l.Word,l.WordsCount,e=>C("wordsCount",e);let j=e=>{let{board:t,characters:r,game:n,locale:l}=e.body;if(!(0,h.isLocale)(l))throw Error('Invalid "locale" parameter');if(!(0,h.isGame)(n))throw Error('Invalid "game" parameter');if(!P(r)||0===r.length)throw Error('Invalid "characters" parameter');if(!(0,s.hasConfig)(n,l))throw Error(`No game "${n}" in "${l}"`);let a=(0,s.getConfig)(n,l);for(let e of r)if(!(0,v.Z)(e))throw Error('Invalid "characters" parameter');if(r.filter(e=>e===f.BLANK).length>a.blanksCount)throw Error("Too many blank tiles passed");if(!(0,h.isBoardJson)(t)||!(0,m.Z)(t,a))throw Error('Invalid "board" parameter');return{board:h.Board.fromJson(t),characters:r,config:a,locale:l}},O={api:{responseLimit:"25mb"}},M=async(e,t)=>{let r=(0,b.Z)(e);try{let{board:n,characters:l,config:a,locale:o}=j(e);p().info("solve - request",{meta:r,payload:{board:n.toString(),boardBlanksCount:n.getBlanksCount(),boardTilesCount:n.getTilesCount(),characters:l.join(""),game:e.body.game,locale:o}});let i=await d.dictionaries.get(o),u=l.map(e=>new h.Tile({character:e,isBlank:e===f.BLANK})),s=(0,g.solve)(i,a,n,u);t.status(200).send(s)}catch(n){let e=n instanceof Error?n.message:"Unknown error";p().error("solve - error",{error:n,meta:r}),t.status(500).send({error:"Server error",message:e})}},w=(0,u.l)(a,"default"),x=(0,u.l)(a,"config"),k=new o.PagesAPIRouteModule({definition:{kind:i.x.PAGES_API,page:"/api/solve",pathname:"/api/solve",bundlePath:"",filename:""},userland:a})},1525:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(9953);let l=(e,t)=>{let{isEmpty:r,tile:l,x:a,y:o}=e;return!(a<0)&&!(a>=t.boardWidth)&&!(o<0)&&!(o>=t.boardHeight)&&(!r||null===l)&&(null===l||!!(0,n.Z)(l.character))},a=(e,t)=>{if(e.length!==t.boardWidth)return!1;for(let r of e)if(!l(r,t))return!1;return!0},o=(e,t)=>{for(let r of e.flat().filter(e=>e&&e.tile&&t.isTwoCharacterTilePrefix(e.tile.character)))for(let n of t.twoCharacterTiles){let t=r.y+1<e.length,l=r.x+1<e[0].length,a=e[r.y+1][r.x],o=e[r.y][r.x+1],i=t&&a.tile&&a.tile.character===n[1],u=l&&o.tile&&o.tile.character===n[1],s=i||u;if(r.tile&&n.startsWith(r.tile.character)&&s)return!1}return!0},i=(e,t)=>{if(e.length!==t.boardHeight)return!1;for(let r of e)if(!a(r,t))return!1;return o(e,t)}},9953:(e,t,r)=>{r.d(t,{Z:()=>n});let n=e=>0!==e.length&&e.length<=2},3904:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{let{twoCharacterTiles:r}=e,{cells:n}=t;for(let e=0;e<n.length-1;++e){let t=n[e],l=n[e+1],a=t.tile.character+l.tile.character;if(r.includes(a))return!1}return!0}},3594:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fillPatternRecursive=void 0;let n=r(8436),l=r(6452);t.fillPatternRecursive=(e,r,a,o,i,u)=>{let s=o.getIndexOfFirstCellWithoutTile();if(-1===s){r.has(i)&&o.getCollisions().every(e=>r.has(e.toString()))&&e.push(new l.FinalPattern(o.clone()));return}for(let f=0;f<u.length;++f){let d=u[f],c=o.cells[s].tile;o.cells[s].tile=d;let p=o.getIndexOfFirstCellWithoutTile(),g=i.indexOf(n.EMPTY_CELL),h=i.substring(0,g),b=i.substring(g+1);for(let n of d.isBlank?a.alphabet:[d.character]){let i=h+n,s=i+b;d.character=n,-1===p?r.has(s)&&o.getCollisions().every(e=>r.has(e.toString()))&&e.push(new l.FinalPattern(o.clone())):r.hasPrefix(i)&&(u.splice(f,1),(0,t.fillPatternRecursive)(e,r,a,o,s,u),u.splice(f,0,d))}o.cells[s].tile=c}},t.default=(e,r,n,l)=>{if(n.getEmptyCellsCount()>l.length)return[];let a=[];return(0,t.fillPatternRecursive)(a,e,r,n,n.toString(),l),a}},856:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{if(0===e.length)return[];let r=[];for(let n=t+1;n<e.length-1;++n)e[n+1].hasTile()||r.push(n);return r.push(e.length-1),r}},1331:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=r(6452),a=n(r(7984)),o=n(r(8618));t.default=(e,t)=>{let r=e.boardHeight;return(0,o.default)({getNthVector:e=>t.getRow(e),vectorsCount:r}).flatMap(r=>(0,a.default)({board:t,config:e,PatternModel:l.HorizontalPattern,cells:r}))}},7984:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(856)),a=n(r(8182));t.default=({board:e,cells:t,config:r,PatternModel:n})=>(0,a.default)(t).flatMap(a=>{let o=(0,l.default)(t,a),i=[];for(let l of o){let o=new n(e,t.slice(a,l+1));o.canBePlaced(r)&&i.push(o)}return i})},9480:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(1331)),a=n(r(5069));t.default=(e,t)=>{let r=(0,l.default)(e,t),n=(0,a.default)(e,t);return r.concat(n)}},8182:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>{if(0===e.length)return[];let t=[0];for(let r=1;r<e.length-1;++r)e[r-1].hasTile()||t.push(r);return t}},8618:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=({getNthVector:e,vectorsCount:t})=>Array.from({length:t},(t,r)=>e(r))},5069:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=r(6452),a=n(r(7984)),o=n(r(8618));t.default=(e,t)=>{let r=e.boardWidth;return(0,o.default)({getNthVector:e=>t.getColumn(e),vectorsCount:r}).flatMap(r=>(0,a.default)({board:t,config:e,PatternModel:l.VerticalPattern,cells:r}))}},6628:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let n=r(8436);t.default=(e,t)=>{let r=t.reduce(({multiplier:t,score:r},l)=>{let a=e.getCellBonus(l),{characterMultiplier:o,wordMultiplier:i}=a&&a.canApply(e,l)?a.value:n.NO_BONUS,u=e.pointsMap[l.tile.character]||0;return{multiplier:t*i,score:r+(l.tile.isBlank?e.blankScore:u)*o}},{multiplier:1,score:0});return r.score*r.multiplier}},2352:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=e=>e.cells.filter(e=>e.isEmpty).map(e=>{let t=e.tile.isBlank?"!":"",r=e.tile.character+t;return[e.x,e.y,r].join(",")}).join("-")},4808:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(6628));t.default=(e,t)=>{let r=t.getEmptyCellsCount()===e.maximumCharactersCount?e.allTilesBonusScore:0;return t.getCollisions().reduce((t,r)=>t+(0,l.default)(e,r.cells),(0,l.default)(e,t.cells))+r}},5555:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(2352));t.default=e=>{let t=new Set,r=[];for(let n of e){let e=(0,l.default)(n);t.has(e)||(t.add(e),r.push(n))}return r}},368:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.solve=t.getUniquePatterns=t.getPatternScore=t.getPatternHash=t.getCellsScore=t.generateVerticalPatterns=t.generateVectors=t.generateStartIndices=t.generatePatterns=t.generatePattern=t.generateHorizontalPatterns=t.generateEndIndices=t.fillPattern=t.areDigraphsValid=void 0;var l=r(3904);Object.defineProperty(t,"areDigraphsValid",{enumerable:!0,get:function(){return n(l).default}});var a=r(3594);Object.defineProperty(t,"fillPattern",{enumerable:!0,get:function(){return n(a).default}});var o=r(856);Object.defineProperty(t,"generateEndIndices",{enumerable:!0,get:function(){return n(o).default}});var i=r(1331);Object.defineProperty(t,"generateHorizontalPatterns",{enumerable:!0,get:function(){return n(i).default}});var u=r(7984);Object.defineProperty(t,"generatePattern",{enumerable:!0,get:function(){return n(u).default}});var s=r(9480);Object.defineProperty(t,"generatePatterns",{enumerable:!0,get:function(){return n(s).default}});var f=r(8182);Object.defineProperty(t,"generateStartIndices",{enumerable:!0,get:function(){return n(f).default}});var d=r(8618);Object.defineProperty(t,"generateVectors",{enumerable:!0,get:function(){return n(d).default}});var c=r(5069);Object.defineProperty(t,"generateVerticalPatterns",{enumerable:!0,get:function(){return n(c).default}});var p=r(6628);Object.defineProperty(t,"getCellsScore",{enumerable:!0,get:function(){return n(p).default}});var g=r(2352);Object.defineProperty(t,"getPatternHash",{enumerable:!0,get:function(){return n(g).default}});var h=r(4808);Object.defineProperty(t,"getPatternScore",{enumerable:!0,get:function(){return n(h).default}});var b=r(5555);Object.defineProperty(t,"getUniquePatterns",{enumerable:!0,get:function(){return n(b).default}});var v=r(6243);Object.defineProperty(t,"solve",{enumerable:!0,get:function(){return n(v).default}})},6243:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let l=n(r(3904)),a=n(r(3594)),o=n(r(9480)),i=n(r(4808)),u=n(r(5555));t.default=(e,t,r,n)=>{let s=(0,o.default)(t,r).flatMap(r=>(0,a.default)(e,t,r,n)),f=t.twoCharacterTiles.length>0?s.filter(e=>(0,l.default)(t,e)):s;return(0,u.default)(f).map((e,r)=>({cells:e.cells.map(e=>e.toJson()),collisions:e.getCollisions().map(e=>e.cells.map(e=>e.toJson())),id:r,points:(0,i.default)(t,e)}))}}};var t=require("../../webpack-api-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[977,911],()=>r(2858));module.exports=n})();
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/f549d7823f599b8d.css" as="style"/><link rel="stylesheet" href="/_next/static/css/f549d7823f599b8d.css" data-n-g=""/><link rel="preload" href="/_next/static/css/11366b7489cf90ac.css" as="style"/><link rel="stylesheet" href="/_next/static/css/11366b7489cf90ac.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-6e708370ad13b1f9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-cccda36d00fa2328.js" defer=""></script><script src="/_next/static/chunks/pages/index-caaf20b2488cb10e.js" defer=""></script><script src="/_next/static/4GWIKe7khKxREyq3ZamDK/_buildManifest.js" defer=""></script><script src="/_next/static/4GWIKe7khKxREyq3ZamDK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.13.5"},"__N_SSG":true},"page":"/","query":{},"buildId":"4GWIKe7khKxREyq3ZamDK","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Super Scrabble,Super Scrabble Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><link rel="icon" href="icons/favicon.svg"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/b37850c8d5270d91.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b37850c8d5270d91.css" data-n-g=""/><link rel="preload" href="/_next/static/css/6682db14f926d4c7.css" as="style"/><link rel="stylesheet" href="/_next/static/css/6682db14f926d4c7.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-c623a49d0bf89652.js" defer=""></script><script src="/_next/static/chunks/main-b5b360c6afb66b05.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a2848b7efa6bb6b0.js" defer=""></script><script src="/_next/static/chunks/pages/index-7b73be2915cc7099.js" defer=""></script><script src="/_next/static/7zESQYo9UAqNh9LV0b7Sd/_buildManifest.js" defer=""></script><script src="/_next/static/7zESQYo9UAqNh9LV0b7Sd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble &amp; Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.13.7"},"__N_SSG":true},"page":"/","query":{},"buildId":"7zESQYo9UAqNh9LV0b7Sd","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- (()=>{var e={};e.id=405,e.ids=[405,660],e.modules={6021:(e,t)=>{"use strict";Object.defineProperty(t,"l",{enumerable:!0,get:function(){return function e(t,a){return a in t?t[a]:"then"in t&&"function"==typeof t.then?t.then(t=>e(t,a)):"function"==typeof t&&"default"===a?t:void 0}}})},6130:e=>{e.exports={content:"DictionaryModal_content___jXD2",dictionary:"DictionaryModal_dictionary__Eu9Sx",dictionaryInput:"DictionaryModal_dictionaryInput__CKiX5"}},1069:e=>{e.exports={mapping:"Mapping_mapping__Ua6wj",description:"Mapping_description__nSNia",keys:"Mapping_keys__KmIcZ",group:"Mapping_group__MlkmV",slash:"Mapping_slash__hulS4",plus:"Mapping_plus__KE_ml"}},763:e=>{e.exports={button:"MenuModal_button__x3zTR",settings:"MenuModal_settings__XE_P3",settingsLabel:"MenuModal_settingsLabel__xYRLv",flag:"MenuModal_flag__NGaHf"}},3127:e=>{e.exports={title:"RemainingTilesModal_title__4rcbk",content:"RemainingTilesModal_content__NrmXd",badge:"RemainingTilesModal_badge__vZkrc",character:"RemainingTilesModal_character__16pGR"}},385:e=>{e.exports={character:"Character_character__Xry5W",finished:"Character_finished__Ee5Eu",overused:"Character_overused__WV6tJ",tile:"Character_tile__Ledy0",remaining:"Character_remaining__DFxBl",count:"Character_count__Bl6_O"}},1233:e=>{e.exports={content:"ResultsModal_content__vzX7N",results:"ResultsModal_results__FDN3k",dictionary:"ResultsModal_dictionary__o3cpd"}},7451:e=>{e.exports={option:"AutoGroupTilesSetting_option__dp8CH",label:"AutoGroupTilesSetting_label__MIKlN"}},573:e=>{e.exports={option:"ConfigSetting_option__pvmMK",label:"ConfigSetting_label__CeZI1"}},1422:e=>{e.exports={option:"InputModeSetting_option__9tdaY",label:"InputModeSetting_label__al6kL"}},9267:e=>{e.exports={option:"LocaleSetting_option__3uVpq",label:"LocaleSetting_label__VqJH9",flag:"LocaleSetting_flag__cnMgQ"}},6041:e=>{e.exports={option:"ShowCoordinatesSetting_option__teifi",label:"ShowCoordinatesSetting_label__h0REI"}},2551:e=>{e.exports={title:"WordsModal_title__UGHtI",badge:"WordsModal_badge__Ay_8V",word:"WordsModal_word__sCI06",invalid:"WordsModal_invalid__jgYeh",valid:"WordsModal_valid__JW5lM",icon:"WordsModal_icon___HWi4"}},2200:e=>{e.exports={nav:"index_nav__oayCy",navContent:"index_navContent__puCTa",navLogo:"index_navLogo__iI_za",logoContainer:"index_logoContainer__YyxQp",logo:"index_logo__jZUto",solver:"index_solver__wz8VS"}},1540:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.r(t),a.d(t,{config:()=>g,default:()=>u,getServerSideProps:()=>x,getStaticPaths:()=>h,getStaticProps:()=>p,reportWebVitals:()=>m,routeModule:()=>k,unstable_getServerProps:()=>b,unstable_getServerSideProps:()=>y,unstable_getStaticParams:()=>v,unstable_getStaticPaths:()=>j,unstable_getStaticProps:()=>_});var i=a(8877),n=a(4591),r=a(6021),l=a(4725),c=a(7807),o=a(2564),d=e([c,o]);[c,o]=d.then?(await d)():d;let u=(0,r.l)(o,"default"),p=(0,r.l)(o,"getStaticProps"),h=(0,r.l)(o,"getStaticPaths"),x=(0,r.l)(o,"getServerSideProps"),g=(0,r.l)(o,"config"),m=(0,r.l)(o,"reportWebVitals"),_=(0,r.l)(o,"unstable_getStaticProps"),j=(0,r.l)(o,"unstable_getStaticPaths"),v=(0,r.l)(o,"unstable_getStaticParams"),b=(0,r.l)(o,"unstable_getServerProps"),y=(0,r.l)(o,"unstable_getServerSideProps"),k=new i.PagesRouteModule({definition:{kind:n.x.PAGES,page:"/index",pathname:"/",bundlePath:"",filename:""},components:{App:c.default,Document:l.default},userland:o});s()}catch(e){s(e)}})},2862:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(6689),r=a(9716),l=a(3940),c=a(6130),o=a.n(c),d=e([r,l]);[r,l]=d.then?(await d)():d;let u=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,l.qM)();return i.jsx(r.u_,{className:e,isOpen:t,title:s("dictionary"),onClose:a,children:(0,i.jsxs)("div",{className:o().content,children:[i.jsx(r.Xy,{className:o().dictionary}),i.jsx(r.Z$,{className:o().dictionaryInput})]})})});s()}catch(e){s(e)}})},9543:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(2862),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1282:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(6689),r=a(9716),l=a(3940),c=a(9131),o=a(7430),d=e([r,l,o]);[r,l,o]=d.then?(await d)():d;let u=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,l.qM)(),n=(0,l.ix)(l.$o);return(0,i.jsxs)(r.u_,{className:e,isOpen:t,title:s("keyMap"),onClose:a,children:[(0,i.jsxs)(r.u_.Section,{title:s("keyMap.board-and-rack"),children:[i.jsx(c.v,{description:s("keyMap.board-and-rack.navigate"),mapping:[o.JY]}),i.jsx(c.v,{description:s("keyMap.board-and-rack.remove-tile"),mapping:[o.fU,o.ZH]}),i.jsx(c.v,{description:s("keyMap.board-and-rack.submit"),mapping:[o.K5]}),n.twoCharacterTiles.length>0&&i.jsx(c.v,{description:s("keyMap.board-and-rack.insert-two-letter-tile"),mapping:[[o.HF,i.jsx(i.Fragment,{children:n.twoCharacterTiles.map(([e])=>i.jsx(r.sr,{children:e.toUpperCase()},e))})]]})]}),(0,i.jsxs)(r.u_.Section,{title:s("keyMap.board"),children:[i.jsx(c.v,{description:s("keyMap.board.toggle-blank"),mapping:[o.L_,[o.HF,i.jsx(r.sr,{children:"B"},"b")]]}),i.jsx(c.v,{description:s("keyMap.board.toggle-direction"),mapping:[o.JY]})]}),i.jsx(r.u_.Section,{title:s("keyMap.rack"),children:i.jsx(c.v,{description:s("keyMap.rack.insert-blank"),mapping:[o.L_]})})]})});s()}catch(e){s(e)}})},9131:(e,t,a)=>{"use strict";a.d(t,{v:()=>o});var s=a(997),i=a(9003),n=a.n(i),r=a(6689),l=a(1069),c=a.n(l);let o=({className:e,description:t,mapping:a})=>(0,s.jsxs)("div",{className:n()(c().mapping,e),children:[s.jsx("h3",{className:c().description,children:t}),s.jsx("div",{className:c().keys,children:a.map((e,t)=>(0,s.jsxs)(r.Fragment,{children:[s.jsx("div",{className:c().group,children:Array.isArray(e)?(0,s.jsxs)(s.Fragment,{children:[e[0],s.jsx("span",{className:c().plus,children:"+"}),e[1]]}):e}),a.length>1&&t<a.length-1&&s.jsx("span",{className:c().slash,children:"/"})]},t))})]})},4209:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1282),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},7430:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{HF:()=>x,JY:()=>_,K5:()=>m,L_:()=>j,ZH:()=>h,fU:()=>g});var i=a(997),n=a(9716),r=a(8853),l=a(7996),c=e([n]);n=(c.then?(await c)():c)[0];let o=i.jsx(n.sr,{children:i.jsx(r.Xd,{})}),d=i.jsx(n.sr,{children:i.jsx(r.a2,{})}),u=i.jsx(n.sr,{children:i.jsx(r.ol,{})}),p=i.jsx(n.sr,{children:i.jsx(r.K5,{})}),h=i.jsx(n.sr,{children:"← Backspace"}),x=i.jsx(n.sr,{children:(0,l.V5)()?"⌘":"Ctrl"}),g=i.jsx(n.sr,{children:"Del"}),m=i.jsx(n.sr,{children:"Enter ⏎"}),_=(0,i.jsxs)(i.Fragment,{children:[o,d,u,p]}),j=i.jsx(n.sr,{children:"␣"});s()}catch(e){s(e)}})},6335:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>x});var i=a(997),n=a(6689),r=a(9716),l=a(6303),c=a(8853),o=a(5280),d=a(3940),u=a(763),p=a.n(u),h=e([r,d]);[r,d]=h.then?(await h)():h;let x=(0,n.memo)(({className:e,isOpen:t,onClose:a,onShowDictionary:s,onShowRemainingTiles:n,onShowSettings:u,onShowWords:h})=>{let x=(0,d.qM)(),g=(0,d.ix)(d.fN),{Icon:m}=l.q[g];return(0,i.jsxs)(r.u_,{className:e,isOpen:t,title:x("menu"),onClose:a,children:[i.jsx(r.zx,{"aria-label":x("remaining-tiles"),className:p().button,Icon:c.xy,onClick:n,children:x("remaining-tiles")}),i.jsx(r.zx,{"aria-label":x("words"),className:p().button,Icon:c.Kz,onClick:h,children:x("words")}),i.jsx(r.zx,{"aria-label":x("dictionary"),className:p().button,Icon:c.PP,onClick:s,children:x("dictionary")}),i.jsx(r.zx.Link,{"aria-label":x("github"),className:p().button,href:o.h4,Icon:c.Ey,rel:"noopener noreferrer",target:"_blank",children:x("github")}),i.jsx(r.zx,{"aria-label":x("settings"),className:p().button,Icon:c.Oz,onClick:u,children:(0,i.jsxs)("div",{className:p().settings,children:[i.jsx("div",{className:p().settingsLabel,children:x("settings")}),i.jsx(m,{className:p().flag})]})})]})});s()}catch(e){s(e)}})},7051:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6335),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1300:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>g});var i=a(997),n=a(6689),r=a(9716),l=a(6303),c=a(7996),o=a(5280),d=a(3940),u=a(5698),p=a(3127),h=a.n(p),x=e([r,d,u]);[r,d,u]=x.then?(await x)():x;let g=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,d.qM)(),n=(0,d.ix)(d.fN),p=(0,d.ix)(d.Yj),{tileFontSize:x}=(0,c.vc)(o.mM),{direction:g}=l.q[n];return i.jsx(r.u_,{className:e,isOpen:t,title:s("remaining-tiles"),onClose:a,children:p.map(({remainingCount:e,tiles:t,translationKey:a,totalCount:l})=>i.jsx(r.u_.Section,{title:(0,i.jsxs)("span",{className:h().title,children:[i.jsx("span",{children:s(a)}),(0,i.jsxs)(r.Ct,{className:h().badge,children:[("ltr"===g?e:l).toLocaleString(n)," / ",("ltr"===g?l:e).toLocaleString(n)]})]}),children:i.jsx("div",{className:h().content,style:{fontSize:x},children:t.map(e=>i.jsx("div",{className:h().character,children:i.jsx(u.z,{tile:e})},e.character))})},a))})});s()}catch(e){s(e)}})},8094:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>g});var i=a(997),n=a(7618),r=a(9003),l=a.n(r),c=a(9716),o=a(6303),d=a(5280),u=a(3940),p=a(385),h=a.n(p),x=e([c,u]);[c,u]=x.then?(await x)():x;let g=({tile:e})=>{let t=(0,u.ix)(u.fN),{direction:a}=o.q[t],{character:s,count:r,usedCount:p}=e,x=r-p,g=(0,u.ix)(e=>(0,u.Or)(e,s)),m="ltr"===a?x:r,_="ltr"===a?r:x;return(0,i.jsxs)("div",{className:l()(h().character,{[h().finished]:x<=0,[h().overused]:x<0}),children:[i.jsx(c.n9,{"aria-label":s,character:s,className:h().tile,disabled:!0,isBlank:s===n.BLANK,isValid:x>=0,points:g,raised:!0,size:d.mM}),i.jsx(c.Ex,{className:h().remaining,max:r,style:{width:d.mM},value:x}),(0,i.jsxs)("div",{className:h().count,children:[m.toLocaleString(t)," / ",_.toLocaleString(t)]})]})};s()}catch(e){s(e)}})},4950:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(8094),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},5698:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{z:()=>i.Z});var i=a(4950),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1220:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1300),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1867:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>x});var i=a(997),n=a(6689),r=a(3291),l=a(9716),c=a(3180),o=a(8853),d=a(3940),u=a(1233),p=a.n(u),h=e([r,l,c,d]);[r,l,c,d]=h.then?(await h)():h;let x=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,r.useDispatch)(),u=(0,d.qM)(),{showResultsInModal:h}=(0,c.Ft)(),x=(0,d.ix)(d.x5),g=(0,d.ix)(d.Xk),m=x?x.findIndex(e=>e.id===g?.id):-1,_=(0,n.useMemo)(()=>({onClick:e=>{e===g?a():s(d._C.actions.changeResultCandidate(e))}}),[s,a,g]);return(0,n.useEffect)(()=>{t&&!h&&a()},[t,a,h]),i.jsx(l.u_,{className:e,footer:(0,i.jsxs)(i.Fragment,{children:[i.jsx(l.zx,{"aria-label":u("results.insert"),disabled:!g,Icon:o.Jr,tooltip:u("results.insert"),variant:"primary",onClick:()=>{g&&s(d._C.actions.applyResult(g)),a()},children:u("results.insert")}),i.jsx(l.zx,{"aria-label":u("results.preview"),disabled:!g,Icon:o.YO,tooltip:u("results.preview"),onClick:()=>{a()},children:u("results.preview")})]}),isOpen:t,title:u("results"),onClose:a,children:(0,i.jsxs)("div",{className:p().content,children:[i.jsx(l.u9,{callbacks:_,className:p().results,highlightedIndex:-1===m?void 0:m}),i.jsx(l.Xy,{className:p().dictionary})]})})});s()}catch(e){s(e)}})},606:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1867),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},6311:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(6689),r=a(9716),l=a(3180),c=a(3940),o=a(6922),d=e([r,l,c,o]);[r,l,c,o]=d.then?(await d)():d;let u=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,c.qM)(),n=(0,l.YQ)();return(0,i.jsxs)(r.u_,{className:e,isOpen:t,title:s("settings"),onClose:a,children:[i.jsx(r.u_.Section,{title:s("settings.game"),children:i.jsx(o.DG,{disabled:!t})}),i.jsx(r.u_.Section,{title:s("settings.language"),children:i.jsx(o.YR,{disabled:!t})}),i.jsx(r.u_.Section,{title:s("settings.showCoordinates"),children:i.jsx(o.P9,{disabled:!t})}),!n&&i.jsx(r.u_.Section,{title:s("settings.inputMode"),children:i.jsx(o.te,{disabled:!t})}),i.jsx(r.u_.Section,{title:s("settings.autoGroupTiles"),children:i.jsx(o.gy,{disabled:!t})})]})});s()}catch(e){s(e)}})},6637:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>h});var i=a(997),n=a(3291),r=a(9716),l=a(3940),c=a(7451),o=a.n(c),d=a(4110),u=a(6599),p=e([n,r,l]);[n,r,l]=p.then?(await p)():p;let h=({className:e,disabled:t})=>{let a=(0,n.useDispatch)(),s=(0,l.qM)(),c=(0,l.ix)(l.uz),p=[{label:s("settings.autoGroupTiles.left"),value:"left"},{label:s("settings.autoGroupTiles.right"),value:"right"},{label:s("settings.autoGroupTiles.null"),value:d.I}],h=e=>{let t=(0,u.H)(e.target.value);a(l.xj.actions.changeAutoGroupTiles(t))};return i.jsx("div",{className:e,children:p.map(e=>i.jsx(r.Y8,{checked:c===(0,u.H)(e.value),className:o().option,disabled:t,name:"autoGroupTiles",value:e.value,onChange:h,children:i.jsx("div",{className:o().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},4110:(e,t,a)=>{"use strict";a.d(t,{I:()=>s});let s="null"},4114:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6637),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},6599:(e,t,a)=>{"use strict";a.d(t,{H:()=>i});var s=a(4110);let i=e=>{if("left"===e||"right"===e)return e;if(e===s.I)return null;throw Error(`"${e}" is not valid. Should be "left", "right", or "${s.I}"`)}},4094:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>h});var i=a(997),n=a(9418),r=a(4046),l=a(3291),c=a(9716),o=a(3940),d=a(573),u=a.n(d),p=e([l,c,o]);[l,c,o]=p.then?(await p)():p;let h=({className:e,disabled:t})=>{let a=(0,l.useDispatch)(),s=(0,o.ix)(o.J1),d=(0,o.ix)(o.fN),p=Object.values(n.games).map(e=>({disabled:!(0,n.hasConfig)(e.game,d),label:e.name,value:e.game})),h=e=>{(0,r.isGame)(e.target.value)&&a(o.xj.actions.changeGame(e.target.value))};return i.jsx("div",{className:e,children:p.map(e=>i.jsx(c.Y8,{checked:s===e.value,className:u().option,disabled:t||e.disabled,name:"game",value:e.value,onChange:h,children:i.jsx("div",{className:u().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},8792:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(4094),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1125:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>p});var i=a(997),n=a(3291),r=a(9716),l=a(3940),c=a(1422),o=a.n(c),d=a(7491),u=e([n,r,l]);[n,r,l]=u.then?(await u)():u;let p=({className:e,disabled:t})=>{let a=(0,n.useDispatch)(),s=(0,l.qM)(),c=(0,l.ix)(l.Ub),u=[{label:s("settings.inputMode.keyboard"),value:"keyboard"},{label:s("settings.inputMode.touchscreen"),value:"touchscreen"}],p=e=>{let t=(0,d.H)(e.target.value);a(l.xj.actions.changeInputMode(t))};return i.jsx("div",{className:e,children:u.map(e=>i.jsx(r.Y8,{checked:c===e.value,className:o().option,disabled:t,name:"inputMode",value:e.value,onChange:p,children:i.jsx("div",{className:o().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},8724:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1125),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},7491:(e,t,a)=>{"use strict";a.d(t,{H:()=>s});let s=e=>{if("keyboard"===e)return"keyboard";if("touchscreen"===e)return"touchscreen";throw Error(`"${e}" is not valid. Should be "keyboard" or "touchscreen"`)}},6686:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>g});var i=a(997),n=a(9003),r=a.n(n),l=a(3291),c=a(9716),o=a(6303),d=a(3940),u=a(9267),p=a.n(u),h=e([l,c,d]);[l,c,d]=h.then?(await h)():h;let x=Object.values(o.q).sort((e,t)=>e.name.localeCompare(t.name)),g=({className:e,disabled:t})=>{let a=(0,l.useDispatch)(),s=(0,d.ix)(d.fN),n=e=>{let t=e.target.value;a(d.xj.actions.changeLocale(t))};return i.jsx("div",{className:e,children:x.map(({Icon:a,...l})=>i.jsx(c.Y8,{checked:s===l.locale,className:r()(p().option,e,{[p().checked]:s===l.locale}),disabled:t,name:"locale",value:l.locale,onChange:n,children:(0,i.jsxs)("span",{className:p().label,children:[i.jsx(a,{className:p().flag}),i.jsx("span",{children:l.label})]})},l.locale))})};s()}catch(e){s(e)}})},8580:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6686),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},4389:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(3291),r=a(9716),l=a(3940),c=a(6041),o=a.n(c),d=e([n,r,l]);[n,r,l]=d.then?(await d)():d;let u=({className:e,disabled:t})=>{let a=(0,n.useDispatch)(),s=(0,l.qM)(),c=(0,l.ix)(l.kX),d=[{label:s("settings.showCoordinates.hidden"),value:"hidden"},{label:s("settings.showCoordinates.original"),value:"original"},{label:s("settings.showCoordinates.alternative"),value:"alternative"}],u=e=>{let t=e.target.value;a(l.xj.actions.changeShowCoordinates(t))};return i.jsx("div",{className:e,children:d.map(e=>i.jsx(r.Y8,{checked:String(c)===e.value,className:o().option,disabled:t,name:"inputMode",value:e.value,onChange:u,children:i.jsx("div",{className:o().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},58:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(4389),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},6922:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{DG:()=>n.Z,P9:()=>c.Z,YR:()=>l.Z,gy:()=>i.Z,te:()=>r.Z});var i=a(4114),n=a(8792),r=a(8724),l=a(8580),c=a(58),o=e([i,n,r,l,c]);[i,n,r,l,c]=o.then?(await o)():o,s()}catch(e){s(e)}})},7289:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6311),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},2635:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>x});var i=a(997),n=a(9003),r=a.n(n),l=a(6689),c=a(9716),o=a(8853),d=a(3940),u=a(2551),p=a.n(u),h=e([c,d]);[c,d]=h.then?(await h)():h;let x=(0,l.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,d.qM)(),n=(0,d.ix)(d.fN),{invalidWords:l,validWords:u}=(0,d.ix)(d.HM);return(0,i.jsxs)(c.u_,{className:e,isOpen:t,title:s("words"),onClose:a,children:[i.jsx(c.u_.Section,{title:(0,i.jsxs)("span",{className:p().title,children:[i.jsx("span",{children:s("words.invalid")}),i.jsx(c.Ct,{className:p().badge,children:l.length.toLocaleString(n)})]}),children:l.map((e,t)=>(0,i.jsxs)("div",{className:p().word,children:[i.jsx(o.X1,{className:r()(p().icon,p().invalid)})," ",e]},t))}),i.jsx(c.u_.Section,{title:(0,i.jsxs)("span",{className:p().title,children:[i.jsx("span",{children:s("words.valid")}),i.jsx(c.Ct,{className:p().badge,children:u.length.toLocaleString(n)})]}),children:u.map((e,t)=>(0,i.jsxs)("div",{className:p().word,children:[i.jsx(o.Jr,{className:r()(p().icon,p().valid)})," ",e]},t))})]})});s()}catch(e){s(e)}})},6534:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(2635),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},8239:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{HN:()=>r.Z,QT:()=>i.Z,Rx:()=>d.Z,S9:()=>n.Z,TB:()=>o.Z,by:()=>l.Z,e_:()=>c.Z});var i=a(9543),n=a(4209),r=a(7051),l=a(1220),c=a(606),o=a(7289),d=a(6534),u=e([i,n,r,l,c,o,d]);[i,n,r,l,c,o,d]=u.then?(await u)():u,s()}catch(e){s(e)}})},4725:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>l});var s=a(997),i=a(331),n=a.n(i);class r extends n(){render(){return(0,s.jsxs)(i.Html,{lang:"en",children:[(0,s.jsxs)(i.Head,{children:[s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"57x57",href:"icons/apple-touch-icon-57x57.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"114x114",href:"icons/apple-touch-icon-114x114.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"72x72",href:"icons/apple-touch-icon-72x72.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"144x144",href:"icons/apple-touch-icon-144x144.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"60x60",href:"icons/apple-touch-icon-60x60.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"120x120",href:"icons/apple-touch-icon-120x120.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"76x76",href:"icons/apple-touch-icon-76x76.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"152x152",href:"icons/apple-touch-icon-152x152.png"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-196x196.png",sizes:"196x196"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-96x96.png",sizes:"96x96"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-32x32.png",sizes:"32x32"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-16x16.png",sizes:"16x16"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-128.png",sizes:"128x128"}),s.jsx("link",{rel:"icon",href:"icons/favicon.svg"}),s.jsx("meta",{name:"application-name",content:"Scrabble Solver"}),s.jsx("meta",{name:"msapplication-TileColor",content:"#EFE3AE"}),s.jsx("meta",{name:"msapplication-TileImage",content:"icons/mstile-144x144.png"}),s.jsx("meta",{name:"msapplication-square70x70logo",content:"icons/mstile-70x70.png"}),s.jsx("meta",{name:"msapplication-square150x150logo",content:"icons/mstile-150x150.png"}),s.jsx("meta",{name:"msapplication-wide310x150logo",content:"icons/mstile-310x150.png"}),s.jsx("meta",{name:"msapplication-square310x310logo",content:"icons/mstile-310x310.png"})]}),(0,s.jsxs)("body",{children:[s.jsx(i.Main,{}),s.jsx(i.NextScript,{})]})]})}}let l=r},2564:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.r(t),a.d(t,{default:()=>f,getStaticProps:()=>k});var i=a(997),n=a(7147),r=a.n(n),l=a(1017),c=a.n(l),o=a(6689),d=a(9931),u=a.n(d),p=a(3291),h=a(9716),x=a(3180),g=a(6303),m=a(8239),_=a(6994),j=a(3940),v=a(2200),b=a.n(v),y=e([p,h,x,m,j]);[p,h,x,m,j]=y.then?(await y)():y,u().setAppElement("#__next");let k=async()=>({props:{version:await S()}}),S=async()=>{let e=c().resolve(process.cwd(),"package.json"),t=await r().promises.readFile(e,"utf-8"),a=JSON.parse(t);return`v${a.version}`},f=({version:e})=>{let t=(0,p.useDispatch)(),a=(0,j.ix)(j.fN),[s,n]=(0,o.useState)(!1),[r,l]=(0,o.useState)(!1),[c,d]=(0,o.useState)(!1),[u,v]=(0,o.useState)(!1),[y,k]=(0,o.useState)(!1),[S,f]=(0,o.useState)(!1),[w,C]=(0,o.useState)(!1),[N,M]=(0,o.useState)(!1),Z=(0,o.useCallback)(()=>k(!0),[]),P=(0,o.useCallback)(()=>t((0,j.mc)()),[t]),q=(0,o.useCallback)(()=>n(!1),[]),z=(0,o.useCallback)(()=>l(!1),[]),I=(0,o.useCallback)(()=>d(!1),[]),T=(0,o.useCallback)(()=>v(!1),[]),E=(0,o.useCallback)(()=>k(!1),[]),O=(0,o.useCallback)(()=>f(!1),[]),R=(0,o.useCallback)(()=>C(!1),[]),L=(0,o.useCallback)(()=>n(!0),[]),A=(0,o.useCallback)(()=>l(!0),[]),G=(0,o.useCallback)(()=>d(!0),[]),H=(0,o.useCallback)(()=>v(!0),[]),D=(0,o.useCallback)(()=>f(!0),[]),Y=(0,o.useCallback)(()=>C(!0),[]);return((0,x.gm)(g.q[a].direction),(0,x.ZK)(a),(0,x._)(),(0,x.qR)(()=>{(0,_.$)(),M(!0),t((0,j.j2)())}),N)?(0,i.jsxs)(i.Fragment,{children:[i.jsx("nav",{className:b().nav,children:(0,i.jsxs)("div",{className:b().navContent,children:[i.jsx("div",{className:b().navLogo,children:i.jsx("a",{className:b().logoContainer,href:"/",title:e,children:i.jsx(h.TR,{className:b().logo})})}),i.jsx(h._m,{onClear:P,onShowKeyMap:A,onShowMenu:G,onShowRemainingTiles:H,onShowSettings:D,onShowWords:Y})]})}),i.jsx(h.ME,{className:b().solver,onShowResults:Z}),i.jsx(m.HN,{isOpen:c,onClose:I,onShowDictionary:L,onShowRemainingTiles:H,onShowSettings:D,onShowWords:Y}),i.jsx(m.TB,{isOpen:S,onClose:O}),i.jsx(m.S9,{isOpen:r,onClose:z}),i.jsx(m.Rx,{isOpen:w,onClose:R}),i.jsx(m.by,{isOpen:u,onClose:T}),i.jsx(m.e_,{isOpen:y,onClose:E}),i.jsx(m.QT,{isOpen:s,onClose:q})]}):null};s()}catch(e){s(e)}})},6994:(e,t,a)=>{"use strict";a.d(t,{$:()=>i});let s=require("workbox-window"),i=()=>{globalThis.navigator&&"serviceWorker"in globalThis.navigator&&new s.Workbox("/service-worker.js").register({immediate:!0})}},4591:(e,t)=>{"use strict";var a;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return a}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(a||(a={}))},9003:e=>{"use strict";e.exports=require("classnames")},9744:e=>{"use strict";e.exports=require("include-media-query-builder")},2785:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},968:e=>{"use strict";e.exports=require("next/head")},6689:e=>{"use strict";e.exports=require("react")},4620:e=>{"use strict";e.exports=require("react-cool-onclickoutside")},6405:e=>{"use strict";e.exports=require("react-dom")},7849:e=>{"use strict";e.exports=require("react-dom/client")},8684:e=>{"use strict";e.exports=require("react-dom/server")},1848:e=>{"use strict";e.exports=require("react-highlight-words")},9931:e=>{"use strict";e.exports=require("react-modal")},3938:e=>{"use strict";e.exports=require("react-portal")},551:e=>{"use strict";e.exports=require("react-window")},997:e=>{"use strict";e.exports=require("react/jsx-runtime")},6477:e=>{"use strict";e.exports=require("redux-saga/effects")},3453:e=>{"use strict";e.exports=require("store2")},1964:e=>{"use strict";e.exports=import("@floating-ui/react")},3258:e=>{"use strict";e.exports=import("@reduxjs/toolkit")},3291:e=>{"use strict";e.exports=import("react-redux")},5998:e=>{"use strict";e.exports=import("redux-saga")},7147:e=>{"use strict";e.exports=require("fs")},1017:e=>{"use strict";e.exports=require("path")}};var t=require("../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),s=t.X(0,[331,577,807],()=>a(1540));module.exports=s})();
1
+ (()=>{var e={};e.id=405,e.ids=[405,660],e.modules={6021:(e,t)=>{"use strict";Object.defineProperty(t,"l",{enumerable:!0,get:function(){return function e(t,a){return a in t?t[a]:"then"in t&&"function"==typeof t.then?t.then(t=>e(t,a)):"function"==typeof t&&"default"===a?t:void 0}}})},6130:e=>{e.exports={content:"DictionaryModal_content___jXD2",dictionary:"DictionaryModal_dictionary__Eu9Sx",dictionaryInput:"DictionaryModal_dictionaryInput__CKiX5"}},1069:e=>{e.exports={mapping:"Mapping_mapping__Ua6wj",description:"Mapping_description__nSNia",keys:"Mapping_keys__KmIcZ",group:"Mapping_group__MlkmV",slash:"Mapping_slash__hulS4",plus:"Mapping_plus__KE_ml"}},763:e=>{e.exports={button:"MenuModal_button__x3zTR",settings:"MenuModal_settings__XE_P3",settingsLabel:"MenuModal_settingsLabel__xYRLv",flag:"MenuModal_flag__NGaHf"}},3127:e=>{e.exports={title:"RemainingTilesModal_title__4rcbk",content:"RemainingTilesModal_content__NrmXd",badge:"RemainingTilesModal_badge__vZkrc",character:"RemainingTilesModal_character__16pGR"}},385:e=>{e.exports={character:"Character_character__Xry5W",finished:"Character_finished__Ee5Eu",overused:"Character_overused__WV6tJ",tile:"Character_tile__Ledy0",remaining:"Character_remaining__DFxBl",count:"Character_count__Bl6_O"}},1233:e=>{e.exports={content:"ResultsModal_content__vzX7N",results:"ResultsModal_results__FDN3k",dictionary:"ResultsModal_dictionary__o3cpd"}},7451:e=>{e.exports={option:"AutoGroupTilesSetting_option__dp8CH",label:"AutoGroupTilesSetting_label__MIKlN"}},573:e=>{e.exports={option:"ConfigSetting_option__pvmMK",label:"ConfigSetting_label__CeZI1"}},1422:e=>{e.exports={option:"InputModeSetting_option__9tdaY",label:"InputModeSetting_label__al6kL"}},9267:e=>{e.exports={option:"LocaleSetting_option__3uVpq",label:"LocaleSetting_label__VqJH9",flag:"LocaleSetting_flag__cnMgQ"}},6041:e=>{e.exports={option:"ShowCoordinatesSetting_option__teifi",label:"ShowCoordinatesSetting_label__h0REI"}},2551:e=>{e.exports={title:"WordsModal_title__UGHtI",badge:"WordsModal_badge__Ay_8V",word:"WordsModal_word__sCI06",invalid:"WordsModal_invalid__jgYeh",valid:"WordsModal_valid__JW5lM",icon:"WordsModal_icon___HWi4"}},2200:e=>{e.exports={nav:"index_nav__oayCy",navContent:"index_navContent__puCTa",navLogo:"index_navLogo__iI_za",logoContainer:"index_logoContainer__YyxQp",logo:"index_logo__jZUto",solver:"index_solver__wz8VS"}},1540:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.r(t),a.d(t,{config:()=>g,default:()=>u,getServerSideProps:()=>x,getStaticPaths:()=>h,getStaticProps:()=>p,reportWebVitals:()=>m,routeModule:()=>k,unstable_getServerProps:()=>b,unstable_getServerSideProps:()=>y,unstable_getStaticParams:()=>v,unstable_getStaticPaths:()=>j,unstable_getStaticProps:()=>_});var i=a(8877),n=a(4591),r=a(6021),l=a(4725),c=a(7807),o=a(2564),d=e([c,o]);[c,o]=d.then?(await d)():d;let u=(0,r.l)(o,"default"),p=(0,r.l)(o,"getStaticProps"),h=(0,r.l)(o,"getStaticPaths"),x=(0,r.l)(o,"getServerSideProps"),g=(0,r.l)(o,"config"),m=(0,r.l)(o,"reportWebVitals"),_=(0,r.l)(o,"unstable_getStaticProps"),j=(0,r.l)(o,"unstable_getStaticPaths"),v=(0,r.l)(o,"unstable_getStaticParams"),b=(0,r.l)(o,"unstable_getServerProps"),y=(0,r.l)(o,"unstable_getServerSideProps"),k=new i.PagesRouteModule({definition:{kind:n.x.PAGES,page:"/index",pathname:"/",bundlePath:"",filename:""},components:{App:c.default,Document:l.default},userland:o});s()}catch(e){s(e)}})},2862:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(6689),r=a(9716),l=a(3940),c=a(6130),o=a.n(c),d=e([r,l]);[r,l]=d.then?(await d)():d;let u=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,l.qM)();return i.jsx(r.u_,{className:e,isOpen:t,title:s("dictionary"),onClose:a,children:(0,i.jsxs)("div",{className:o().content,children:[i.jsx(r.Xy,{className:o().dictionary}),i.jsx(r.Z$,{className:o().dictionaryInput})]})})});s()}catch(e){s(e)}})},9543:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(2862),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1282:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(6689),r=a(9716),l=a(3940),c=a(9131),o=a(7430),d=e([r,l,o]);[r,l,o]=d.then?(await d)():d;let u=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,l.qM)(),n=(0,l.ix)(l.$o);return(0,i.jsxs)(r.u_,{className:e,isOpen:t,title:s("keyMap"),onClose:a,children:[(0,i.jsxs)(r.u_.Section,{title:s("keyMap.board-and-rack"),children:[i.jsx(c.v,{description:s("keyMap.board-and-rack.navigate"),mapping:[o.JY]}),i.jsx(c.v,{description:s("keyMap.board-and-rack.remove-tile"),mapping:[o.fU,o.ZH]}),i.jsx(c.v,{description:s("keyMap.board-and-rack.submit"),mapping:[o.K5]}),n.twoCharacterTiles.length>0&&i.jsx(c.v,{description:s("keyMap.board-and-rack.insert-two-letter-tile"),mapping:[[o.HF,i.jsx(i.Fragment,{children:n.twoCharacterTiles.map(([e])=>i.jsx(r.sr,{children:e.toUpperCase()},e))})]]})]}),(0,i.jsxs)(r.u_.Section,{title:s("keyMap.board"),children:[i.jsx(c.v,{description:s("keyMap.board.toggle-blank"),mapping:[o.L_,[o.HF,i.jsx(r.sr,{children:"B"},"b")]]}),i.jsx(c.v,{description:s("keyMap.board.toggle-direction"),mapping:[o.JY]})]}),i.jsx(r.u_.Section,{title:s("keyMap.rack"),children:i.jsx(c.v,{description:s("keyMap.rack.insert-blank"),mapping:[o.L_]})})]})});s()}catch(e){s(e)}})},9131:(e,t,a)=>{"use strict";a.d(t,{v:()=>o});var s=a(997),i=a(9003),n=a.n(i),r=a(6689),l=a(1069),c=a.n(l);let o=({className:e,description:t,mapping:a})=>(0,s.jsxs)("div",{className:n()(c().mapping,e),children:[s.jsx("h3",{className:c().description,children:t}),s.jsx("div",{className:c().keys,children:a.map((e,t)=>(0,s.jsxs)(r.Fragment,{children:[s.jsx("div",{className:c().group,children:Array.isArray(e)?(0,s.jsxs)(s.Fragment,{children:[e[0],s.jsx("span",{className:c().plus,children:"+"}),e[1]]}):e}),a.length>1&&t<a.length-1&&s.jsx("span",{className:c().slash,children:"/"})]},t))})]})},4209:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1282),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},7430:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{HF:()=>x,JY:()=>_,K5:()=>m,L_:()=>j,ZH:()=>h,fU:()=>g});var i=a(997),n=a(9716),r=a(7098),l=a(5878),c=e([n]);n=(c.then?(await c)():c)[0];let o=i.jsx(n.sr,{children:i.jsx(r.Xd,{})}),d=i.jsx(n.sr,{children:i.jsx(r.a2,{})}),u=i.jsx(n.sr,{children:i.jsx(r.ol,{})}),p=i.jsx(n.sr,{children:i.jsx(r.K5,{})}),h=i.jsx(n.sr,{children:"← Backspace"}),x=i.jsx(n.sr,{children:(0,l.V5)()?"⌘":"Ctrl"}),g=i.jsx(n.sr,{children:"Del"}),m=i.jsx(n.sr,{children:"Enter ⏎"}),_=(0,i.jsxs)(i.Fragment,{children:[o,d,u,p]}),j=i.jsx(n.sr,{children:"␣"});s()}catch(e){s(e)}})},6335:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>x});var i=a(997),n=a(6689),r=a(9716),l=a(6303),c=a(7098),o=a(5280),d=a(3940),u=a(763),p=a.n(u),h=e([r,d]);[r,d]=h.then?(await h)():h;let x=(0,n.memo)(({className:e,isOpen:t,onClose:a,onShowDictionary:s,onShowRemainingTiles:n,onShowSettings:u,onShowWords:h})=>{let x=(0,d.qM)(),g=(0,d.ix)(d.fN),{Icon:m}=l.q[g];return(0,i.jsxs)(r.u_,{className:e,isOpen:t,title:x("menu"),onClose:a,children:[i.jsx(r.zx,{"aria-label":x("remaining-tiles"),className:p().button,Icon:c.xy,onClick:n,children:x("remaining-tiles")}),i.jsx(r.zx,{"aria-label":x("words"),className:p().button,Icon:c.Kz,onClick:h,children:x("words")}),i.jsx(r.zx,{"aria-label":x("dictionary"),className:p().button,Icon:c.PP,onClick:s,children:x("dictionary")}),i.jsx(r.zx.Link,{"aria-label":x("github"),className:p().button,href:o.h4,Icon:c.Ey,rel:"noopener noreferrer",target:"_blank",children:x("github")}),i.jsx(r.zx,{"aria-label":x("settings"),className:p().button,Icon:c.Oz,onClick:u,children:(0,i.jsxs)("div",{className:p().settings,children:[i.jsx("div",{className:p().settingsLabel,children:x("settings")}),i.jsx(m,{className:p().flag})]})})]})});s()}catch(e){s(e)}})},7051:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6335),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1300:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>g});var i=a(997),n=a(6689),r=a(9716),l=a(6303),c=a(5878),o=a(5280),d=a(3940),u=a(5698),p=a(3127),h=a.n(p),x=e([r,d,u]);[r,d,u]=x.then?(await x)():x;let g=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,d.qM)(),n=(0,d.ix)(d.fN),p=(0,d.ix)(d.Yj),{tileFontSize:x}=(0,c.vc)(o.mM),{direction:g}=l.q[n];return i.jsx(r.u_,{className:e,isOpen:t,title:s("remaining-tiles"),onClose:a,children:p.map(({remainingCount:e,tiles:t,translationKey:a,totalCount:l})=>i.jsx(r.u_.Section,{title:(0,i.jsxs)("span",{className:h().title,children:[i.jsx("span",{children:s(a)}),(0,i.jsxs)(r.Ct,{className:h().badge,children:[("ltr"===g?e:l).toLocaleString(n)," / ",("ltr"===g?l:e).toLocaleString(n)]})]}),children:i.jsx("div",{className:h().content,style:{fontSize:x},children:t.map(e=>i.jsx("div",{className:h().character,children:i.jsx(u.z,{tile:e})},e.character))})},a))})});s()}catch(e){s(e)}})},8094:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>g});var i=a(997),n=a(7618),r=a(9003),l=a.n(r),c=a(9716),o=a(6303),d=a(5280),u=a(3940),p=a(385),h=a.n(p),x=e([c,u]);[c,u]=x.then?(await x)():x;let g=({tile:e})=>{let t=(0,u.ix)(u.fN),{direction:a}=o.q[t],{character:s,count:r,usedCount:p}=e,x=r-p,g=(0,u.ix)(e=>(0,u.Or)(e,s)),m="ltr"===a?x:r,_="ltr"===a?r:x;return(0,i.jsxs)("div",{className:l()(h().character,{[h().finished]:x<=0,[h().overused]:x<0}),children:[i.jsx(c.n9,{"aria-label":s,character:s,className:h().tile,disabled:!0,isBlank:s===n.BLANK,isValid:x>=0,points:g,raised:!0,size:d.mM}),i.jsx(c.Ex,{className:h().remaining,max:r,style:{width:d.mM},value:x}),(0,i.jsxs)("div",{className:h().count,children:[m.toLocaleString(t)," / ",_.toLocaleString(t)]})]})};s()}catch(e){s(e)}})},4950:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(8094),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},5698:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{z:()=>i.Z});var i=a(4950),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1220:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1300),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1867:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>x});var i=a(997),n=a(6689),r=a(3291),l=a(9716),c=a(3180),o=a(7098),d=a(3940),u=a(1233),p=a.n(u),h=e([r,l,c,d]);[r,l,c,d]=h.then?(await h)():h;let x=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,r.useDispatch)(),u=(0,d.qM)(),{showResultsInModal:h}=(0,c.Ft)(),x=(0,d.ix)(d.x5),g=(0,d.ix)(d.Xk),m=x?x.findIndex(e=>e.id===g?.id):-1,_=(0,n.useMemo)(()=>({onClick:e=>{e===g?a():s(d._C.actions.changeResultCandidate(e))}}),[s,a,g]);return(0,n.useEffect)(()=>{t&&!h&&a()},[t,a,h]),i.jsx(l.u_,{className:e,footer:(0,i.jsxs)(i.Fragment,{children:[i.jsx(l.zx,{"aria-label":u("results.insert"),disabled:!g,Icon:o.Jr,tooltip:u("results.insert"),variant:"primary",onClick:()=>{g&&s(d._C.actions.applyResult(g)),a()},children:u("results.insert")}),i.jsx(l.zx,{"aria-label":u("results.preview"),disabled:!g,Icon:o.YO,tooltip:u("results.preview"),onClick:()=>{a()},children:u("results.preview")})]}),isOpen:t,title:u("results"),onClose:a,children:(0,i.jsxs)("div",{className:p().content,children:[i.jsx(l.u9,{callbacks:_,className:p().results,highlightedIndex:-1===m?void 0:m}),i.jsx(l.Xy,{className:p().dictionary})]})})});s()}catch(e){s(e)}})},606:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1867),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},6311:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(6689),r=a(9716),l=a(3180),c=a(3940),o=a(6922),d=e([r,l,c,o]);[r,l,c,o]=d.then?(await d)():d;let u=(0,n.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,c.qM)(),n=(0,l.YQ)();return(0,i.jsxs)(r.u_,{className:e,isOpen:t,title:s("settings"),onClose:a,children:[i.jsx(r.u_.Section,{title:s("settings.game"),children:i.jsx(o.DG,{disabled:!t})}),i.jsx(r.u_.Section,{title:s("settings.language"),children:i.jsx(o.YR,{disabled:!t})}),i.jsx(r.u_.Section,{title:s("settings.showCoordinates"),children:i.jsx(o.P9,{disabled:!t})}),!n&&i.jsx(r.u_.Section,{title:s("settings.inputMode"),children:i.jsx(o.te,{disabled:!t})}),i.jsx(r.u_.Section,{title:s("settings.autoGroupTiles"),children:i.jsx(o.gy,{disabled:!t})})]})});s()}catch(e){s(e)}})},6637:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>h});var i=a(997),n=a(3291),r=a(9716),l=a(3940),c=a(7451),o=a.n(c),d=a(4110),u=a(6599),p=e([n,r,l]);[n,r,l]=p.then?(await p)():p;let h=({className:e,disabled:t})=>{let a=(0,n.useDispatch)(),s=(0,l.qM)(),c=(0,l.ix)(l.uz),p=[{label:s("settings.autoGroupTiles.left"),value:"left"},{label:s("settings.autoGroupTiles.right"),value:"right"},{label:s("settings.autoGroupTiles.null"),value:d.I}],h=e=>{let t=(0,u.H)(e.target.value);a(l.xj.actions.changeAutoGroupTiles(t))};return i.jsx("div",{className:e,children:p.map(e=>i.jsx(r.Y8,{checked:c===(0,u.H)(e.value),className:o().option,disabled:t,name:"autoGroupTiles",value:e.value,onChange:h,children:i.jsx("div",{className:o().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},4110:(e,t,a)=>{"use strict";a.d(t,{I:()=>s});let s="null"},4114:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6637),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},6599:(e,t,a)=>{"use strict";a.d(t,{H:()=>i});var s=a(4110);let i=e=>{if("left"===e||"right"===e)return e;if(e===s.I)return null;throw Error(`"${e}" is not valid. Should be "left", "right", or "${s.I}"`)}},4094:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>h});var i=a(997),n=a(9418),r=a(4046),l=a(3291),c=a(9716),o=a(3940),d=a(573),u=a.n(d),p=e([l,c,o]);[l,c,o]=p.then?(await p)():p;let h=({className:e,disabled:t})=>{let a=(0,l.useDispatch)(),s=(0,o.ix)(o.J1),d=(0,o.ix)(o.fN),p=Object.values(n.games).map(e=>({disabled:!(0,n.hasConfig)(e.game,d),label:e.name,value:e.game})),h=e=>{(0,r.isGame)(e.target.value)&&a(o.xj.actions.changeGame(e.target.value))};return i.jsx("div",{className:e,children:p.map(e=>i.jsx(c.Y8,{checked:s===e.value,className:u().option,disabled:t||e.disabled,name:"game",value:e.value,onChange:h,children:i.jsx("div",{className:u().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},8792:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(4094),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},1125:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>p});var i=a(997),n=a(3291),r=a(9716),l=a(3940),c=a(1422),o=a.n(c),d=a(7491),u=e([n,r,l]);[n,r,l]=u.then?(await u)():u;let p=({className:e,disabled:t})=>{let a=(0,n.useDispatch)(),s=(0,l.qM)(),c=(0,l.ix)(l.Ub),u=[{label:s("settings.inputMode.keyboard"),value:"keyboard"},{label:s("settings.inputMode.touchscreen"),value:"touchscreen"}],p=e=>{let t=(0,d.H)(e.target.value);a(l.xj.actions.changeInputMode(t))};return i.jsx("div",{className:e,children:u.map(e=>i.jsx(r.Y8,{checked:c===e.value,className:o().option,disabled:t,name:"inputMode",value:e.value,onChange:p,children:i.jsx("div",{className:o().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},8724:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(1125),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},7491:(e,t,a)=>{"use strict";a.d(t,{H:()=>s});let s=e=>{if("keyboard"===e)return"keyboard";if("touchscreen"===e)return"touchscreen";throw Error(`"${e}" is not valid. Should be "keyboard" or "touchscreen"`)}},6686:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>g});var i=a(997),n=a(9003),r=a.n(n),l=a(3291),c=a(9716),o=a(6303),d=a(3940),u=a(9267),p=a.n(u),h=e([l,c,d]);[l,c,d]=h.then?(await h)():h;let x=Object.values(o.q).sort((e,t)=>e.name.localeCompare(t.name)),g=({className:e,disabled:t})=>{let a=(0,l.useDispatch)(),s=(0,d.ix)(d.fN),n=e=>{let t=e.target.value;a(d.xj.actions.changeLocale(t))};return i.jsx("div",{className:e,children:x.map(({Icon:a,...l})=>i.jsx(c.Y8,{checked:s===l.locale,className:r()(p().option,e,{[p().checked]:s===l.locale}),disabled:t,name:"locale",value:l.locale,onChange:n,children:(0,i.jsxs)("span",{className:p().label,children:[i.jsx(a,{className:p().flag}),i.jsx("span",{children:l.label})]})},l.locale))})};s()}catch(e){s(e)}})},8580:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6686),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},4389:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>u});var i=a(997),n=a(3291),r=a(9716),l=a(3940),c=a(6041),o=a.n(c),d=e([n,r,l]);[n,r,l]=d.then?(await d)():d;let u=({className:e,disabled:t})=>{let a=(0,n.useDispatch)(),s=(0,l.qM)(),c=(0,l.ix)(l.kX),d=[{label:s("settings.showCoordinates.hidden"),value:"hidden"},{label:s("settings.showCoordinates.original"),value:"original"},{label:s("settings.showCoordinates.alternative"),value:"alternative"}],u=e=>{let t=e.target.value;a(l.xj.actions.changeShowCoordinates(t))};return i.jsx("div",{className:e,children:d.map(e=>i.jsx(r.Y8,{checked:String(c)===e.value,className:o().option,disabled:t,name:"inputMode",value:e.value,onChange:u,children:i.jsx("div",{className:o().label,children:e.label})},e.value))})};s()}catch(e){s(e)}})},58:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(4389),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},6922:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{DG:()=>n.Z,P9:()=>c.Z,YR:()=>l.Z,gy:()=>i.Z,te:()=>r.Z});var i=a(4114),n=a(8792),r=a(8724),l=a(8580),c=a(58),o=e([i,n,r,l,c]);[i,n,r,l,c]=o.then?(await o)():o,s()}catch(e){s(e)}})},7289:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(6311),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},2635:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>x});var i=a(997),n=a(9003),r=a.n(n),l=a(6689),c=a(9716),o=a(7098),d=a(3940),u=a(2551),p=a.n(u),h=e([c,d]);[c,d]=h.then?(await h)():h;let x=(0,l.memo)(({className:e,isOpen:t,onClose:a})=>{let s=(0,d.qM)(),n=(0,d.ix)(d.fN),{invalidWords:l,validWords:u}=(0,d.ix)(d.HM);return(0,i.jsxs)(c.u_,{className:e,isOpen:t,title:s("words"),onClose:a,children:[i.jsx(c.u_.Section,{title:(0,i.jsxs)("span",{className:p().title,children:[i.jsx("span",{children:s("words.invalid")}),i.jsx(c.Ct,{className:p().badge,children:l.length.toLocaleString(n)})]}),children:l.map((e,t)=>(0,i.jsxs)("div",{className:p().word,children:[i.jsx(o.X1,{className:r()(p().icon,p().invalid)})," ",e]},t))}),i.jsx(c.u_.Section,{title:(0,i.jsxs)("span",{className:p().title,children:[i.jsx("span",{children:s("words.valid")}),i.jsx(c.Ct,{className:p().badge,children:u.length.toLocaleString(n)})]}),children:u.map((e,t)=>(0,i.jsxs)("div",{className:p().word,children:[i.jsx(o.Jr,{className:r()(p().icon,p().valid)})," ",e]},t))})]})});s()}catch(e){s(e)}})},6534:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{Z:()=>i.Z});var i=a(2635),n=e([i]);i=(n.then?(await n)():n)[0],s()}catch(e){s(e)}})},8239:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.d(t,{HN:()=>r.Z,QT:()=>i.Z,Rx:()=>d.Z,S9:()=>n.Z,TB:()=>o.Z,by:()=>l.Z,e_:()=>c.Z});var i=a(9543),n=a(4209),r=a(7051),l=a(1220),c=a(606),o=a(7289),d=a(6534),u=e([i,n,r,l,c,o,d]);[i,n,r,l,c,o,d]=u.then?(await u)():u,s()}catch(e){s(e)}})},4725:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>l});var s=a(997),i=a(331),n=a.n(i);class r extends n(){render(){return(0,s.jsxs)(i.Html,{lang:"en",children:[(0,s.jsxs)(i.Head,{children:[s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"57x57",href:"icons/apple-touch-icon-57x57.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"114x114",href:"icons/apple-touch-icon-114x114.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"72x72",href:"icons/apple-touch-icon-72x72.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"144x144",href:"icons/apple-touch-icon-144x144.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"60x60",href:"icons/apple-touch-icon-60x60.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"120x120",href:"icons/apple-touch-icon-120x120.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"76x76",href:"icons/apple-touch-icon-76x76.png"}),s.jsx("link",{rel:"apple-touch-icon-precomposed",sizes:"152x152",href:"icons/apple-touch-icon-152x152.png"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-196x196.png",sizes:"196x196"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-96x96.png",sizes:"96x96"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-32x32.png",sizes:"32x32"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-16x16.png",sizes:"16x16"}),s.jsx("link",{rel:"icon",type:"image/png",href:"icons/favicon-128.png",sizes:"128x128"}),s.jsx("link",{rel:"icon",href:"icons/favicon.svg"}),s.jsx("meta",{name:"application-name",content:"Scrabble Solver"}),s.jsx("meta",{name:"msapplication-TileColor",content:"#EFE3AE"}),s.jsx("meta",{name:"msapplication-TileImage",content:"icons/mstile-144x144.png"}),s.jsx("meta",{name:"msapplication-square70x70logo",content:"icons/mstile-70x70.png"}),s.jsx("meta",{name:"msapplication-square150x150logo",content:"icons/mstile-150x150.png"}),s.jsx("meta",{name:"msapplication-wide310x150logo",content:"icons/mstile-310x150.png"}),s.jsx("meta",{name:"msapplication-square310x310logo",content:"icons/mstile-310x310.png"})]}),(0,s.jsxs)("body",{children:[s.jsx(i.Main,{}),s.jsx(i.NextScript,{})]})]})}}let l=r},2564:(e,t,a)=>{"use strict";a.a(e,async(e,s)=>{try{a.r(t),a.d(t,{default:()=>f,getStaticProps:()=>k});var i=a(997),n=a(7147),r=a.n(n),l=a(1017),c=a.n(l),o=a(6689),d=a(9931),u=a.n(d),p=a(3291),h=a(9716),x=a(3180),g=a(6303),m=a(8239),_=a(6994),j=a(3940),v=a(2200),b=a.n(v),y=e([p,h,x,m,j]);[p,h,x,m,j]=y.then?(await y)():y,u().setAppElement("#__next");let k=async()=>({props:{version:await S()}}),S=async()=>{let e=c().resolve(process.cwd(),"package.json"),t=await r().promises.readFile(e,"utf-8"),a=JSON.parse(t);return`v${a.version}`},f=({version:e})=>{let t=(0,p.useDispatch)(),a=(0,j.ix)(j.fN),[s,n]=(0,o.useState)(!1),[r,l]=(0,o.useState)(!1),[c,d]=(0,o.useState)(!1),[u,v]=(0,o.useState)(!1),[y,k]=(0,o.useState)(!1),[S,f]=(0,o.useState)(!1),[w,C]=(0,o.useState)(!1),[N,M]=(0,o.useState)(!1),Z=(0,o.useCallback)(()=>k(!0),[]),P=(0,o.useCallback)(()=>t((0,j.mc)()),[t]),q=(0,o.useCallback)(()=>n(!1),[]),z=(0,o.useCallback)(()=>l(!1),[]),I=(0,o.useCallback)(()=>d(!1),[]),T=(0,o.useCallback)(()=>v(!1),[]),E=(0,o.useCallback)(()=>k(!1),[]),O=(0,o.useCallback)(()=>f(!1),[]),R=(0,o.useCallback)(()=>C(!1),[]),L=(0,o.useCallback)(()=>n(!0),[]),A=(0,o.useCallback)(()=>l(!0),[]),G=(0,o.useCallback)(()=>d(!0),[]),H=(0,o.useCallback)(()=>v(!0),[]),D=(0,o.useCallback)(()=>f(!0),[]),Y=(0,o.useCallback)(()=>C(!0),[]);return((0,x.gm)(g.q[a].direction),(0,x.ZK)(a),(0,x._)(),(0,x.qR)(()=>{(0,_.$)(),M(!0),t((0,j.j2)())}),N)?(0,i.jsxs)(i.Fragment,{children:[i.jsx("nav",{className:b().nav,children:(0,i.jsxs)("div",{className:b().navContent,children:[i.jsx("div",{className:b().navLogo,children:i.jsx("a",{className:b().logoContainer,href:"/",title:e,children:i.jsx(h.TR,{className:b().logo})})}),i.jsx(h._m,{onClear:P,onShowKeyMap:A,onShowMenu:G,onShowRemainingTiles:H,onShowSettings:D,onShowWords:Y})]})}),i.jsx(h.ME,{className:b().solver,onShowResults:Z}),i.jsx(m.HN,{isOpen:c,onClose:I,onShowDictionary:L,onShowRemainingTiles:H,onShowSettings:D,onShowWords:Y}),i.jsx(m.TB,{isOpen:S,onClose:O}),i.jsx(m.S9,{isOpen:r,onClose:z}),i.jsx(m.Rx,{isOpen:w,onClose:R}),i.jsx(m.by,{isOpen:u,onClose:T}),i.jsx(m.e_,{isOpen:y,onClose:E}),i.jsx(m.QT,{isOpen:s,onClose:q})]}):null};s()}catch(e){s(e)}})},6994:(e,t,a)=>{"use strict";a.d(t,{$:()=>i});let s=require("workbox-window"),i=()=>{globalThis.navigator&&"serviceWorker"in globalThis.navigator&&new s.Workbox("/service-worker.js").register({immediate:!0})}},4591:(e,t)=>{"use strict";var a;Object.defineProperty(t,"x",{enumerable:!0,get:function(){return a}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(a||(a={}))},9003:e=>{"use strict";e.exports=require("classnames")},9744:e=>{"use strict";e.exports=require("include-media-query-builder")},2785:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},968:e=>{"use strict";e.exports=require("next/head")},6689:e=>{"use strict";e.exports=require("react")},4620:e=>{"use strict";e.exports=require("react-cool-onclickoutside")},6405:e=>{"use strict";e.exports=require("react-dom")},8684:e=>{"use strict";e.exports=require("react-dom/server")},1848:e=>{"use strict";e.exports=require("react-highlight-words")},9931:e=>{"use strict";e.exports=require("react-modal")},551:e=>{"use strict";e.exports=require("react-window")},997:e=>{"use strict";e.exports=require("react/jsx-runtime")},6477:e=>{"use strict";e.exports=require("redux-saga/effects")},3453:e=>{"use strict";e.exports=require("store2")},1964:e=>{"use strict";e.exports=import("@floating-ui/react")},3258:e=>{"use strict";e.exports=import("@reduxjs/toolkit")},3291:e=>{"use strict";e.exports=import("react-redux")},5998:e=>{"use strict";e.exports=import("redux-saga")},7147:e=>{"use strict";e.exports=require("fs")},1017:e=>{"use strict";e.exports=require("path")}};var t=require("../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),s=t.X(0,[331,577,807],()=>a(1540));module.exports=s})();
@@ -1 +1 @@
1
- {"pageProps":{"version":"v2.13.5"},"__N_SSG":true}
1
+ {"pageProps":{"version":"v2.13.7"},"__N_SSG":true}