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 • 4.43 kB
JavaScript
;(()=>{var a={};a.id=244,a.ids=[244],a.modules={14217:a=>{a.exports=require("cheerio")},15713:(a,b,c)=>{c.d(b,{Q:()=>d});let d=a=>0!==a.length&&a.length<=2},19362:a=>{a.exports=require("@kamilmielnik/trie")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31097:a=>{a.exports=require("follow-redirects")},33873:a=>{a.exports=require("path")},42029:a=>{a.exports=require("unzipper")},46680:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(15713);let e=(a,b)=>{let{isEmpty:c,tile:e,x:f,y:g}=a;return!(f<0)&&!(f>=b.boardWidth)&&!(g<0)&&!(g>=b.boardHeight)&&(!c||null===e)&&(null===e||!!(0,d.Q)(e.character))},f=(a,b)=>{if(a.length!==b.boardWidth)return!1;for(let c of a)if(!e(c,b))return!1;return!0},g=(a,b)=>{if(a.length!==b.boardHeight)return!1;for(let c of a)if(!f(c,b))return!1;return h(a,b)},h=(a,b)=>{for(let c of a.flat().filter(a=>a&&a.tile&&b.isTwoCharacterTilePrefix(a.tile.character)))for(let d of b.twoCharacterTiles){let b=c.y+1<a.length,e=c.x+1<a[0].length,f=a[c.y+1][c.x],g=a[c.y][c.x+1],h=b&&f.tile&&f.tile.character===d[1],i=e&&g.tile&&g.tile.character===d[1],j=h||i;if(c.tile&&d.startsWith(c.tile.character)&&j)return!1}return!0}},53641:(a,b,c)=>{c.r(b),c.d(b,{config:()=>s,default:()=>r,handler:()=>u});var d={};c.r(d),c.d(d,{default:()=>o});var e=c(61223),f=c(74600),g=c(4409),h=c(46440),i=c(16812),j=c(77715),k=c(57519),l=c(29562),m=c(10184),n=c(46680);let o=async(a,b)=>{let c=(0,m.T)(a);try{let{board:d,game:e,locale:f}=(a=>{let{board:b,game:c,locale:d}=a.body;if(!(0,l.isLocale)(d))throw Error('Invalid "locale" parameter');if(!(0,l.isGame)(c))throw Error('Invalid "game" parameter');if(!(0,i.hasConfig)(c,d))throw Error(`No game "${c}" in "${d}"`);let e=(0,i.getConfig)(c,d);if(!(0,l.isBoardJson)(b)||!(0,n.J)(b,e))throw Error('Invalid "board" parameter');return{board:l.Board.fromJson(b),config:e,game:c,locale:d}})(a);k.logger.info("verify - request",{meta:c,payload:{board:d.toString(),boardBlanksCount:d.getBlanksCount(),boardTilesCount:d.getTilesCount(),game:e,locale:f}});let g=await j.dictionaries.get(f),h=d.getWords().sort((a,b)=>a.localeCompare(b,f)),m=h.filter(a=>!g.has(a)),o=h.filter(a=>g.has(a));b.status(200).send({invalidWords:m,validWords:o})}catch(d){let a=d instanceof Error?d.message:"Unknown error";k.logger.error("verify - error",{error:d,meta:c}),b.status(500).send({error:"Server error",message:a})}};var p=c(49275),q=c(30879);let r=(0,h.M)(d,"default"),s=(0,h.M)(d,"config"),t=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/verify",pathname:"/api/verify",bundlePath:"",filename:""},userland:d,distDir:".next",projectDir:""});async function u(a,b,c){let d=await t.prepare(a,b,{srcPage:"/api/verify"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h}=d;try{let c=a.method||"GET",d=(0,p.getTracer)(),e=d.getActiveScopeSpan(),i=t.instrumentationOnRequestError.bind(t),j=async e=>t.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:void 0,multiZoneDraftMode:!0,trustHostHeader:void 0,previewProps:h.preview,propagateError:!1,dev:t.isDev,page:"/api/verify",projectDir:"",onError:(...b)=>i(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==q.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await j(e):await d.withPropagatedContext(a.headers,()=>d.trace(q.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:p.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},j))}catch(a){if(t.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},55124:a=>{a.exports=require("winston")},55511:a=>{a.exports=require("crypto")},66605:a=>{a.exports=require("transliteration")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79551:a=>{a.exports=require("url")}};var b=require("../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[929,106,812],()=>b(b.s=53641));module.exports=c})();