@scrabble-solver/scrabble-solver 2.8.1 → 2.8.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 (86) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +5 -5
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/server-production/0.pack +0 -0
  9. package/.next/cache/webpack/server-production/index.pack +0 -0
  10. package/.next/next-server.js.nft.json +1 -1
  11. package/.next/prerender-manifest.json +1 -1
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/413.js +391 -673
  14. package/.next/server/chunks/515.js +414 -500
  15. package/.next/server/chunks/907.js +397 -679
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/404.html +1 -1
  18. package/.next/server/pages/404.js.nft.json +1 -1
  19. package/.next/server/pages/500.html +2 -2
  20. package/.next/server/pages/_app.js +7 -10
  21. package/.next/server/pages/_app.js.nft.json +1 -1
  22. package/.next/server/pages/_document.js +0 -3
  23. package/.next/server/pages/_error.js.nft.json +1 -1
  24. package/.next/server/pages/api/dictionary/[locale]/[word].js +114 -171
  25. package/.next/server/pages/api/solve.js +428 -1164
  26. package/.next/server/pages/index.html +1 -1
  27. package/.next/server/pages/index.js +2 -2
  28. package/.next/server/pages/index.js.nft.json +1 -1
  29. package/.next/server/pages/index.json +1 -1
  30. package/.next/static/OhUvTNKwyrrzmNwKBnpUU/_buildManifest.js +1 -0
  31. package/.next/static/{CQTUJjnUaobzo-T6zRWj1 → OhUvTNKwyrrzmNwKBnpUU}/_ssgManifest.js +0 -0
  32. package/.next/static/chunks/{195-fcadef5c6eed8338.js → 195-4b75c9c697b7b455.js} +1 -1
  33. package/.next/static/chunks/pages/_app-72522bfb306a8aef.js +1 -0
  34. package/.next/trace +42 -42
  35. package/package.json +9 -9
  36. package/src/components/Board/Board.tsx +1 -1
  37. package/src/components/Board/BoardPure.tsx +1 -1
  38. package/src/components/Board/components/Cell/Button.tsx +1 -1
  39. package/src/components/Board/components/Cell/Cell.tsx +1 -1
  40. package/src/components/Board/components/Cell/CellPure.tsx +1 -1
  41. package/src/components/Button/Button.tsx +1 -1
  42. package/src/components/Checkbox/Checkbox.tsx +1 -1
  43. package/src/components/Dictionary/Dictionary.tsx +1 -1
  44. package/src/components/DictionaryInput/DictionaryInput.tsx +1 -1
  45. package/src/components/EmptyState/EmptyState.tsx +1 -1
  46. package/src/components/Key/Key.tsx +1 -1
  47. package/src/components/KeyMap/KeyMap.tsx +1 -1
  48. package/src/components/KeyMap/components/Mapping/Mapping.tsx +1 -1
  49. package/src/components/Loading/Loading.tsx +1 -1
  50. package/src/components/Logo/Logo.tsx +1 -1
  51. package/src/components/NavButtons/NavButtons.tsx +1 -1
  52. package/src/components/NotFound/NotFound.tsx +1 -1
  53. package/src/components/PlainTiles/PlainTiles.tsx +1 -1
  54. package/src/components/PlainTiles/Tile.tsx +1 -1
  55. package/src/components/Rack/Rack.tsx +1 -1
  56. package/src/components/Rack/RackTile.tsx +1 -1
  57. package/src/components/Radio/Radio.tsx +1 -1
  58. package/src/components/RemainingTiles/Character.tsx +1 -1
  59. package/src/components/RemainingTiles/RemainingTiles.tsx +1 -1
  60. package/src/components/Results/Cell.tsx +1 -1
  61. package/src/components/Results/HeaderButton.tsx +1 -1
  62. package/src/components/Results/Result.tsx +1 -1
  63. package/src/components/Results/Results.tsx +1 -1
  64. package/src/components/Results/SolveButton.tsx +1 -1
  65. package/src/components/ResultsInput/ResultsInput.tsx +1 -1
  66. package/src/components/Screen/Screen.tsx +1 -1
  67. package/src/components/Settings/Settings.tsx +1 -1
  68. package/src/components/Settings/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +1 -1
  69. package/src/components/Settings/components/ConfigSetting/ConfigSetting.tsx +1 -1
  70. package/src/components/Settings/components/LocaleSetting/LocaleSetting.tsx +1 -1
  71. package/src/components/Sidebar/Sidebar.tsx +1 -1
  72. package/src/components/Sidebar/components/Section/Section.tsx +1 -1
  73. package/src/components/Splash/Splash.tsx +1 -1
  74. package/src/components/SquareButton/Link.tsx +1 -1
  75. package/src/components/SquareButton/SquareButton.tsx +1 -1
  76. package/src/components/Tile/Tile.tsx +1 -1
  77. package/src/components/Tile/TilePure.tsx +1 -1
  78. package/src/components/Tooltip/useTooltip.tsx +1 -1
  79. package/src/components/Well/Well.tsx +1 -1
  80. package/src/hooks/usePortal.tsx +19 -9
  81. package/src/lib/memoize.ts +1 -1
  82. package/src/pages/_app.tsx +1 -1
  83. package/src/pages/_document.tsx +1 -1
  84. package/src/pages/index.tsx +1 -1
  85. package/.next/static/CQTUJjnUaobzo-T6zRWj1/_buildManifest.js +0 -1
  86. package/.next/static/chunks/pages/_app-f4030148d742bcd2.js +0 -1
@@ -128,123 +128,50 @@ module.exports = require("zlib");
128
128
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
129
129
 
130
130
 
131
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
132
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
133
- return new (P || (P = Promise))(function (resolve, reject) {
134
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
135
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
136
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
137
- step((generator = generator.apply(thisArg, _arguments || [])).next());
138
- });
139
- };
140
- var __generator = (this && this.__generator) || function (thisArg, body) {
141
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
142
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
143
- function verb(n) { return function (v) { return step([n, v]); }; }
144
- function step(op) {
145
- if (f) throw new TypeError("Generator is already executing.");
146
- while (_) try {
147
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
148
- if (y = 0, t) op = [op[0] & 2, t.value];
149
- switch (op[0]) {
150
- case 0: case 1: t = op; break;
151
- case 4: _.label++; return { value: op[1], done: false };
152
- case 5: _.label++; y = op[1]; op = [0]; continue;
153
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
154
- default:
155
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
156
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
157
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
158
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
159
- if (t[2]) _.ops.pop();
160
- _.trys.pop(); continue;
161
- }
162
- op = body.call(thisArg, _);
163
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
164
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
165
- }
166
- };
167
131
  var __importDefault = (this && this.__importDefault) || function (mod) {
168
132
  return (mod && mod.__esModule) ? mod : { "default": mod };
169
133
  };
170
134
  Object.defineProperty(exports, "__esModule", ({ value: true }));
171
- var logger_1 = __importDefault(__webpack_require__(52954));
172
- var types_1 = __webpack_require__(46452);
173
- var fs_1 = __importDefault(__webpack_require__(57147));
174
- var constants_1 = __webpack_require__(75823);
175
- var lib_1 = __webpack_require__(26137);
176
- var Dictionaries = /** @class */ (function () {
177
- function Dictionaries() {
135
+ const logger_1 = __importDefault(__webpack_require__(52954));
136
+ const types_1 = __webpack_require__(46452);
137
+ const fs_1 = __importDefault(__webpack_require__(57147));
138
+ const constants_1 = __webpack_require__(75823);
139
+ const lib_1 = __webpack_require__(26137);
140
+ class Dictionaries {
141
+ constructor() {
178
142
  this.cache = new lib_1.LayeredCache();
179
- this.downloadDictionaryProxies = Object.fromEntries(Object.values(types_1.Locale).map(function (locale) { return [locale, (0, lib_1.createAsyncProxy)(function () { return (0, lib_1.downloadDictionary)(locale); })]; }));
143
+ this.downloadDictionaryProxies = Object.fromEntries(Object.values(types_1.Locale).map((locale) => [locale, (0, lib_1.createAsyncProxy)(() => (0, lib_1.downloadDictionary)(locale))]));
180
144
  }
181
- Dictionaries.prototype.get = function (locale) {
182
- return __awaiter(this, void 0, void 0, function () {
183
- var trie;
184
- return __generator(this, function (_a) {
185
- switch (_a.label) {
186
- case 0:
187
- if (!this.cache.has(locale)) return [3 /*break*/, 2];
188
- return [4 /*yield*/, this.cache.get(locale)];
189
- case 1:
190
- trie = _a.sent();
191
- if (trie) {
192
- return [2 /*return*/, trie];
193
- }
194
- _a.label = 2;
195
- case 2:
196
- logger_1.default.info('Dictionaries - cache miss', { locale: locale });
197
- return [2 /*return*/, this.updateDictionary(locale)];
198
- }
199
- });
200
- });
201
- };
202
- Dictionaries.prototype.remove = function () {
145
+ async get(locale) {
146
+ if (this.cache.has(locale)) {
147
+ const trie = await this.cache.get(locale);
148
+ if (trie) {
149
+ return trie;
150
+ }
151
+ }
152
+ logger_1.default.info('Dictionaries - cache miss', { locale });
153
+ return this.updateDictionary(locale);
154
+ }
155
+ remove() {
203
156
  fs_1.default.rmdirSync(constants_1.OUTPUT_DIRECTORY, { recursive: true });
204
- };
205
- Dictionaries.prototype.update = function (force) {
206
- return __awaiter(this, void 0, void 0, function () {
207
- var locales;
208
- var _this = this;
209
- return __generator(this, function (_a) {
210
- switch (_a.label) {
211
- case 0:
212
- locales = force ? Object.values(types_1.Locale) : this.getLocalesToUpdate();
213
- logger_1.default.info('Dictionaries - update', { force: force, locales: locales });
214
- return [4 /*yield*/, Promise.all(locales.map(function (locale) { return _this.updateDictionary(locale); }))];
215
- case 1:
216
- _a.sent();
217
- return [2 /*return*/];
218
- }
219
- });
220
- });
221
- };
222
- Dictionaries.prototype.getLocalesToUpdate = function () {
223
- var _this = this;
224
- return Object.values(types_1.Locale).filter(function (locale) { return _this.cache.isStale(locale) !== false; });
225
- };
226
- Dictionaries.prototype.updateDictionary = function (locale) {
227
- return __awaiter(this, void 0, void 0, function () {
228
- var downloadDictionaryProxy, trie;
229
- return __generator(this, function (_a) {
230
- switch (_a.label) {
231
- case 0:
232
- logger_1.default.info('Dictionaries - updateDictionary', { locale: locale });
233
- fs_1.default.mkdirSync(constants_1.OUTPUT_DIRECTORY, { recursive: true });
234
- downloadDictionaryProxy = this.downloadDictionaryProxies[locale];
235
- return [4 /*yield*/, downloadDictionaryProxy()];
236
- case 1:
237
- trie = _a.sent();
238
- return [4 /*yield*/, this.cache.set(locale, trie)];
239
- case 2:
240
- _a.sent();
241
- return [2 /*return*/, trie];
242
- }
243
- });
244
- });
245
- };
246
- return Dictionaries;
247
- }());
157
+ }
158
+ async update(force) {
159
+ const locales = force ? Object.values(types_1.Locale) : this.getLocalesToUpdate();
160
+ logger_1.default.info('Dictionaries - update', { force, locales });
161
+ await Promise.all(locales.map((locale) => this.updateDictionary(locale)));
162
+ }
163
+ getLocalesToUpdate() {
164
+ return Object.values(types_1.Locale).filter((locale) => this.cache.isStale(locale) !== false);
165
+ }
166
+ async updateDictionary(locale) {
167
+ logger_1.default.info('Dictionaries - updateDictionary', { locale });
168
+ fs_1.default.mkdirSync(constants_1.OUTPUT_DIRECTORY, { recursive: true });
169
+ const downloadDictionaryProxy = this.downloadDictionaryProxies[locale];
170
+ const trie = await downloadDictionaryProxy();
171
+ await this.cache.set(locale, trie);
172
+ return trie;
173
+ }
174
+ }
248
175
  exports["default"] = Dictionaries;
249
176
 
250
177
 
@@ -259,8 +186,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
259
186
  };
260
187
  Object.defineProperty(exports, "__esModule", ({ value: true }));
261
188
  exports.OUTPUT_DIRECTORY = exports.CACHE_STALE_THRESHOLD = exports.DAY = void 0;
262
- var os_1 = __importDefault(__webpack_require__(22037));
263
- var path_1 = __importDefault(__webpack_require__(71017));
189
+ const os_1 = __importDefault(__webpack_require__(22037));
190
+ const path_1 = __importDefault(__webpack_require__(71017));
264
191
  exports.DAY = 24 * 60 * 60 * 1000;
265
192
  exports.CACHE_STALE_THRESHOLD = 30 * exports.DAY;
266
193
  exports.OUTPUT_DIRECTORY = path_1.default.resolve(os_1.default.homedir(), '.scrabble-solver', 'dictionaries');
@@ -291,7 +218,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
291
218
  };
