@scrabble-solver/scrabble-solver 2.13.2 → 2.13.3

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 (87) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +16 -16
  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/next-minimal-server.js.nft.json +1 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.js +1 -0
  14. package/.next/prerender-manifest.json +1 -1
  15. package/.next/required-server-files.json +1 -1
  16. package/.next/routes-manifest.json +1 -1
  17. package/.next/server/InjectManifest.js.nft.json +1 -1
  18. package/.next/server/chunks/28.js +1 -0
  19. package/.next/server/chunks/331.js +6 -0
  20. package/.next/server/chunks/577.js +1 -0
  21. package/.next/server/chunks/911.js +1 -1083
  22. package/.next/server/chunks/977.js +1 -0
  23. package/.next/server/functions-config-manifest.json +1 -0
  24. package/.next/server/middleware-build-manifest.js +1 -1
  25. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  26. package/.next/server/next-font-manifest.js +1 -1
  27. package/.next/server/next-font-manifest.json +1 -6
  28. package/.next/server/pages/404.html +1 -1
  29. package/.next/server/pages/404.js.nft.json +1 -1
  30. package/.next/server/pages/500.html +1 -1
  31. package/.next/server/pages/_app.js +1 -380
  32. package/.next/server/pages/_app.js.nft.json +1 -1
  33. package/.next/server/pages/_document.js +1 -212
  34. package/.next/server/pages/_document.js.nft.json +1 -1
  35. package/.next/server/pages/_error.js +1 -166
  36. package/.next/server/pages/_error.js.nft.json +1 -1
  37. package/.next/server/pages/api/dictionary/[locale]/[word].js +2 -836
  38. package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  39. package/.next/server/pages/api/dictionary/[locale].js +1 -192
  40. package/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  41. package/.next/server/pages/api/solve.js +1 -1121
  42. package/.next/server/pages/api/solve.js.nft.json +1 -1
  43. package/.next/server/pages/api/verify.js +1 -213
  44. package/.next/server/pages/api/verify.js.nft.json +1 -1
  45. package/.next/server/pages/api/visit.js +1 -131
  46. package/.next/server/pages/api/visit.js.nft.json +1 -1
  47. package/.next/server/pages/index.html +1 -1
  48. package/.next/server/pages/index.js +1 -2088
  49. package/.next/server/pages/index.js.nft.json +1 -1
  50. package/.next/server/pages/index.json +1 -1
  51. package/.next/server/pages-manifest.json +1 -12
  52. package/.next/server/webpack-api-runtime.js +1 -172
  53. package/.next/server/webpack-runtime.js +1 -229
  54. package/.next/static/chunks/framework-1728d40275bc359a.js +49 -0
  55. package/.next/static/chunks/main-5fb7abbfc135de15.js +1 -0
  56. package/.next/static/chunks/pages/404-b6e238bb4117d451.js +1 -0
  57. package/.next/static/chunks/pages/_app-b95404c40a0092e6.js +17 -0
  58. package/.next/static/chunks/pages/_error-db043fa3544f8809.js +1 -0
  59. package/.next/static/chunks/pages/index-59d569ef79bc2580.js +1 -0
  60. package/.next/static/css/8fa2fb99b90e109e.css +1 -0
  61. package/.next/static/css/c80ebc6fd13311f1.css +2 -0
  62. package/.next/static/r00VHxlMI-jbGWpg3nm2M/_buildManifest.js +1 -0
  63. package/.next/trace +44 -51
  64. package/package.json +31 -32
  65. package/src/state/slices/boardSlice.ts +4 -4
  66. package/src/state/store.ts +1 -1
  67. package/.next/cache/next-server.js.nft.json +0 -1
  68. package/.next/server/chunks/210.js +0 -109
  69. package/.next/server/chunks/277.js +0 -11942
  70. package/.next/server/chunks/44.js +0 -1838
  71. package/.next/server/chunks/50.js +0 -12119
  72. package/.next/server/chunks/636.js +0 -286
  73. package/.next/server/chunks/675.js +0 -572
  74. package/.next/server/chunks/859.js +0 -835
  75. package/.next/server/chunks/865.js +0 -20424
  76. package/.next/server/chunks/907.js +0 -42530
  77. package/.next/server/chunks/987.js +0 -91
  78. package/.next/static/16S6EJJ0_LRmtRPwnUIw5/_buildManifest.js +0 -1
  79. package/.next/static/chunks/framework-2c29dc3cd933590b.js +0 -49
  80. package/.next/static/chunks/main-4dcb7f9b52833aba.js +0 -1
  81. package/.next/static/chunks/pages/404-b4b5ce15153d4825.js +0 -1
  82. package/.next/static/chunks/pages/_app-122dc8ecfa0220d5.js +0 -32
  83. package/.next/static/chunks/pages/_error-54de1933a164a1ff.js +0 -1
  84. package/.next/static/chunks/pages/index-f56eaa969a831c70.js +0 -1
  85. package/.next/static/css/4e8b47fe382a8a8f.css +0 -2
  86. package/.next/static/css/cfae5256f1689f57.css +0 -1
  87. /package/.next/static/{16S6EJJ0_LRmtRPwnUIw5 → r00VHxlMI-jbGWpg3nm2M}/_ssgManifest.js +0 -0
