@scrabble-solver/scrabble-solver 2.13.2 → 2.13.4

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/jyVoCYlAT5PMzOeavr5AX/_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 → jyVoCYlAT5PMzOeavr5AX}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/907.js","../../chunks/987.js","../../chunks/44.js","../../chunks/911.js","../../chunks/210.js","../../../package.json","../../../../package.json"]}
1
+ {"version":1,"files":["../../../../package.json","../../../package.json","../../chunks/911.js","../../chunks/977.js","../../webpack-api-runtime.js"]}
@@ -1,213 +1 @@
1
- "use strict";
2
- (() => {
3
- var exports = {};
4
- exports.id = 876;
5
- exports.ids = [876];
6
- exports.modules = {
7
-
8
- /***/ 60871:
9
- /***/ ((module) => {
10
-
11
- module.exports = require("buffer");
12
-
13
- /***/ }),
14
-
15
- /***/ 39491:
16
- /***/ ((module) => {
17
-
18
- module.exports = require("assert");
19
-
20
- /***/ }),
21
-
22
- /***/ 22057:
23
- /***/ ((module) => {
24
-
25
- module.exports = require("constants");
26
-
27
- /***/ }),
28
-
29
- /***/ 6113:
30
- /***/ ((module) => {
31
-
32
- module.exports = require("crypto");
33
-
34
- /***/ }),
35
-
36
- /***/ 82361:
37
- /***/ ((module) => {
38
-
39
- module.exports = require("events");
40
-
41
- /***/ }),
42
-
43
- /***/ 57147:
44
- /***/ ((module) => {
45
-
46
- module.exports = require("fs");
47
-
48
- /***/ }),
49
-
50
- /***/ 13685:
51
- /***/ ((module) => {
52
-
53
- module.exports = require("http");
54
-
55
- /***/ }),
56
-
57
- /***/ 95687:
58
- /***/ ((module) => {
59
-
60
- module.exports = require("https");
61
-
62
- /***/ }),
63
-
64
- /***/ 22037:
65
- /***/ ((module) => {
66
-
67
- module.exports = require("os");
68
-
69
- /***/ }),
70
-
71
- /***/ 71017:
72
- /***/ ((module) => {
73
-
74
- module.exports = require("path");
75
-
76
- /***/ }),
77
-
78
- /***/ 12781:
79
- /***/ ((module) => {
80
-
81
- module.exports = require("stream");
82
-
83
- /***/ }),
84
-
85
- /***/ 71576:
86
- /***/ ((module) => {
87
-
88
- module.exports = require("string_decoder");
89
-
90
- /***/ }),
91
-
92
- /***/ 76224:
93
- /***/ ((module) => {
94
-
95
- module.exports = require("tty");
96
-
97
- /***/ }),
98
-
99
- /***/ 57310:
100
- /***/ ((module) => {
101
-
102
- module.exports = require("url");
103
-
104
- /***/ }),
105
-
106
- /***/ 73837:
107
- /***/ ((module) => {
108
-
109
- module.exports = require("util");
110
-
111
- /***/ }),
112
-
113
- /***/ 59796:
114
- /***/ ((module) => {
115
-
116
- module.exports = require("zlib");
117
-
118
- /***/ }),
119
-
120
- /***/ 2911:
121
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
122
-
123
- __webpack_require__.r(__webpack_exports__);
124
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
125
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
126
- /* harmony export */ });
127
- /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27911);
128
- /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__);
129
- /* harmony import */ var _scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89044);
130
- /* harmony import */ var _scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1__);
131
- /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52954);
132
- /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2__);
133
- /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46452);
134
- /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__);
135
- /* harmony import */ var api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84021);
136
- /* harmony import */ var api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(31210);
137
-
138
-
139
-
140
-
141
-
142
- const verify = async (request, response)=>{
143
- const meta = (0,api__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(request);
144
- try {
145
- const { board , locale } = parseRequest(request);
146
- _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2___default().info("verify - request", {
147
- meta,
148
- payload: {
149
- board: board.toString(),
150
- boardBlanksCount: board.getBlanksCount(),
151
- boardTilesCount: board.getTilesCount(),
152
- game: request.body.game,
153
- locale
154
- }
155
- });
156
- const trie = await _scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1__.dictionaries.get(locale);
157
- const words = board.getWords().sort((a, b)=>a.localeCompare(b, locale));
158
- const invalidWords = words.filter((word)=>!trie.has(word));
159
- const validWords = words.filter((word)=>trie.has(word));
160
- response.status(200).send({
161
- invalidWords,
162
- validWords
163
- });
164
- } catch (error) {
165
- const message = error instanceof Error ? error.message : "Unknown error";
166
- _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2___default().error("verify - error", {
167
- error,
168
- meta
169
- });
170
- response.status(500).send({
171
- error: "Server error",
172
- message
173
- });
174
- }
175
- };
176
- const parseRequest = (request)=>{
177
- const { board: boardJson , game , locale } = request.body;
178
- if (!(0,_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__.isLocale)(locale)) {
179
- throw new Error('Invalid "locale" parameter');
180
- }
181
- if (!(0,_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__.isGame)(game)) {
182
- throw new Error('Invalid "game" parameter');
183
- }
184
- if (!(0,_scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__.hasConfig)(game, locale)) {
185
- throw new Error(`No game "${game}" in "${locale}"`);
186
- }
187
- const config = (0,_scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__.getConfig)(game, locale);
188
- if (!(0,_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__.isBoardJson)(boardJson) || !(0,api__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(boardJson, config)) {
189
- throw new Error('Invalid "board" parameter');
190
- }
191
- const board = _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__.Board.fromJson(boardJson);
192
- return {
193
- board,
194
- config,
195
- locale
196
- };
197
- };
198
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (verify);
199
-
200
-
201
- /***/ })
202
-
203
- };
204
- ;
205
-
206
- // load runtime
207
- var __webpack_require__ = require("../../webpack-api-runtime.js");
208
- __webpack_require__.C(exports);
209
- var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
210
- var __webpack_exports__ = __webpack_require__.X(0, [50,907,987,44,911,210], () => (__webpack_exec__(2911)));
211
- module.exports = __webpack_exports__;
212
-
213
- })();
1
+ "use strict";(()=>{var r={};r.id=876,r.ids=[876],r.modules={9119:r=>{r.exports=require("@kamilmielnik/trie")},8048:r=>{r.exports=require("cheerio")},6953:r=>{r.exports=require("follow-redirects")},1118:r=>{r.exports=require("latinize")},145:r=>{r.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},4616:r=>{r.exports=require("unzipper")},7773:r=>{r.exports=require("winston")},6113:r=>{r.exports=require("crypto")},7147:r=>{r.exports=require("fs")},2037:r=>{r.exports=require("os")},1017:r=>{r.exports=require("path")},7310:r=>{r.exports=require("url")},6724:(r,e,t)=>{t.r(e),t.d(e,{config:()=>x,default:()=>m,routeModule:()=>v});var i={};t.r(i),t.d(i,{default:()=>g});var o=t(9150),a=t(1631),l=t(6835),n=t(7911),s=t(9044),u=t(2954),d=t.n(u),f=t(6452),p=t(9927),h=t(1525);let c=r=>{let{board:e,game:t,locale:i}=r.body;if(!(0,f.isLocale)(i))throw Error('Invalid "locale" parameter');if(!(0,f.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,f.isBoardJson)(e)||!(0,h.Z)(e,o))throw Error('Invalid "board" parameter');return{board:f.Board.fromJson(e),config:o,locale:i}},g=async(r,e)=>{let t=(0,p.Z)(r);try{let{board:i,locale:o}=c(r);d().info("verify - request",{meta:t,payload:{board:i.toString(),boardBlanksCount:i.getBlanksCount(),boardTilesCount:i.getTilesCount(),game:r.body.game,locale:o}});let a=await s.dictionaries.get(o),l=i.getWords().sort((r,e)=>r.localeCompare(e,o)),n=l.filter(r=>!a.has(r)),u=l.filter(r=>a.has(r));e.status(200).send({invalidWords:n,validWords:u})}catch(i){let r=i instanceof Error?i.message:"Unknown error";d().error("verify - error",{error:i,meta:t}),e.status(500).send({error:"Server error",message:r})}},m=(0,l.l)(i,"default"),x=(0,l.l)(i,"config"),v=new o.PagesAPIRouteModule({definition:{kind:a.x.PAGES_API,page:"/api/verify",pathname:"/api/verify",bundlePath:"",filename:""},userland:i})},1525:(r,e,t)=>{t.d(e,{Z:()=>n});var i=t(9953);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.Z)(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)=>{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},n=(r,e)=>{if(r.length!==e.boardHeight)return!1;for(let t of r)if(!a(t,e))return!1;return l(r,e)}},9953:(r,e,t)=>{t.d(e,{Z:()=>i});let i=r=>0!==r.length&&r.length<=2}};var e=require("../../webpack-api-runtime.js");e.C(r);var t=r=>e(e.s=r),i=e.X(0,[977,911],()=>t(6724));module.exports=i})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/907.js","../../chunks/987.js","../../chunks/44.js","../../chunks/911.js","../../chunks/210.js","../../../package.json","../../../../package.json"]}
1
+ {"version":1,"files":["../../../../package.json","../../../package.json","../../chunks/911.js","../../chunks/977.js","../../webpack-api-runtime.js"]}
@@ -1,131 +1 @@
1
- "use strict";
2
- (() => {
3
- var exports = {};
4
- exports.id = 322;
5
- exports.ids = [322];
6
- exports.modules = {
7
-
8
- /***/ 60871:
9
- /***/ ((module) => {
10
-
11
- module.exports = require("buffer");
12
-
13
- /***/ }),
14
-
15
- /***/ 82361:
16
- /***/ ((module) => {
17
-
18
- module.exports = require("events");
19
-
20
- /***/ }),
21
-
22
- /***/ 57147:
23
- /***/ ((module) => {
24
-
25
- module.exports = require("fs");
26
-
27
- /***/ }),
28
-
29
- /***/ 13685:
30
- /***/ ((module) => {
31
-
32
- module.exports = require("http");
33
-
34
- /***/ }),
35
-
36
- /***/ 95687:
37
- /***/ ((module) => {
38
-
39
- module.exports = require("https");
40
-
41
- /***/ }),
42
-
43
- /***/ 22037:
44
- /***/ ((module) => {
45
-
46
- module.exports = require("os");
47
-
48
- /***/ }),
49
-
50
- /***/ 71017:
51
- /***/ ((module) => {
52
-
53
- module.exports = require("path");
54
-
55
- /***/ }),
56
-
57
- /***/ 12781:
58
- /***/ ((module) => {
59
-
60
- module.exports = require("stream");
61
-
62
- /***/ }),
63
-
64
- /***/ 71576:
65
- /***/ ((module) => {
66
-
67
- module.exports = require("string_decoder");
68
-
69
- /***/ }),
70
-
71
- /***/ 73837:
72
- /***/ ((module) => {
73
-
74
- module.exports = require("util");
75
-
76
- /***/ }),
77
-
78
- /***/ 59796:
79
- /***/ ((module) => {
80
-
81
- module.exports = require("zlib");
82
-
83
- /***/ }),
84
-
85
- /***/ 58873:
86
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
87
-
88
- __webpack_require__.r(__webpack_exports__);
89
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
90
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
91
- /* harmony export */ });
92
- /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52954);
93
- /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0__);
94
- /* harmony import */ var api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84021);
95
-
96
-
97
- const visit = async (request, response)=>{
98
- const meta = (0,api__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(request);
99
- try {
100
- _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0___default().info("visit - request", {
101
- meta
102
- });
103
- response.status(200).send(true);
104
- } catch (error) {
105
- const message = error instanceof Error ? error.message : "Unknown error";
106
- _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_0___default().error("visit - error", {
107
- error,
108
- meta
109
- });
110
- response.status(500).send({
111
- error: "Server error",
112
- message
113
- });
114
- }
115
- };
116
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (visit);
117
-
118
-
119
- /***/ })
120
-
121
- };
122
- ;
123
-
124
- // load runtime
125
- var __webpack_require__ = require("../../webpack-api-runtime.js");
126
- __webpack_require__.C(exports);
127
- var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
128
- var __webpack_exports__ = __webpack_require__.X(0, [50,987], () => (__webpack_exec__(58873)));
129
- module.exports = __webpack_exports__;
130
-
131
- })();
1
+ "use strict";(()=>{var e={};e.id=322,e.ids=[322],e.modules={145:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},7773:e=>{e.exports=require("winston")},2037:e=>{e.exports=require("os")},1017:e=>{e.exports=require("path")},6835:(e,r)=>{Object.defineProperty(r,"l",{enumerable:!0,get:function(){return function e(r,t){return t in r?r[t]:"then"in r&&"function"==typeof r.then?r.then(r=>e(r,t)):"function"==typeof r&&"default"===t?r:void 0}}})},5633:(e,r,t)=>{t.r(r),t.d(r,{config:()=>p,default:()=>d,routeModule:()=>m});var o={};t.r(o),t.d(o,{default:()=>f});var n=t(9150),a=t(1631),i=t(6835),s=t(2954),l=t.n(s),u=t(9927);let f=async(e,r)=>{let t=(0,u.Z)(e);try{l().info("visit - request",{meta:t}),r.status(200).send(!0)}catch(o){let e=o instanceof Error?o.message:"Unknown error";l().error("visit - error",{error:o,meta:t}),r.status(500).send({error:"Server error",message:e})}},d=(0,i.l)(o,"default"),p=(0,i.l)(o,"config"),m=new n.PagesAPIRouteModule({definition:{kind:a.x.PAGES_API,page:"/api/visit",pathname:"/api/visit",bundlePath:"",filename:""},userland:o})},9927:(e,r,t)=>{t.d(r,{Z:()=>o});let o=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,r)=>{var t;Object.defineProperty(r,"x",{enumerable:!0,get:function(){return t}}),function(e){e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE"}(t||(t={}))},9150:(e,r,t)=>{e.exports=t(145)},8793:function(e,r,t){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.OUTPUT_DIRECTORY=void 0;let n=o(t(2037)),a=o(t(1017));r.OUTPUT_DIRECTORY=a.default.resolve(n.default.homedir(),".scrabble-solver","logs")},2954:function(e,r,t){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=t(6730);Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o(n).default}})},6730:function(e,r,t){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});let n=o(t(1017)),a=t(7773),i=t(8793),s=(0,a.createLogger)({level:"info",format:a.format.combine(a.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),a.format.errors({stack:!0}),a.format.splat(),a.format.json(),a.format.prettyPrint()),transports:[new a.transports.File({filename:n.default.resolve(i.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new a.transports.File({filename:n.default.resolve(i.OUTPUT_DIRECTORY,"all.log")}),new a.transports.Console({format:a.format.combine(a.format.colorize(),a.format.simple()),level:"error"})]});r.default=s}};var r=require("../../webpack-api-runtime.js");r.C(e);var t=r(r.s=5633);module.exports=t})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/987.js","../../../package.json","../../../../package.json"]}
1
+ {"version":1,"files":["../../../../package.json","../../../package.json","../../webpack-api-runtime.js"]}
@@ -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=""/><link rel="preload" href="/_next/static/css/cfae5256f1689f57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/cfae5256f1689f57.css" data-n-p=""/><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/index-f56eaa969a831c70.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><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.13.1"},"__N_SSG":true},"page":"/","query":{},"buildId":"16S6EJJ0_LRmtRPwnUIw5","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/c80ebc6fd13311f1.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/c80ebc6fd13311f1.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/8fa2fb99b90e109e.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/8fa2fb99b90e109e.css" crossorigin="" data-n-p=""/><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/index-59d569ef79bc2580.js" defer="" crossorigin=""></script><script src="/_next/static/jyVoCYlAT5PMzOeavr5AX/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/jyVoCYlAT5PMzOeavr5AX/_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><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"version":"v2.13.3"},"__N_SSG":true},"page":"/","query":{},"buildId":"jyVoCYlAT5PMzOeavr5AX","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>