292
219
  Object.defineProperty(exports, "__esModule", ({ value: true }));
293
220
  exports.dictionaries = void 0;
294
- var Dictionaries_1 = __importDefault(__webpack_require__(21285));
221
+ const Dictionaries_1 = __importDefault(__webpack_require__(21285));
295
222
  __exportStar(__webpack_require__(26137), exports);
296
223
  exports.dictionaries = new Dictionaries_1.default();
297
224
 
@@ -302,114 +229,54 @@ exports.dictionaries = new Dictionaries_1.default();
302
229
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
303
230
 
304
231
 
305
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
306
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
307
- return new (P || (P = Promise))(function (resolve, reject) {
308
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
309
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
310
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
311
- step((generator = generator.apply(thisArg, _arguments || [])).next());
312
- });
313
- };
314
- var __generator = (this && this.__generator) || function (thisArg, body) {
315
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
316
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
317
- function verb(n) { return function (v) { return step([n, v]); }; }
318
- function step(op) {
319
- if (f) throw new TypeError("Generator is already executing.");
320
- while (_) try {
321
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
322
- if (y = 0, t) op = [op[0] & 2, t.value];
323
- switch (op[0]) {
324
- case 0: case 1: t = op; break;
325
- case 4: _.label++; return { value: op[1], done: false };
326
- case 5: _.label++; y = op[1]; op = [0]; continue;
327
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
328
- default:
329
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
330
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
331
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
332
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
333
- if (t[2]) _.ops.pop();
334
- _.trys.pop(); continue;
335
- }
336
- op = body.call(thisArg, _);
337
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
338
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
339
- }
340
- };
341
232
  var __importDefault = (this && this.__importDefault) || function (mod) {
342
233
  return (mod && mod.__esModule) ? mod : { "default": mod };
343
234
  };
344
235
  Object.defineProperty(exports, "__esModule", ({ value: true }));
345
- var trie_1 = __webpack_require__(83140);
346
- var fs_1 = __importDefault(__webpack_require__(57147));
347
- var constants_1 = __webpack_require__(75823);
348
- var getDictionaryFilepath_1 = __importDefault(__webpack_require__(68638));
349
- var readFile_1 = __importDefault(__webpack_require__(61908));
350
- var writeFile_1 = __importDefault(__webpack_require__(42213));
351
- var DiskCache = /** @class */ (function () {
352
- function DiskCache() {
236
+ const trie_1 = __webpack_require__(83140);
237
+ const fs_1 = __importDefault(__webpack_require__(57147));
238
+ const constants_1 = __webpack_require__(75823);
239
+ const getDictionaryFilepath_1 = __importDefault(__webpack_require__(68638));
240
+ const readFile_1 = __importDefault(__webpack_require__(61908));
241
+ const writeFile_1 = __importDefault(__webpack_require__(42213));
242
+ class DiskCache {
243
+ async get(locale) {
244
+ if (!this.has(locale)) {
245
+ return undefined;
246
+ }
247
+ const filepath = (0, getDictionaryFilepath_1.default)(locale);
248
+ const serialized = await (0, readFile_1.default)(filepath);
249
+ const trie = trie_1.Trie.deserialize(serialized);
250
+ return trie;
353
251
  }
354
- DiskCache.prototype.get = function (locale) {
355
- return __awaiter(this, void 0, void 0, function () {
356
- var filepath, serialized, trie;
357
- return __generator(this, function (_a) {
358
- switch (_a.label) {
359
- case 0:
360
- if (!this.has(locale)) {
361
- return [2 /*return*/, undefined];
362
- }
363
- filepath = (0, getDictionaryFilepath_1.default)(locale);
364
- return [4 /*yield*/, (0, readFile_1.default)(filepath)];
365
- case 1:
366
- serialized = _a.sent();
367
- trie = trie_1.Trie.deserialize(serialized);
368
- return [2 /*return*/, trie];
369
- }
370
- });
371
- });
372
- };
373
- DiskCache.prototype.getLastModifiedTimestamp = function (locale) {
374
- var filepath = (0, getDictionaryFilepath_1.default)(locale);
252
+ getLastModifiedTimestamp(locale) {
253
+ const filepath = (0, getDictionaryFilepath_1.default)(locale);
375
254
  if (!fs_1.default.existsSync(filepath)) {
376
255
  return undefined;
377
256
  }
378
- var stats = fs_1.default.statSync(filepath);
257
+ const stats = fs_1.default.statSync(filepath);
379
258
  return stats.mtimeMs;
380
- };
381
- DiskCache.prototype.has = function (locale) {
382
- var filepath = (0, getDictionaryFilepath_1.default)(locale);
259
+ }
260
+ has(locale) {
261
+ const filepath = (0, getDictionaryFilepath_1.default)(locale);
383
262
  return fs_1.default.existsSync(filepath);
384
- };
385
- DiskCache.prototype.isStale = function (locale) {
263
+ }
264
+ isStale(locale) {
386
265
  if (!this.has(locale)) {
387
266
  return undefined;
388
267
  }
389
- var lastModifiedTimestamp = this.getLastModifiedTimestamp(locale);
268
+ const lastModifiedTimestamp = this.getLastModifiedTimestamp(locale);
390
269
  if (typeof lastModifiedTimestamp === 'undefined') {
391
270
  return undefined;
392
271
  }
393
- var timeSinceModification = Math.abs(lastModifiedTimestamp - Date.now());
272
+ const timeSinceModification = Math.abs(lastModifiedTimestamp - Date.now());
394
273
  return timeSinceModification > constants_1.CACHE_STALE_THRESHOLD;
395
- };
396
- DiskCache.prototype.set = function (locale, trie) {
397
- return __awaiter(this, void 0, void 0, function () {
398
- var filepath;
399
- return __generator(this, function (_a) {
400
- switch (_a.label) {
401
- case 0:
402
- filepath = (0, getDictionaryFilepath_1.default)(locale);
403
- return [4 /*yield*/, (0, writeFile_1.default)(filepath, trie.serialize())];
404
- case 1:
405
- _a.sent();
406
- return [2 /*return*/];
407
- }
408
- });
409
- });
410
- };
411
- return DiskCache;
412
- }());
274
+ }
275
+ async set(locale, trie) {
276
+ const filepath = (0, getDictionaryFilepath_1.default)(locale);
277
+ await (0, writeFile_1.default)(filepath, trie.serialize());
278
+ }
279
+ }
413
280
  exports["default"] = DiskCache;
414
281
 
415
282
 
@@ -419,123 +286,59 @@ exports["default"] = DiskCache;
419
286
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
420
287
 
421
288
 
422
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
423
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
424
- return new (P || (P = Promise))(function (resolve, reject) {
425
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
426
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
427
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
428
- step((generator = generator.apply(thisArg, _arguments || [])).next());
429
- });
430
- };
431
- var __generator = (this && this.__generator) || function (thisArg, body) {
432
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
433
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
434
- function verb(n) { return function (v) { return step([n, v]); }; }
435
- function step(op) {
436
- if (f) throw new TypeError("Generator is already executing.");
437
- while (_) try {
438
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
439
- if (y = 0, t) op = [op[0] & 2, t.value];
440
- switch (op[0]) {
441
- case 0: case 1: t = op; break;
442
- case 4: _.label++; return { value: op[1], done: false };
443
- case 5: _.label++; y = op[1]; op = [0]; continue;
444
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
445
- default:
446
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
447
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
448
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
449
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
450
- if (t[2]) _.ops.pop();
451
- _.trys.pop(); continue;
452
- }
453
- op = body.call(thisArg, _);
454
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
455
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
456
- }
457
- };
458
- var __read = (this && this.__read) || function (o, n) {
459
- var m = typeof Symbol === "function" && o[Symbol.iterator];
460
- if (!m) return o;
461
- var i = m.call(o), r, ar = [], e;
462
- try {
463
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
464
- }
465
- catch (error) { e = { error: error }; }
466
- finally {
467
- try {
468
- if (r && !r.done && (m = i["return"])) m.call(i);
469
- }
470
- finally { if (e) throw e.error; }
471
- }
472
- return ar;
473
- };
474
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
475
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
476
- if (ar || !(i in from)) {
477
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
478
- ar[i] = from[i];
479
- }
480
- }
481
- return to.concat(ar || Array.prototype.slice.call(from));
482
- };
483
289
  var __importDefault = (this && this.__importDefault) || function (mod) {
484
290
  return (mod && mod.__esModule) ? mod : { "default": mod };
485
291
  };
486
292
  Object.defineProperty(exports, "__esModule", ({ value: true }));
