@scrabble-solver/scrabble-solver 2.15.14 → 2.15.15
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.
- package/.next/BUILD_ID +1 -1
- package/.next/build/chunks/[root-of-the-server]__6e020478._.js +441 -0
- package/.next/build/chunks/[root-of-the-server]__6e020478._.js.map +7 -0
- package/.next/build/chunks/[root-of-the-server]__c7ae8543._.js +500 -0
- package/.next/build/chunks/[root-of-the-server]__c7ae8543._.js.map +11 -0
- package/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_c84aa21a._.js +12 -0
- package/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_c84aa21a._.js.map +5 -0
- package/.next/build/chunks/[turbopack]_runtime.js +770 -0
- package/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/build/package.json +1 -0
- package/.next/build/webpack-loaders.js +6 -0
- package/.next/build/webpack-loaders.js.map +5 -0
- package/.next/build-manifest.json +29 -32
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/build-diagnostics.json +1 -1
- package/.next/diagnostics/framework.json +1 -1
- package/.next/fallback-build-manifest.json +24 -0
- package/.next/images-manifest.json +12 -3
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +4 -4
- package/.next/required-server-files.json +98 -66
- package/.next/routes-manifest.json +26 -5
- package/.next/server/chunks/[root-of-the-server]__378b5933._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__378b5933._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__51a21f60._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__51a21f60._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__53eb4a3b._.js +4 -0
- package/.next/server/chunks/[root-of-the-server]__53eb4a3b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__7e4e99cd._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__7e4e99cd._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__a6a82e19._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__a6a82e19._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__a84df743._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__a84df743._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__a99303dc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__a99303dc._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__bfa4320b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__bfa4320b._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +770 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/scrabble-solver_b903dbba._.js +3 -0
- package/.next/server/chunks/scrabble-solver_b903dbba._.js.map +1 -0
- package/.next/server/chunks/scrabble-solver_packages_configs_build_5accd600._.js +3 -0
- package/.next/server/chunks/scrabble-solver_packages_configs_build_5accd600._.js.map +1 -0
- package/.next/server/chunks/ssr/1b834_next_d69de9fa._.js +3 -0
- package/.next/server/chunks/ssr/1b834_next_d69de9fa._.js.map +1 -0
- package/.next/server/chunks/ssr/[externals]_fs_54ffce70._.js +3 -0
- package/.next/server/chunks/ssr/[externals]_fs_54ffce70._.js.map +1 -0
- package/.next/server/chunks/ssr/[externals]_transliteration_b8916dda._.js +3 -0
- package/.next/server/chunks/ssr/[externals]_transliteration_b8916dda._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1115f13a._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1115f13a._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__421f2b10._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__421f2b10._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b87cf431._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b87cf431._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__bdcde4df._.js +5 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__bdcde4df._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c803ce2b._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c803ce2b._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +770 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/ssr/scrabble-solver_1bf76a93._.js +3 -0
- package/.next/server/chunks/ssr/scrabble-solver_1bf76a93._.js.map +1 -0
- package/.next/server/chunks/ssr/scrabble-solver_a6d23152._.js +8 -0
- package/.next/server/chunks/ssr/scrabble-solver_a6d23152._.js.map +1 -0
- package/.next/server/chunks/ssr/scrabble-solver_packages_scrabble-solver_src_i18n_languages_1f0474f1._.js +3 -0
- package/.next/server/chunks/ssr/scrabble-solver_packages_scrabble-solver_src_i18n_languages_1f0474f1._.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +40 -1
- package/.next/server/middleware-manifest.json +2 -2
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +6 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/_app/build-manifest.json +18 -0
- package/.next/server/pages/_app/client-build-manifest.json +5 -0
- package/.next/server/pages/_app/next-font-manifest.json +6 -0
- package/.next/server/pages/_app/pages-manifest.json +3 -0
- package/.next/server/pages/_app/react-loadable-manifest.json +1 -0
- package/.next/server/pages/_app.js +6 -1
- package/.next/server/pages/_app.js.map +5 -0
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/_document/next-font-manifest.json +6 -0
- package/.next/server/pages/_document/pages-manifest.json +3 -0
- package/.next/server/pages/_document/react-loadable-manifest.json +1 -0
- package/.next/server/pages/_document.js +5 -1
- package/.next/server/pages/_document.js.map +5 -0
- package/.next/server/pages/_document.js.nft.json +1 -1
- package/.next/server/pages/_error/build-manifest.json +15 -0
- package/.next/server/pages/_error/client-build-manifest.json +5 -0
- package/.next/server/pages/_error/next-font-manifest.json +6 -0
- package/.next/server/pages/_error/pages-manifest.json +3 -0
- package/.next/server/pages/_error/react-loadable-manifest.json +1 -0
- package/.next/server/pages/_error.js +10 -1
- package/.next/server/pages/_error.js.map +5 -0
- package/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/server/pages/api/dictionary/[locale]/[word]/pages-manifest.json +3 -0
- package/.next/server/pages/api/dictionary/[locale]/[word].js +8 -2
- package/.next/server/pages/api/dictionary/[locale]/[word].js.map +5 -0
- package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/.next/server/pages/api/dictionary/[locale]/pages-manifest.json +3 -0
- package/.next/server/pages/api/dictionary/[locale].js +6 -1
- package/.next/server/pages/api/dictionary/[locale].js.map +5 -0
- package/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
- package/.next/server/pages/api/solve/pages-manifest.json +3 -0
- package/.next/server/pages/api/solve.js +8 -1
- package/.next/server/pages/api/solve.js.map +5 -0
- package/.next/server/pages/api/solve.js.nft.json +1 -1
- package/.next/server/pages/api/verify/pages-manifest.json +3 -0
- package/.next/server/pages/api/verify.js +7 -1
- package/.next/server/pages/api/verify.js.map +5 -0
- package/.next/server/pages/api/verify.js.nft.json +1 -1
- package/.next/server/pages/api/visit/pages-manifest.json +3 -0
- package/.next/server/pages/api/visit.js +5 -1
- package/.next/server/pages/api/visit.js.map +5 -0
- package/.next/server/pages/api/visit.js.nft.json +1 -1
- package/.next/server/pages/index/build-manifest.json +18 -0
- package/.next/server/pages/index/client-build-manifest.json +5 -0
- package/.next/server/pages/index/next-font-manifest.json +6 -0
- package/.next/server/pages/index/pages-manifest.json +3 -0
- package/.next/server/pages/index/react-loadable-manifest.json +1 -0
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/index.js +11 -1
- package/.next/server/pages/index.js.map +5 -0
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/index.json +1 -1
- package/.next/server/pages/not-found/build-manifest.json +17 -0
- package/.next/server/pages/not-found/client-build-manifest.json +5 -0
- package/.next/server/pages/not-found/next-font-manifest.json +6 -0
- package/.next/server/pages/not-found/pages-manifest.json +3 -0
- package/.next/server/pages/not-found/react-loadable-manifest.json +1 -0
- package/.next/server/pages/not-found.html +1 -0
- package/.next/server/pages/not-found.js.map +5 -0
- package/.next/server/pages/not-found.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +5 -4
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +5 -0
- package/.next/static/7kzTSHcrJ7tE47btIJcLO/_buildManifest.js +27 -0
- package/.next/static/chunks/060b82a3f336704f.js +3 -0
- package/.next/static/chunks/18159e87dc14f3cf.js +1 -0
- package/.next/static/chunks/27692b9d65f8b241.js +8 -0
- package/.next/static/chunks/2f5ae49118c8c86e.js +1 -0
- package/.next/static/chunks/339ed8704781040d.js +5 -0
- package/.next/static/chunks/3c8b810de7908416.js +3 -0
- package/.next/static/chunks/50e709cb7765c2f9.js +1 -0
- package/.next/static/chunks/69fdc9801e177051.js +1 -0
- package/.next/static/chunks/77bd0d5f1fb6eeba.js +3 -0
- package/.next/static/chunks/88b0985f454c1075.js +1 -0
- package/.next/static/chunks/95230bbbdd629d16.js +1 -0
- package/.next/static/chunks/997907c5fccf02bb.js +5 -0
- package/.next/static/chunks/9b2e7a689e581b58.js +7 -0
- package/.next/static/chunks/a4580bbcd72cf165.css +2 -0
- package/.next/static/chunks/e37c75eaddd8268a.css +47 -0
- package/.next/static/chunks/e75d2aeb209c3d8c.js +8 -0
- package/.next/static/chunks/eebac312ab720248.js +1 -0
- package/.next/static/chunks/turbopack-3eaa540498b1c1e9.js +3 -0
- package/.next/static/chunks/turbopack-6422aba52462ed1d.js +3 -0
- package/.next/static/chunks/turbopack-c70c4122d677e1a8.js +3 -0
- package/.next/static/chunks/turbopack-cc316a12eadf598b.js +3 -0
- package/.next/trace +1 -24
- package/.next/trace-build +1 -0
- package/.next/turbopack +0 -0
- package/.next/types/routes.d.ts +2 -2
- package/.next/types/validator.ts +4 -5
- package/next-env.d.ts +1 -1
- package/next.config.js +9 -32
- package/package.json +23 -23
- package/src/components/Modal/Modal.tsx +1 -0
- package/src/hooks/useMedia.ts +1 -0
- package/src/pages/_app.tsx +1 -1
- package/src/pages/{404.tsx → not-found.tsx} +2 -0
- package/src/state/cellFilters/slice.ts +1 -2
- package/src/state/settings/selectors.ts +0 -1
- package/src/styles/global.scss +1 -1
- package/src/styles/variables.scss +2 -2
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/server/InjectManifest.js.nft.json +0 -1
- package/.next/server/chunks/30.js +0 -6
- package/.next/server/chunks/318.js +0 -1
- package/.next/server/chunks/717.js +0 -1
- package/.next/server/chunks/791.js +0 -19
- package/.next/server/chunks/812.js +0 -1
- package/.next/server/chunks/829.js +0 -1
- package/.next/server/chunks/929.js +0 -1
- package/.next/server/dynamic-css-manifest.js +0 -1
- package/.next/server/middleware-react-loadable-manifest.js +0 -1
- package/.next/server/pages/404.js.nft.json +0 -1
- package/.next/server/webpack-api-runtime.js +0 -1
- package/.next/server/webpack-runtime.js +0 -1
- package/.next/static/UHBG2hxudxuZNMubluQ6A/_buildManifest.js +0 -1
- package/.next/static/chunks/framework-e4d8bdda7b6c00b3.js +0 -1
- package/.next/static/chunks/main-40732898df2b5947.js +0 -1
- package/.next/static/chunks/pages/404-3ab23f01145bda71.js +0 -1
- package/.next/static/chunks/pages/_app-ca98ddb1c33cb8b1.js +0 -1
- package/.next/static/chunks/pages/_error-e7f663d1e0f43380.js +0 -1
- package/.next/static/chunks/pages/index-5c4af5351329bef5.js +0 -1
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
- package/.next/static/chunks/webpack-6224d37324e372cb.js +0 -1
- package/.next/static/css/04a3767982ec10e8.css +0 -1
- package/.next/static/css/d611d31bf52b6e25.css +0 -2
- /package/.next/{react-loadable-manifest.json → server/app-paths-manifest.json} +0 -0
- /package/.next/{dynamic-css-manifest.json → static/7kzTSHcrJ7tE47btIJcLO/_clientMiddlewareManifest.json} +0 -0
- /package/.next/static/{UHBG2hxudxuZNMubluQ6A → 7kzTSHcrJ7tE47btIJcLO}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../scrabble-solver/packages/types/build/isObject.js","../../../../../../scrabble-solver/packages/types/build/Bingo.js","../../../../../../scrabble-solver/packages/constants/build/index.js","../../../../../../scrabble-solver/packages/types/build/Tile.js","../../../../../../scrabble-solver/packages/types/build/Cell.js","../../../../../../scrabble-solver/packages/types/build/Board.js","../../../../../../scrabble-solver/packages/types/build/TileJson.js","../../../../../../scrabble-solver/packages/types/build/CellJson.js","../../../../../../scrabble-solver/packages/types/build/BoardJson.js","../../../../../../scrabble-solver/packages/types/build/Bonus.js","../../../../../../scrabble-solver/packages/types/build/CharacterBonus.js","../../../../../../scrabble-solver/packages/types/build/WordBonus.js","../../../../../../scrabble-solver/packages/types/build/Config.js","../../../../../../scrabble-solver/packages/types/build/Pattern.js","../../../../../../scrabble-solver/packages/types/build/FinalPattern.js","../../../../../../scrabble-solver/packages/types/build/Game.js","../../../../../../scrabble-solver/packages/types/build/HorizontalPattern.js","../../../../../../scrabble-solver/packages/types/build/isError.js","../../../../../../scrabble-solver/packages/types/build/Locale.js","../../../../../../scrabble-solver/packages/types/build/Result.js","../../../../../../scrabble-solver/packages/types/build/VerticalPattern.js","../../../../../../scrabble-solver/packages/types/build/WordDefinition.js","../../../../../../scrabble-solver/packages/types/build/index.js","../../../../../../scrabble-solver/packages/dictionaries/build/constants.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/createAsyncProxy.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/createCacheTimestampComparator.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/getDictionaryFilepath.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/DiskCache.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/getHash.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/getTempFilepath.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/downloadFile.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/downloadHtml.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/findFirstWordIndex.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/extractWords.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/getTxtWordList.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/unique.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/transliterateDiacritics.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/unzip.js","../../../../../../scrabble-solver/packages/word-lists/build/lib/index.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/english.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/german.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/french.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/persian.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/polish.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/romanian.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/spanish.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/turkish.js","../../../../../../scrabble-solver/packages/word-lists/build/languages/index.js","../../../../../../scrabble-solver/packages/word-lists/build/getWordList.js","../../../../../../scrabble-solver/packages/word-lists/build/index.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/downloadDictionary.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/MemoryCache.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/LayeredCache.js","../../../../../../scrabble-solver/packages/dictionaries/build/lib/index.js","../../../../../../scrabble-solver/packages/dictionaries/build/Dictionaries.js","../../../../../../scrabble-solver/packages/dictionaries/build/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObject = void 0;\nconst isObject = (value) => {\n return typeof value === 'object' && value !== null;\n};\nexports.isObject = isObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMultiplierBingo = exports.isScoreBingo = exports.isBingo = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst isBingo = (value) => {\n return (0, exports.isScoreBingo)(value) || (0, exports.isMultiplierBingo)(value);\n};\nexports.isBingo = isBingo;\nconst isScoreBingo = (value) => {\n return (0, isObject_1.isObject)(value) && 'score' in value && typeof value.score === 'number';\n};\nexports.isScoreBingo = isScoreBingo;\nconst isMultiplierBingo = (value) => {\n return (0, isObject_1.isObject)(value) && 'multiplier' in value && typeof value.multiplier === 'number';\n};\nexports.isMultiplierBingo = isMultiplierBingo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VOWELS = exports.CONSONANTS = exports.NO_BONUS = exports.EMPTY_CELL = exports.BONUS_WORD = exports.BONUS_CHARACTER = exports.BLANK = exports.COMMA_LATIN = exports.COMMA_ARABIC = void 0;\nexports.COMMA_ARABIC = '،';\nexports.COMMA_LATIN = ',';\nexports.BLANK = ' ';\nexports.BONUS_CHARACTER = 'BONUS_CHARACTER';\nexports.BONUS_WORD = 'BONUS_WORD';\nexports.EMPTY_CELL = ' ';\nexports.NO_BONUS = { characterMultiplier: 1, wordMultiplier: 1 };\nexports.CONSONANTS = 'bcçćdfgğhjklłmnńñpqrsşśtvwxzźż'.split('');\nexports.VOWELS = 'aąäeęioóöuüyı'.split('');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tile = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nclass Tile {\n constructor({ character, isBlank = false }) {\n this.character = character;\n this.isBlank = isBlank;\n }\n clone() {\n return new Tile({\n character: this.character,\n isBlank: this.isBlank,\n });\n }\n equals(other) {\n return this.character === other.character && this.isBlank === other.isBlank;\n }\n toJson() {\n return {\n character: this.character,\n isBlank: this.isBlank,\n };\n }\n toString() {\n return this.character;\n }\n}\nexports.Tile = Tile;\nTile.fromJson = (json) => {\n if (!json) {\n return Tile.Null;\n }\n return new Tile({\n character: json.character,\n isBlank: json.isBlank,\n });\n};\nTile.Null = Object.freeze({\n character: constants_1.EMPTY_CELL,\n isBlank: false,\n clone: () => Tile.Null,\n equals: (other) => other === Tile.Null,\n toJson: () => null,\n toString: () => constants_1.EMPTY_CELL,\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cell = void 0;\nconst Tile_1 = require(\"./Tile\");\nclass Cell {\n constructor({ isEmpty = true, tile = Tile_1.Tile.Null, x, y }) {\n this.isEmpty = isEmpty;\n this.tile = tile;\n this.x = x;\n this.y = y;\n }\n clone() {\n return new Cell({\n isEmpty: this.isEmpty,\n tile: this.tile.clone(),\n x: this.x,\n y: this.y,\n });\n }\n equals(other) {\n return this.x === other.x && this.y === other.y && this.isEmpty === other.isEmpty && this.tile.equals(other.tile);\n }\n hasTile() {\n return this.tile !== Tile_1.Tile.Null;\n }\n isCandidate() {\n return this.isEmpty && this.hasTile();\n }\n toJson() {\n return {\n isEmpty: this.isEmpty,\n tile: this.tile.toJson(),\n x: this.x,\n y: this.y,\n };\n }\n toString() {\n return this.tile.toString();\n }\n}\nexports.Cell = Cell;\nCell.fromJson = (json) => {\n return new Cell({\n isEmpty: json.isEmpty,\n tile: Tile_1.Tile.fromJson(json.tile),\n x: json.x,\n y: json.y,\n });\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Board = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Cell_1 = require(\"./Cell\");\nconst Tile_1 = require(\"./Tile\");\nclass Board {\n static fromStringArray(stringArray) {\n return new Board({\n rows: stringArray.map((row, y) => row.split('').map((character, x) => new Cell_1.Cell({\n isEmpty: !character || character === constants_1.EMPTY_CELL,\n tile: character === constants_1.EMPTY_CELL ? Tile_1.Tile.Null : new Tile_1.Tile({ character }),\n x,\n y,\n }))),\n });\n }\n constructor({ rows }) {\n this.rows = rows;\n this.columnsCount = rows[0].length;\n this.rowsCount = rows.length;\n }\n get center() {\n const x = Math.floor(this.columnsCount / 2);\n const y = Math.floor(this.rowsCount / 2);\n return this.rows[y][x];\n }\n clone() {\n const rows = this.rows.map((row) => row.map((cell) => cell.clone()));\n return new Board({ rows });\n }\n collides(cell) {\n return this.collidesUp(cell) || this.collidesDown(cell) || this.collidesLeft(cell) || this.collidesRight(cell);\n }\n collidesDown({ x, y }) {\n return y < this.rowsCount - 1 && !this.rows[y + 1][x].isEmpty;\n }\n collidesLeft({ x, y }) {\n return x > 0 && !this.rows[y][x - 1].isEmpty;\n }\n collidesRight({ x, y }) {\n return x < this.columnsCount - 1 && !this.rows[y][x + 1].isEmpty;\n }\n collidesUp({ x, y }) {\n return y > 0 && !this.rows[y - 1][x].isEmpty;\n }\n equals(other) {\n return (this.columnsCount === other.columnsCount &&\n this.rowsCount === other.rowsCount &&\n this.rows.every((row, rowIndex) => {\n return row.every((cell, cellIndex) => {\n return cell.equals(other.rows[rowIndex][cellIndex]);\n });\n }));\n }\n getBlanksCount() {\n return this.rows.reduce((count, row) => {\n return count + row.reduce((rowCount, cell) => rowCount + (cell.tile.isBlank ? 1 : 0), 0);\n }, 0);\n }\n getColumn(index) {\n return this.rows.map((row) => row[index]);\n }\n getRow(index) {\n return this.rows[index];\n }\n getTilesCount() {\n return this.rows.reduce((count, row) => {\n return count + row.reduce((rowCount, cell) => rowCount + (cell.hasTile() ? 1 : 0), 0);\n }, 0);\n }\n getWords() {\n const horizontalWords = getHorizontalWords(this.rows);\n const verticalWords = getHorizontalWords(transpose(this.rows));\n return [...horizontalWords, ...verticalWords];\n }\n isEmpty() {\n return this.rows.every((row) => row.every(({ isEmpty }) => isEmpty));\n }\n toJson() {\n return this.rows.map((row) => row.map((cell) => cell.toJson()));\n }\n toString() {\n return this.rows.map((row) => row.map(String).join('')).join('\\n');\n }\n updateCell(x, y, updateCell) {\n this.rows[y][x] = updateCell(this.rows[y][x]);\n }\n updateRow(y, updateRow) {\n this.rows[y] = updateRow(this.rows[y]);\n }\n}\nexports.Board = Board;\nBoard.create = (width, height) => {\n const rows = Array(height);\n const emptyRow = Array(width).fill(' ').join('');\n const emptyRows = rows.fill(emptyRow);\n return Board.fromStringArray(emptyRows);\n};\nBoard.fromJson = (json) => {\n return new Board({\n rows: json.map((row) => row.map(Cell_1.Cell.fromJson)),\n });\n};\nconst transpose = (array) => {\n const rows = array.length;\n const cols = array[0].length;\n const transposed = Array(cols)\n .fill(null)\n .map(() => Array(rows));\n for (let y = 0; y < rows; ++y) {\n for (let x = 0; x < cols; ++x) {\n transposed[x][y] = array[y][x];\n }\n }\n return transposed;\n};\nconst getHorizontalWords = (cells) => {\n const words = [];\n for (const row of cells) {\n let currentWord = [];\n for (const cell of row) {\n if (!cell.isEmpty) {\n currentWord.push(cell);\n }\n else if (currentWord.length > 0) {\n if (currentWord.length > 1) {\n words.push(wordToString(currentWord));\n }\n currentWord = [];\n }\n }\n if (currentWord.length > 1) {\n words.push(wordToString(currentWord));\n }\n }\n return words;\n};\nconst wordToString = (word) => {\n return word.map((cell) => cell.tile.character).join('');\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTileJson = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst isTileJson = (value) => {\n return (0, isObject_1.isObject)(value) && typeof value.character === 'string' && typeof value.isBlank === 'boolean';\n};\nexports.isTileJson = isTileJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCellJson = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst TileJson_1 = require(\"./TileJson\");\nconst isCellJson = (value) => {\n return ((0, isObject_1.isObject)(value) &&\n typeof value.isEmpty === 'boolean' &&\n ((0, TileJson_1.isTileJson)(value.tile) || value.tile === null) &&\n typeof value.x === 'number' &&\n typeof value.y === 'number');\n};\nexports.isCellJson = isCellJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBoardJson = void 0;\nconst CellJson_1 = require(\"./CellJson\");\nconst isBoardJson = (value) => {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const row of value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const cell of row) {\n if (!(0, CellJson_1.isCellJson)(cell)) {\n return false;\n }\n }\n }\n return true;\n};\nexports.isBoardJson = isBoardJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bonus = void 0;\nclass Bonus {\n constructor({ multiplier, score, x, y }) {\n this.multiplier = multiplier;\n this.score = score;\n this.x = x;\n this.y = y;\n }\n canApply(_config, cell) {\n return cell.isEmpty && this.matchesCellCoordinates(cell);\n }\n matchesCellCoordinates(cell) {\n return this.x === cell.x && this.y === cell.y;\n }\n toJson() {\n return {\n multiplier: this.multiplier,\n score: this.score,\n type: this.type,\n x: this.x,\n y: this.y,\n };\n }\n get value() {\n return {\n characterMultiplier: 1,\n wordMultiplier: 1,\n };\n }\n}\nexports.Bonus = Bonus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CharacterBonus = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Bonus_1 = require(\"./Bonus\");\nclass CharacterBonus extends Bonus_1.Bonus {\n constructor() {\n super(...arguments);\n this.type = constants_1.BONUS_CHARACTER;\n }\n canApply(config, cell) {\n return super.canApply(config, cell) && this.matchesCellTileScore(config, cell);\n }\n matchesCellTileScore(config, cell) {\n if (typeof this.score === 'undefined') {\n return true;\n }\n return this.score === config.pointsMap[cell.tile.character];\n }\n get value() {\n return {\n characterMultiplier: this.multiplier,\n wordMultiplier: 1,\n };\n }\n}\nexports.CharacterBonus = CharacterBonus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WordBonus = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Bonus_1 = require(\"./Bonus\");\nclass WordBonus extends Bonus_1.Bonus {\n constructor() {\n super(...arguments);\n this.type = constants_1.BONUS_WORD;\n }\n get value() {\n return {\n characterMultiplier: 1,\n wordMultiplier: this.multiplier,\n };\n }\n}\nexports.WordBonus = WordBonus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst CharacterBonus_1 = require(\"./CharacterBonus\");\nconst WordBonus_1 = require(\"./WordBonus\");\nclass Config {\n constructor(config) {\n this.bonuses = getBonuses(config);\n this.config = config;\n this.pointsMap = getPointsMap(this.config);\n }\n get alphabet() {\n return getAlphabet(this.config);\n }\n get bingo() {\n return this.config.bingo;\n }\n get blankScore() {\n return this.config.blankScore;\n }\n get blanksCount() {\n return this.config.blanksCount;\n }\n get boardHeight() {\n return this.config.boardHeight;\n }\n get boardWidth() {\n return this.config.boardWidth;\n }\n get game() {\n return this.config.game;\n }\n get locale() {\n return this.config.locale;\n }\n get twoCharacterTiles() {\n return this.config.tiles.filter((tile) => tile.character.length === 2).map((tile) => tile.character);\n }\n getCellBonus(cell) {\n return this.bonuses.find((bonus) => bonus.matchesCellCoordinates(cell));\n }\n getCellBonusValue(cell) {\n return this.getCellBonus(cell)?.value || constants_1.NO_BONUS;\n }\n getCharacterPoints(character) {\n if (character === null) {\n return undefined;\n }\n if (character === constants_1.BLANK) {\n return this.blankScore;\n }\n return this.pointsMap[character];\n }\n getTwoCharacterTileByPrefix(character) {\n if (character.length !== 1) {\n return undefined;\n }\n return this.twoCharacterTiles.find((characters) => characters.startsWith(character));\n }\n getTilePoints(tile) {\n if (tile === null) {\n return undefined;\n }\n return tile.isBlank ? this.blankScore : this.getCharacterPoints(tile.character);\n }\n hasCharacter(character) {\n return character in this.pointsMap;\n }\n isTwoCharacterTilePrefix(character) {\n return typeof this.getTwoCharacterTileByPrefix(character) !== 'undefined';\n }\n get rackSize() {\n return this.config.rackSize;\n }\n get supportsRemainingTiles() {\n return this.tiles.every((tile) => typeof tile.count === 'number');\n }\n get tiles() {\n return this.config.tiles;\n }\n toJson() {\n return this.config;\n }\n}\nexports.Config = Config;\nConfig.fromJson = (json) => {\n return new Config(json);\n};\nconst getBonuses = (config) => {\n return config.bonuses.map((bonus) => {\n if (bonus.type === constants_1.BONUS_CHARACTER) {\n return new CharacterBonus_1.CharacterBonus(bonus);\n }\n if (bonus.type === constants_1.BONUS_WORD) {\n return new WordBonus_1.WordBonus(bonus);\n }\n throw new Error(`Unsupported Bonus type: \"${bonus.type}\"`);\n });\n};\nconst getAlphabet = (config) => config.tiles.map(({ character }) => character);\nconst getPointsMap = (config) => config.tiles.reduce((pointsMap, { character, score }) => ({\n ...pointsMap,\n [character]: score,\n}), {});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pattern = void 0;\nclass Pattern {\n constructor(board, cells) {\n this.board = board;\n this.cells = cells;\n }\n canBePlaced(config) {\n const emptyCellsCount = this.getEmptyCellsCount();\n const isUsedCellsCountInRange = emptyCellsCount >= 1 && emptyCellsCount <= config.rackSize;\n return (isUsedCellsCountInRange &&\n (this.hasAtLeast1NonEmptyCell() || this.collides() || (this.goesThroughBoardCenter() && this.board.isEmpty())));\n }\n clone() {\n return new Pattern(this.board, this.cells.map((cell) => cell.clone()));\n }\n collides() {\n return this.cells.some((cell) => cell.isEmpty && this.board.collides(cell));\n }\n getIndexOfFirstCellWithoutTile() {\n return this.cells.findIndex((cell) => !cell.hasTile());\n }\n getEmptyCellsCount() {\n return this.cells.filter((cell) => cell.isEmpty).length;\n }\n goesThroughBoardCenter() {\n return this.cells.some((cell) => cell.x === this.board.center.x && cell.y === this.board.center.y && cell.isEmpty);\n }\n hasAtLeast1EmptyCell() {\n return this.cells.some((cell) => cell.isEmpty);\n }\n hasAtLeast1NonEmptyCell() {\n return this.cells.some((cell) => !cell.isEmpty);\n }\n getCollisions() {\n return [];\n }\n toJson() {\n return {\n cells: this.cells.map((cell) => cell.toJson()),\n collisions: this.getCollisions().map((collision) => collision.toJson()),\n word: this.toString(),\n };\n }\n toString() {\n return this.cells.reduce((result, cell) => result + cell.toString(), '');\n }\n}\nexports.Pattern = Pattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalPattern = void 0;\nconst Pattern_1 = require(\"./Pattern\");\nclass FinalPattern extends Pattern_1.Pattern {\n constructor(pattern) {\n super(pattern.board, pattern.cells);\n this.collisions = pattern.getCollisions();\n }\n getCollisions() {\n return this.collisions;\n }\n}\nexports.FinalPattern = FinalPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isGame = exports.Game = void 0;\nvar Game;\n(function (Game) {\n Game[\"Kelimelik\"] = \"kelimelik\";\n Game[\"LetterLeague\"] = \"letter-league\";\n Game[\"Literaki\"] = \"literaki\";\n Game[\"Scrabble\"] = \"scrabble\";\n Game[\"ScrabbleDuel\"] = \"scrabble-duel\";\n Game[\"SuperScrabble\"] = \"super-scrabble\";\n})(Game || (exports.Game = Game = {}));\nconst games = Object.values(Game);\nconst isGame = (locale) => games.includes(locale);\nexports.isGame = isGame;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HorizontalPattern = void 0;\nconst Pattern_1 = require(\"./Pattern\");\nclass HorizontalPattern extends Pattern_1.Pattern {\n clone() {\n return new HorizontalPattern(this.board, this.cells.map((cell) => cell.clone()));\n }\n getCollisions() {\n const collisions = [];\n this.cells\n .filter((cell) => cell.isEmpty && (this.board.collidesUp(cell) || this.board.collidesDown(cell)))\n .forEach((cell) => {\n const column = this.board.getColumn(cell.x);\n let y = cell.y - 1;\n while (y >= 0 && column[y].hasTile()) {\n --y;\n }\n const previousCells = column.slice(y + 1, cell.y);\n y = cell.y + 1;\n while (y < column.length && column[y].hasTile()) {\n ++y;\n }\n const nextCells = column.slice(cell.y + 1, y);\n const cells = [...previousCells, cell, ...nextCells];\n if (cells.length > 1) {\n const pattern = new Pattern_1.Pattern(this.board, cells);\n collisions.push(pattern);\n }\n });\n return collisions;\n }\n}\nexports.HorizontalPattern = HorizontalPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isError = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst isError = (value) => {\n if (!(0, isObject_1.isObject)(value)) {\n return false;\n }\n return typeof value.message === 'string';\n};\nexports.isError = isError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isLocale = exports.Locale = void 0;\n/**\n * Locales are defined using IETF language tags\n * @see https://en.wikipedia.org/wiki/IETF_language_tag\n * @see https://en.wikipedia.org/wiki/ISO_3166-1\n */\nvar Locale;\n(function (Locale) {\n Locale[\"DE_DE\"] = \"de-DE\";\n Locale[\"EN_GB\"] = \"en-GB\";\n Locale[\"EN_US\"] = \"en-US\";\n Locale[\"ES_ES\"] = \"es-ES\";\n Locale[\"FA_IR\"] = \"fa-IR\";\n Locale[\"FR_FR\"] = \"fr-FR\";\n Locale[\"PL_PL\"] = \"pl-PL\";\n Locale[\"RO_RO\"] = \"ro-RO\";\n Locale[\"TR_TR\"] = \"tr-TR\";\n})(Locale || (exports.Locale = Locale = {}));\nconst locales = Object.values(Locale);\nconst isLocale = (locale) => locales.includes(locale);\nexports.isLocale = isLocale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Result = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Cell_1 = require(\"./Cell\");\nclass Result {\n constructor({ cells, id, collisions, points, }) {\n const tiles = getTiles(cells);\n this.blanksCount = getBlanks(tiles).length;\n this.cells = cells;\n this.collisions = collisions;\n this.consonantsCount = getConsonants(tiles).length;\n this.id = id;\n this.length = cells.length;\n this.points = points;\n this.pointsRatio = getPointsRatio(tiles, points);\n this.tiles = tiles;\n this.tilesCount = tiles.length;\n this.vowelsCount = getVowels(tiles).length;\n this.word = getWord(cells);\n this.words = getWords(cells, collisions);\n this.wordsCount = 1 + this.collisions.length;\n }\n toJson() {\n return {\n cells: this.cells.map((cell) => cell.toJson()),\n id: this.id,\n collisions: this.collisions.map((collision) => collision.map((cell) => cell.toJson())),\n points: this.points,\n };\n }\n isHorizontal() {\n return this.cells[0].y === this.cells[1].y;\n }\n isVertical() {\n return this.cells[0].x === this.cells[1].x;\n }\n}\nexports.Result = Result;\nResult.fromJson = (json) => {\n return new Result({\n id: json.id,\n cells: json.cells.map(Cell_1.Cell.fromJson),\n collisions: json.collisions.map((collision) => collision.map(Cell_1.Cell.fromJson)),\n points: json.points,\n });\n};\nconst getBlanks = (tiles) => tiles.filter(({ isBlank }) => isBlank);\nconst getConsonants = (tiles) => tiles.filter(isConsonant);\nconst getVowels = (tiles) => tiles.filter(isVowel);\nconst getPointsRatio = (tiles, points) => points / tiles.length;\nconst getTiles = (cells) => cells.filter(({ isEmpty }) => isEmpty).map(({ tile }) => tile);\nconst getWord = (cells) => cells.reduce((word, cell) => word + cell.toString(), '');\nconst getWords = (cells, collisions) => [cells, ...collisions].map(getWord);\nconst isConsonant = ({ character, isBlank }) => constants_1.CONSONANTS.includes(character) && !isBlank;\nconst isVowel = ({ character, isBlank }) => constants_1.VOWELS.includes(character) && !isBlank;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VerticalPattern = void 0;\nconst Pattern_1 = require(\"./Pattern\");\nclass VerticalPattern extends Pattern_1.Pattern {\n clone() {\n return new VerticalPattern(this.board, this.cells.map((cell) => cell.clone()));\n }\n getCollisions() {\n const collisions = [];\n this.cells\n .filter((cell) => cell.isEmpty && (this.board.collidesLeft(cell) || this.board.collidesRight(cell)))\n .forEach((cell) => {\n const row = this.board.getRow(cell.y);\n let x = cell.x - 1;\n while (x >= 0 && row[x].hasTile()) {\n --x;\n }\n const previousCells = row.slice(x + 1, cell.x);\n x = cell.x + 1;\n while (x < row.length && row[x].hasTile()) {\n ++x;\n }\n const nextCells = row.slice(cell.x + 1, x);\n const cells = [...previousCells, cell, ...nextCells];\n if (cells.length > 1) {\n const pattern = new Pattern_1.Pattern(this.board, cells);\n collisions.push(pattern);\n }\n });\n return collisions;\n }\n}\nexports.VerticalPattern = VerticalPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WordDefinition = void 0;\nclass WordDefinition {\n constructor({ definitions, exists, isAllowed, word }) {\n this.definitions = definitions;\n this.exists = exists;\n this.isAllowed = isAllowed;\n this.word = word;\n }\n toJson() {\n return {\n definitions: this.definitions,\n exists: this.exists,\n isAllowed: this.isAllowed,\n word: this.word,\n };\n }\n}\nexports.WordDefinition = WordDefinition;\nWordDefinition.fromJson = (json) => {\n if (!json) {\n return WordDefinition.Null;\n }\n return new WordDefinition({\n definitions: json.definitions,\n exists: json.exists,\n isAllowed: json.isAllowed,\n word: json.word,\n });\n};\nWordDefinition.Null = Object.freeze({\n definitions: [],\n exists: false,\n isAllowed: false,\n word: '',\n toJson: () => null,\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.Locale = exports.isLocale = exports.isObject = exports.isError = exports.HorizontalPattern = exports.isGame = exports.Game = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = exports.isScoreBingo = exports.isMultiplierBingo = exports.isBingo = void 0;\nvar Bingo_1 = require(\"./Bingo\");\nObject.defineProperty(exports, \"isBingo\", { enumerable: true, get: function () { return Bingo_1.isBingo; } });\nObject.defineProperty(exports, \"isMultiplierBingo\", { enumerable: true, get: function () { return Bingo_1.isMultiplierBingo; } });\nObject.defineProperty(exports, \"isScoreBingo\", { enumerable: true, get: function () { return Bingo_1.isScoreBingo; } });\nvar Board_1 = require(\"./Board\");\nObject.defineProperty(exports, \"Board\", { enumerable: true, get: function () { return Board_1.Board; } });\nvar BoardJson_1 = require(\"./BoardJson\");\nObject.defineProperty(exports, \"isBoardJson\", { enumerable: true, get: function () { return BoardJson_1.isBoardJson; } });\nvar Bonus_1 = require(\"./Bonus\");\nObject.defineProperty(exports, \"Bonus\", { enumerable: true, get: function () { return Bonus_1.Bonus; } });\nvar Cell_1 = require(\"./Cell\");\nObject.defineProperty(exports, \"Cell\", { enumerable: true, get: function () { return Cell_1.Cell; } });\nvar CellJson_1 = require(\"./CellJson\");\nObject.defineProperty(exports, \"isCellJson\", { enumerable: true, get: function () { return CellJson_1.isCellJson; } });\nvar CharacterBonus_1 = require(\"./CharacterBonus\");\nObject.defineProperty(exports, \"CharacterBonus\", { enumerable: true, get: function () { return CharacterBonus_1.CharacterBonus; } });\nvar Config_1 = require(\"./Config\");\nObject.defineProperty(exports, \"Config\", { enumerable: true, get: function () { return Config_1.Config; } });\nvar FinalPattern_1 = require(\"./FinalPattern\");\nObject.defineProperty(exports, \"FinalPattern\", { enumerable: true, get: function () { return FinalPattern_1.FinalPattern; } });\nvar Game_1 = require(\"./Game\");\nObject.defineProperty(exports, \"Game\", { enumerable: true, get: function () { return Game_1.Game; } });\nObject.defineProperty(exports, \"isGame\", { enumerable: true, get: function () { return Game_1.isGame; } });\nvar HorizontalPattern_1 = require(\"./HorizontalPattern\");\nObject.defineProperty(exports, \"HorizontalPattern\", { enumerable: true, get: function () { return HorizontalPattern_1.HorizontalPattern; } });\nvar isError_1 = require(\"./isError\");\nObject.defineProperty(exports, \"isError\", { enumerable: true, get: function () { return isError_1.isError; } });\nvar isObject_1 = require(\"./isObject\");\nObject.defineProperty(exports, \"isObject\", { enumerable: true, get: function () { return isObject_1.isObject; } });\nvar Locale_1 = require(\"./Locale\");\nObject.defineProperty(exports, \"isLocale\", { enumerable: true, get: function () { return Locale_1.isLocale; } });\nObject.defineProperty(exports, \"Locale\", { enumerable: true, get: function () { return Locale_1.Locale; } });\nvar Pattern_1 = require(\"./Pattern\");\nObject.defineProperty(exports, \"Pattern\", { enumerable: true, get: function () { return Pattern_1.Pattern; } });\nvar Result_1 = require(\"./Result\");\nObject.defineProperty(exports, \"Result\", { enumerable: true, get: function () { return Result_1.Result; } });\nvar Tile_1 = require(\"./Tile\");\nObject.defineProperty(exports, \"Tile\", { enumerable: true, get: function () { return Tile_1.Tile; } });\nvar TileJson_1 = require(\"./TileJson\");\nObject.defineProperty(exports, \"isTileJson\", { enumerable: true, get: function () { return TileJson_1.isTileJson; } });\nvar VerticalPattern_1 = require(\"./VerticalPattern\");\nObject.defineProperty(exports, \"VerticalPattern\", { enumerable: true, get: function () { return VerticalPattern_1.VerticalPattern; } });\nvar WordBonus_1 = require(\"./WordBonus\");\nObject.defineProperty(exports, \"WordBonus\", { enumerable: true, get: function () { return WordBonus_1.WordBonus; } });\nvar WordDefinition_1 = require(\"./WordDefinition\");\nObject.defineProperty(exports, \"WordDefinition\", { enumerable: true, get: function () { return WordDefinition_1.WordDefinition; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OUTPUT_DIRECTORY = exports.CACHE_STALE_THRESHOLD = exports.DAY = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nexports.DAY = 24 * 60 * 60 * 1000;\nexports.CACHE_STALE_THRESHOLD = 1 * exports.DAY; // eslint-disable-line no-implicit-coercion\nexports.OUTPUT_DIRECTORY = path_1.default.resolve(os_1.default.homedir(), '.scrabble-solver', 'dictionaries');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAsyncProxy = void 0;\nconst createAsyncProxy = (asyncCallback) => {\n let promise = null;\n return async () => {\n if (promise) {\n return promise;\n }\n try {\n promise = asyncCallback();\n return await promise;\n }\n finally {\n promise = null;\n }\n };\n};\nexports.createAsyncProxy = createAsyncProxy;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCacheTimestampComparator = void 0;\nconst createCacheTimestampComparator = (locale) => {\n return (a, b) => {\n const aTimestamp = a.getLastModifiedTimestamp(locale);\n const bTimestamp = b.getLastModifiedTimestamp(locale);\n if (aTimestamp === bTimestamp) {\n return 0;\n }\n if (typeof aTimestamp === 'undefined') {\n return 1;\n }\n if (typeof bTimestamp === 'undefined') {\n return -1;\n }\n return bTimestamp - aTimestamp;\n };\n};\nexports.createCacheTimestampComparator = createCacheTimestampComparator;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDictionaryFilepath = void 0;\nconst path_1 = __importDefault(require(\"path\"));\nconst constants_1 = require(\"../constants\");\nconst getDictionaryFilepath = (locale) => {\n return path_1.default.resolve(constants_1.OUTPUT_DIRECTORY, `${locale}.txt`);\n};\nexports.getDictionaryFilepath = getDictionaryFilepath;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiskCache = void 0;\nconst trie_1 = require(\"@kamilmielnik/trie\");\nconst fs_1 = __importDefault(require(\"fs\"));\nconst constants_1 = require(\"../constants\");\nconst getDictionaryFilepath_1 = require(\"./getDictionaryFilepath\");\nclass DiskCache {\n async get(locale) {\n if (!this.has(locale)) {\n return undefined;\n }\n const filepath = (0, getDictionaryFilepath_1.getDictionaryFilepath)(locale);\n const serialized = await fs_1.default.promises.readFile(filepath, 'utf-8');\n const trie = trie_1.Trie.deserialize(serialized);\n return trie;\n }\n getLastModifiedTimestamp(locale) {\n const filepath = (0, getDictionaryFilepath_1.getDictionaryFilepath)(locale);\n if (!fs_1.default.existsSync(filepath)) {\n return undefined;\n }\n const stats = fs_1.default.statSync(filepath);\n return stats.mtimeMs;\n }\n has(locale) {\n const filepath = (0, getDictionaryFilepath_1.getDictionaryFilepath)(locale);\n return fs_1.default.existsSync(filepath);\n }\n isStale(locale) {\n if (!this.has(locale)) {\n return undefined;\n }\n const lastModifiedTimestamp = this.getLastModifiedTimestamp(locale);\n if (typeof lastModifiedTimestamp === 'undefined') {\n return undefined;\n }\n const timeSinceModification = Math.abs(lastModifiedTimestamp - Date.now());\n return timeSinceModification > constants_1.CACHE_STALE_THRESHOLD;\n }\n async set(locale, trie) {\n const filepath = (0, getDictionaryFilepath_1.getDictionaryFilepath)(locale);\n await fs_1.default.promises.writeFile(filepath, trie.serialize());\n }\n}\nexports.DiskCache = DiskCache;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = void 0;\nconst crypto_1 = __importDefault(require(\"crypto\"));\nconst getHash = (bytes = 8) => crypto_1.default.randomBytes(bytes).toString('hex');\nexports.getHash = getHash;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTempFilepath = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst getHash_1 = require(\"./getHash\");\nconst OUTPUT_DIRECTORY = path_1.default.resolve(os_1.default.homedir(), '.scrabble-solver');\nconst getTempFilepath = () => {\n const filename = `${(0, getHash_1.getHash)()}.txt`;\n return path_1.default.join(OUTPUT_DIRECTORY, filename);\n};\nexports.getTempFilepath = getTempFilepath;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.downloadFile = void 0;\nconst follow_redirects_1 = require(\"follow-redirects\");\nconst fs_1 = __importDefault(require(\"fs\"));\nconst getTempFilepath_1 = require(\"./getTempFilepath\");\nconst downloadFile = (url) => {\n return new Promise((resolve, reject) => {\n const tempFilepath = (0, getTempFilepath_1.getTempFilepath)();\n const protocol = url.startsWith('https') ? follow_redirects_1.https : follow_redirects_1.http;\n const writeStream = fs_1.default.createWriteStream(tempFilepath);\n const request = protocol.get(url, (response) => {\n if (typeof response.statusCode === 'undefined' || response.statusCode >= 400) {\n reject(new Error(`Cannot download file: ${url}`));\n return;\n }\n response.on('error', (error) => {\n writeStream.close();\n reject(error);\n });\n response.on('end', () => {\n writeStream.on('finish', () => {\n writeStream.close();\n resolve(tempFilepath);\n });\n });\n response.pipe(writeStream);\n });\n request.on('error', (error) => {\n writeStream.close();\n reject(error);\n });\n });\n};\nexports.downloadFile = downloadFile;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.downloadHtml = void 0;\nconst follow_redirects_1 = require(\"follow-redirects\");\nconst downloadHtml = (url) => {\n return new Promise((resolve, reject) => {\n const protocol = url.startsWith('https') ? follow_redirects_1.https : follow_redirects_1.http;\n protocol.get(url, (response) => {\n let data = '';\n response.setEncoding('utf8');\n response.on('data', (chunk) => {\n data += chunk;\n });\n response.on('end', () => {\n resolve(data);\n });\n response.on('error', reject);\n });\n });\n};\nexports.downloadHtml = downloadHtml;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findFirstWordIndex = void 0;\nconst findFirstWordIndex = (lines, locale) => {\n const firstWordIndex = lines.findIndex((line, index) => {\n const nextLine = line[index + 1] || '';\n const isNextLineInOrder = line.localeCompare(nextLine, locale) > 0;\n const hasWhitespace = Boolean(line.match(/\\s/));\n const isEmpty = line.trim().length === 0;\n return !isEmpty && !hasWhitespace && isNextLineInOrder;\n });\n if (typeof firstWordIndex === 'undefined') {\n throw new Error('Cannot find index of the first word in the file');\n }\n return firstWordIndex;\n};\nexports.findFirstWordIndex = findFirstWordIndex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractWords = void 0;\nconst findFirstWordIndex_1 = require(\"./findFirstWordIndex\");\nconst extractWords = (file, locale) => {\n const lines = file.split(/\\r?\\n/g);\n const firstWordIndex = (0, findFirstWordIndex_1.findFirstWordIndex)(lines, locale);\n const words = [];\n for (let i = firstWordIndex; i < lines.length; ++i) {\n const trimmed = lines[i].trim();\n if (trimmed.length > 0) {\n words.push(trimmed.toLocaleLowerCase());\n }\n }\n return words;\n};\nexports.extractWords = extractWords;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTxtWordList = void 0;\nconst fs_1 = __importDefault(require(\"fs\"));\nconst downloadFile_1 = require(\"./downloadFile\");\nconst extractWords_1 = require(\"./extractWords\");\nconst getTxtWordList = async (url, locale) => {\n const tempFilename = await (0, downloadFile_1.downloadFile)(url);\n const file = fs_1.default.readFileSync(tempFilename, 'utf-8');\n const words = (0, extractWords_1.extractWords)(file.toLocaleString(), locale);\n fs_1.default.unlinkSync(tempFilename);\n return words;\n};\nexports.getTxtWordList = getTxtWordList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unique = void 0;\nconst unique = (array) => Array.from(new Set(array));\nexports.unique = unique;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transliterateDiacritics = void 0;\nconst transliteration_1 = require(\"transliteration\");\nconst unique_1 = require(\"./unique\");\nconst transliterateDiacritics = (words, options) => {\n return (0, unique_1.unique)(words.map((word) => (0, transliteration_1.transliterate)(word, options)));\n};\nexports.transliterateDiacritics = transliterateDiacritics;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unzip = void 0;\nconst fs_1 = __importDefault(require(\"fs\"));\nconst unzipper_1 = __importDefault(require(\"unzipper\"));\nconst unzip = (zipFilename, extractFilename, outputFilename) => {\n return fs_1.default\n .createReadStream(zipFilename)\n .pipe(unzipper_1.default.Parse())\n .on('entry', (entry) => {\n const fileName = entry.path;\n if (fileName === extractFilename) {\n entry.pipe(fs_1.default.createWriteStream(outputFilename));\n }\n else {\n entry.autodrain();\n }\n })\n .promise();\n};\nexports.unzip = unzip;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unzip = exports.unique = exports.transliterateDiacritics = exports.getTxtWordList = exports.getTempFilepath = exports.getHash = exports.findFirstWordIndex = exports.extractWords = exports.downloadHtml = exports.downloadFile = void 0;\nvar downloadFile_1 = require(\"./downloadFile\");\nObject.defineProperty(exports, \"downloadFile\", { enumerable: true, get: function () { return downloadFile_1.downloadFile; } });\nvar downloadHtml_1 = require(\"./downloadHtml\");\nObject.defineProperty(exports, \"downloadHtml\", { enumerable: true, get: function () { return downloadHtml_1.downloadHtml; } });\nvar extractWords_1 = require(\"./extractWords\");\nObject.defineProperty(exports, \"extractWords\", { enumerable: true, get: function () { return extractWords_1.extractWords; } });\nvar findFirstWordIndex_1 = require(\"./findFirstWordIndex\");\nObject.defineProperty(exports, \"findFirstWordIndex\", { enumerable: true, get: function () { return findFirstWordIndex_1.findFirstWordIndex; } });\nvar getHash_1 = require(\"./getHash\");\nObject.defineProperty(exports, \"getHash\", { enumerable: true, get: function () { return getHash_1.getHash; } });\nvar getTempFilepath_1 = require(\"./getTempFilepath\");\nObject.defineProperty(exports, \"getTempFilepath\", { enumerable: true, get: function () { return getTempFilepath_1.getTempFilepath; } });\nvar getTxtWordList_1 = require(\"./getTxtWordList\");\nObject.defineProperty(exports, \"getTxtWordList\", { enumerable: true, get: function () { return getTxtWordList_1.getTxtWordList; } });\nvar transliterateDiacritics_1 = require(\"./transliterateDiacritics\");\nObject.defineProperty(exports, \"transliterateDiacritics\", { enumerable: true, get: function () { return transliterateDiacritics_1.transliterateDiacritics; } });\nvar unique_1 = require(\"./unique\");\nObject.defineProperty(exports, \"unique\", { enumerable: true, get: function () { return unique_1.unique; } });\nvar unzip_1 = require(\"./unzip\");\nObject.defineProperty(exports, \"unzip\", { enumerable: true, get: function () { return unzip_1.unzip; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordListUs = exports.getWordListGb = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst EN_GB_FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/sowpods.txt';\nconst EN_US_FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/twl06.txt';\nconst getWordListGb = async () => {\n return (0, lib_1.getTxtWordList)(EN_GB_FILE_URL, types_1.Locale.EN_GB);\n};\nexports.getWordListGb = getWordListGb;\nconst getWordListUs = async () => {\n return (0, lib_1.getTxtWordList)(EN_US_FILE_URL, types_1.Locale.EN_US);\n};\nexports.getWordListUs = getWordListUs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/german/german.txt';\nconst getWordList = async () => {\n return (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.DE_DE);\n};\nexports.getWordList = getWordList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/french/ods8.txt';\nconst getWordList = async () => {\n const words = await (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.FR_FR);\n return (0, lib_1.transliterateDiacritics)(words);\n};\nexports.getWordList = getWordList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/persian/persian.txt';\nconst getWordList = async () => {\n return (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.FA_IR);\n};\nexports.getWordList = getWordList;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst cheerio_1 = require(\"cheerio\");\nconst fs_1 = __importDefault(require(\"fs\"));\nconst url_1 = require(\"url\");\nconst lib_1 = require(\"../lib\");\nconst PAGE_URL = 'https://sjp.pl/sl/growy/';\nconst FILE_TO_EXTRACT_FROM_ZIP = 'slowa.txt';\nconst REASONABLE_VALID_WORD_COUNT_TRESHOLD = 2_000_000; // more like 3M, but just to be safe\nconst SECONDARY_FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/polish/sjp.txt';\nconst getWordList = async () => {\n try {\n const tempFilepath = (0, lib_1.getTempFilepath)();\n const zipUrl = await fetchZipUrl(PAGE_URL);\n const zipTempFilename = await (0, lib_1.downloadFile)(zipUrl);\n await (0, lib_1.unzip)(zipTempFilename, FILE_TO_EXTRACT_FROM_ZIP, tempFilepath);\n fs_1.default.unlinkSync(zipTempFilename);\n const file = fs_1.default.readFileSync(tempFilepath, 'utf-8');\n fs_1.default.unlinkSync(tempFilepath);\n const words = (0, lib_1.extractWords)(file.toLocaleString(), 'pl-PL');\n if (words.length < REASONABLE_VALID_WORD_COUNT_TRESHOLD) {\n return getBackupWordList();\n }\n return words;\n }\n catch {\n return getBackupWordList();\n }\n};\nexports.getWordList = getWordList;\nconst fetchZipUrl = async (url) => {\n const html = await (0, lib_1.downloadHtml)(url);\n const filename = parseZipContainingPage(html);\n const { href } = new url_1.URL(filename, url);\n return href;\n};\nconst parseZipContainingPage = (html) => {\n const $ = (0, cheerio_1.load)(html);\n const $links = $('a');\n const links = Array.from($links)\n .map((link) => $(link).attr('href'))\n .filter(Boolean);\n const zipFilename = links.find((link) => link.endsWith('.zip'));\n if (typeof zipFilename === 'undefined') {\n throw new Error('Cannot find link to zip file on the page');\n }\n return zipFilename;\n};\nconst getBackupWordList = () => {\n return (0, lib_1.getTxtWordList)(SECONDARY_FILE_URL, types_1.Locale.PL_PL);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt';\nconst getWordList = async () => {\n const words = await (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.RO_RO);\n return (0, lib_1.transliterateDiacritics)(words);\n};\nexports.getWordList = getWordList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/file-2017.txt';\nconst getWordList = async () => {\n const words = await (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.ES_ES);\n return (0, lib_1.transliterateDiacritics)(words, { ignore: ['ñ'] });\n};\nexports.getWordList = getWordList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst lib_1 = require(\"../lib\");\nconst FILE_URL = 'https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/turkish/kelimelik.txt';\nconst getWordList = async () => {\n return (0, lib_1.getTxtWordList)(FILE_URL, types_1.Locale.TR_TR);\n};\nexports.getWordList = getWordList;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.turkish = exports.spanish = exports.romanian = exports.polish = exports.persian = exports.french = exports.german = exports.english = void 0;\nexports.english = __importStar(require(\"./english\"));\nexports.german = __importStar(require(\"./german\"));\nexports.french = __importStar(require(\"./french\"));\nexports.persian = __importStar(require(\"./persian\"));\nexports.polish = __importStar(require(\"./polish\"));\nexports.romanian = __importStar(require(\"./romanian\"));\nexports.spanish = __importStar(require(\"./spanish\"));\nexports.turkish = __importStar(require(\"./turkish\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst languages_1 = require(\"./languages\");\nconst localeMap = {\n [types_1.Locale.DE_DE]: languages_1.german.getWordList,\n [types_1.Locale.EN_GB]: languages_1.english.getWordListGb,\n [types_1.Locale.EN_US]: languages_1.english.getWordListUs,\n [types_1.Locale.ES_ES]: languages_1.spanish.getWordList,\n [types_1.Locale.FA_IR]: languages_1.persian.getWordList,\n [types_1.Locale.FR_FR]: languages_1.french.getWordList,\n [types_1.Locale.PL_PL]: languages_1.polish.getWordList,\n [types_1.Locale.RO_RO]: languages_1.romanian.getWordList,\n [types_1.Locale.TR_TR]: languages_1.turkish.getWordList,\n};\nconst getWordList = (locale) => localeMap[locale]();\nexports.getWordList = getWordList;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWordList = void 0;\nvar getWordList_1 = require(\"./getWordList\");\nObject.defineProperty(exports, \"getWordList\", { enumerable: true, get: function () { return getWordList_1.getWordList; } });\n__exportStar(require(\"./languages\"), exports);\n__exportStar(require(\"./lib\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.downloadDictionary = void 0;\nconst trie_1 = require(\"@kamilmielnik/trie\");\nconst logger_1 = require(\"@scrabble-solver/logger\");\nconst word_lists_1 = require(\"@scrabble-solver/word-lists\");\nconst downloadDictionary = async (locale) => {\n logger_1.logger.info('downloadDictionary', { locale });\n const words = await (0, word_lists_1.getWordList)(locale);\n logger_1.logger.info('downloadDictionary - success', { locale });\n const trie = trie_1.Trie.fromArray(words);\n return trie;\n};\nexports.downloadDictionary = downloadDictionary;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemoryCache = void 0;\nconst constants_1 = require(\"../constants\");\nclass MemoryCache {\n constructor() {\n this.cache = {};\n this.cacheTimestamps = {};\n }\n get(locale) {\n return Promise.resolve(this.cache[locale]);\n }\n getLastModifiedTimestamp(locale) {\n return this.cacheTimestamps[locale];\n }\n has(locale) {\n return typeof this.cache[locale] !== 'undefined';\n }\n isStale(locale) {\n const timestamp = this.getLastModifiedTimestamp(locale);\n if (!this.has(locale) || typeof timestamp === 'undefined') {\n return undefined;\n }\n const timeSinceModification = Math.abs(timestamp - Date.now());\n return timeSinceModification > constants_1.CACHE_STALE_THRESHOLD;\n }\n set(locale, trie) {\n this.cacheTimestamps[locale] = Date.now();\n this.cache[locale] = trie;\n return Promise.resolve();\n }\n}\nexports.MemoryCache = MemoryCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LayeredCache = void 0;\nconst createCacheTimestampComparator_1 = require(\"./createCacheTimestampComparator\");\nconst DiskCache_1 = require(\"./DiskCache\");\nconst MemoryCache_1 = require(\"./MemoryCache\");\nclass LayeredCache {\n constructor() {\n this.layers = [new MemoryCache_1.MemoryCache(), new DiskCache_1.DiskCache()];\n }\n async get(locale) {\n const cache = this.getLastModifiedLayer(locale);\n if (!cache) {\n return Promise.resolve(undefined);\n }\n const [memoryCache, diskCache] = this.layers;\n const value = await cache.get(locale);\n if (cache === diskCache && typeof value !== 'undefined') {\n await memoryCache.set(locale, value);\n }\n return value;\n }\n getLastModifiedTimestamp(locale) {\n const cache = this.getLastModifiedLayer(locale);\n if (!cache) {\n return undefined;\n }\n return cache.getLastModifiedTimestamp(locale);\n }\n has(locale) {\n return this.layers.some((cache) => cache.has(locale));\n }\n isStale(locale) {\n if (this.layers.some((cache) => cache.isStale(locale))) {\n return true;\n }\n if (this.layers.every((cache) => typeof cache.isStale(locale) === 'undefined')) {\n return undefined;\n }\n return false;\n }\n async set(locale, trie) {\n const [memoryCache, diskCache] = this.layers;\n await diskCache.set(locale, trie);\n await memoryCache.set(locale, trie);\n }\n getLastModifiedLayer(locale) {\n const layers = this.layers.filter((cache) => cache.has(locale));\n const [cached] = [...layers].sort((0, createCacheTimestampComparator_1.createCacheTimestampComparator)(locale));\n return cached;\n }\n}\nexports.LayeredCache = LayeredCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemoryCache = exports.LayeredCache = exports.getDictionaryFilepath = exports.downloadDictionary = exports.DiskCache = exports.createCacheTimestampComparator = exports.createAsyncProxy = void 0;\nvar createAsyncProxy_1 = require(\"./createAsyncProxy\");\nObject.defineProperty(exports, \"createAsyncProxy\", { enumerable: true, get: function () { return createAsyncProxy_1.createAsyncProxy; } });\nvar createCacheTimestampComparator_1 = require(\"./createCacheTimestampComparator\");\nObject.defineProperty(exports, \"createCacheTimestampComparator\", { enumerable: true, get: function () { return createCacheTimestampComparator_1.createCacheTimestampComparator; } });\nvar DiskCache_1 = require(\"./DiskCache\");\nObject.defineProperty(exports, \"DiskCache\", { enumerable: true, get: function () { return DiskCache_1.DiskCache; } });\nvar downloadDictionary_1 = require(\"./downloadDictionary\");\nObject.defineProperty(exports, \"downloadDictionary\", { enumerable: true, get: function () { return downloadDictionary_1.downloadDictionary; } });\nvar getDictionaryFilepath_1 = require(\"./getDictionaryFilepath\");\nObject.defineProperty(exports, \"getDictionaryFilepath\", { enumerable: true, get: function () { return getDictionaryFilepath_1.getDictionaryFilepath; } });\nvar LayeredCache_1 = require(\"./LayeredCache\");\nObject.defineProperty(exports, \"LayeredCache\", { enumerable: true, get: function () { return LayeredCache_1.LayeredCache; } });\nvar MemoryCache_1 = require(\"./MemoryCache\");\nObject.defineProperty(exports, \"MemoryCache\", { enumerable: true, get: function () { return MemoryCache_1.MemoryCache; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dictionaries = void 0;\nconst logger_1 = require(\"@scrabble-solver/logger\");\nconst types_1 = require(\"@scrabble-solver/types\");\nconst fs_1 = __importDefault(require(\"fs\"));\nconst constants_1 = require(\"./constants\");\nconst lib_1 = require(\"./lib\");\nclass Dictionaries {\n constructor() {\n this.cache = new lib_1.LayeredCache();\n this.downloadDictionaryProxies = Object.fromEntries(Object.values(types_1.Locale).map((locale) => [locale, (0, lib_1.createAsyncProxy)(() => (0, lib_1.downloadDictionary)(locale))]));\n }\n async get(locale) {\n if (this.cache.has(locale)) {\n const trie = await this.cache.get(locale);\n if (trie) {\n return trie;\n }\n }\n logger_1.logger.info('Dictionaries - cache miss', { locale });\n return this.updateDictionary(locale);\n }\n remove() {\n fs_1.default.rmdirSync(constants_1.OUTPUT_DIRECTORY, { recursive: true });\n }\n async update(force) {\n const locales = force ? Object.values(types_1.Locale) : this.getLocalesToUpdate();\n logger_1.logger.info('Dictionaries - update', { force, locales });\n await Promise.all(locales.map((locale) => this.updateDictionary(locale)));\n }\n getLocalesToUpdate() {\n return Object.values(types_1.Locale).filter((locale) => this.cache.isStale(locale) !== false);\n }\n async updateDictionary(locale) {\n logger_1.logger.info('Dictionaries - updateDictionary', { locale });\n fs_1.default.mkdirSync(constants_1.OUTPUT_DIRECTORY, { recursive: true });\n const downloadDictionaryProxy = this.downloadDictionaryProxies[locale];\n const trie = await downloadDictionaryProxy();\n await this.cache.set(locale, trie);\n return trie;\n }\n}\nexports.Dictionaries = Dictionaries;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dictionaries = void 0;\nconst Dictionaries_1 = require(\"./Dictionaries\");\n__exportStar(require(\"./lib\"), exports);\nexports.dictionaries = new Dictionaries_1.Dictionaries();\n"],"names":[],"mappings":"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"}
|