scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
1 lines • 2.9 kB
JavaScript
;(()=>{var r={};r.id=244,r.ids=[244],r.modules={838:r=>{r.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},1097:r=>{r.exports=require("follow-redirects")},1820:r=>{r.exports=require("os")},2029:r=>{r.exports=require("unzipper")},3641:(r,e,t)=>{t.r(e),t.d(e,{config:()=>x,default:()=>g,routeModule:()=>m});var i={};t.r(i),t.d(i,{default:()=>c});var o=t(4409),a=t(4600),l=t(6440),n=t(6812),s=t(7715),u=t(7519),d=t(9562),f=t(184),p=t(6680);let h=r=>{let{board:e,game:t,locale:i}=r.body;if(!(0,d.isLocale)(i))throw Error('Invalid "locale" parameter');if(!(0,d.isGame)(t))throw Error('Invalid "game" parameter');if(!(0,n.hasConfig)(t,i))throw Error(`No game "${t}" in "${i}"`);let o=(0,n.getConfig)(t,i);if(!(0,d.isBoardJson)(e)||!(0,p.J)(e,o))throw Error('Invalid "board" parameter');return{board:d.Board.fromJson(e),config:o,game:t,locale:i}},c=async(r,e)=>{let t=(0,f.T)(r);try{let{board:i,game:o,locale:a}=h(r);u.logger.info("verify - request",{meta:t,payload:{board:i.toString(),boardBlanksCount:i.getBlanksCount(),boardTilesCount:i.getTilesCount(),game:o,locale:a}});let l=await s.dictionaries.get(a),n=i.getWords().sort((r,e)=>r.localeCompare(e,a)),d=n.filter(r=>!l.has(r)),f=n.filter(r=>l.has(r));e.status(200).send({invalidWords:d,validWords:f})}catch(i){let r=i instanceof Error?i.message:"Unknown error";u.logger.error("verify - error",{error:i,meta:t}),e.status(500).send({error:"Server error",message:r})}},g=(0,l.M)(i,"default"),x=(0,l.M)(i,"config"),m=new o.PagesAPIRouteModule({definition:{kind:a.A.PAGES_API,page:"/api/verify",pathname:"/api/verify",bundlePath:"",filename:""},userland:i})},4217:r=>{r.exports=require("cheerio")},5124:r=>{r.exports=require("winston")},5511:r=>{r.exports=require("crypto")},5713:(r,e,t)=>{t.d(e,{Q:()=>i});let i=r=>0!==r.length&&r.length<=2},6605:r=>{r.exports=require("transliteration")},6680:(r,e,t)=>{t.d(e,{J:()=>l});var i=t(5713);let o=(r,e)=>{let{isEmpty:t,tile:o,x:a,y:l}=r;return!(a<0)&&!(a>=e.boardWidth)&&!(l<0)&&!(l>=e.boardHeight)&&(!t||null===o)&&(null===o||!!(0,i.Q)(o.character))},a=(r,e)=>{if(r.length!==e.boardWidth)return!1;for(let t of r)if(!o(t,e))return!1;return!0},l=(r,e)=>{if(r.length!==e.boardHeight)return!1;for(let t of r)if(!a(t,e))return!1;return n(r,e)},n=(r,e)=>{for(let t of r.flat().filter(r=>r&&r.tile&&e.isTwoCharacterTilePrefix(r.tile.character)))for(let i of e.twoCharacterTiles){let e=t.y+1<r.length,o=t.x+1<r[0].length,a=r[t.y+1][t.x],l=r[t.y][t.x+1],n=e&&a.tile&&a.tile.character===i[1],s=o&&l.tile&&l.tile.character===i[1],u=n||s;if(t.tile&&i.startsWith(t.tile.character)&&u)return!1}return!0}},9021:r=>{r.exports=require("fs")},9362:r=>{r.exports=require("@kamilmielnik/trie")},9551:r=>{r.exports=require("url")},9902:r=>{r.exports=require("path")}};var e=require("../../webpack-api-runtime.js");e.C(r);var t=r=>e(e.s=r),i=e.X(0,[60,812],()=>t(3641));module.exports=i})();