@@ -0,0 +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("")},5374: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),l=i(r(7147)),s=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(){l.default.rmdirSync(s.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}),l.default.mkdirSync(s.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 l=o(r(5374));n(r(6137),t),t.dictionaries=new l.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)),l=r(5823),s=i(r(8638));class a{async get(e){if(!this.has(e))return;let t=(0,s.default)(e),r=await o.default.promises.readFile(t,"utf-8");return n.Trie.deserialize(r)}getLastModifiedTimestamp(e){let t=(0,s.default)(e);if(o.default.existsSync(t))return o.default.statSync(t).mtimeMs}has(e){let t=(0,s.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())>l.CACHE_STALE_THRESHOLD}async set(e,t){let r=(0,s.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)),l=i(r(192));class s{constructor(){this.layers=[new l.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=s},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)),l=r(1585),s=async e=>{o.default.info("downloadDictionary",{locale:e});let t=await (0,l.getWordList)(e);return o.default.info("downloadDictionary - success",{locale:e}),n.Trie.fromArray(t)};t.default=s},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 l=r(2812);Object.defineProperty(t,"DiskCache",{enumerable:!0,get:function(){return i(l).default}});var s=r(1281);Object.defineProperty(t,"downloadDictionary",{enumerable:!0,get:function(){return i(s).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),l=r(8793),s=(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(l.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new o.transports.File({filename:n.default.resolve(l.OUTPUT_DIRECTORY,"all.log")}),new o.transports.Console({format:o.format.combine(o.format.colorize(),o.format.simple()),level:"error"})]});t.default=s},3017: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)),l=i(r(580));class s{static create(e,t){return s.fromStringArray(Array(t).fill(Array(e).fill(" ").join("")))}static fromJson(e){return new s({rows:e.map(e=>e.map(o.default.fromJson))})}static fromStringArray(e){return new s({rows:e.map((e,t)=>e.split("").map((e,r)=>new o.default({isEmpty:!e||e===n.EMPTY_CELL,tile:e===n.EMPTY_CELL?l.default.Null:new l.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 s({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 s({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=s},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 l 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=l},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)),l=i(r(9667));class s{static fromJson(e){return new s(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 l.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=s},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 l=r.slice(t.y+1,i),s=[...o,t,...l];if(s.length>1){let t=new n.default(this.board,s);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 l{static fromJson(e){return new l({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=s(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 s=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=l},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 l=r.slice(t.x+1,i),s=[...o,t,...l];if(s.length>1){let t=new n.default(this.board,s);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 l extends o.default{constructor(){super(...arguments),this.type=n.BONUS_WORD}get value(){return{characterMultiplier:1,wordMultiplier:this.multiplier}}}t.default=l},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(3017);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 l=r(769);Object.defineProperty(t,"Bonus",{enumerable:!0,get:function(){return i(l).default}});var s=r(902);Object.defineProperty(t,"Cell",{enumerable:!0,get:function(){return i(s).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 b=r(2298);Object.defineProperty(t,"isTileJson",{enumerable:!0,get:function(){return b.isTileJson}});var g=r(6161);Object.defineProperty(t,"VerticalPattern",{enumerable:!0,get:function(){return i(g).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},1704:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!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.default=o},3284:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!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.default=o},163:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let i=r(6452),n=r(337),o=async()=>(0,n.getTxtWordList)("https://www.wordgamedictionary.com/twl06/download/twl06.txt",i.Locale.EN_US);t.default=o},7537: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(6452),o=i(r(1118)),l=r(337),s="---n---",a=async()=>(await (0,l.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/fise-2.txt",n.Locale.ES_ES)).map(e=>e.replaceAll("\xf1",s)).map(o.default).map(e=>e.replaceAll(s,"\xf1"));t.default=a},9596:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!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.default=o},7098:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!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.default=o},9385: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(8048),o=i(r(7147)),l=r(7310),s=r(337),a=async()=>{let e=(0,s.getTempFilepath)(),t=await u("https://sjp.pl/sl/growy/"),r=await (0,s.downloadFile)(t);await (0,s.unzip)(r,"slowa.txt",e),o.default.unlinkSync(r);let i=o.default.readFileSync(e,"utf-8");return o.default.unlinkSync(e),(0,s.extractWords)(i.toLocaleString(),"pl-PL")},u=async e=>{let t=await (0,s.downloadHtml)(e),r=await d(t),{href:i}=new l.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};t.default=a},3691:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!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.default=o},8769: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(6452),o=i(r(1704)),l=i(r(3284)),s=i(r(163)),a=i(r(7537)),u=i(r(9596)),d=i(r(7098)),c=i(r(9385)),f=i(r(3691)),h={[n.Locale.DE_DE]:o.default,[n.Locale.EN_GB]:l.default,[n.Locale.EN_US]:s.default,[n.Locale.ES_ES]:a.default,[n.Locale.FA_IR]:u.default,[n.Locale.FR_FR]:d.default,[n.Locale.PL_PL]:c.default,[n.Locale.RO_RO]:f.default};t.default=e=>h[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)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getWordList=t.getDeDeWordList=t.getPlPlWordList=t.getFrFrWordList=t.getEnGbWordList=t.getEnUsWordList=void 0;var l=r(163);Object.defineProperty(t,"getEnUsWordList",{enumerable:!0,get:function(){return o(l).default}});var s=r(3284);Object.defineProperty(t,"getEnGbWordList",{enumerable:!0,get:function(){return o(s).default}});var a=r(7098);Object.defineProperty(t,"getFrFrWordList",{enumerable:!0,get:function(){return o(a).default}});var u=r(9385);Object.defineProperty(t,"getPlPlWordList",{enumerable:!0,get:function(){return o(u).default}});var d=r(1704);Object.defineProperty(t,"getDeDeWordList",{enumerable:!0,get:function(){return o(d).default}});var c=r(8769);Object.defineProperty(t,"getWordList",{enumerable:!0,get:function(){return o(c).default}}),n(r(337),t)},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)),l=i(r(5026));t.default=e=>new Promise((t,r)=>{let i=(0,l.default)(),s=e.startsWith("https")?n.https:n.http,a=o.default.createWriteStream(i);s.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)),l=i(r(1108)),s=o.default.resolve(n.default.homedir(),".scrabble-solver");t.default=()=>{let e=`${(0,l.default)()}.txt`;return o.default.join(s,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)),l=i(r(9759)),s=async(e,t)=>{let r=await (0,o.default)(e),i=n.default.readFileSync(r,"utf-8"),s=(0,l.default)(i.toLocaleString(),t);return n.default.unlinkSync(r),s};t.default=s},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 l=r(9759);Object.defineProperty(t,"extractWords",{enumerable:!0,get:function(){return i(l).default}});var s=r(7669);Object.defineProperty(t,"findFirstWordIndex",{enumerable:!0,get:function(){return i(s).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()}};
@@ -0,0 +1 @@
1
+ {"version":1,"functions":{"/api/dictionary/[locale]":{},"/api/solve":{},"/":{}}}
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-c67a75d1b6f99dc8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/16S6EJJ0_LRmtRPwnUIw5/_buildManifest.js","static/16S6EJJ0_LRmtRPwnUIw5/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c29dc3cd933590b.js","static/chunks/main-4dcb7f9b52833aba.js","static/css/cfae5256f1689f57.css","static/chunks/pages/index-f56eaa969a831c70.js"],"/404":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c29dc3cd933590b.js","static/chunks/main-4dcb7f9b52833aba.js","static/chunks/pages/404-b4b5ce15153d4825.js"],"/_app":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c29dc3cd933590b.js","static/chunks/main-4dcb7f9b52833aba.js","static/css/4e8b47fe382a8a8f.css","static/chunks/pages/_app-122dc8ecfa0220d5.js"],"/_error":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c29dc3cd933590b.js","static/chunks/main-4dcb7f9b52833aba.js","static/chunks/pages/_error-54de1933a164a1ff.js"]},ampFirstPages:[]};
1
+ self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-c67a75d1b6f99dc8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/r00VHxlMI-jbGWpg3nm2M/_buildManifest.js","static/r00VHxlMI-jbGWpg3nm2M/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-1728d40275bc359a.js","static/chunks/main-5fb7abbfc135de15.js","static/css/8fa2fb99b90e109e.css","static/chunks/pages/index-59d569ef79bc2580.js"],"/404":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-1728d40275bc359a.js","static/chunks/main-5fb7abbfc135de15.js","static/chunks/pages/404-b6e238bb4117d451.js"],"/_app":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-1728d40275bc359a.js","static/chunks/main-5fb7abbfc135de15.js","static/css/c80ebc6fd13311f1.css","static/chunks/pages/_app-b95404c40a0092e6.js"],"/_error":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-1728d40275bc359a.js","static/chunks/main-5fb7abbfc135de15.js","static/chunks/pages/_error-db043fa3544f8809.js"]},ampFirstPages:[]};
@@ -1 +1 @@
1
- self.__REACT_LOADABLE_MANIFEST={};
1
+ self.__REACT_LOADABLE_MANIFEST="{}";
@@ -1 +1 @@
1
- self.__NEXT_FONT_MANIFEST={pages:{},app:{},appUsingSizeAdjust:!1,pagesUsingSizeAdjust:!1};
1
+ self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}';
@@ -1,6 +1 @@
1
- {
2
- "pages": {},
3
- "app": {},
4
- "appUsingSizeAdjust": false,
5
- "pagesUsingSizeAdjust": false
6
- }
1
+ {"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}
@@ -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/4e8b47fe382a8a8f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4e8b47fe382a8a8f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c29dc3cd933590b.js" defer=""></script><script src="/_next/static/chunks/main-4dcb7f9b52833aba.js" defer=""></script><script src="/_next/static/chunks/pages/_app-122dc8ecfa0220d5.js" defer=""></script><script src="/_next/static/chunks/pages/404-b4b5ce15153d4825.js" defer=""></script><script src="/_next/static/16S6EJJ0_LRmtRPwnUIw5/_buildManifest.js" defer=""></script><script src="/_next/static/16S6EJJ0_LRmtRPwnUIw5/_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__yhPFA"><a class="NotFound_link__a1OqI" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="NotFound_icon__zBP4O"><path fill="currentColor" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7z"></path></svg><svg class="NotFound_tiles__Nxd8Z" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><g class="PlainTiles_tile__4eIjX" 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__4eIjX" 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__4eIjX" 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__4eIjX" 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__4eIjX" 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__4eIjX" 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__4eIjX" 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":"16S6EJJ0_LRmtRPwnUIw5","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/c80ebc6fd13311f1.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/c80ebc6fd13311f1.css" crossorigin="" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-1728d40275bc359a.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-5fb7abbfc135de15.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-b95404c40a0092e6.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/404-b6e238bb4117d451.js" defer="" crossorigin=""></script><script src="/_next/static/r00VHxlMI-jbGWpg3nm2M/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/r00VHxlMI-jbGWpg3nm2M/_ssgManifest.js" defer="" crossorigin=""></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" crossorigin="">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"r00VHxlMI-jbGWpg3nm2M","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"version":1,"files":["../webpack-runtime.js","../chunks/636.js","../chunks/675.js","../chunks/277.js","../../package.json","../../../node_modules/classnames/package.json","../../../node_modules/include-media-query-builder/package.json","../../../node_modules/react-cool-onclickoutside/package.json","../../../node_modules/react-highlight-words/package.json","../../../node_modules/react-modal/package.json","../../../node_modules/react-portal/package.json","../../../node_modules/react-redux/package.json","../../../node_modules/react-window/package.json","../../../node_modules/store2/package.json","../../../node_modules/@reduxjs/toolkit/package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../../node_modules/next/dist/shared/lib/image-config-context.js","../../../node_modules/next/dist/shared/lib/image-config.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/classnames/index.js","../../../node_modules/include-media-query-builder/build/index.js","../../../node_modules/react-cool-onclickoutside/dist/index.js","../../../node_modules/react-highlight-words/dist/main.js","../../../node_modules/react-modal/lib/index.js","../../../node_modules/react-portal/lib/index.js","../../../node_modules/react-redux/lib/index.js","../../../node_modules/react-window/dist/index.cjs.js","../../../node_modules/store2/dist/store2.js","../../../node_modules/@reduxjs/toolkit/dist/index.js","../../../node_modules/next/dist/shared/lib/image-loader.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/client.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/redux-saga/package.json","../../../node_modules/redux-saga/import-condition-proxy.mjs","../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js","../../../node_modules/@floating-ui/react/package.json","../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../../node_modules/@floating-ui/react/dist/floating-ui.react.umd.js","../../../node_modules/react-dom/server.node.js","../../../node_modules/react-dom/server.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js","../../../node_modules/redux-saga/effects/package.json","../../../node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/@swc/helpers/lib/_interop_require_default.js","../../../node_modules/@swc/helpers/lib/_interop_require_wildcard.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/include-media-query-builder/build/buildMediaQuery.js","../../../node_modules/include-media-query-builder/build/buildParsedQuery.js","../../../node_modules/include-media-query-builder/build/constants.js","../../../node_modules/include-media-query-builder/build/isOperator.js","../../../node_modules/include-media-query-builder/build/isSize.js","../../../node_modules/include-media-query-builder/build/types.js","../../../node_modules/react-portal/lib/PortalCompat.js","../../../node_modules/react-portal/lib/PortalWithState.js","../../../node_modules/react-redux/lib/exports.js","../../../node_modules/react-modal/lib/components/Modal.js","../../../node_modules/react-redux/lib/utils/reactBatchedUpdates.js","../../../node_modules/react-redux/lib/utils/batch.js","../../../node_modules/react-redux/lib/hooks/useSelector.js","../../../node_modules/react-redux/lib/components/connect.js","../../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js","../../../node_modules/react-dom/cjs/react-dom-server.node.development.js","../../../node_modules/react-dom/index.js","../../../node_modules/include-media-query-builder/build/parseQuery.js","../../../node_modules/react-portal/lib/Portal.js","../../../node_modules/react-portal/lib/LegacyPortal.js","../../../node_modules/react-redux/lib/components/Provider.js","../../../node_modules/react-redux/lib/components/Context.js","../../../node_modules/react-redux/lib/hooks/useDispatch.js","../../../node_modules/react-redux/lib/hooks/useStore.js","../../../node_modules/react-redux/lib/utils/shallowEqual.js","../../../node_modules/react-redux/lib/types.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-modal/lib/components/ModalPortal.js","../../../node_modules/react-redux/lib/utils/useSyncExternalStore.js","../../../node_modules/react-redux/lib/hooks/useReduxContext.js","../../../node_modules/react-redux/lib/utils/Subscription.js","../../../node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js","../../../node_modules/react-redux/lib/utils/warning.js","../../../node_modules/@babel/runtime/package.json","../../../node_modules/@babel/runtime/helpers/extends.js","../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../node_modules/react-redux/lib/connect/selectorFactory.js","../../../node_modules/react-redux/lib/connect/mapStateToProps.js","../../../node_modules/react-redux/lib/connect/mapDispatchToProps.js","../../../node_modules/react-redux/lib/connect/mergeProps.js","../../../node_modules/memoize-one/package.json","../../../node_modules/memoize-one/dist/memoize-one.cjs.js","../../../node_modules/@floating-ui/react-dom/package.json","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js","../../../node_modules/tabbable/package.json","../../../node_modules/tabbable/dist/index.js","../../../node_modules/@redux-saga/core/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-core.cjs.js","../../../node_modules/aria-hidden/package.json","../../../node_modules/aria-hidden/dist/es5/index.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../node_modules/react-portal/lib/utils.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@redux-saga/core/effects/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.cjs.js","../../../node_modules/next/dist/compiled/micromatch/package.json","../../../node_modules/next/dist/compiled/micromatch/index.js","../../../node_modules/react-modal/lib/helpers/scopeTab.js","../../../node_modules/react-modal/lib/helpers/classList.js","../../../node_modules/react-modal/lib/helpers/focusManager.js","../../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../../node_modules/prop-types/package.json","../../../node_modules/prop-types/index.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/use-sync-external-store/package.json","../../../node_modules/redux/package.json","../../../node_modules/redux/lib/redux.js","../../../node_modules/reselect/package.json","../../../node_modules/reselect/lib/index.js","../../../node_modules/immer/package.json","../../../node_modules/immer/dist/index.js","../../../node_modules/redux-thunk/package.json","../../../node_modules/redux-thunk/lib/index.js","../../../node_modules/react-redux/node_modules/react-is/package.json","../../../node_modules/react-redux/node_modules/react-is/index.js","../../../node_modules/react-redux/lib/connect/verifySubselectors.js","../../../node_modules/react-redux/lib/connect/wrapMapToProps.js","../../../node_modules/react-redux/lib/connect/invalidArgFactory.js","../../../node_modules/react-redux/lib/utils/verifyPlainObject.js","../../../node_modules/react-redux/lib/utils/bindActionCreators.js","../../../node_modules/react-lifecycles-compat/package.json","../../../node_modules/react-lifecycles-compat/react-lifecycles-compat.cjs.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.dev.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.dev.cjs.js","../../../node_modules/scheduler/package.json","../../../node_modules/scheduler/index.js","../../../node_modules/react-modal/lib/helpers/tabbable.js","../../../node_modules/hoist-non-react-statics/package.json","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","../../../node_modules/immer/dist/immer.cjs.production.min.js","../../../node_modules/immer/dist/immer.cjs.development.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/react-redux/lib/utils/isPlainObject.js","../../../node_modules/@redux-saga/core/dist/io-a03c6210.js","../../../node_modules/@redux-saga/core/dist/io-d39dbb58.js","../../../node_modules/reselect/lib/defaultMemoize.js","../../../node_modules/exenv/package.json","../../../node_modules/exenv/index.js","../../../node_modules/warning/package.json","../../../node_modules/warning/warning.js","../../../node_modules/@babel/runtime/helpers/objectSpread2.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/cjs/scheduler.development.js","../../../node_modules/@floating-ui/dom/package.json","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/react-is/package.json","../../../node_modules/react-is/index.js","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@babel/runtime/helpers/defineProperty.js","../../../node_modules/@redux-saga/symbols/package.json","../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.cjs.js","../../../node_modules/@redux-saga/is/package.json","../../../node_modules/@redux-saga/is/dist/redux-saga-is.cjs.js","../../../node_modules/@redux-saga/deferred/package.json","../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.cjs.js","../../../node_modules/@redux-saga/delay-p/package.json","../../../node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.cjs.js","../../../node_modules/@babel/runtime/helpers/toPropertyKey.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/object-assign/index.js","../../../node_modules/object-assign/package.json","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/@babel/runtime/helpers/toPrimitive.js","../../../node_modules/@floating-ui/core/package.json","../../../node_modules/@floating-ui/core/dist/floating-ui.core.umd.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../package.json","../../../src/i18n/de.json","../../../src/i18n/en.json","../../../src/i18n/es.json","../../../src/i18n/fa.json","../../../src/i18n/fr.json","../../../src/i18n/pl.json","../../../src/i18n/ro.json"]}
1
+ {"version":1,"files":["../webpack-runtime.js","../chunks/331.js","../chunks/577.js","../chunks/28.js","../../../package.json","../../../src/i18n/de.json","../../../src/i18n/en.json","../../../src/i18n/es.json","../../../src/i18n/fa.json","../../../src/i18n/fr.json","../../../src/i18n/pl.json","../../../src/i18n/ro.json"]}
@@ -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/4e8b47fe382a8a8f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4e8b47fe382a8a8f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c29dc3cd933590b.js" defer=""></script><script src="/_next/static/chunks/main-4dcb7f9b52833aba.js" defer=""></script><script src="/_next/static/chunks/pages/_app-122dc8ecfa0220d5.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="/_next/static/16S6EJJ0_LRmtRPwnUIw5/_buildManifest.js" defer=""></script><script src="/_next/static/16S6EJJ0_LRmtRPwnUIw5/_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>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;line-height:49px">500</h1><div style="display:inline-block;text-align:left"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"16S6EJJ0_LRmtRPwnUIw5","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/c80ebc6fd13311f1.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/c80ebc6fd13311f1.css" crossorigin="" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-1728d40275bc359a.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-5fb7abbfc135de15.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-b95404c40a0092e6.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_error-db043fa3544f8809.js" defer="" crossorigin=""></script><script src="/_next/static/r00VHxlMI-jbGWpg3nm2M/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/r00VHxlMI-jbGWpg3nm2M/_ssgManifest.js" defer="" crossorigin=""></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" crossorigin="">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"r00VHxlMI-jbGWpg3nm2M","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>