487
- var createCacheTimestampComparator_1 = __importDefault(__webpack_require__(20494));
488
- var DiskCache_1 = __importDefault(__webpack_require__(2812));
489
- var MemoryCache_1 = __importDefault(__webpack_require__(50192));
490
- var LayeredCache = /** @class */ (function () {
491
- function LayeredCache() {
293
+ const createCacheTimestampComparator_1 = __importDefault(__webpack_require__(20494));
294
+ const DiskCache_1 = __importDefault(__webpack_require__(2812));
295
+ const MemoryCache_1 = __importDefault(__webpack_require__(50192));
296
+ class LayeredCache {
297
+ constructor() {
492
298
  this.layers = [new MemoryCache_1.default(), new DiskCache_1.default()];
493
299
  }
494
- LayeredCache.prototype.get = function (locale) {
495
- var cached = this.getLastModifiedLayer(locale);
496
- if (!cached) {
300
+ async get(locale) {
301
+ const cache = this.getLastModifiedLayer(locale);
302
+ if (!cache) {
497
303
  return Promise.resolve(undefined);
498
304
  }
499
- return cached.get(locale);
500
- };
501
- LayeredCache.prototype.getLastModifiedTimestamp = function (locale) {
502
- var cached = this.getLastModifiedLayer(locale);
503
- if (!cached) {
305
+ const [memoryCache, diskCache] = this.layers;
306
+ const value = await cache.get(locale);
307
+ if (cache === diskCache && typeof value !== 'undefined') {
308
+ await memoryCache.set(locale, value);
309
+ }
310
+ return value;
311
+ }
312
+ getLastModifiedTimestamp(locale) {
313
+ const cache = this.getLastModifiedLayer(locale);
314
+ if (!cache) {
504
315
  return undefined;
505
316
  }
506
- return cached.getLastModifiedTimestamp(locale);
507
- };
508
- LayeredCache.prototype.has = function (locale) {
509
- return this.layers.some(function (cache) { return cache.has(locale); });
510
- };
511
- LayeredCache.prototype.isStale = function (locale) {
512
- if (this.layers.some(function (cache) { return cache.isStale(locale); })) {
317
+ return cache.getLastModifiedTimestamp(locale);
318
+ }
319
+ has(locale) {
320
+ return this.layers.some((cache) => cache.has(locale));
321
+ }
322
+ isStale(locale) {
323
+ if (this.layers.some((cache) => cache.isStale(locale))) {
513
324
  return true;
514
325
  }
515
- if (this.layers.every(function (cache) { return typeof cache.isStale(locale) === 'undefined'; })) {
326
+ if (this.layers.every((cache) => typeof cache.isStale(locale) === 'undefined')) {
516
327
  return undefined;
517
328
  }
518
329
  return false;
519
- };
520
- LayeredCache.prototype.set = function (locale, trie) {
521
- return __awaiter(this, void 0, void 0, function () {
522
- return __generator(this, function (_a) {
523
- switch (_a.label) {
524
- case 0: return [4 /*yield*/, Promise.all(this.layers.map(function (cache) { return cache.set(locale, trie); }))];
525
- case 1:
526
- _a.sent();
527
- return [2 /*return*/];
528
- }
529
- });
530
- });
531
- };
532
- LayeredCache.prototype.getLastModifiedLayer = function (locale) {
533
- var layers = this.layers.filter(function (cache) { return cache.has(locale); });
534
- var _a = __read(__spreadArray([], __read(layers), false).sort((0, createCacheTimestampComparator_1.default)(locale)), 1), cached = _a[0];
330
+ }
331
+ async set(locale, trie) {
332
+ const [memoryCache, diskCache] = this.layers;
333
+ await diskCache.set(locale, trie);
334
+ await memoryCache.set(locale, trie);
335
+ }
336
+ getLastModifiedLayer(locale) {
337
+ const layers = this.layers.filter((cache) => cache.has(locale));
338
+ const [cached] = [...layers].sort((0, createCacheTimestampComparator_1.default)(locale));
535
339
  return cached;
536
- };
537
- return LayeredCache;
538
- }());
340
+ }
341
+ }
539
342
  exports["default"] = LayeredCache;
540
343
 
541
344
 
@@ -546,104 +349,59 @@ exports["default"] = LayeredCache;
546
349
 
547
350
 
548
351
  Object.defineProperty(exports, "__esModule", ({ value: true }));
549
- var constants_1 = __webpack_require__(75823);
550
- var MemoryCache = /** @class */ (function () {
551
- function MemoryCache() {
352
+ const constants_1 = __webpack_require__(75823);
353
+ class MemoryCache {
354
+ constructor() {
552
355
  this.cache = {};
553
356
  this.cacheTimestamps = {};
554
357
  }
555
- MemoryCache.prototype.get = function (locale) {
358
+ get(locale) {
556
359
  return Promise.resolve(this.cache[locale]);
557
- };
558
- MemoryCache.prototype.getLastModifiedTimestamp = function (locale) {
360
+ }
361
+ getLastModifiedTimestamp(locale) {
559
362
  return this.cacheTimestamps[locale];
560
- };
561
- MemoryCache.prototype.has = function (locale) {
363
+ }
364
+ has(locale) {
562
365
  return typeof this.cache[locale] !== 'undefined';
563
- };
564
- MemoryCache.prototype.isStale = function (locale) {
565
- var timestamp = this.getLastModifiedTimestamp(locale);
366
+ }
367
+ isStale(locale) {
368
+ const timestamp = this.getLastModifiedTimestamp(locale);
566
369
  if (!this.has(locale) || typeof timestamp === 'undefined') {
567
370
  return undefined;
568
371
  }
569
- var timeSinceModification = Math.abs(timestamp - Date.now());
372
+ const timeSinceModification = Math.abs(timestamp - Date.now());
570
373
  return timeSinceModification > constants_1.CACHE_STALE_THRESHOLD;
571
- };
572
- MemoryCache.prototype.set = function (locale, trie) {
374
+ }
375
+ set(locale, trie) {
573
376
  this.cacheTimestamps[locale] = Date.now();
574
377
  this.cache[locale] = trie;
575
378
  return Promise.resolve();
576
- };
577
- return MemoryCache;
578
- }());
379
+ }
380
+ }
579
381
  exports["default"] = MemoryCache;
580
382
 
581
383
 
582
384
  /***/ }),
583
385
 
584
386
  /***/ 26554:
585
- /***/ (function(__unused_webpack_module, exports) {
387
+ /***/ ((__unused_webpack_module, exports) => {
586
388
 
587
389
 
588
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
589
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
590
- return new (P || (P = Promise))(function (resolve, reject) {
591
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
592
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
593
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
594
- step((generator = generator.apply(thisArg, _arguments || [])).next());
595
- });
596
- };
597
- var __generator = (this && this.__generator) || function (thisArg, body) {
598
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
599
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
600
- function verb(n) { return function (v) { return step([n, v]); }; }
601
- function step(op) {
602
- if (f) throw new TypeError("Generator is already executing.");
603
- while (_) try {
604
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
605
- if (y = 0, t) op = [op[0] & 2, t.value];
606
- switch (op[0]) {
607
- case 0: case 1: t = op; break;
608
- case 4: _.label++; return { value: op[1], done: false };
609
- case 5: _.label++; y = op[1]; op = [0]; continue;
610
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
611
- default:
612
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
613
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
614
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
615
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
616
- if (t[2]) _.ops.pop();
617
- _.trys.pop(); continue;
618
- }
619
- op = body.call(thisArg, _);
620
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
621
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
622
- }
623
- };
624
390
  Object.defineProperty(exports, "__esModule", ({ value: true }));
625
- var createAsyncProxy = function (asyncCallback) {
626
- var promise = null;
627
- return function () { return __awaiter(void 0, void 0, void 0, function () {
628
- return __generator(this, function (_a) {
629
- switch (_a.label) {
630
- case 0:
631
- if (promise) {
632
- return [2 /*return*/, promise];
633
- }
634
- _a.label = 1;
635
- case 1:
636
- _a.trys.push([1, , 3, 4]);
637
- promise = asyncCallback();
638
- return [4 /*yield*/, promise];
639
- case 2: return [2 /*return*/, _a.sent()];
640
- case 3:
641
- promise = null;
642
- return [7 /*endfinally*/];
643
- case 4: return [2 /*return*/];
644
- }
645
- });
646
- }); };
391
+ const createAsyncProxy = (asyncCallback) => {
392
+ let promise = null;
393
+ return async () => {
394
+ if (promise) {
395
+ return promise;
396
+ }
397
+ try {
398
+ promise = asyncCallback();
399
+ return await promise;
400
+ }
401
+ finally {
402
+ promise = null;
403
+ }
404
+ };
647
405
  };
648
406
  exports["default"] = createAsyncProxy;
649
407
 
@@ -655,10 +413,10 @@ exports["default"] = createAsyncProxy;
655
413
 
656
414
 
657
415
  Object.defineProperty(exports, "__esModule", ({ value: true }));
658
- var createCacheTimestampComparator = function (locale) {
659
- return function (a, b) {
660
- var aTimestamp = a.getLastModifiedTimestamp(locale);
661
- var bTimestamp = b.getLastModifiedTimestamp(locale);
416
+ const createCacheTimestampComparator = (locale) => {
417
+ return (a, b) => {
418
+ const aTimestamp = a.getLastModifiedTimestamp(locale);
419
+ const bTimestamp = b.getLastModifiedTimestamp(locale);
662
420
  if (aTimestamp === bTimestamp) {
663
421
  return 0;
664
422
  }
@@ -680,64 +438,20 @@ exports["default"] = createCacheTimestampComparator;
680
438
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
681
439
 
682
440
 
683
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
684
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
685
- return new (P || (P = Promise))(function (resolve, reject) {
686
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
687
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
688
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
689
- step((generator = generator.apply(thisArg, _arguments || [])).next());
690
- });
691
- };
692
- var __generator = (this && this.__generator) || function (thisArg, body) {
693
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
694
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
695
- function verb(n) { return function (v) { return step([n, v]); }; }
696
- function step(op) {
697
- if (f) throw new TypeError("Generator is already executing.");
698
- while (_) try {
699
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
700
- if (y = 0, t) op = [op[0] & 2, t.value];
701
- switch (op[0]) {
702
- case 0: case 1: t = op; break;
703
- case 4: _.label++; return { value: op[1], done: false };
704
- case 5: _.label++; y = op[1]; op = [0]; continue;
705
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
706
- default:
707
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
708
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
709
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
710
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
711
- if (t[2]) _.ops.pop();
712
- _.trys.pop(); continue;
713
- }
714
- op = body.call(thisArg, _);
715
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
716
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
717
- }
718
- };
719
441
  var __importDefault = (this && this.__importDefault) || function (mod) {
720
442
  return (mod && mod.__esModule) ? mod : { "default": mod };
721
443
  };
722
444
  Object.defineProperty(exports, "__esModule", ({ value: true }));
723
- var trie_1 = __webpack_require__(83140);
724
- var logger_1 = __importDefault(__webpack_require__(52954));
725
- var word_lists_1 = __webpack_require__(51585);
726
- var downloadDictionary = function (locale) { return __awaiter(void 0, void 0, void 0, function () {
727
- var words, trie;
728
- return __generator(this, function (_a) {
729
- switch (_a.label) {
730
- case 0:
731
- logger_1.default.info('downloadDictionary', { locale: locale });
732
- return [4 /*yield*/, (0, word_lists_1.getWordList)(locale)];
733
- case 1:
734
- words = _a.sent();
735
- logger_1.default.info('downloadDictionary - success', { locale: locale });
736
- trie = trie_1.Trie.fromArray(words);
737
- return [2 /*return*/, trie];
738
- }
739
- });
740
- }); };
445
+ const trie_1 = __webpack_require__(83140);
446
+ const logger_1 = __importDefault(__webpack_require__(52954));
447
+ const word_lists_1 = __webpack_require__(51585);
448
+ const downloadDictionary = async (locale) => {
449
+ logger_1.default.info('downloadDictionary', { locale });
450
+ const words = await (0, word_lists_1.getWordList)(locale);
451
+ logger_1.default.info('downloadDictionary - success', { locale });
452
+ const trie = trie_1.Trie.fromArray(words);
453
+ return trie;
454
+ };
741
455
  exports["default"] = downloadDictionary;
742
456
 
743
457
 
@@ -751,10 +465,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
751
465
  return (mod && mod.__esModule) ? mod : { "default": mod };
752
466
  };
753
467
  Object.defineProperty(exports, "__esModule", ({ value: true }));
754
- var path_1 = __importDefault(__webpack_require__(71017));
755
- var constants_1 = __webpack_require__(75823);
756
- var getDictionaryFilepath = function (locale) {
757
- return path_1.default.resolve(constants_1.OUTPUT_DIRECTORY, "".concat(locale, ".txt"));
468
+ const path_1 = __importDefault(__webpack_require__(71017));
469
+ const constants_1 = __webpack_require__(75823);
470
+ const getDictionaryFilepath = (locale) => {
471
+ return path_1.default.resolve(constants_1.OUTPUT_DIRECTORY, `${locale}.txt`);
758
472
  };
759
473
  exports["default"] = getDictionaryFilepath;
760
474
 
@@ -796,61 +510,23 @@ Object.defineProperty(exports, "writeFile", ({ enumerable: true, get: function (
796
510
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
797
511
 
798
512
 
799
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
800
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
801
- return new (P || (P = Promise))(function (resolve, reject) {
802
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
803
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
804
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
805
- step((generator = generator.apply(thisArg, _arguments || [])).next());
806
- });
807
- };
808
- var __generator = (this && this.__generator) || function (thisArg, body) {
809
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
810
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
811
- function verb(n) { return function (v) { return step([n, v]); }; }
812
- function step(op) {
813
- if (f) throw new TypeError("Generator is already executing.");
814
- while (_) try {
815
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
816
- if (y = 0, t) op = [op[0] & 2, t.value];
817
- switch (op[0]) {
818
- case 0: case 1: t = op; break;
819
- case 4: _.label++; return { value: op[1], done: false };
820
- case 5: _.label++; y = op[1]; op = [0]; continue;
821
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
822
- default:
823
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
824
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
825
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
826
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
827
- if (t[2]) _.ops.pop();
828
- _.trys.pop(); continue;
829
- }
830
- op = body.call(thisArg, _);
831
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
832
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
833
- }
834
- };
835
513
  var __importDefault = (this && this.__importDefault) || function (mod) {
836
514
  return (mod && mod.__esModule) ? mod : { "default": mod };
837
515
  };
838
516
  Object.defineProperty(exports, "__esModule", ({ value: true }));
839
- var fs_1 = __importDefault(__webpack_require__(57147));
840
- var readFile = function (filepath) { return __awaiter(void 0, void 0, void 0, function () {
841
- return __generator(this, function (_a) {
842
- return [2 /*return*/, new Promise(function (resolve, reject) {
843
- fs_1.default.readFile(filepath, { encoding: 'utf-8' }, function (error, data) {
844
- if (error) {
845
- reject();
846
- }
847
- else {
848
- resolve(data.toString());
849
- }
850
- });
851
- })];
517
+ const fs_1 = __importDefault(__webpack_require__(57147));
518
+ const readFile = async (filepath) => {
519
+ return new Promise((resolve, reject) => {
520
+ fs_1.default.readFile(filepath, { encoding: 'utf-8' }, (error, data) => {
521
+ if (error) {
522
+ reject();
523
+ }
524
+ else {
525
+ resolve(data.toString());
526
+ }
527
+ });
852
528
  });
853
- }); };
529
+ };
854
530
  exports["default"] = readFile;
855
531
 
856
532
 
@@ -860,61 +536,23 @@ exports["default"] = readFile;
860
536
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
861
537
 
862
538
 
863
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
864
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
865
- return new (P || (P = Promise))(function (resolve, reject) {
866
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
867
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
868
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
869
- step((generator = generator.apply(thisArg, _arguments || [])).next());
870
- });
871
- };
872
- var __generator = (this && this.__generator) || function (thisArg, body) {
873
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
874
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
875
- function verb(n) { return function (v) { return step([n, v]); }; }
876
- function step(op) {
877
- if (f) throw new TypeError("Generator is already executing.");
878
- while (_) try {
879
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
880
- if (y = 0, t) op = [op[0] & 2, t.value];
881
- switch (op[0]) {
882
- case 0: case 1: t = op; break;
883
- case 4: _.label++; return { value: op[1], done: false };
884
- case 5: _.label++; y = op[1]; op = [0]; continue;
885
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
886
- default:
887
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
888
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
889
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
890
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
891
- if (t[2]) _.ops.pop();
892
- _.trys.pop(); continue;
893
- }
894
- op = body.call(thisArg, _);
895
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
896
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
897
- }
898
- };
899
539
  var __importDefault = (this && this.__importDefault) || function (mod) {
900
540
  return (mod && mod.__esModule) ? mod : { "default": mod };
901
541
  };
902
542
  Object.defineProperty(exports, "__esModule", ({ value: true }));
903
- var fs_1 = __importDefault(__webpack_require__(57147));
904
- var writeFile = function (filepath, data) { return __awaiter(void 0, void 0, void 0, function () {
905
- return __generator(this, function (_a) {
906
- return [2 /*return*/, new Promise(function (resolve, reject) {
907
- fs_1.default.writeFile(filepath, data, function (error) {
908
- if (error) {
909
- reject();
910
- }
911
- else {
912
- resolve();
913
- }
914
- });
915
- })];
543
+ const fs_1 = __importDefault(__webpack_require__(57147));
544
+ const writeFile = async (filepath, data) => {
545
+ return new Promise((resolve, reject) => {
546
+ fs_1.default.writeFile(filepath, data, (error) => {
547
+ if (error) {
548
+ reject();
549
+ }
550
+ else {
551
+ resolve();
552
+ }
553
+ });
916
554
  });
917
- }); };
555
+ };
918
556
  exports["default"] = writeFile;
919
557
 
920
558
 
@@ -1014,213 +652,150 @@ const validateRequest = ({ board , characters , config })=>{
1014
652
  /***/ }),
1015
653
 
1016
654
  /***/ 6700:
1017
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
655
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1018
656
 
1019
657
 
1020
- var __read = (this && this.__read) || function (o, n) {
1021
- var m = typeof Symbol === "function" && o[Symbol.iterator];
1022
- if (!m) return o;
1023
- var i = m.call(o), r, ar = [], e;
1024
- try {
1025
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
1026
- }
1027
- catch (error) { e = { error: error }; }
1028
- finally {
1029
- try {
1030
- if (r && !r.done && (m = i["return"])) m.call(i);
1031
- }
1032
- finally { if (e) throw e.error; }
1033
- }
1034
- return ar;
1035
- };
1036
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
1037
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1038
- if (ar || !(i in from)) {
1039
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1040
- ar[i] = from[i];
1041
- }
1042
- }
1043
- return to.concat(ar || Array.prototype.slice.call(from));
1044
- };
1045
658
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1046
- var constants_1 = __webpack_require__(38436);
1047
- var types_1 = __webpack_require__(46452);
1048
- var PatternsFiller = /** @class */ (function () {
1049
- function PatternsFiller(config, trie) {
659
+ const constants_1 = __webpack_require__(38436);
660
+ const types_1 = __webpack_require__(46452);
661
+ class PatternsFiller {
662
+ constructor(config, trie) {
1050
663
  this.config = config;
1051
664
  this.trie = trie;
1052
665
  }
1053
- PatternsFiller.prototype.fill = function (pattern, tiles) {
1054
- var patterns = [];
666
+ fill(pattern, tiles) {
667
+ const patterns = [];
1055
668
  if (pattern.getNumberOfEmptyCells() > tiles.length) {
1056
669
  return [];
1057
670
  }
1058
- var onPatternFound = function (newPattern) { return patterns.push(newPattern); };
1059
- var tilesPermutations = this.generateBlankTilesPermutations(tiles);
1060
- for (var index = 0; index < tilesPermutations.length; ++index) {
1061
- var tilesPermutation = tilesPermutations[index];
671
+ const onPatternFound = (newPattern) => patterns.push(newPattern);
672
+ const tilesPermutations = this.generateBlankTilesPermutations(tiles);
673
+ for (let index = 0; index < tilesPermutations.length; ++index) {
674
+ const tilesPermutation = tilesPermutations[index];
1062
675
  this.fillPattern(pattern, String(pattern), tilesPermutation, onPatternFound);
1063
676
  }
1064
677
  return patterns;
1065
- };
1066
- PatternsFiller.prototype.fillPattern = function (pattern, word, tiles, onPatternFound) {
1067
- var indexOfFirstCellWithoutTile = pattern.getIndexOfFirstCellWithoutTile();
678
+ }
679
+ fillPattern(pattern, word, tiles, onPatternFound) {
680
+ const indexOfFirstCellWithoutTile = pattern.getIndexOfFirstCellWithoutTile();
1068
681
  if (indexOfFirstCellWithoutTile === -1) {
1069
682
  if (this.canAddPattern(pattern, word)) {
1070
683
  onPatternFound(pattern.clone());
1071
684
  }
1072
685
  }
1073
686
  else {
1074
- for (var index = 0; index < tiles.length; ++index) {
1075
- var tile = tiles[index];
1076
- var remainingTiles = tiles.slice(0, index).concat(tiles.slice(index + 1));
1077
- var previousTile = pattern.cells[indexOfFirstCellWithoutTile].tile;
687
+ for (let index = 0; index < tiles.length; ++index) {
688
+ const tile = tiles[index];
689
+ const previousTile = pattern.cells[indexOfFirstCellWithoutTile].tile;
1078
690
  pattern.cells[indexOfFirstCellWithoutTile].tile = tile;
1079
- var indexOfNextCellWithoutTile = pattern.getIndexOfFirstCellWithoutTile();
1080
- var indexOfFirstEmptyLetter = word.indexOf(constants_1.EMPTY_CELL);
1081
- var newWordPrefix = word.substring(0, indexOfFirstEmptyLetter) + tile.character;
1082
- var newWord = newWordPrefix + word.substring(indexOfFirstEmptyLetter + 1);
691
+ const indexOfNextCellWithoutTile = pattern.getIndexOfFirstCellWithoutTile();
692
+ const indexOfFirstEmptyLetter = word.indexOf(constants_1.EMPTY_CELL);
693
+ const newWordPrefix = word.substring(0, indexOfFirstEmptyLetter) + tile.character;
694
+ const newWord = newWordPrefix + word.substring(indexOfFirstEmptyLetter + 1);
1083
695
  if (indexOfNextCellWithoutTile === -1) {
1084
696
  if (this.canAddPattern(pattern, newWord)) {
1085
697
  onPatternFound(pattern.clone());
1086
698
  }
1087
699
  }
1088
700
  else if (this.trie.hasPrefix(newWordPrefix)) {
1089
- this.fillPattern(pattern, newWord, remainingTiles, onPatternFound);
701
+ tiles.splice(index, 1);
702
+ this.fillPattern(pattern, newWord, tiles, onPatternFound);
703
+ tiles.splice(index, 0, tile);
1090
704
  }
1091
705
  pattern.cells[indexOfFirstCellWithoutTile].tile = previousTile;
1092
706
  }
1093
707
  }
1094
- };
1095
- PatternsFiller.prototype.canAddPattern = function (pattern, word) {
1096
- var _this = this;
708
+ }
709
+ canAddPattern(pattern, word) {
1097
710
  return (this.trie.has(word) &&
1098
711
  pattern
1099
712
  .getCollisions()
1100
713
  .map(String)
1101
- .every(function (collision) { return _this.trie.has(collision); }));
1102
- };
1103
- PatternsFiller.prototype.generateBlankTilesPermutations = function (tiles) {
1104
- var _this = this;
1105
- var alphabet = this.config.alphabet;
1106
- var firstBlankIndex = tiles.findIndex(function (_a) {
1107
- var character = _a.character, isBlank = _a.isBlank;
1108
- return isBlank && !alphabet.includes(character);
1109
- });
714
+ .every((collision) => this.trie.has(collision)));
715
+ }
716
+ generateBlankTilesPermutations(tiles) {
717
+ const { alphabet } = this.config;
718
+ const firstBlankIndex = tiles.findIndex(({ character, isBlank }) => isBlank && !alphabet.includes(character));
1110
719
  if (firstBlankIndex === -1) {
1111
720
  return [tiles];
1112
721
  }
1113
- var remainingTiles = tiles.slice(0, firstBlankIndex).concat(tiles.slice(firstBlankIndex + 1));
1114
- return this.config.alphabet.reduce(function (permutations, character) {
1115
- var newTile = new types_1.Tile({ character: character, isBlank: true });
1116
- var newTiles = __spreadArray(__spreadArray([], __read(remainingTiles), false), [newTile], false);
1117
- return permutations.concat(_this.generateBlankTilesPermutations(newTiles));
722
+ const remainingTiles = tiles.slice(0, firstBlankIndex).concat(tiles.slice(firstBlankIndex + 1));
723
+ return this.config.alphabet.reduce((permutations, character) => {
724
+ const newTile = new types_1.Tile({ character, isBlank: true });
725
+ const newTiles = [...remainingTiles, newTile];
726
+ return permutations.concat(this.generateBlankTilesPermutations(newTiles));
1118
727
  }, []);
1119
- };
1120
- return PatternsFiller;
1121
- }());
728
+ }
729
+ }
1122
730
  exports["default"] = PatternsFiller;
1123
731
 
1124
732
 
1125
733
  /***/ }),
1126
734
 
1127
735
  /***/ 34196:
1128
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
736
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1129
737
 
1130
738
 
1131
- var __read = (this && this.__read) || function (o, n) {
1132
- var m = typeof Symbol === "function" && o[Symbol.iterator];
1133
- if (!m) return o;
1134
- var i = m.call(o), r, ar = [], e;
1135
- try {
1136
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
1137
- }
1138
- catch (error) { e = { error: error }; }
1139
- finally {
1140
- try {
1141
- if (r && !r.done && (m = i["return"])) m.call(i);
1142
- }
1143
- finally { if (e) throw e.error; }
1144
- }
1145
- return ar;
1146
- };
1147
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
1148
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1149
- if (ar || !(i in from)) {
1150
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1151
- ar[i] = from[i];
1152
- }
1153
- }
1154
- return to.concat(ar || Array.prototype.slice.call(from));
1155
- };
1156
739
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1157
- var types_1 = __webpack_require__(46452);
1158
- var PatternsGenerator = /** @class */ (function () {
1159
- function PatternsGenerator(config) {
740
+ const types_1 = __webpack_require__(46452);
741
+ class PatternsGenerator {
742
+ constructor(config) {
1160
743
  this.config = config;
1161
744
  }
1162
- PatternsGenerator.prototype.generate = function (board) {
1163
- return __spreadArray(__spreadArray([], __read(this.generateHorizontal(board)), false), __read(this.generateVertical(board)), false);
1164
- };
1165
- PatternsGenerator.prototype.generateHorizontal = function (board) {
745
+ generate(board) {
746
+ return [...this.generateHorizontal(board), ...this.generateVertical(board)];
747
+ }
748
+ generateHorizontal(board) {
1166
749
  return this.generatePatterns({
1167
- board: board,
1168
- getNthVector: function (index) { return board.getRow(index); },
750
+ board,
751
+ getNthVector: (index) => board.getRow(index),
1169
752
  numberOfVectors: this.config.boardHeight,
1170
753
  PatternModel: types_1.HorizontalPattern,
1171
754
  });
1172
- };
1173
- PatternsGenerator.prototype.generateVertical = function (board) {
755
+ }
756
+ generateVertical(board) {
1174
757
  return this.generatePatterns({
1175
- board: board,
1176
- getNthVector: function (index) { return board.getColumn(index); },
758
+ board,
759
+ getNthVector: (index) => board.getColumn(index),
1177
760
  numberOfVectors: this.config.boardWidth,
1178
761
  PatternModel: types_1.VerticalPattern,
1179
762
  });
1180
- };
1181
- PatternsGenerator.prototype.generatePatterns = function (_a) {
1182
- var _this = this;
1183
- var board = _a.board, getNthVector = _a.getNthVector, numberOfVectors = _a.numberOfVectors, PatternModel = _a.PatternModel;
1184
- return this.generateVectors({ getNthVector: getNthVector, numberOfVectors: numberOfVectors }).reduce(function (patterns, cells) {
1185
- return patterns.concat(_this.generateCellsPatterns({ board: board, PatternModel: PatternModel, cells: cells }));
763
+ }
764
+ generatePatterns({ board, getNthVector, numberOfVectors, PatternModel, }) {
765
+ return this.generateVectors({ getNthVector, numberOfVectors }).reduce((patterns, cells) => {
766
+ return patterns.concat(this.generateCellsPatterns({ board, PatternModel, cells }));
1186
767
  }, []);
1187
- };
1188
- PatternsGenerator.prototype.generateVectors = function (_a) {
1189
- var getNthVector = _a.getNthVector, numberOfVectors = _a.numberOfVectors;
768
+ }
769
+ generateVectors({ getNthVector, numberOfVectors, }) {
1190
770
  return Array(numberOfVectors)
1191
771
  .fill(0)
1192
- .map(function (_, index) { return getNthVector(index); });
1193
- };
1194
- PatternsGenerator.prototype.generateCellsPatterns = function (_a) {
1195
- var _this = this;
1196
- var board = _a.board, cells = _a.cells, PatternModel = _a.PatternModel;
1197
- return this.generateStartIndices(cells).reduce(function (patterns, startIndex) {
1198
- return patterns.concat(_this.generateEndIndices(cells, startIndex).reduce(function (placeablePatterns, endIndex) {
1199
- var pattern = new PatternModel({
1200
- board: board,
1201
- cells: cells.slice(startIndex, endIndex + 1),
1202
- });
1203
- if (pattern.canBePlaced(_this.config)) {
1204
- placeablePatterns.push(pattern);
1205
- }
1206
- return placeablePatterns;
1207
- }, []));
1208
- }, []);
1209
- };
1210
- PatternsGenerator.prototype.generateStartIndices = function (cells) {
772
+ .map((_, index) => getNthVector(index));
773
+ }
774
+ generateCellsPatterns({ board, cells, PatternModel, }) {
775
+ return this.generateStartIndices(cells).reduce((patterns, startIndex) => patterns.concat(this.generateEndIndices(cells, startIndex).reduce((placeablePatterns, endIndex) => {
776
+ const pattern = new PatternModel({
777
+ board,
778
+ cells: cells.slice(startIndex, endIndex + 1),
779
+ });
780
+ if (pattern.canBePlaced(this.config)) {
781
+ placeablePatterns.push(pattern);
782
+ }
783
+ return placeablePatterns;
784
+ }, [])), []);
785
+ }
786
+ generateStartIndices(cells) {
1211
787
  return Array(cells.length - 1)
1212
788
  .fill(0)
1213
- .map(function (_, startIndex) { return startIndex; })
1214
- .filter(function (startIndex) { return startIndex === 0 || !cells[startIndex - 1].hasTile(); });
1215
- };
1216
- PatternsGenerator.prototype.generateEndIndices = function (cells, startIndex) {
789
+ .map((_, startIndex) => startIndex)
790
+ .filter((startIndex) => startIndex === 0 || !cells[startIndex - 1].hasTile());
791
+ }
792
+ generateEndIndices(cells, startIndex) {
1217
793
  return Array(cells.length - startIndex - 1)
1218
794
  .fill(0)
1219
- .map(function (_, endIndex) { return endIndex + startIndex + 1; })
1220
- .filter(function (endIndex) { return endIndex >= cells.length - 1 || !cells[endIndex + 1].hasTile(); });
1221
- };
1222
- return PatternsGenerator;
1223
- }());
795
+ .map((_, endIndex) => endIndex + startIndex + 1)
796
+ .filter((endIndex) => endIndex >= cells.length - 1 || !cells[endIndex + 1].hasTile());
797
+ }
798
+ }
1224
799
  exports["default"] = PatternsGenerator;
1225
800
 
1226
801
 
@@ -1231,15 +806,13 @@ exports["default"] = PatternsGenerator;
1231
806
 
1232
807
 
1233
808
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1234
- var constants_1 = __webpack_require__(38436);
1235
- var ScoresCalculator = /** @class */ (function () {
1236
- function ScoresCalculator(config) {
1237
- var _this = this;
1238
- this.reduceCellScore = function (_a, cell) {
1239
- var multiplier = _a.multiplier, score = _a.score;
1240
- var bonus = _this.config.getCellBonus(cell);
1241
- var _b = bonus && bonus.canApply(_this.config, cell) ? bonus.value : constants_1.NO_BONUS, characterMultiplier = _b.characterMultiplier, wordMultiplier = _b.wordMultiplier;
1242
- var characterScore = cell.tile.isBlank ? _this.config.blankScore : _this.config.pointsMap[cell.tile.character];
809
+ const constants_1 = __webpack_require__(38436);
810
+ class ScoresCalculator {
811
+ constructor(config) {
812
+ this.reduceCellScore = ({ multiplier, score }, cell) => {
813
+ const bonus = this.config.getCellBonus(cell);
814
+ const { characterMultiplier, wordMultiplier } = bonus && bonus.canApply(this.config, cell) ? bonus.value : constants_1.NO_BONUS;
815
+ const characterScore = cell.tile.isBlank ? this.config.blankScore : this.config.pointsMap[cell.tile.character];
1243
816
  return {
1244
817
  multiplier: multiplier * wordMultiplier,
1245
818
  score: score + characterScore * characterMultiplier,
@@ -1247,28 +820,26 @@ var ScoresCalculator = /** @class */ (function () {
1247
820
  };
1248
821
  this.config = config;
1249
822
  }
1250
- ScoresCalculator.prototype.calculate = function (pattern) {
823
+ calculate(pattern) {
1251
824
  return this.calculatePatternScoreWithCollisions(pattern) + this.calculateBonusScore(pattern);
1252
- };
1253
- ScoresCalculator.prototype.calculateBonusScore = function (pattern) {
1254
- var areAllTilesUsed = pattern.getNumberOfEmptyCells() === this.config.maximumNumberOfCharacters;
825
+ }
826
+ calculateBonusScore(pattern) {
827
+ const areAllTilesUsed = pattern.getNumberOfEmptyCells() === this.config.maximumNumberOfCharacters;
1255
828
  return areAllTilesUsed ? this.config.allTilesBonusScore : 0;
1256
- };
1257
- ScoresCalculator.prototype.calculatePatternScoreWithCollisions = function (pattern) {
1258
- var _this = this;
829
+ }
830
+ calculatePatternScoreWithCollisions(pattern) {
1259
831
  return pattern
1260
832
  .getCollisions()
1261
- .reduce(function (patternsScore, collisionPattern) { return patternsScore + _this.calculatePatternScore(collisionPattern); }, this.calculatePatternScore(pattern));
1262
- };
1263
- ScoresCalculator.prototype.calculatePatternScore = function (pattern) {
1264
- var _a = pattern.cells.reduce(this.reduceCellScore, {
833
+ .reduce((patternsScore, collisionPattern) => patternsScore + this.calculatePatternScore(collisionPattern), this.calculatePatternScore(pattern));
834
+ }
835
+ calculatePatternScore(pattern) {
836
+ const { multiplier, score } = pattern.cells.reduce(this.reduceCellScore, {
1265
837
  multiplier: 1,
1266
838
  score: 0,
1267
- }), multiplier = _a.multiplier, score = _a.score;
839
+ });
1268
840
  return score * multiplier;
1269
- };
1270
- return ScoresCalculator;
1271
- }());
841
+ }
842
+ }
1272
843
  exports["default"] = ScoresCalculator;
1273
844
 
1274
845
 
@@ -1282,35 +853,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1282
853
  return (mod && mod.__esModule) ? mod : { "default": mod };
1283
854
  };
1284
855
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1285
- var types_1 = __webpack_require__(46452);
1286
- var uniqBy_1 = __importDefault(__webpack_require__(50285));
1287
- var PatternsFiller_1 = __importDefault(__webpack_require__(6700));
1288
- var PatternsGenerator_1 = __importDefault(__webpack_require__(34196));
1289
- var ScoresCalculator_1 = __importDefault(__webpack_require__(19368));
1290
- var Solver = /** @class */ (function () {
1291
- function Solver(config, trie) {
856
+ const types_1 = __webpack_require__(46452);
857
+ const uniqBy_1 = __importDefault(__webpack_require__(50285));
858
+ const PatternsFiller_1 = __importDefault(__webpack_require__(6700));
859
+ const PatternsGenerator_1 = __importDefault(__webpack_require__(34196));
860
+ const ScoresCalculator_1 = __importDefault(__webpack_require__(19368));
861
+ class Solver {
862
+ constructor(config, trie) {
1292
863
  this.patternsFiller = new PatternsFiller_1.default(config, trie);
1293
864
  this.patternsGenerator = new PatternsGenerator_1.default(config);
1294
865
  this.scoresCalculator = new ScoresCalculator_1.default(config);
1295
866
  }
1296
- Solver.prototype.solve = function (board, tiles) {
1297
- var _this = this;
1298
- var patterns = this.patternsGenerator
867
+ solve(board, tiles) {
868
+ const patterns = this.patternsGenerator
1299
869
  .generate(board)
1300
- .reduce(function (filledPatterns, pattern) { return filledPatterns.concat(_this.patternsFiller.fill(pattern, tiles)); }, []);
1301
- var uniquePatterns = (0, uniqBy_1.default)(patterns, function (pattern) { return JSON.stringify(pattern.toJson()); });
1302
- var results = uniquePatterns.map(function (pattern, index) {
1303
- return new types_1.Result({
1304
- cells: pattern.cells,
1305
- id: index,
1306
- numberOfCollisions: pattern.getCollisions().length,
1307
- points: _this.scoresCalculator.calculate(pattern),
1308
- });
1309
- });
870
+ .reduce((filledPatterns, pattern) => filledPatterns.concat(this.patternsFiller.fill(pattern, tiles)), []);
871
+ const uniquePatterns = (0, uniqBy_1.default)(patterns, (pattern) => JSON.stringify(pattern.toJson()));
872
+ const results = uniquePatterns.map((pattern, index) => new types_1.Result({
873
+ cells: pattern.cells,
874
+ id: index,
875
+ numberOfCollisions: pattern.getCollisions().length,
876
+ points: this.scoresCalculator.calculate(pattern),
877
+ }));
1310
878
  return results;
1311
- };
1312
- return Solver;
1313
- }());
879
+ }
880
+ }
1314
881
  exports["default"] = Solver;
1315
882
 
1316
883
 
@@ -1332,219 +899,62 @@ Object.defineProperty(exports, "default", ({ enumerable: true, get: function ()
1332
899
  /***/ }),
1333
900
 
1334
901
  /***/ 61704:
1335
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
902
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1336
903
 
1337
904
 
1338
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1339
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1340
- return new (P || (P = Promise))(function (resolve, reject) {
1341
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1342
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1343
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1344
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1345
- });
1346
- };
1347
- var __generator = (this && this.__generator) || function (thisArg, body) {
1348
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1349
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1350
- function verb(n) { return function (v) { return step([n, v]); }; }
1351
- function step(op) {
1352
- if (f) throw new TypeError("Generator is already executing.");
1353
- while (_) try {
1354
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1355
- if (y = 0, t) op = [op[0] & 2, t.value];
1356
- switch (op[0]) {
1357
- case 0: case 1: t = op; break;
1358
- case 4: _.label++; return { value: op[1], done: false };
1359
- case 5: _.label++; y = op[1]; op = [0]; continue;
1360
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1361
- default:
1362
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1363
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1364
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1365
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1366
- if (t[2]) _.ops.pop();
1367
- _.trys.pop(); continue;
1368
- }
1369
- op = body.call(thisArg, _);
1370
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1371
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1372
- }
1373
- };
1374
905
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1375
- var lib_1 = __webpack_require__(60337);
1376
- var FILE_URL = 'https://raw.githubusercontent.com/HanSolo80/German-Dictionary/master/dictionary.txt';
1377
- var getDeDeWordList = function () { return __awaiter(void 0, void 0, void 0, function () {
1378
- return __generator(this, function (_a) {
1379
- return [2 /*return*/, (0, lib_1.getTxtWordList)(FILE_URL)];
1380
- });
1381
- }); };
906
+ const lib_1 = __webpack_require__(60337);
907
+ const FILE_URL = 'https://raw.githubusercontent.com/HanSolo80/German-Dictionary/master/dictionary.txt';
908
+ const getDeDeWordList = async () => {
909
+ return (0, lib_1.getTxtWordList)(FILE_URL);
910
+ };
1382
911
  exports["default"] = getDeDeWordList;
1383
912
 
1384
913
 
1385
914
  /***/ }),
1386
915
 
1387
916
  /***/ 3284:
1388
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
917
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1389
918
 
1390
919
 
1391
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1392
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1393
- return new (P || (P = Promise))(function (resolve, reject) {
1394
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1395
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1396
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1397
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1398
- });
1399
- };
1400
- var __generator = (this && this.__generator) || function (thisArg, body) {
1401
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1402
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1403
- function verb(n) { return function (v) { return step([n, v]); }; }
1404
- function step(op) {
1405
- if (f) throw new TypeError("Generator is already executing.");
1406
- while (_) try {
1407
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1408
- if (y = 0, t) op = [op[0] & 2, t.value];
1409
- switch (op[0]) {
1410
- case 0: case 1: t = op; break;
1411
- case 4: _.label++; return { value: op[1], done: false };
1412
- case 5: _.label++; y = op[1]; op = [0]; continue;
1413
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1414
- default:
1415
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1416
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1417
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1418
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1419
- if (t[2]) _.ops.pop();
1420
- _.trys.pop(); continue;
1421
- }
1422
- op = body.call(thisArg, _);
1423
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1424
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1425
- }
1426
- };
1427
920
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1428
- var lib_1 = __webpack_require__(60337);
1429
- var FILE_URL = 'https://www.wordgamedictionary.com/sowpods/download/sowpods.txt';
1430
- var getEnGbWordList = function () { return __awaiter(void 0, void 0, void 0, function () {
1431
- return __generator(this, function (_a) {
1432
- return [2 /*return*/, (0, lib_1.getTxtWordList)(FILE_URL)];
1433
- });
1434
- }); };
921
+ const lib_1 = __webpack_require__(60337);
922
+ const FILE_URL = 'https://www.wordgamedictionary.com/sowpods/download/sowpods.txt';
923
+ const getEnGbWordList = async () => {
924
+ return (0, lib_1.getTxtWordList)(FILE_URL);
925
+ };
1435
926
  exports["default"] = getEnGbWordList;
1436
927
 
1437
928
 
1438
929
  /***/ }),
1439
930
 
1440
931
  /***/ 163:
1441
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
932
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1442
933
 
1443
934
 
1444
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1445
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1446
- return new (P || (P = Promise))(function (resolve, reject) {
1447
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1448
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1449
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1450
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1451
- });
1452
- };
1453
- var __generator = (this && this.__generator) || function (thisArg, body) {
1454
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1455
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1456
- function verb(n) { return function (v) { return step([n, v]); }; }
1457
- function step(op) {
1458
- if (f) throw new TypeError("Generator is already executing.");
1459
- while (_) try {
1460
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1461
- if (y = 0, t) op = [op[0] & 2, t.value];
1462
- switch (op[0]) {
1463
- case 0: case 1: t = op; break;
1464
- case 4: _.label++; return { value: op[1], done: false };
1465
- case 5: _.label++; y = op[1]; op = [0]; continue;
1466
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1467
- default:
1468
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1469
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1470
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1471
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1472
- if (t[2]) _.ops.pop();
1473
- _.trys.pop(); continue;
1474
- }
1475
- op = body.call(thisArg, _);
1476
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1477
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1478
- }
1479
- };
1480
935
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1481
- var lib_1 = __webpack_require__(60337);
1482
- var FILE_URL = 'https://www.wordgamedictionary.com/twl06/download/twl06.txt';
1483
- var getEnUsWordList = function () { return __awaiter(void 0, void 0, void 0, function () {
1484
- return __generator(this, function (_a) {
1485
- return [2 /*return*/, (0, lib_1.getTxtWordList)(FILE_URL)];
1486
- });
1487
- }); };
936
+ const lib_1 = __webpack_require__(60337);
937
+ const FILE_URL = 'https://www.wordgamedictionary.com/twl06/download/twl06.txt';
938
+ const getEnUsWordList = async () => {
939
+ return (0, lib_1.getTxtWordList)(FILE_URL);
940
+ };
1488
941
  exports["default"] = getEnUsWordList;
1489
942
 
1490
943
 
1491
944
  /***/ }),
1492
945
 
1493
946
  /***/ 87537:
1494
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
947
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1495
948
 
1496
949
 
1497
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1498
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1499
- return new (P || (P = Promise))(function (resolve, reject) {
1500
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1501
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1502
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1503
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1504
- });
1505
- };
1506
- var __generator = (this && this.__generator) || function (thisArg, body) {
1507
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1508
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1509
- function verb(n) { return function (v) { return step([n, v]); }; }
1510
- function step(op) {
1511
- if (f) throw new TypeError("Generator is already executing.");
1512
- while (_) try {
1513
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1514
- if (y = 0, t) op = [op[0] & 2, t.value];
1515
- switch (op[0]) {
1516
- case 0: case 1: t = op; break;
1517
- case 4: _.label++; return { value: op[1], done: false };
1518
- case 5: _.label++; y = op[1]; op = [0]; continue;
1519
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1520
- default:
1521
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1522
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1523
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1524
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1525
- if (t[2]) _.ops.pop();
1526
- _.trys.pop(); continue;
1527
- }
1528
- op = body.call(thisArg, _);
1529
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1530
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1531
- }
1532
- };
1533
950
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1534
- var lib_1 = __webpack_require__(60337);
1535
- var FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/fise-2/master/fise-2.txt';
1536
- var getEsEsWordList = function () { return __awaiter(void 0, void 0, void 0, function () {
1537
- var words;
1538
- return __generator(this, function (_a) {
1539
- switch (_a.label) {
1540
- case 0: return [4 /*yield*/, (0, lib_1.getTxtWordList)(FILE_URL)];
1541
- case 1:
1542
- words = _a.sent();
1543
- return [2 /*return*/, words.map(normalizeWord)];
1544
- }
1545
- });
1546
- }); };
1547
- var normalizeWord = function (word) {
951
+ const lib_1 = __webpack_require__(60337);
952
+ const FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/fise-2/master/fise-2.txt';
953
+ const getEsEsWordList = async () => {
954
+ const words = await (0, lib_1.getTxtWordList)(FILE_URL);
955
+ return words.map(normalizeWord);
956
+ };
957
+ const normalizeWord = (word) => {
1548
958
  // normalization from https://stackoverflow.com/a/37511463
1549
959
  return word.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
1550
960
  };
@@ -1554,60 +964,19 @@ exports["default"] = getEsEsWordList;
1554
964
  /***/ }),
1555
965
 
1556
966
  /***/ 27098:
1557
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
967
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1558
968
 
1559
969
 
1560
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1561
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1562
- return new (P || (P = Promise))(function (resolve, reject) {
1563
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1564
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1565
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1566
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1567
- });
1568
- };
1569
- var __generator = (this && this.__generator) || function (thisArg, body) {
1570
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1571
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1572
- function verb(n) { return function (v) { return step([n, v]); }; }
1573
- function step(op) {
1574
- if (f) throw new TypeError("Generator is already executing.");
1575
- while (_) try {
1576
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1577
- if (y = 0, t) op = [op[0] & 2, t.value];
1578
- switch (op[0]) {
1579
- case 0: case 1: t = op; break;
1580
- case 4: _.label++; return { value: op[1], done: false };
1581
- case 5: _.label++; y = op[1]; op = [0]; continue;
1582
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1583
- default:
1584
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1585
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1586
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1587
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1588
- if (t[2]) _.ops.pop();
1589
- _.trys.pop(); continue;
1590
- }
1591
- op = body.call(thisArg, _);
1592
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1593
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1594
- }
1595
- };
1596
970
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1597
- var lib_1 = __webpack_require__(60337);
1598
- var FILE_URL = 'https://raw.githubusercontent.com/hbenbel/French-Dictionary/a573eab10cc798d7d5da7daab4d2ac0259bb46a3/dictionary/dictionary.txt';
1599
- var getFrFrWordList = function () { return __awaiter(void 0, void 0, void 0, function () {
1600
- var words;
1601
- return __generator(this, function (_a) {
1602
- switch (_a.label) {
1603
- case 0: return [4 /*yield*/, (0, lib_1.getTxtWordList)(FILE_URL)];
1604
- case 1:
1605
- words = _a.sent();
1606
- return [2 /*return*/, words.map(normalizeWord)];
1607
- }
1608
- });
1609
- }); };
1610
- var normalizeWord = function (word) {
971
+ const lib_1 = __webpack_require__(60337);
972
+ const FILE_URL =
973
+ // eslint-disable-next-line max-len
974
+ 'https://raw.githubusercontent.com/hbenbel/French-Dictionary/a573eab10cc798d7d5da7daab4d2ac0259bb46a3/dictionary/dictionary.txt';
975
+ const getFrFrWordList = async () => {
976
+ const words = await (0, lib_1.getTxtWordList)(FILE_URL);
977
+ return words.map(normalizeWord);
978
+ };
979
+ const normalizeWord = (word) => {
1611
980
  // normalization from https://stackoverflow.com/a/37511463
1612
981
  return word.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
1613
982
  };
@@ -1620,110 +989,53 @@ exports["default"] = getFrFrWordList;
1620
989
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1621
990
 
1622
991
 
1623
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1624
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1625
- return new (P || (P = Promise))(function (resolve, reject) {
1626
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1627
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1628
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1629
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1630
- });
1631
- };
1632
- var __generator = (this && this.__generator) || function (thisArg, body) {
1633
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1634
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1635
- function verb(n) { return function (v) { return step([n, v]); }; }
1636
- function step(op) {
1637
- if (f) throw new TypeError("Generator is already executing.");
1638
- while (_) try {
1639
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1640
- if (y = 0, t) op = [op[0] & 2, t.value];
1641
- switch (op[0]) {
1642
- case 0: case 1: t = op; break;
1643
- case 4: _.label++; return { value: op[1], done: false };
1644
- case 5: _.label++; y = op[1]; op = [0]; continue;
1645
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1646
- default:
1647
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1648
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1649
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1650
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1651
- if (t[2]) _.ops.pop();
1652
- _.trys.pop(); continue;
1653
- }
1654
- op = body.call(thisArg, _);
1655
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1656
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1657
- }
1658
- };
1659
992
  var __importDefault = (this && this.__importDefault) || function (mod) {
1660
993
  return (mod && mod.__esModule) ? mod : { "default": mod };
1661
994
  };
1662
995
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1663
- var cheerio_1 = __importDefault(__webpack_require__(55473));
1664
- var memfs_1 = __webpack_require__(28098);
1665
- var unzipper_1 = __importDefault(__webpack_require__(23428));
1666
- var url_1 = __webpack_require__(57310);
1667
- var lib_1 = __webpack_require__(60337);
1668
- var PAGE_URL = 'https://sjp.pl/sl/growy/';
1669
- var FILE_TO_EXTRACT_FROM_ZIP = 'slowa.txt';
1670
- var getPlPlWordList = function () { return __awaiter(void 0, void 0, void 0, function () {
1671
- var zipTempFilename, tempFilename, zipUrl, file, words;
1672
- return __generator(this, function (_a) {
1673
- switch (_a.label) {
1674
- case 0:
1675
- zipTempFilename = (0, lib_1.getTempFilename)();
1676
- tempFilename = (0, lib_1.getTempFilename)();
1677
- return [4 /*yield*/, fetchZipUrl(PAGE_URL)];
1678
- case 1:
1679
- zipUrl = _a.sent();
1680
- return [4 /*yield*/, (0, lib_1.downloadFile)(zipUrl, memfs_1.fs.createWriteStream(zipTempFilename))];
1681
- case 2:
1682
- _a.sent();
1683
- return [4 /*yield*/, unzip(zipTempFilename, tempFilename)];
1684
- case 3:
1685
- _a.sent();
1686
- memfs_1.fs.unlinkSync(zipTempFilename);
1687
- file = memfs_1.fs.readFileSync(tempFilename, 'utf-8');
1688
- memfs_1.fs.unlinkSync(tempFilename);
1689
- words = (0, lib_1.extractWords)(file.toString());
1690
- return [2 /*return*/, words];
1691
- }
1692
- });
1693
- }); };
1694
- var fetchZipUrl = function (url) { return __awaiter(void 0, void 0, void 0, function () {
1695
- var html, filename, href;
1696
- return __generator(this, function (_a) {
1697
- switch (_a.label) {
1698
- case 0: return [4 /*yield*/, (0, lib_1.downloadHtml)(url)];
1699
- case 1:
1700
- html = _a.sent();
1701
- return [4 /*yield*/, parseZipContainingPage(html)];
1702
- case 2:
1703
- filename = _a.sent();
1704
- href = new url_1.URL(filename, url).href;
1705
- return [2 /*return*/, href];
1706
- }
1707
- });
1708
- }); };
1709
- var parseZipContainingPage = function (html) {
1710
- var $ = cheerio_1.default.load(html);
1711
- var $links = $('a');
1712
- var links = Array.from($links)
1713
- .map(function (link) { return $(link).attr('href'); })
996
+ const cheerio_1 = __importDefault(__webpack_require__(55473));
997
+ const memfs_1 = __webpack_require__(28098);
998
+ const unzipper_1 = __importDefault(__webpack_require__(23428));
999
+ const url_1 = __webpack_require__(57310);
1000
+ const lib_1 = __webpack_require__(60337);
1001
+ const PAGE_URL = 'https://sjp.pl/sl/growy/';
1002
+ const FILE_TO_EXTRACT_FROM_ZIP = 'slowa.txt';
1003
+ const getPlPlWordList = async () => {
1004
+ const zipTempFilename = (0, lib_1.getTempFilename)();
1005
+ const tempFilename = (0, lib_1.getTempFilename)();
1006
+ const zipUrl = await fetchZipUrl(PAGE_URL);
1007
+ await (0, lib_1.downloadFile)(zipUrl, memfs_1.fs.createWriteStream(zipTempFilename));
1008
+ await unzip(zipTempFilename, tempFilename);
1009
+ memfs_1.fs.unlinkSync(zipTempFilename);
1010
+ const file = memfs_1.fs.readFileSync(tempFilename, 'utf-8');
1011
+ memfs_1.fs.unlinkSync(tempFilename);
1012
+ const words = (0, lib_1.extractWords)(file.toString());
1013
+ return words;
1014
+ };
1015
+ const fetchZipUrl = async (url) => {
1016
+ const html = await (0, lib_1.downloadHtml)(url);
1017
+ const filename = await parseZipContainingPage(html);
1018
+ const { href } = new url_1.URL(filename, url);
1019
+ return href;
1020
+ };
1021
+ const parseZipContainingPage = (html) => {
1022
+ const $ = cheerio_1.default.load(html);
1023
+ const $links = $('a');
1024
+ const links = Array.from($links)
1025
+ .map((link) => $(link).attr('href'))
1714
1026
  .filter(Boolean);
1715
- var zipFilename = links.find(function (link) { return link.endsWith('.zip'); });
1027
+ const zipFilename = links.find((link) => link.endsWith('.zip'));
1716
1028
  if (typeof zipFilename === 'undefined') {
1717
1029
  throw new Error('Cannot find link to zip file on the page');
1718
1030
  }
1719
1031
  return zipFilename;
1720
1032
  };
1721
- var unzip = function (zipFilename, outputFilename) {
1033
+ const unzip = (zipFilename, outputFilename) => {
1722
1034
  return memfs_1.fs
1723
1035
  .createReadStream(zipFilename)
1724
1036
  .pipe(unzipper_1.default.Parse())
1725
- .on('entry', function (entry) {
1726
- var fileName = entry.path;
1037
+ .on('entry', (entry) => {
1038
+ const fileName = entry.path;
1727
1039
  if (fileName === FILE_TO_EXTRACT_FROM_ZIP) {
1728
1040
  entry.pipe(memfs_1.fs.createWriteStream(outputFilename));
1729
1041
  }
@@ -1745,24 +1057,23 @@ exports["default"] = getPlPlWordList;
1745
1057
  var __importDefault = (this && this.__importDefault) || function (mod) {
1746
1058
  return (mod && mod.__esModule) ? mod : { "default": mod };
1747
1059
  };
1748
- var _a;
1749
1060
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1750
- var types_1 = __webpack_require__(46452);
1751
- var getDeDeWordList_1 = __importDefault(__webpack_require__(61704));
1752
- var getEnGbWordList_1 = __importDefault(__webpack_require__(3284));
1753
- var getEnUsWordList_1 = __importDefault(__webpack_require__(163));
1754
- var getEsEsWordList_1 = __importDefault(__webpack_require__(87537));
1755
- var getFrFrWordList_1 = __importDefault(__webpack_require__(27098));
1756
- var getPlPlWordList_1 = __importDefault(__webpack_require__(81848));
1757
- var localeMap = (_a = {},
1758
- _a[types_1.Locale.DE_DE] = getDeDeWordList_1.default,
1759
- _a[types_1.Locale.EN_GB] = getEnGbWordList_1.default,
1760
- _a[types_1.Locale.EN_US] = getEnUsWordList_1.default,
1761
- _a[types_1.Locale.ES_ES] = getEsEsWordList_1.default,
1762
- _a[types_1.Locale.FR_FR] = getFrFrWordList_1.default,
1763
- _a[types_1.Locale.PL_PL] = getPlPlWordList_1.default,
1764
- _a);
1765
- var getWordList = function (locale) { return localeMap[locale](); };
1061
+ const types_1 = __webpack_require__(46452);
1062
+ const getDeDeWordList_1 = __importDefault(__webpack_require__(61704));
1063
+ const getEnGbWordList_1 = __importDefault(__webpack_require__(3284));
1064
+ const getEnUsWordList_1 = __importDefault(__webpack_require__(163));
1065
+ const getEsEsWordList_1 = __importDefault(__webpack_require__(87537));
1066
+ const getFrFrWordList_1 = __importDefault(__webpack_require__(27098));
1067
+ const getPlPlWordList_1 = __importDefault(__webpack_require__(81848));
1068
+ const localeMap = {
1069
+ [types_1.Locale.DE_DE]: getDeDeWordList_1.default,
1070
+ [types_1.Locale.EN_GB]: getEnGbWordList_1.default,
1071
+ [types_1.Locale.EN_US]: getEnUsWordList_1.default,
1072
+ [types_1.Locale.ES_ES]: getEsEsWordList_1.default,
1073
+ [types_1.Locale.FR_FR]: getFrFrWordList_1.default,
1074
+ [types_1.Locale.PL_PL]: getPlPlWordList_1.default,
1075
+ };
1076
+ const getWordList = (locale) => localeMap[locale]();
1766
1077
  exports["default"] = getWordList;
1767
1078
 
1768
1079
 
@@ -1813,11 +1124,11 @@ __exportStar(__webpack_require__(60337), exports);
1813
1124
 
1814
1125
 
1815
1126
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1816
- var follow_redirects_1 = __webpack_require__(24396);
1817
- var downloadFile = function (url, outputStream) {
1818
- return new Promise(function (resolve, reject) {
1819
- var protocol = url.startsWith('https') ? follow_redirects_1.https : follow_redirects_1.http;
1820
- var request = protocol.get(url, function (response) {
1127
+ const follow_redirects_1 = __webpack_require__(24396);
1128
+ const downloadFile = (url, outputStream) => {
1129
+ return new Promise((resolve, reject) => {
1130
+ const protocol = url.startsWith('https') ? follow_redirects_1.https : follow_redirects_1.http;
1131
+ const request = protocol.get(url, (response) => {
1821
1132
  if (typeof response.statusCode === 'undefined' || response.statusCode >= 400) {
1822
1133
  reject();
1823
1134
  return;
@@ -1839,17 +1150,17 @@ exports["default"] = downloadFile;
1839
1150
 
1840
1151
 
1841
1152
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1842
- var follow_redirects_1 = __webpack_require__(24396);
1843
- var downloadHtml = function (url) {
1844
- return new Promise(function (resolve, reject) {
1845
- var protocol = url.startsWith('https') ? follow_redirects_1.https : follow_redirects_1.http;
1846
- protocol.get(url, function (response) {
1847
- var data = '';
1153
+ const follow_redirects_1 = __webpack_require__(24396);
1154
+ const downloadHtml = (url) => {
1155
+ return new Promise((resolve, reject) => {
1156
+ const protocol = url.startsWith('https') ? follow_redirects_1.https : follow_redirects_1.http;
1157
+ protocol.get(url, (response) => {
1158
+ let data = '';
1848
1159
  response.setEncoding('utf8');
1849
- response.on('data', function (chunk) {
1160
+ response.on('data', (chunk) => {
1850
1161
  data += chunk;
1851
1162
  });
1852
- response.on('end', function () {
1163
+ response.on('end', () => {
1853
1164
  resolve(data);
1854
1165
  });
1855
1166
  response.on('error', reject);
@@ -1869,11 +1180,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1869
1180
  return (mod && mod.__esModule) ? mod : { "default": mod };
1870
1181
  };
1871
1182
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1872
- var findFirstWordIndex_1 = __importDefault(__webpack_require__(47669));
1873
- var extractWords = function (file) {
1874
- var lines = file.replace(/\r/g, '').split('\n');
1875
- var firstWordIndex = (0, findFirstWordIndex_1.default)(lines);
1876
- var words = lines.slice(firstWordIndex).filter(Boolean);
1183
+ const findFirstWordIndex_1 = __importDefault(__webpack_require__(47669));
1184
+ const extractWords = (file) => {
1185
+ const lines = file.replace(/\r/g, '').split('\n');
1186
+ const firstWordIndex = (0, findFirstWordIndex_1.default)(lines);
1187
+ const words = lines.slice(firstWordIndex).filter(Boolean);
1877
1188
  return words;
1878
1189
  };
1879
1190
  exports["default"] = extractWords;
@@ -1886,12 +1197,12 @@ exports["default"] = extractWords;
1886
1197
 
1887
1198
 
1888
1199
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1889
- var findFirstWordIndex = function (lines) {
1890
- var firstWordIndex = lines.findIndex(function (line, index) {
1891
- var nextLine = line[index + 1] || '';
1892
- var isNextLineInOrder = line.localeCompare(nextLine) === 1;
1893
- var hasWhitespace = Boolean(line.match(/\s/));
1894
- var isEmpty = line.trim().length === 0;
1200
+ const findFirstWordIndex = (lines) => {
1201
+ const firstWordIndex = lines.findIndex((line, index) => {
1202
+ const nextLine = line[index + 1] || '';
1203
+ const isNextLineInOrder = line.localeCompare(nextLine) === 1;
1204
+ const hasWhitespace = Boolean(line.match(/\s/));
1205
+ const isEmpty = line.trim().length === 0;
1895
1206
  return !isEmpty && !hasWhitespace && isNextLineInOrder;
1896
1207
  });
1897
1208
  if (typeof firstWordIndex === 'undefined') {
@@ -1912,11 +1223,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1912
1223
  return (mod && mod.__esModule) ? mod : { "default": mod };
1913
1224
  };
1914
1225
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1915
- var crypto_1 = __importDefault(__webpack_require__(6113));
1916
- var getHash = function (bytes) {
1917
- if (bytes === void 0) { bytes = 8; }
1918
- return crypto_1.default.randomBytes(bytes).toString('hex');
1919
- };
1226
+ const crypto_1 = __importDefault(__webpack_require__(6113));
1227
+ const getHash = (bytes = 8) => crypto_1.default.randomBytes(bytes).toString('hex');
1920
1228
  exports["default"] = getHash;
1921
1229
 
1922
1230
 
@@ -1930,9 +1238,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1930
1238
  return (mod && mod.__esModule) ? mod : { "default": mod };
1931
1239
  };
1932
1240
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1933
- var getHash_1 = __importDefault(__webpack_require__(93938));
1934
- var getTempFilename = function () {
1935
- return "/".concat((0, getHash_1.default)(), ".txt");
1241
+ const getHash_1 = __importDefault(__webpack_require__(93938));
1242
+ const getTempFilename = () => {
1243
+ return `/${(0, getHash_1.default)()}.txt`;
1936
1244
  };
1937
1245
  exports["default"] = getTempFilename;
1938
1246
 
@@ -1943,66 +1251,22 @@ exports["default"] = getTempFilename;
1943
1251
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1944
1252
 
1945
1253
 
1946
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1947
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1948
- return new (P || (P = Promise))(function (resolve, reject) {
1949
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1950
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1951
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1952
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1953
- });
1954
- };
1955
- var __generator = (this && this.__generator) || function (thisArg, body) {
1956
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1957
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1958
- function verb(n) { return function (v) { return step([n, v]); }; }
1959
- function step(op) {
1960
- if (f) throw new TypeError("Generator is already executing.");
1961
- while (_) try {
1962
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1963
- if (y = 0, t) op = [op[0] & 2, t.value];
1964
- switch (op[0]) {
1965
- case 0: case 1: t = op; break;
1966
- case 4: _.label++; return { value: op[1], done: false };
1967
- case 5: _.label++; y = op[1]; op = [0]; continue;
1968
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
1969
- default:
1970
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1971
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1972
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1973
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1974
- if (t[2]) _.ops.pop();
1975
- _.trys.pop(); continue;
1976
- }
1977
- op = body.call(thisArg, _);
1978
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1979
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1980
- }
1981
- };
1982
1254
  var __importDefault = (this && this.__importDefault) || function (mod) {
1983
1255
  return (mod && mod.__esModule) ? mod : { "default": mod };
1984
1256
  };
1985
1257
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1986
- var memfs_1 = __webpack_require__(28098);
1987
- var downloadFile_1 = __importDefault(__webpack_require__(920));
1988
- var extractWords_1 = __importDefault(__webpack_require__(39759));
1989
- var getTempFilename_1 = __importDefault(__webpack_require__(52688));
1990
- var getTxtWordList = function (url) { return __awaiter(void 0, void 0, void 0, function () {
1991
- var tempFilename, file, words;
1992
- return __generator(this, function (_a) {
1993
- switch (_a.label) {
1994
- case 0:
1995
- tempFilename = (0, getTempFilename_1.default)();
1996
- return [4 /*yield*/, (0, downloadFile_1.default)(url, memfs_1.fs.createWriteStream(tempFilename))];
1997
- case 1:
1998
- _a.sent();
1999
- file = memfs_1.fs.readFileSync(tempFilename, 'utf-8');
2000
- words = (0, extractWords_1.default)(file.toString());
2001
- memfs_1.fs.unlinkSync(tempFilename);
2002
- return [2 /*return*/, words];
2003
- }
2004
- });
2005
- }); };
1258
+ const memfs_1 = __webpack_require__(28098);
1259
+ const downloadFile_1 = __importDefault(__webpack_require__(920));
1260
+ const extractWords_1 = __importDefault(__webpack_require__(39759));
1261
+ const getTempFilename_1 = __importDefault(__webpack_require__(52688));
1262
+ const getTxtWordList = async (url) => {
1263
+ const tempFilename = (0, getTempFilename_1.default)();
1264
+ await (0, downloadFile_1.default)(url, memfs_1.fs.createWriteStream(tempFilename));
1265
+ const file = memfs_1.fs.readFileSync(tempFilename, 'utf-8');
1266
+ const words = (0, extractWords_1.default)(file.toString());
1267
+ memfs_1.fs.unlinkSync(tempFilename);
1268
+ return words;
1269
+ };
2006
1270
  exports["default"] = getTxtWordList;
2007
1271
 
2008
1272