scrabble-solver 2.18.1 → 2.18.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.
- package/.nx/workspace-data/d/server-process.json +2 -2
- package/.nx/workspace-data/file-map.json +1721 -1473
- package/.nx/workspace-data/lockfile-dependencies.hash +1 -1
- package/.nx/workspace-data/lockfile-nodes.hash +1 -1
- package/.nx/workspace-data/nx_files.nxt +0 -0
- package/.nx/workspace-data/parsed-lock-file.dependencies.json +184 -209
- package/.nx/workspace-data/parsed-lock-file.nodes.json +374 -419
- package/.nx/workspace-data/project-graph.json +610 -653
- package/.nx/workspace-data/source-maps.json +68 -0
- package/CLAUDE.md +13 -11
- package/README.md +3 -3
- package/bun.lock +115 -130
- package/e2e/bugs/398-digraphs-in-created-words.spec.ts +2 -2
- package/e2e/bugs/445-tile-text-selection.spec.ts +38 -0
- package/e2e/bugs/451-results-list-gap-hover.spec.ts +35 -0
- package/e2e/bugs/452-stale-translations-cache.spec.ts +32 -0
- package/e2e/features/427-highlight-created-words.spec.ts +86 -0
- package/e2e/features/430-highlight-unreachable-cells-results.spec.ts +75 -0
- package/e2e/features/91-hover-remaining-tile-highlights.spec.ts +22 -0
- package/e2e/features/result-candidate-picker.spec.ts +21 -0
- package/e2e/features/results-interactions.spec.ts +170 -0
- package/e2e/features/words-dictionary-search.spec.ts +36 -0
- package/e2e/features/words-empty-state.spec.ts +42 -0
- package/e2e/features/words-interactions.spec.ts +179 -0
- package/e2e/features/words-preview.spec.ts +140 -0
- package/e2e/features/words-table-filtering.spec.ts +22 -0
- package/e2e/features/words-table-sorting.spec.ts +33 -0
- package/e2e/lib/actions.ts +76 -6
- package/e2e/lib/selectors.ts +40 -3
- package/lerna.json +1 -1
- package/package.json +10 -10
- package/packages/configs/build/games/index.d.ts +1 -0
- package/packages/configs/build/games/index.js +1 -0
- package/packages/configs/build/games/wyrazy.d.ts +19 -0
- package/packages/configs/build/games/wyrazy.js +73 -0
- package/packages/configs/build/languages/polish.d.ts +1 -0
- package/packages/configs/build/languages/polish.js +39 -1
- package/packages/configs/package.json +5 -4
- package/packages/configs/src/games/index.ts +1 -0
- package/packages/configs/src/games/wyrazy.ts +71 -0
- package/packages/configs/src/languages/polish.ts +40 -1
- package/packages/constants/package.json +1 -1
- package/packages/dictionaries/package.json +4 -4
- package/packages/logger/package.json +1 -1
- package/packages/logger/scripts/stats.js +52 -31
- package/packages/scrabble-solver/.next/BUILD_ID +1 -1
- package/packages/scrabble-solver/.next/build-manifest.json +14 -14
- package/packages/scrabble-solver/.next/cache/.previewinfo +1 -1
- package/packages/scrabble-solver/.next/cache/.rscinfo +1 -1
- package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
- package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/diagnostics/framework.json +1 -1
- package/packages/scrabble-solver/.next/dynamic-css-manifest.json +2 -2
- package/packages/scrabble-solver/.next/prerender-manifest.json +4 -4
- package/packages/scrabble-solver/.next/react-loadable-manifest.json +37 -37
- package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/309.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/344.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/371.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/392.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/465.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/546.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/641.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/67.js +1 -0
- package/packages/scrabble-solver/.next/server/chunks/712.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/812.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/846.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/886.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/942.js +1 -0
- package/packages/scrabble-solver/.next/server/chunks/953.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/961.js +1 -1
- package/packages/scrabble-solver/.next/server/dynamic-css-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/500.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/_app.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_document.js +2 -2
- package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_error.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/_error.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/index.js +4 -4
- package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/not-found.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/not-found.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages-manifest.json +1 -1
- package/packages/scrabble-solver/.next/static/{5KOWzYqfY1Z2rjrzptr8D → 8WnIUTe-yJvPD6stltvYI}/_buildManifest.js +1 -1
- package/packages/scrabble-solver/.next/static/chunks/100.305bdf9c75b1758f.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/256.6a20b23a766cfebd.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{307.67f52f13e3d60d4e.js → 307.89e6100f58443679.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/{363.01eed3233f92b6a4.js → 363.cec65b1f9668a75e.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/{422.1559ae6756912ca5.js → 422.3e55b4c94e328701.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/{663.d2c9ca36b26695b8.js → 663.bd2c45413fbca518.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/693.677c88e0eb1340b5.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{820.97b82f751ca49579.js → 820.823e9e885ebb66af.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/827.c81b92b383a748c9.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{865.a9b563a45848a83c.js → 865.59baba8296c9b116.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/912.077603e4f0bc6cca.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{939.19b33a3d3c351d73.js → 939.2ad86b50405c7897.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/980.7ce17464fc56648a.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{main-b92e08f3fc96dd8d.js → main-7e52da35a4beea0b.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-e3fe880e24c024ab.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/index-b073a1686818dd26.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/webpack-d7138f1ef6b8c9d6.js +1 -0
- package/packages/scrabble-solver/.next/static/css/65bcc9440e067113.css +1 -0
- package/packages/scrabble-solver/.next/static/css/{4dbcacc1122ac6b9.css → 92f85ce358a0a468.css} +1 -1
- package/packages/scrabble-solver/.next/static/css/a691348b788f8bc0.css +1 -0
- package/packages/scrabble-solver/.next/static/css/cd4d7f2458487399.css +1 -0
- package/packages/scrabble-solver/.next/trace +22 -21
- package/packages/scrabble-solver/.next/trace-build +1 -1
- package/packages/scrabble-solver/AGENTS.md +9 -0
- package/packages/scrabble-solver/CLAUDE.md +1 -0
- package/packages/scrabble-solver/package.json +13 -11
- package/packages/scrabble-solver/public/llms.txt +1 -1
- package/packages/scrabble-solver/public/service-worker.js +1 -1
- package/packages/scrabble-solver/src/components/Board/Board.tsx +3 -1
- package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +26 -20
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx +4 -4
- package/packages/scrabble-solver/src/components/Board/lib.test.ts +106 -0
- package/packages/scrabble-solver/src/components/Board/lib.ts +34 -3
- package/packages/scrabble-solver/src/components/Board/selectors.ts +17 -5
- package/packages/scrabble-solver/src/components/Button/Button.module.scss +1 -1
- package/packages/scrabble-solver/src/components/Modal/Modal.module.scss +0 -4
- package/packages/scrabble-solver/src/components/Results/Header.tsx +30 -5
- package/packages/scrabble-solver/src/components/Results/Result.tsx +45 -55
- package/packages/scrabble-solver/src/components/Results/Results.module.scss +0 -126
- package/packages/scrabble-solver/src/components/Results/Results.module.scss.d.ts +0 -10
- package/packages/scrabble-solver/src/components/Results/Results.tsx +25 -5
- package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +4 -4
- package/packages/scrabble-solver/src/components/Solver/Solver.tsx +5 -3
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +5 -1
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss.d.ts +1 -0
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +5 -2
- package/packages/scrabble-solver/src/components/Table/Cell.tsx +42 -0
- package/packages/scrabble-solver/src/components/Table/Header.tsx +11 -0
- package/packages/scrabble-solver/src/components/{Results → Table}/HeaderButton.tsx +22 -14
- package/packages/scrabble-solver/src/components/Table/Row.tsx +59 -0
- package/packages/scrabble-solver/src/components/{ResultsInput/ResultsInput.tsx → Table/Search.tsx} +9 -11
- package/packages/scrabble-solver/src/components/Table/Table.module.scss +147 -0
- package/packages/scrabble-solver/src/components/Table/Table.module.scss.d.ts +19 -0
- package/packages/scrabble-solver/src/components/Table/index.ts +5 -0
- package/packages/scrabble-solver/src/components/Tile/Tile.module.scss +2 -1
- package/packages/scrabble-solver/src/hooks/useColumns.ts +7 -5
- package/packages/scrabble-solver/src/hooks/useIsCompactLayout.ts +14 -0
- package/packages/scrabble-solver/src/i18n/languages/english.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/french.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/german.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/persian.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/polish.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/romanian.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/spanish.json +6 -1
- package/packages/scrabble-solver/src/i18n/languages/turkish.json +6 -1
- package/packages/scrabble-solver/src/icons/QuestionSquare.svg +5 -0
- package/packages/scrabble-solver/src/lib/createCoordinatesComparator.ts +23 -0
- package/packages/scrabble-solver/src/lib/createKeyComparator.ts +1 -4
- package/packages/scrabble-solver/src/lib/createSortComparator.ts +22 -0
- package/packages/scrabble-solver/src/lib/getCoordinates.test.ts +21 -0
- package/packages/scrabble-solver/src/lib/getCoordinates.ts +16 -0
- package/packages/scrabble-solver/src/lib/getNextSort.ts +12 -0
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/RemainingTilesModal.tsx +3 -1
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.tsx +8 -9
- package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +14 -10
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss +16 -27
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss.d.ts +3 -6
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.tsx +56 -42
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordRow.tsx +92 -0
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.module.scss +69 -0
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.module.scss.d.ts +16 -0
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.tsx +137 -0
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/index.ts +1 -0
- package/packages/scrabble-solver/src/modals/WordsModal/components/index.ts +1 -0
- package/packages/scrabble-solver/src/pages/api/verify.ts +7 -6
- package/packages/scrabble-solver/src/pages/index.tsx +29 -4
- package/packages/scrabble-solver/src/parameters/index.ts +2 -0
- package/packages/scrabble-solver/src/sdk/verify.ts +3 -2
- package/packages/scrabble-solver/src/solver-worker/client.test.ts +10 -3
- package/packages/scrabble-solver/src/solver-worker/index.worker.ts +7 -7
- package/packages/scrabble-solver/src/solver-worker/messages.ts +3 -3
- package/packages/scrabble-solver/src/state/hoveredWord/index.ts +4 -0
- package/packages/scrabble-solver/src/state/hoveredWord/initialState.ts +5 -0
- package/packages/scrabble-solver/src/state/hoveredWord/selectors.ts +5 -0
- package/packages/scrabble-solver/src/state/hoveredWord/slice.ts +18 -0
- package/packages/scrabble-solver/src/state/hoveredWord/types.ts +5 -0
- package/packages/scrabble-solver/src/state/index.ts +1 -0
- package/packages/scrabble-solver/src/state/localStorage.ts +13 -2
- package/packages/scrabble-solver/src/state/results/lib.ts +9 -26
- package/packages/scrabble-solver/src/state/results/selectors.ts +9 -1
- package/packages/scrabble-solver/src/state/results/slice.ts +4 -16
- package/packages/scrabble-solver/src/state/sagas.ts +26 -1
- package/packages/scrabble-solver/src/state/selectors.ts +18 -1
- package/packages/scrabble-solver/src/state/store.ts +2 -0
- package/packages/scrabble-solver/src/state/types.ts +2 -0
- package/packages/scrabble-solver/src/state/verify/initialState.ts +7 -0
- package/packages/scrabble-solver/src/state/verify/lib.test.ts +55 -0
- package/packages/scrabble-solver/src/state/verify/lib.ts +49 -0
- package/packages/scrabble-solver/src/state/verify/selectors.ts +37 -0
- package/packages/scrabble-solver/src/state/verify/slice.ts +13 -2
- package/packages/scrabble-solver/src/state/verify/types.ts +6 -2
- package/packages/scrabble-solver/src/styles/_tokens.scss +2 -0
- package/packages/scrabble-solver/src/styles/mixins.scss +5 -0
- package/packages/scrabble-solver/src/styles/variables.module.scss +1 -0
- package/packages/scrabble-solver/src/styles/variables.module.scss.d.ts +1 -0
- package/packages/scrabble-solver/src/styles/variables.scss +1 -1
- package/packages/scrabble-solver/src/types/index.ts +24 -11
- package/packages/scrabble-solver/tsconfig.tsbuildinfo +1 -1
- package/packages/solver/package.json +5 -5
- package/packages/types/build/Bingo.d.ts +0 -3
- package/packages/types/build/Bingo.js +0 -14
- package/packages/types/build/Board.d.ts +3 -1
- package/packages/types/build/Board.js +5 -40
- package/packages/types/build/BoardJson.d.ts +0 -1
- package/packages/types/build/BoardJson.js +0 -19
- package/packages/types/build/BoardWord.d.ts +7 -0
- package/packages/types/build/BoardWord.js +2 -0
- package/packages/types/build/CellJson.d.ts +0 -1
- package/packages/types/build/CellJson.js +0 -11
- package/packages/types/build/Game.d.ts +2 -2
- package/packages/types/build/Game.js +2 -4
- package/packages/types/build/Locale.d.ts +0 -1
- package/packages/types/build/Locale.js +1 -4
- package/packages/types/build/Result.js +3 -3
- package/packages/types/build/TileJson.d.ts +0 -1
- package/packages/types/build/TileJson.js +0 -6
- package/packages/types/build/index.d.ts +9 -8
- package/packages/types/build/index.js +14 -17
- package/packages/types/build/lib/getBoardWords.d.ts +3 -0
- package/packages/types/build/lib/getBoardWords.js +10 -0
- package/packages/types/build/lib/getCells.d.ts +4 -0
- package/packages/types/build/lib/getCells.js +27 -0
- package/packages/types/build/lib/getCollidingWords.d.ts +3 -0
- package/packages/types/build/lib/getCollidingWords.js +19 -0
- package/packages/types/build/lib/getCollision.d.ts +3 -0
- package/packages/types/build/lib/getCollision.js +31 -0
- package/packages/types/build/lib/getCollisions.d.ts +3 -0
- package/packages/types/build/lib/getCollisions.js +17 -0
- package/packages/types/build/lib/getPlacedCell.d.ts +3 -0
- package/packages/types/build/lib/getPlacedCell.js +10 -0
- package/packages/types/build/lib/getWordThrough.d.ts +4 -0
- package/packages/types/build/lib/getWordThrough.js +23 -0
- package/packages/types/build/lib/getWordsInRows.d.ts +8 -0
- package/packages/types/build/lib/getWordsInRows.js +29 -0
- package/packages/types/build/lib/index.d.ts +5 -0
- package/packages/types/build/lib/index.js +21 -0
- package/packages/types/build/lib/isSameBoardWord.d.ts +2 -0
- package/packages/types/build/lib/isSameBoardWord.js +6 -0
- package/packages/types/build/lib/toBoardWord.d.ts +4 -0
- package/packages/types/build/lib/toBoardWord.js +11 -0
- package/packages/types/build/lib/transpose.d.ts +1 -0
- package/packages/types/build/lib/transpose.js +16 -0
- package/packages/types/build/type-guards/index.d.ts +10 -0
- package/packages/types/build/type-guards/index.js +23 -0
- package/packages/types/build/type-guards/isBingo.d.ts +2 -0
- package/packages/types/build/type-guards/isBingo.js +9 -0
- package/packages/types/build/type-guards/isBoardJson.d.ts +2 -0
- package/packages/types/build/type-guards/isBoardJson.js +21 -0
- package/packages/types/build/type-guards/isCellJson.d.ts +2 -0
- package/packages/types/build/type-guards/isCellJson.js +13 -0
- package/packages/types/build/type-guards/isGame.d.ts +2 -0
- package/packages/types/build/type-guards/isGame.js +7 -0
- package/packages/types/build/type-guards/isLocale.d.ts +2 -0
- package/packages/types/build/type-guards/isLocale.js +7 -0
- package/packages/types/build/type-guards/isMultiplierBingo.d.ts +2 -0
- package/packages/types/build/type-guards/isMultiplierBingo.js +8 -0
- package/packages/types/build/type-guards/isScoreBingo.d.ts +2 -0
- package/packages/types/build/type-guards/isScoreBingo.js +8 -0
- package/packages/types/build/type-guards/isTileJson.d.ts +2 -0
- package/packages/types/build/type-guards/isTileJson.js +8 -0
- package/packages/types/package.json +2 -2
- package/packages/types/src/Bingo.ts +0 -14
- package/packages/types/src/Board.test.ts +85 -0
- package/packages/types/src/Board.ts +8 -49
- package/packages/types/src/BoardJson.ts +1 -21
- package/packages/types/src/BoardWord.ts +8 -0
- package/packages/types/src/CellJson.ts +1 -12
- package/packages/types/src/Game.ts +1 -4
- package/packages/types/src/Locale.ts +0 -4
- package/packages/types/src/Result.ts +3 -3
- package/packages/types/src/TileJson.ts +0 -6
- package/packages/types/src/index.ts +20 -8
- package/packages/types/src/lib/getBoardWords.ts +11 -0
- package/packages/types/src/lib/getCells.test.ts +127 -0
- package/packages/types/src/lib/getCells.ts +31 -0
- package/packages/types/src/lib/getCollidingWords.ts +25 -0
- package/packages/types/src/lib/getCollision.ts +38 -0
- package/packages/types/src/lib/getCollisions.test.ts +82 -0
- package/packages/types/src/lib/getCollisions.ts +22 -0
- package/packages/types/src/lib/getPlacedCell.ts +9 -0
- package/packages/types/src/lib/getWordThrough.ts +30 -0
- package/packages/types/src/lib/getWordsInRows.ts +34 -0
- package/packages/types/src/lib/index.ts +5 -0
- package/packages/types/src/lib/isSameBoardWord.ts +5 -0
- package/packages/types/src/lib/toBoardWord.ts +12 -0
- package/packages/types/src/lib/transpose.ts +15 -0
- package/packages/types/src/type-guards/index.ts +10 -0
- package/packages/types/src/type-guards/isBingo.ts +8 -0
- package/packages/types/src/type-guards/isBoardJson.test.ts +33 -0
- package/packages/types/src/type-guards/isBoardJson.ts +23 -0
- package/packages/types/src/type-guards/isCellJson.ts +14 -0
- package/packages/types/src/type-guards/isGame.ts +5 -0
- package/packages/types/src/type-guards/isLocale.ts +5 -0
- package/packages/types/src/type-guards/isMultiplierBingo.ts +7 -0
- package/packages/types/src/type-guards/isScoreBingo.ts +7 -0
- package/packages/types/src/type-guards/isTileJson.ts +7 -0
- package/packages/word-definitions/package.json +2 -2
- package/packages/word-lists/package.json +2 -2
- package/playwright-report/index.html +1 -1
- package/screencast.gif +0 -0
- package/packages/scrabble-solver/.next/server/chunks/316.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/916.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/106.e414e88694add27f.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/127.125d896a19061d71.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/18.8b91e137d239e15c.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/583.7a46807be14c377e.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/711.ba7b8f900dfd40d0.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/912.ff8037ba9d4db5c8.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-2e607dcd4135f340.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/index-e0087247c995328d.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/webpack-cfb34d175e081981.js +0 -1
- package/packages/scrabble-solver/.next/static/css/b74cd7de82dabcdd.css +0 -1
- package/packages/scrabble-solver/.next/static/css/c403ce739a9c0d83.css +0 -1
- package/packages/scrabble-solver/.next/static/css/fbfdce70731d0d2b.css +0 -1
- package/packages/scrabble-solver/src/components/Results/Cell.tsx +0 -32
- package/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.module.scss +0 -12
- package/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/ResultsInput/index.ts +0 -1
- package/packages/types/build/readResultCells.d.ts +0 -5
- package/packages/types/build/readResultCells.js +0 -75
- package/packages/types/src/readResultCells.test.ts +0 -140
- package/packages/types/src/readResultCells.ts +0 -90
- /package/packages/scrabble-solver/.next/static/{5KOWzYqfY1Z2rjrzptr8D → 8WnIUTe-yJvPD6stltvYI}/_ssgManifest.js +0 -0
- /package/packages/types/build/{isError.d.ts → type-guards/isError.d.ts} +0 -0
- /package/packages/types/build/{isError.js → type-guards/isError.js} +0 -0
- /package/packages/types/build/{isObject.d.ts → type-guards/isObject.d.ts} +0 -0
- /package/packages/types/build/{isObject.js → type-guards/isObject.js} +0 -0
- /package/packages/types/src/{isError.ts → type-guards/isError.ts} +0 -0
- /package/packages/types/src/{isObject.ts → type-guards/isObject.ts} +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Next.js","version":"16.3.
|
|
1
|
+
{"name":"Next.js","version":"16.3.2"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
[
|
|
2
|
-
"static/css/
|
|
2
|
+
"static/css/cd4d7f2458487399.css",
|
|
3
3
|
"static/css/7b6724d2df70f48f.css",
|
|
4
4
|
"static/css/ca311e6c030663d4.css",
|
|
5
5
|
"static/css/2d03f0da2c678dfc.css",
|
|
6
6
|
"static/css/b736be3bd02b5d99.css",
|
|
7
|
-
"static/css/
|
|
7
|
+
"static/css/65bcc9440e067113.css"
|
|
8
8
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"compute": "static",
|
|
8
8
|
"initialRevalidateSeconds": false,
|
|
9
9
|
"srcRoute": null,
|
|
10
|
-
"dataRoute": "/_next/data/
|
|
10
|
+
"dataRoute": "/_next/data/8WnIUTe-yJvPD6stltvYI/index.json",
|
|
11
11
|
"allowHeader": [
|
|
12
12
|
"host",
|
|
13
13
|
"x-matched-path",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"dynamicRoutes": {},
|
|
22
22
|
"notFoundRoutes": [],
|
|
23
23
|
"preview": {
|
|
24
|
-
"previewModeId": "
|
|
25
|
-
"previewModeSigningKey": "
|
|
26
|
-
"previewModeEncryptionKey": "
|
|
24
|
+
"previewModeId": "d56d08e80e1c264fb9d5bd2f046d21e9",
|
|
25
|
+
"previewModeSigningKey": "710dfc296ee593a012938c12ca917fa8a7e3ee8c4ee055414ad75479b6de3c74",
|
|
26
|
+
"previewModeEncryptionKey": "b8cd042dcfa5ffc82dead343e6d398a5c6e43f0914c1fcf246c66c0a019c64ed"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -2,49 +2,49 @@
|
|
|
2
2
|
"i18n/i18n.ts -> ./languages/french.json": {
|
|
3
3
|
"id": 6363,
|
|
4
4
|
"files": [
|
|
5
|
-
"static/chunks/363.
|
|
5
|
+
"static/chunks/363.cec65b1f9668a75e.js"
|
|
6
6
|
]
|
|
7
7
|
},
|
|
8
8
|
"i18n/i18n.ts -> ./languages/german.json": {
|
|
9
9
|
"id": 8865,
|
|
10
10
|
"files": [
|
|
11
|
-
"static/chunks/865.
|
|
11
|
+
"static/chunks/865.59baba8296c9b116.js"
|
|
12
12
|
]
|
|
13
13
|
},
|
|
14
14
|
"i18n/i18n.ts -> ./languages/persian.json": {
|
|
15
15
|
"id": 8663,
|
|
16
16
|
"files": [
|
|
17
|
-
"static/chunks/663.
|
|
17
|
+
"static/chunks/663.bd2c45413fbca518.js"
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"i18n/i18n.ts -> ./languages/polish.json": {
|
|
21
21
|
"id": 9422,
|
|
22
22
|
"files": [
|
|
23
|
-
"static/chunks/422.
|
|
23
|
+
"static/chunks/422.3e55b4c94e328701.js"
|
|
24
24
|
]
|
|
25
25
|
},
|
|
26
26
|
"i18n/i18n.ts -> ./languages/romanian.json": {
|
|
27
27
|
"id": 8820,
|
|
28
28
|
"files": [
|
|
29
|
-
"static/chunks/820.
|
|
29
|
+
"static/chunks/820.823e9e885ebb66af.js"
|
|
30
30
|
]
|
|
31
31
|
},
|
|
32
32
|
"i18n/i18n.ts -> ./languages/spanish.json": {
|
|
33
33
|
"id": 307,
|
|
34
34
|
"files": [
|
|
35
|
-
"static/chunks/307.
|
|
35
|
+
"static/chunks/307.89e6100f58443679.js"
|
|
36
36
|
]
|
|
37
37
|
},
|
|
38
38
|
"i18n/i18n.ts -> ./languages/turkish.json": {
|
|
39
39
|
"id": 6939,
|
|
40
40
|
"files": [
|
|
41
|
-
"static/chunks/939.
|
|
41
|
+
"static/chunks/939.2ad86b50405c7897.js"
|
|
42
42
|
]
|
|
43
43
|
},
|
|
44
44
|
"modals/preload.ts -> ./DictionaryModal": {
|
|
45
45
|
"id": 8277,
|
|
46
46
|
"files": [
|
|
47
|
-
"static/css/
|
|
47
|
+
"static/css/cd4d7f2458487399.css",
|
|
48
48
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
49
49
|
"static/chunks/277.6785dfaf22fdb0b7.js"
|
|
50
50
|
]
|
|
@@ -53,61 +53,61 @@
|
|
|
53
53
|
"id": 6912,
|
|
54
54
|
"files": [
|
|
55
55
|
"static/css/7b6724d2df70f48f.css",
|
|
56
|
-
"static/css/
|
|
56
|
+
"static/css/cd4d7f2458487399.css",
|
|
57
57
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
58
|
-
"static/chunks/912.
|
|
58
|
+
"static/chunks/912.077603e4f0bc6cca.js"
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
61
|
"modals/preload.ts -> ./MenuModal": {
|
|
62
62
|
"id": 6541,
|
|
63
63
|
"files": [
|
|
64
64
|
"static/css/ca311e6c030663d4.css",
|
|
65
|
-
"static/css/
|
|
65
|
+
"static/css/cd4d7f2458487399.css",
|
|
66
66
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
67
67
|
"static/chunks/744.b06c9a3de4a1d877.js",
|
|
68
68
|
"static/chunks/541.dcd9e8b804f88da5.js"
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
"modals/preload.ts -> ./RemainingTilesModal": {
|
|
72
|
-
"id":
|
|
72
|
+
"id": 8100,
|
|
73
73
|
"files": [
|
|
74
74
|
"static/css/2d03f0da2c678dfc.css",
|
|
75
|
-
"static/css/
|
|
75
|
+
"static/css/cd4d7f2458487399.css",
|
|
76
76
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
77
|
-
"static/chunks/
|
|
77
|
+
"static/chunks/100.305bdf9c75b1758f.js"
|
|
78
78
|
]
|
|
79
79
|
},
|
|
80
80
|
"modals/preload.ts -> ./ResultsModal": {
|
|
81
|
-
"id":
|
|
81
|
+
"id": 980,
|
|
82
82
|
"files": [
|
|
83
83
|
"static/css/b736be3bd02b5d99.css",
|
|
84
|
-
"static/css/
|
|
84
|
+
"static/css/cd4d7f2458487399.css",
|
|
85
85
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
86
|
-
"static/chunks/
|
|
86
|
+
"static/chunks/980.7ce17464fc56648a.js"
|
|
87
87
|
]
|
|
88
88
|
},
|
|
89
89
|
"modals/preload.ts -> ./SettingsModal": {
|
|
90
90
|
"id": 8631,
|
|
91
91
|
"files": [
|
|
92
|
-
"static/css/
|
|
92
|
+
"static/css/cd4d7f2458487399.css",
|
|
93
93
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
94
94
|
"static/chunks/744.b06c9a3de4a1d877.js",
|
|
95
95
|
"static/chunks/631.98d42abad0a60af6.js"
|
|
96
96
|
]
|
|
97
97
|
},
|
|
98
98
|
"modals/preload.ts -> ./WordsModal": {
|
|
99
|
-
"id":
|
|
99
|
+
"id": 5693,
|
|
100
100
|
"files": [
|
|
101
|
-
"static/css/
|
|
102
|
-
"static/css/
|
|
101
|
+
"static/css/65bcc9440e067113.css",
|
|
102
|
+
"static/css/cd4d7f2458487399.css",
|
|
103
103
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
104
|
-
"static/chunks/
|
|
104
|
+
"static/chunks/693.677c88e0eb1340b5.js"
|
|
105
105
|
]
|
|
106
106
|
},
|
|
107
107
|
"pages/index.tsx -> @/modals/DictionaryModal": {
|
|
108
108
|
"id": 8277,
|
|
109
109
|
"files": [
|
|
110
|
-
"static/css/
|
|
110
|
+
"static/css/cd4d7f2458487399.css",
|
|
111
111
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
112
112
|
"static/chunks/277.6785dfaf22fdb0b7.js"
|
|
113
113
|
]
|
|
@@ -116,55 +116,55 @@
|
|
|
116
116
|
"id": 6912,
|
|
117
117
|
"files": [
|
|
118
118
|
"static/css/7b6724d2df70f48f.css",
|
|
119
|
-
"static/css/
|
|
119
|
+
"static/css/cd4d7f2458487399.css",
|
|
120
120
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
121
|
-
"static/chunks/912.
|
|
121
|
+
"static/chunks/912.077603e4f0bc6cca.js"
|
|
122
122
|
]
|
|
123
123
|
},
|
|
124
124
|
"pages/index.tsx -> @/modals/MenuModal": {
|
|
125
125
|
"id": 6541,
|
|
126
126
|
"files": [
|
|
127
127
|
"static/css/ca311e6c030663d4.css",
|
|
128
|
-
"static/css/
|
|
128
|
+
"static/css/cd4d7f2458487399.css",
|
|
129
129
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
130
130
|
"static/chunks/744.b06c9a3de4a1d877.js",
|
|
131
131
|
"static/chunks/541.dcd9e8b804f88da5.js"
|
|
132
132
|
]
|
|
133
133
|
},
|
|
134
134
|
"pages/index.tsx -> @/modals/RemainingTilesModal": {
|
|
135
|
-
"id":
|
|
135
|
+
"id": 8100,
|
|
136
136
|
"files": [
|
|
137
137
|
"static/css/2d03f0da2c678dfc.css",
|
|
138
|
-
"static/css/
|
|
138
|
+
"static/css/cd4d7f2458487399.css",
|
|
139
139
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
140
|
-
"static/chunks/
|
|
140
|
+
"static/chunks/100.305bdf9c75b1758f.js"
|
|
141
141
|
]
|
|
142
142
|
},
|
|
143
143
|
"pages/index.tsx -> @/modals/ResultsModal": {
|
|
144
|
-
"id":
|
|
144
|
+
"id": 980,
|
|
145
145
|
"files": [
|
|
146
146
|
"static/css/b736be3bd02b5d99.css",
|
|
147
|
-
"static/css/
|
|
147
|
+
"static/css/cd4d7f2458487399.css",
|
|
148
148
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
149
|
-
"static/chunks/
|
|
149
|
+
"static/chunks/980.7ce17464fc56648a.js"
|
|
150
150
|
]
|
|
151
151
|
},
|
|
152
152
|
"pages/index.tsx -> @/modals/SettingsModal": {
|
|
153
153
|
"id": 8631,
|
|
154
154
|
"files": [
|
|
155
|
-
"static/css/
|
|
155
|
+
"static/css/cd4d7f2458487399.css",
|
|
156
156
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
157
157
|
"static/chunks/744.b06c9a3de4a1d877.js",
|
|
158
158
|
"static/chunks/631.98d42abad0a60af6.js"
|
|
159
159
|
]
|
|
160
160
|
},
|
|
161
161
|
"pages/index.tsx -> @/modals/WordsModal": {
|
|
162
|
-
"id":
|
|
162
|
+
"id": 5693,
|
|
163
163
|
"files": [
|
|
164
|
-
"static/css/
|
|
165
|
-
"static/css/
|
|
164
|
+
"static/css/65bcc9440e067113.css",
|
|
165
|
+
"static/css/cd4d7f2458487399.css",
|
|
166
166
|
"static/chunks/341.79535ba85bf1986f.js",
|
|
167
|
-
"static/chunks/
|
|
167
|
+
"static/chunks/693.677c88e0eb1340b5.js"
|
|
168
168
|
]
|
|
169
169
|
},
|
|
170
170
|
"serviceWorkerManager.ts -> workbox-window": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=309,exports.ids=[309],exports.modules={94309:a=>{a.exports=JSON.parse('{"cell.enter-word":"کلمه را وارد کنید","cell.filter-cell.exclude":"مقصد را حذف کنید","cell.filter-cell.include":"مقصد مورد نظر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.tile.location":"{{coordinates}} کاشی: صفحه","cell.toggle-direction":"جهت تایپ","common.arrows":"کلیدهای جهت دار","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.off":"خاموش","common.on":"روشن","common.points":"امتیازات","common.previous":"قبلی","common.space":"دکمه اسپیس","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت …","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-cell-filter":"فیلتر هدف را تغییر دهید","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","rack.touchscreen.placeholder":"لیستحرف…","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.preview":"پیش نمایش","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.highlightUnreachableCells":"خانههای غیرقابل دسترس را برجسته کن","settings.inputMode":"حالت ورودی","settings.inputMode.keyboard":"صفحه کلید","settings.inputMode.touchscreen":"صفحه لمسی","settings.language":"زبان","settings.removeCellFilters":"فیلترها را بهصورت خودکار از صفحه بازی حذف کن","settings.removeCellFilters.always":"همیشه","settings.removeCellFilters.never":"هرگز","settings.showCoordinates":"مختصات","settings.showCoordinates.alternative":"بديل","settings.showCoordinates.original":"إبداعي","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}')}};
|
|
1
|
+
"use strict";exports.id=309,exports.ids=[309],exports.modules={94309:a=>{a.exports=JSON.parse('{"cell.enter-word":"کلمه را وارد کنید","cell.filter-cell.exclude":"مقصد را حذف کنید","cell.filter-cell.include":"مقصد مورد نظر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.tile.location":"{{coordinates}} کاشی: صفحه","cell.toggle-direction":"جهت تایپ","common.arrows":"کلیدهای جهت دار","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.off":"خاموش","common.on":"روشن","common.points":"امتیازات","common.previous":"قبلی","common.space":"دکمه اسپیس","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت …","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-cell-filter":"فیلتر هدف را تغییر دهید","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","rack.touchscreen.placeholder":"لیستحرف…","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.preview":"پیش نمایش","results.select":"انتخاب کنید...","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.highlightUnreachableCells":"خانههای غیرقابل دسترس را برجسته کن","settings.inputMode":"حالت ورودی","settings.inputMode.keyboard":"صفحه کلید","settings.inputMode.touchscreen":"صفحه لمسی","settings.language":"زبان","settings.removeCellFilters":"فیلترها را بهصورت خودکار از صفحه بازی حذف کن","settings.removeCellFilters.always":"همیشه","settings.removeCellFilters.never":"هرگز","settings.showCoordinates":"مختصات","settings.showCoordinates.alternative":"بديل","settings.showCoordinates.original":"إبداعي","words":"کلمات ساخته شده","words.empty-state.no-words":"کلمهای ساخته نشده - صفحه خالی است.","words.input.placeholder":"جستجو در کلمات (RegExp)","words.invalid":"نا معتبر","words.preview":"پیش نمایش","words.valid":"معتبر","words.validity":"اعتبار"}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=344,exports.ids=[344],exports.modules={63344:a=>{a.exports=JSON.parse('{"cell.enter-word":"Introducere cuvant","cell.filter-cell.exclude":"Excludeți destinația","cell.filter-cell.include":"Destinație țintă","cell.set-blank":"Marcare camp liber","cell.set-not-blank":"Marcare camp ocupat ","cell.tile.location":"Tabla: camp {{coordinates}}","cell.toggle-direction":"Directie scriere","common.arrows":"Sagetile","common.blanks":"Jokeri","common.clear":"Stergere","common.close":"Inchidere","common.consonants":"Consoane","common.loading":"Incarcare","common.next":"Pasul urmator","common.off":"Dezactivat","common.on":"Activat","common.points":"Puncte","common.previous":"Pasul anterior","common.space":"Bara de spațiu","common.tiles":"Litere","common.two-letter-tiles":"2 litere","common.vowels":"Vocale","common.word":"Cuvant","common.words":"Cuvinte","dictionary":"Dictionar","dictionary.empty-state.no-definitions":"Cuvantul exista in dictionar dar nu are o definitie.","dictionary.empty-state.no-results":"Definitia nu a fost gasita in dictionar","dictionary.empty-state.not-allowed":"Cuvantul nu apare in dictionar","dictionary.empty-state.uninitialized":"Aici va fi definitia cuvantului.","dictionary.input.placeholder":"Cautare dictionar…","dictionary.input.title":"Cuvinte separate prin virgula","empty-state.error":"Eroare","empty-state.info":"Spatiu date","empty-state.success":"Succes","empty-state.warning":"Atentionare","github":"Vezi acest proiect pe GitHub","keyMap":"Comanda rapida la tastatura","keyMap.board":"Tabla joc","keyMap.board.toggle-blank":"Marcheaza/Deselecteaza campul ca liber","keyMap.board.toggle-cell-filter":"Comutați filtrul țintă","keyMap.board.toggle-direction":"Schimbati directia de tastare","keyMap.board-and-rack":"Tabla si literele extrase","keyMap.board-and-rack.insert-two-letter-tile":"Introducere piesa 2 litere","keyMap.board-and-rack.navigate":"Navigare","keyMap.board-and-rack.remove-tile":"Indeparteaza piesa","keyMap.board-and-rack.submit":"Rezolvă","keyMap.rack":"Grupa litere","keyMap.rack.insert-blank":"Introducere joker","menu":"Meniu","rack.placeholder":"Litere…","rack.tile.location":"Grupa litere: piesa ({{index}})","rack.touchscreen.placeholder":"Litere…","remaining-tiles":"Litere ramase","results":"Rezultate","results.empty-state.no-results":"Nu a fost gasit nici un rezultat.","results.empty-state.outdated":"Rezultatele nu sunt actuale.","results.empty-state.uninitialized":"Cuvintele formate din literele tale vor fi afisate aici.","results.input.placeholder":"Cautare solutii... (RegExp)","results.insert":"Introducere","results.preview":"Previzualizare","results.solve":"Gasire solutii","settings":"Setari","settings.autoGroupTiles":"Litere ramase","settings.autoGroupTiles.left":"In partea stanga","settings.autoGroupTiles.right":"In partea dreapta","settings.autoGroupTiles.null":"Nu se grupeaza","settings.game":"Joc","settings.highlightUnreachableCells":"Evidențiază celulele inaccesibile","settings.inputMode":"Mod introducere","settings.inputMode.keyboard":"Tastatura","settings.inputMode.touchscreen":"Ecran","settings.language":"Limba","settings.removeCellFilters":"Elimină automat filtrele de pe tablă","settings.removeCellFilters.always":"\xcentotdeauna","settings.removeCellFilters.never":"Niciodată","settings.showCoordinates":"Coordonate","settings.showCoordinates.alternative":"Alternativă","settings.showCoordinates.original":"Original","words":"Cuvinte create","words.invalid":"Invalid","words.valid":"Valid"}')}};
|
|
1
|
+
"use strict";exports.id=344,exports.ids=[344],exports.modules={63344:a=>{a.exports=JSON.parse('{"cell.enter-word":"Introducere cuvant","cell.filter-cell.exclude":"Excludeți destinația","cell.filter-cell.include":"Destinație țintă","cell.set-blank":"Marcare camp liber","cell.set-not-blank":"Marcare camp ocupat ","cell.tile.location":"Tabla: camp {{coordinates}}","cell.toggle-direction":"Directie scriere","common.arrows":"Sagetile","common.blanks":"Jokeri","common.clear":"Stergere","common.close":"Inchidere","common.consonants":"Consoane","common.loading":"Incarcare","common.next":"Pasul urmator","common.off":"Dezactivat","common.on":"Activat","common.points":"Puncte","common.previous":"Pasul anterior","common.space":"Bara de spațiu","common.tiles":"Litere","common.two-letter-tiles":"2 litere","common.vowels":"Vocale","common.word":"Cuvant","common.words":"Cuvinte","dictionary":"Dictionar","dictionary.empty-state.no-definitions":"Cuvantul exista in dictionar dar nu are o definitie.","dictionary.empty-state.no-results":"Definitia nu a fost gasita in dictionar","dictionary.empty-state.not-allowed":"Cuvantul nu apare in dictionar","dictionary.empty-state.uninitialized":"Aici va fi definitia cuvantului.","dictionary.input.placeholder":"Cautare dictionar…","dictionary.input.title":"Cuvinte separate prin virgula","empty-state.error":"Eroare","empty-state.info":"Spatiu date","empty-state.success":"Succes","empty-state.warning":"Atentionare","github":"Vezi acest proiect pe GitHub","keyMap":"Comanda rapida la tastatura","keyMap.board":"Tabla joc","keyMap.board.toggle-blank":"Marcheaza/Deselecteaza campul ca liber","keyMap.board.toggle-cell-filter":"Comutați filtrul țintă","keyMap.board.toggle-direction":"Schimbati directia de tastare","keyMap.board-and-rack":"Tabla si literele extrase","keyMap.board-and-rack.insert-two-letter-tile":"Introducere piesa 2 litere","keyMap.board-and-rack.navigate":"Navigare","keyMap.board-and-rack.remove-tile":"Indeparteaza piesa","keyMap.board-and-rack.submit":"Rezolvă","keyMap.rack":"Grupa litere","keyMap.rack.insert-blank":"Introducere joker","menu":"Meniu","rack.placeholder":"Litere…","rack.tile.location":"Grupa litere: piesa ({{index}})","rack.touchscreen.placeholder":"Litere…","remaining-tiles":"Litere ramase","results":"Rezultate","results.empty-state.no-results":"Nu a fost gasit nici un rezultat.","results.empty-state.outdated":"Rezultatele nu sunt actuale.","results.empty-state.uninitialized":"Cuvintele formate din literele tale vor fi afisate aici.","results.input.placeholder":"Cautare solutii... (RegExp)","results.insert":"Introducere","results.preview":"Previzualizare","results.select":"Selectati...","results.solve":"Gasire solutii","settings":"Setari","settings.autoGroupTiles":"Litere ramase","settings.autoGroupTiles.left":"In partea stanga","settings.autoGroupTiles.right":"In partea dreapta","settings.autoGroupTiles.null":"Nu se grupeaza","settings.game":"Joc","settings.highlightUnreachableCells":"Evidențiază celulele inaccesibile","settings.inputMode":"Mod introducere","settings.inputMode.keyboard":"Tastatura","settings.inputMode.touchscreen":"Ecran","settings.language":"Limba","settings.removeCellFilters":"Elimină automat filtrele de pe tablă","settings.removeCellFilters.always":"\xcentotdeauna","settings.removeCellFilters.never":"Niciodată","settings.showCoordinates":"Coordonate","settings.showCoordinates.alternative":"Alternativă","settings.showCoordinates.original":"Original","words":"Cuvinte create","words.empty-state.no-words":"Niciun cuv\xe2nt creat - tabla este goală.","words.input.placeholder":"Cautare cuvinte... (RegExp)","words.invalid":"Invalid","words.preview":"Previzualizare","words.valid":"Valid","words.validity":"Validitate"}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=371,exports.ids=[371],exports.modules={17371:a=>{a.exports=JSON.parse('{"cell.enter-word":"Wort eingeben","cell.filter-cell.exclude":"Ziel ausschlie\xdfen","cell.filter-cell.include":"Ziel anvisieren","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein {{coordinates}}","cell.toggle-direction":"Schreibrichtung","common.arrows":"Pfeiltasten","common.blanks":"Blankos","common.clear":"L\xf6schen","common.close":"Schlie\xdfen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.off":"Aus","common.on":"Ein","common.points":"Punkte","common.previous":"Zur\xfcck","common.space":"Leertaste","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"W\xf6rter","dictionary":"W\xf6rterbuch","dictionary.empty-state.no-definitions":"Wort existiert im W\xf6rterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im W\xf6rterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die W\xf6rterbuchdefinition wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche W\xf6rterbuch…","dictionary.input.title":"Durch Kommas getrennte W\xf6rter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturk\xfcrzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-cell-filter":"Zielfilter umschalten","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzuf\xfcgen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"L\xf6sen","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzuf\xfcgen","menu":"Men\xfc","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","rack.touchscreen.placeholder":"Steine…","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt.","results.empty-state.uninitialized":"W\xf6rter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzuf\xfcgen","results.preview":"Vorschau","results.solve":"L\xf6sen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.highlightUnreachableCells":"Unerreichbare Felder hervorheben","settings.inputMode":"Eingabemodus","settings.inputMode.keyboard":"Tastatur","settings.inputMode.touchscreen":"Touchscreen","settings.language":"Sprache","settings.removeCellFilters":"Filter automatisch vom Spielbrett entfernen","settings.removeCellFilters.always":"Immer","settings.removeCellFilters.never":"Nie","settings.showCoordinates":"Koordinaten","settings.showCoordinates.alternative":"Alternative","settings.showCoordinates.original":"Original","words":"Gebildete W\xf6rter","words.invalid":"Falsch","words.valid":"Korrekt"}')}};
|
|
1
|
+
"use strict";exports.id=371,exports.ids=[371],exports.modules={17371:a=>{a.exports=JSON.parse('{"cell.enter-word":"Wort eingeben","cell.filter-cell.exclude":"Ziel ausschlie\xdfen","cell.filter-cell.include":"Ziel anvisieren","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein {{coordinates}}","cell.toggle-direction":"Schreibrichtung","common.arrows":"Pfeiltasten","common.blanks":"Blankos","common.clear":"L\xf6schen","common.close":"Schlie\xdfen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.off":"Aus","common.on":"Ein","common.points":"Punkte","common.previous":"Zur\xfcck","common.space":"Leertaste","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"W\xf6rter","dictionary":"W\xf6rterbuch","dictionary.empty-state.no-definitions":"Wort existiert im W\xf6rterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im W\xf6rterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die W\xf6rterbuchdefinition wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche W\xf6rterbuch…","dictionary.input.title":"Durch Kommas getrennte W\xf6rter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturk\xfcrzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-cell-filter":"Zielfilter umschalten","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzuf\xfcgen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"L\xf6sen","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzuf\xfcgen","menu":"Men\xfc","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","rack.touchscreen.placeholder":"Steine…","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt.","results.empty-state.uninitialized":"W\xf6rter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzuf\xfcgen","results.preview":"Vorschau","results.select":"Ausw\xe4hlen...","results.solve":"L\xf6sen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.highlightUnreachableCells":"Unerreichbare Felder hervorheben","settings.inputMode":"Eingabemodus","settings.inputMode.keyboard":"Tastatur","settings.inputMode.touchscreen":"Touchscreen","settings.language":"Sprache","settings.removeCellFilters":"Filter automatisch vom Spielbrett entfernen","settings.removeCellFilters.always":"Immer","settings.removeCellFilters.never":"Nie","settings.showCoordinates":"Koordinaten","settings.showCoordinates.alternative":"Alternative","settings.showCoordinates.original":"Original","words":"Gebildete W\xf6rter","words.empty-state.no-words":"Keine gebildeten W\xf6rter - das Brett ist leer.","words.input.placeholder":"W\xf6rter suchen... (RegExp)","words.invalid":"Falsch","words.preview":"Vorschau","words.valid":"Korrekt","words.validity":"G\xfcltigkeit"}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=392,exports.ids=[392],exports.modules={1356:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getLegacyDictionaryFilepath=b.getDictionaryFilepath=void 0;let e=d(c(33873)),f=c(84960);b.getDictionaryFilepath=(a,b=f.OUTPUT_DIRECTORY)=>e.default.resolve(b,`${a}.gaddag`),b.getLegacyDictionaryFilepath=(a,b=f.OUTPUT_DIRECTORY)=>e.default.resolve(b,`${a}.txt`)},2655:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MemoryCache=b.LayeredCache=b.getDictionaryFilepath=b.downloadDictionary=b.DiskCache=b.createCacheTimestampComparator=b.createAsyncProxy=void 0;var d=c(80457);Object.defineProperty(b,"createAsyncProxy",{enumerable:!0,get:function(){return d.createAsyncProxy}});var e=c(10743);Object.defineProperty(b,"createCacheTimestampComparator",{enumerable:!0,get:function(){return e.createCacheTimestampComparator}});var f=c(70928);Object.defineProperty(b,"DiskCache",{enumerable:!0,get:function(){return f.DiskCache}});var g=c(49085);Object.defineProperty(b,"downloadDictionary",{enumerable:!0,get:function(){return g.downloadDictionary}});var h=c(1356);Object.defineProperty(b,"getDictionaryFilepath",{enumerable:!0,get:function(){return h.getDictionaryFilepath}});var i=c(16299);Object.defineProperty(b,"LayeredCache",{enumerable:!0,get:function(){return i.LayeredCache}});var j=c(70294);Object.defineProperty(b,"MemoryCache",{enumerable:!0,get:function(){return j.MemoryCache}})},5145:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getTxtWordList=void 0;let e=d(c(29021)),f=c(77279),g=c(33471);b.getTxtWordList=async(a,b)=>{let c=await (0,f.downloadFile)(a),d=e.default.readFileSync(c,"utf-8"),h=(0,g.extractWords)(d.toLocaleString(),b);return e.default.unlinkSync(c),h}},5878:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.findFirstWordIndex=void 0,b.findFirstWordIndex=(a,b)=>{let c=a.findIndex((a,c)=>{let d=a[c+1]||"",e=a.localeCompare(d,b)>0,f=!!a.match(/\s/);return 0!==a.trim().length&&!f&&e});if(void 0===c)throw Error("Cannot find index of the first word in the file");return c}},10305:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/french/ods8.txt",d.Locale.FR_FR);return(0,e.transliterateDiacritics)(a)}},10743:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createCacheTimestampComparator=void 0,b.createCacheTimestampComparator=a=>(b,c)=>{let d=b.getLastModifiedTimestamp(a),e=c.getLastModifiedTimestamp(a);return d===e?0:void 0===d?1:void 0===e?-1:e-d}},16299:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.LayeredCache=void 0;let d=c(10743),e=c(70928),f=c(70294);class g{constructor(){this.layers=[new f.MemoryCache,new e.DiskCache]}async get(a){let b=this.getLastModifiedLayer(a);if(!b)return Promise.resolve(void 0);let[c,d]=this.layers,e=await b.get(a);return b===d&&void 0!==e&&await c.set(a,e),e}getLastModifiedTimestamp(a){let b=this.getLastModifiedLayer(a);if(b)return b.getLastModifiedTimestamp(a)}has(a){return this.layers.some(b=>b.has(a))}isStale(a){return!!this.layers.some(b=>b.isStale(a))||!!this.layers.every(b=>void 0===b.isStale(a))&&void 0}async set(a,b){let[c,d]=this.layers;await d.set(a,b),await c.set(a,b)}getLastModifiedLayer(a){let[b]=[...this.layers.filter(b=>b.has(a))].sort((0,d.createCacheTimestampComparator)(a));return b}}b.LayeredCache=g},24392:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.CharacterBonus=void 0;let d=c(34474),e=c(57103);class f extends e.Bonus{constructor(){super(...arguments),this.type=d.BONUS_CHARACTER}canApply(a,b){return super.canApply(a,b)&&this.matchesCellTileScore(a,b)}matchesCellTileScore(a,b){return void 0===this.score||this.score===a.pointsMap[b.tile.character]}get value(){return{characterMultiplier:this.multiplier,wordMultiplier:1}}}b.CharacterBonus=f},26220:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.OUTPUT_DIRECTORY=void 0;let e=d(c(21820));b.OUTPUT_DIRECTORY=d(c(33873)).default.resolve(e.default.homedir(),".scrabble-solver","logs")},26578:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Gaddag=b.SEPARATOR=b.MAX_WORDS=b.MAX_WORD_LENGTH=b.MAX_LETTERS=b.MAGIC=b.LETTER_MASK=b.LAST_ARC_FLAG=b.HEADER_BYTES=b.sortItems=b.scanWords=b.insertItems=b.generateItems=b.encodeWords=void 0;var d=c(81510);Object.defineProperty(b,"encodeWords",{enumerable:!0,get:function(){return d.encodeWords}}),Object.defineProperty(b,"generateItems",{enumerable:!0,get:function(){return d.generateItems}}),Object.defineProperty(b,"insertItems",{enumerable:!0,get:function(){return d.insertItems}}),Object.defineProperty(b,"scanWords",{enumerable:!0,get:function(){return d.scanWords}}),Object.defineProperty(b,"sortItems",{enumerable:!0,get:function(){return d.sortItems}});var e=c(42277);Object.defineProperty(b,"HEADER_BYTES",{enumerable:!0,get:function(){return e.HEADER_BYTES}}),Object.defineProperty(b,"LAST_ARC_FLAG",{enumerable:!0,get:function(){return e.LAST_ARC_FLAG}}),Object.defineProperty(b,"LETTER_MASK",{enumerable:!0,get:function(){return e.LETTER_MASK}}),Object.defineProperty(b,"MAGIC",{enumerable:!0,get:function(){return e.MAGIC}}),Object.defineProperty(b,"MAX_LETTERS",{enumerable:!0,get:function(){return e.MAX_LETTERS}}),Object.defineProperty(b,"MAX_WORD_LENGTH",{enumerable:!0,get:function(){return e.MAX_WORD_LENGTH}}),Object.defineProperty(b,"MAX_WORDS",{enumerable:!0,get:function(){return e.MAX_WORDS}}),Object.defineProperty(b,"SEPARATOR",{enumerable:!0,get:function(){return e.SEPARATOR}});var f=c(57934);Object.defineProperty(b,"Gaddag",{enumerable:!0,get:function(){return f.Gaddag}})},27475:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;var f=c(42507);Object.defineProperty(b,"getWordList",{enumerable:!0,get:function(){return f.getWordList}}),e(c(67511),b),e(c(98335),b)},27605:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Result=void 0;let d=c(34474),e=c(53144);class f{constructor({cells:a,id:b,collisions:c,points:d}){const e=k(a);this.blanksCount=g(e).length,this.cells=a,this.collisions=c,this.consonantsCount=h(e).length,this.id=b,this.length=a.length,this.points=d,this.pointsRatio=j(e,d),this.tiles=e,this.tilesCount=e.length,this.vowelsCount=i(e).length,this.word=l(a),this.words=m(a,c),this.wordsCount=1+this.collisions.length}toJson(){let a=this.cells.filter(a=>a.isEmpty);return{blankIndices:a.flatMap((a,b)=>a.tile.isBlank?[b]:[]),id:this.id,isHorizontal:this.isHorizontal(),points:this.points,tiles:a.map(a=>a.tile.character),x:this.cells[0].x,y:this.cells[0].y}}isHorizontal(){return this.cells[0].y===this.cells[1].y}isVertical(){return this.cells[0].x===this.cells[1].x}}b.Result=f,f.fromJson=(a,b)=>{let c=(0,e.readCells)(a,b);return new f({cells:c,collisions:(0,e.readCollisions)(c,b,a.isHorizontal),id:a.id,points:a.points})};let g=a=>a.filter(({isBlank:a})=>a),h=a=>a.filter(n),i=a=>a.filter(o),j=(a,b)=>b/a.length,k=a=>a.filter(({isEmpty:a})=>a).map(({tile:a})=>a),l=a=>a.reduce((a,b)=>a+b.toString(),""),m=(a,b)=>[a,...b].map(l),n=({character:a,isBlank:b})=>d.CONSONANTS.includes(a)&&!b,o=({character:a,isBlank:b})=>d.VOWELS.includes(a)&&!b},29562:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.WordDefinition=b.WordBonus=b.isTileJson=b.Tile=b.Result=b.Locale=b.isLocale=b.isObject=b.isError=b.isGame=b.Game=b.Config=b.CharacterBonus=b.isCellJson=b.Cell=b.Bonus=b.isBoardJson=b.Board=b.isScoreBingo=b.isMultiplierBingo=b.isBingo=void 0;var d=c(97055);Object.defineProperty(b,"isBingo",{enumerable:!0,get:function(){return d.isBingo}}),Object.defineProperty(b,"isMultiplierBingo",{enumerable:!0,get:function(){return d.isMultiplierBingo}}),Object.defineProperty(b,"isScoreBingo",{enumerable:!0,get:function(){return d.isScoreBingo}});var e=c(54182);Object.defineProperty(b,"Board",{enumerable:!0,get:function(){return e.Board}});var f=c(43728);Object.defineProperty(b,"isBoardJson",{enumerable:!0,get:function(){return f.isBoardJson}});var g=c(57103);Object.defineProperty(b,"Bonus",{enumerable:!0,get:function(){return g.Bonus}});var h=c(43734);Object.defineProperty(b,"Cell",{enumerable:!0,get:function(){return h.Cell}});var i=c(74784);Object.defineProperty(b,"isCellJson",{enumerable:!0,get:function(){return i.isCellJson}});var j=c(24392);Object.defineProperty(b,"CharacterBonus",{enumerable:!0,get:function(){return j.CharacterBonus}});var k=c(95776);Object.defineProperty(b,"Config",{enumerable:!0,get:function(){return k.Config}});var l=c(48852);Object.defineProperty(b,"Game",{enumerable:!0,get:function(){return l.Game}}),Object.defineProperty(b,"isGame",{enumerable:!0,get:function(){return l.isGame}});var m=c(58612);Object.defineProperty(b,"isError",{enumerable:!0,get:function(){return m.isError}});var n=c(52143);Object.defineProperty(b,"isObject",{enumerable:!0,get:function(){return n.isObject}});var o=c(52680);Object.defineProperty(b,"isLocale",{enumerable:!0,get:function(){return o.isLocale}}),Object.defineProperty(b,"Locale",{enumerable:!0,get:function(){return o.Locale}});var p=c(27605);Object.defineProperty(b,"Result",{enumerable:!0,get:function(){return p.Result}});var q=c(35722);Object.defineProperty(b,"Tile",{enumerable:!0,get:function(){return q.Tile}});var r=c(91652);Object.defineProperty(b,"isTileJson",{enumerable:!0,get:function(){return r.isTileJson}});var s=c(67699);Object.defineProperty(b,"WordBonus",{enumerable:!0,get:function(){return s.WordBonus}});var t=c(51385);Object.defineProperty(b,"WordDefinition",{enumerable:!0,get:function(){return t.WordDefinition}})},33471:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.extractWords=void 0;let d=c(5878);b.extractWords=(a,b)=>{let c=a.split(/\r?\n/g),e=(0,d.findFirstWordIndex)(c,b),f=[];for(let a=e;a<c.length;++a){let b=c[a].trim();b.length>0&&f.push(b.toLocaleLowerCase())}return f}},34474:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VOWELS=b.CONSONANTS=b.NO_BONUS=b.EMPTY_CELL=b.BONUS_WORD=b.BONUS_CHARACTER=b.BLANK=b.COMMA_LATIN=b.COMMA_ARABIC=void 0,b.COMMA_ARABIC="،",b.COMMA_LATIN=",",b.BLANK=" ",b.BONUS_CHARACTER="BONUS_CHARACTER",b.BONUS_WORD="BONUS_WORD",b.EMPTY_CELL=" ",b.NO_BONUS={characterMultiplier:1,wordMultiplier:1},b.CONSONANTS="bc\xe7ćdfgğhjklłmnń\xf1pqrsşśtvwxzźż".split(""),b.VOWELS="aą\xe4eęio\xf3\xf6u\xfcyı".split("")},35722:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Tile=void 0;let d=c(34474);class e{constructor({character:a,isBlank:b=!1}){this.character=a,this.isBlank=b}clone(){return new e({character:this.character,isBlank:this.isBlank})}equals(a){return this.character===a.character&&this.isBlank===a.isBlank}toJson(){return{character:this.character,isBlank:this.isBlank}}toString(){return this.character}}b.Tile=e,e.fromJson=a=>a?new e({character:a.character,isBlank:a.isBlank}):e.Null,e.Null=Object.freeze({character:d.EMPTY_CELL,isBlank:!1,clone:()=>e.Null,equals:a=>a===e.Null,toJson:()=>null,toString:()=>d.EMPTY_CELL})},37779:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/german/german.txt",d.Locale.DE_DE)},38670:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.transliterateDiacritics=void 0;let d=c(66605),e=c(40224);b.transliterateDiacritics=(a,b)=>(0,e.unique)(a.map(a=>(0,d.transliterate)(a,b)))},39287:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/file-2017.txt",d.Locale.ES_ES);return(0,e.transliterateDiacritics)(a,{ignore:["\xf1"]})}},40224:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unique=void 0,b.unique=a=>Array.from(new Set(a))},42277:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.HEADER_BYTES=b.MAGIC=b.LETTER_MASK=b.LAST_ARC_FLAG=b.MAX_WORDS=b.MAX_WORD_LENGTH=b.MAX_LETTERS=b.SEPARATOR=void 0,b.SEPARATOR=0,b.MAX_LETTERS=63,b.MAX_WORD_LENGTH=63,b.MAX_WORDS=0x2000000,b.LAST_ARC_FLAG=128,b.LETTER_MASK=63,b.MAGIC=0x31474447,b.HEADER_BYTES=16},42507:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(67511),f={[d.Locale.DE_DE]:e.german.getWordList,[d.Locale.EN_GB]:e.english.getWordListGb,[d.Locale.EN_US]:e.english.getWordListUs,[d.Locale.ES_ES]:e.spanish.getWordList,[d.Locale.FA_IR]:e.persian.getWordList,[d.Locale.FR_FR]:e.french.getWordList,[d.Locale.PL_PL]:e.polish.getWordList,[d.Locale.RO_RO]:e.romanian.getWordList,[d.Locale.TR_TR]:e.turkish.getWordList};b.getWordList=a=>f[a]()},43728:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isBoardJson=void 0;let d=c(74784);b.isBoardJson=a=>{if(!Array.isArray(a))return!1;for(let b of a){if(!Array.isArray(a))return!1;for(let a of b)if(!(0,d.isCellJson)(a))return!1}return!0}},43734:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Cell=void 0;let d=c(35722);class e{constructor({isEmpty:a=!0,tile:b=d.Tile.Null,x:c,y:e}){this.isEmpty=a,this.tile=b,this.x=c,this.y=e}clone(){return new e({isEmpty:this.isEmpty,tile:this.tile.clone(),x:this.x,y:this.y})}equals(a){return this.x===a.x&&this.y===a.y&&this.isEmpty===a.isEmpty&&this.tile.equals(a.tile)}hasTile(){return this.tile!==d.Tile.Null}isCandidate(){return this.isEmpty&&this.hasTile()}isFilled(){return!this.isEmpty&&this.hasTile()}toJson(){return{isEmpty:this.isEmpty,tile:this.tile.toJson(),x:this.x,y:this.y}}toString(){return this.tile.toString()}}b.Cell=e,e.fromJson=a=>new e({isEmpty:a.isEmpty,tile:d.Tile.fromJson(a.tile),x:a.x,y:a.y})},48852:(a,b)=>{var c,d;Object.defineProperty(b,"__esModule",{value:!0}),b.isGame=b.Game=void 0,(d=c||(b.Game=c={})).Crossplay="crossplay",d.Kelimelik="kelimelik",d.LetterLeague="letter-league",d.Literaki="literaki",d.Scrabble="scrabble",d.ScrabbleDuel="scrabble-duel",d.SuperScrabble="super-scrabble";let e=Object.values(c);b.isGame=a=>e.includes(a)},49085:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.downloadDictionary=void 0;let d=c(26578),e=c(57519),f=c(27475);b.downloadDictionary=async a=>{e.logger.info("downloadDictionary",{locale:a});let b=await (0,f.getWordList)(a);e.logger.info("downloadDictionary - success",{locale:a});let c=d.Gaddag.fromArray(b);return e.logger.info("downloadDictionary - gaddag built",{locale:a}),c}},51385:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.WordDefinition=void 0;class c{constructor({definitions:a,exists:b,isAllowed:c,word:d}){this.definitions=a,this.exists=b,this.isAllowed=c,this.word=d}toJson(){return{definitions:this.definitions,exists:this.exists,isAllowed:this.isAllowed,word:this.word}}}b.WordDefinition=c,c.fromJson=a=>a?new c({definitions:a.definitions,exists:a.exists,isAllowed:a.isAllowed,word:a.word}):c.Null,c.Null=Object.freeze({definitions:[],exists:!1,isAllowed:!1,word:"",toJson:()=>null})},51513:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.logger=void 0;let e=d(c(33873)),f=c(55124),g=c(26220);b.logger=(0,f.createLogger)({level:"info",format:f.format.combine(f.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),f.format.errors({stack:!0}),f.format.splat(),f.format.json(),f.format.prettyPrint()),transports:[new f.transports.File({filename:e.default.resolve(g.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new f.transports.File({filename:e.default.resolve(g.OUTPUT_DIRECTORY,"all.log")}),new f.transports.Console({format:f.format.combine(f.format.colorize(),f.format.simple()),level:"error"})]})},52143:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isObject=void 0,b.isObject=a=>"object"==typeof a&&null!==a},52250:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.downloadHtml=void 0;let d=c(31097);b.downloadHtml=a=>new Promise((b,c)=>{(a.startsWith("https")?d.https:d.http).get(a,a=>{let d="";a.setEncoding("utf8"),a.on("data",a=>{d+=a}),a.on("end",()=>{b(d)}),a.on("error",c)})})},52498:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getTempFilepath=void 0;let e=d(c(21820)),f=d(c(33873)),g=c(93839),h=f.default.resolve(e.default.homedir(),".scrabble-solver");b.getTempFilepath=()=>{let a=`${(0,g.getHash)()}.txt`;return f.default.join(h,a)}},52680:(a,b)=>{var c,d;Object.defineProperty(b,"__esModule",{value:!0}),b.isLocale=b.Locale=void 0,(d=c||(b.Locale=c={})).DE_DE="de-DE",d.EN_GB="en-GB",d.EN_US="en-US",d.ES_ES="es-ES",d.FA_IR="fa-IR",d.FR_FR="fr-FR",d.PL_PL="pl-PL",d.RO_RO="ro-RO",d.TR_TR="tr-TR";let e=Object.values(c);b.isLocale=a=>e.includes(a)},53144:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.readCells=function(a,b){let c=+!!a.isHorizontal,f=+!a.isHorizontal,g=[],h=0,{x:i,y:j}=a;for(;j<b.rowsCount&&i<b.columnsCount;){let k=b.rows[j][i];if(k.isFilled())g.push(k.clone());else if(h<a.tiles.length)g.push(function(a,b,c,f){let g=a.tiles[b],h=a.blankIndices.includes(b);return new d.Cell({isEmpty:!0,tile:new e.Tile({character:g,isBlank:h}),x:c,y:f})}(a,h,i,j)),h+=1;else break;i+=c,j+=f}return g},b.readCollisions=function(a,b,c){let d=[];for(let e of a){if(e.isFilled())continue;let a=function(a,b,c){let d=+!c,e=+!!c,f=a.x-d,g=a.y-e;for(;f>=0&&g>=0&&b.rows[g][f].isFilled();)f-=d,g-=e;f+=d,g+=e;let h=[];for(;g<b.rowsCount&&f<b.columnsCount;){if(f===a.x&&g===a.y)h.push(a);else{let a=b.rows[g][f];if(!a.isFilled())break;h.push(a.clone())}f+=d,g+=e}return h}(e,b,c);a.length>1&&d.push(a)}return d};let d=c(43734),e=c(35722)},54182:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Board=void 0;let d=c(34474),e=c(43734),f=c(35722);class g{static fromStringArray(a){return new g({rows:a.map((a,b)=>a.split("").map((a,c)=>new e.Cell({isEmpty:!a||a===d.EMPTY_CELL,tile:a===d.EMPTY_CELL?f.Tile.Null:new f.Tile({character:a}),x:c,y:b})))})}constructor({rows:a}){this.rows=a,this.columnsCount=a[0].length,this.rowsCount=a.length}get center(){let a=Math.floor(this.columnsCount/2),b=Math.floor(this.rowsCount/2);return this.rows[b][a]}clone(){return new g({rows:this.rows.map(a=>a.map(a=>a.clone()))})}collides(a){return this.collidesUp(a)||this.collidesDown(a)||this.collidesLeft(a)||this.collidesRight(a)}collidesDown({x:a,y:b}){return b<this.rowsCount-1&&!this.rows[b+1][a].isEmpty}collidesLeft({x:a,y:b}){return a>0&&!this.rows[b][a-1].isEmpty}collidesRight({x:a,y:b}){return a<this.columnsCount-1&&!this.rows[b][a+1].isEmpty}collidesUp({x:a,y:b}){return b>0&&!this.rows[b-1][a].isEmpty}equals(a){return this.columnsCount===a.columnsCount&&this.rowsCount===a.rowsCount&&this.rows.every((b,c)=>b.every((b,d)=>b.equals(a.rows[c][d])))}getBlanksCount(){return this.rows.reduce((a,b)=>a+b.reduce((a,b)=>a+ +!!b.tile.isBlank,0),0)}getColumn(a){return this.rows.map(b=>b[a])}getRow(a){return this.rows[a]}getTilesCount(){return this.rows.reduce((a,b)=>a+b.reduce((a,b)=>a+ +!!b.hasTile(),0),0)}getWords(){return[...i(this.rows),...i(h(this.rows))]}isEmpty(){return this.rows.every(a=>a.every(({isEmpty:a})=>a))}toJson(){return this.rows.map(a=>a.map(a=>a.toJson()))}toString(){return this.rows.map(a=>a.map(String).join("")).join("\n")}updateCell(a,b,c){this.rows[b][a]=c(this.rows[b][a])}updateRow(a,b){this.rows[a]=b(this.rows[a])}}b.Board=g,g.create=(a,b)=>{let c=Array(b),d=Array(a).fill(" ").join(""),e=c.fill(d);return g.fromStringArray(e)},g.fromJson=a=>new g({rows:a.map(a=>a.map(e.Cell.fromJson))});let h=a=>{let b=a.length,c=a[0].length,d=Array(c).fill(null).map(()=>Array(b));for(let e=0;e<b;++e)for(let b=0;b<c;++b)d[b][e]=a[e][b];return d},i=a=>{let b=[];for(let c of a){let a=[];for(let d of c)d.isEmpty?a.length>0&&(a.length>1&&b.push(j(a)),a=[]):a.push(d);a.length>1&&b.push(j(a))}return b},j=a=>a.map(a=>a.tile.character).join("")},57103:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Bonus=void 0;class c{constructor({multiplier:a,score:b,x:c,y:d}){this.multiplier=a,this.score=b,this.x=c,this.y=d}canApply(a,b){return b.isEmpty&&this.matchesCellCoordinates(b)}matchesCellCoordinates(a){return this.x===a.x&&this.y===a.y}toJson(){return{multiplier:this.multiplier,score:this.score,type:this.type,x:this.x,y:this.y}}get value(){return{characterMultiplier:1,wordMultiplier:1}}}b.Bonus=c},57519:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.logger=void 0;var d=c(51513);Object.defineProperty(b,"logger",{enumerable:!0,get:function(){return d.logger}})},57934:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Gaddag=void 0;let d=c(81510),e=c(42277);class f{arcLabels;arcTargets;rootRef;charCodes;letterByCharCode;rootArcs;static fromArray(a){let b=(0,d.scanWords)(a),{wordBytes:c,wordOffsets:e}=(0,d.encodeWords)(a,b),g=(0,d.generateItems)(e);return(0,d.sortItems)(g,c,e),new f((0,d.insertItems)(g,c,e),b.charCodes)}static deserialize(a){let b=a.byteOffset%4==0?a:new Uint8Array(a);if(b.byteLength<e.HEADER_BYTES)throw Error("Invalid Gaddag data");let c=new Int32Array(b.buffer,b.byteOffset,4),d=c[1],g=c[2],h=c[3],i=e.HEADER_BYTES+4*(d+g)+g;if(c[0]!==e.MAGIC||d<0||d>e.MAX_LETTERS||g<1||h<0||(1&h)==1||h>>>1>=g||b.byteLength!==i)throw Error("Invalid Gaddag data");let j=new Int32Array(b.buffer,b.byteOffset+e.HEADER_BYTES,d),k=-1;for(let a=0;a<d;++a){let b=j[a];if(b<=k||b>65535)throw Error("Invalid Gaddag data");k=b}let l=new Int32Array(b.buffer,b.byteOffset+e.HEADER_BYTES+4*d,g),m=new Uint8Array(b.buffer,b.byteOffset+e.HEADER_BYTES+4*(d+g),g);if(g>1&&m[g-1]<e.LAST_ARC_FLAG)throw Error("Invalid Gaddag data");let n=h>>>1;if(n>1&&m[n-1]<e.LAST_ARC_FLAG)throw Error("Invalid Gaddag data");return new f({arcLabels:m,arcTargets:l,rootRef:h},j)}constructor(a,b){const{arcLabels:c,arcTargets:d,rootRef:f}=a;this.arcLabels=c,this.arcTargets=d,this.rootRef=f,this.charCodes=b;let g=0;for(let a=0;a<b.length;++a)b[a]>g&&(g=b[a]);this.letterByCharCode=new Int32Array(g+1);for(let a=0;a<b.length;++a)this.letterByCharCode[b[a]]=a+1;this.rootArcs=new Int32Array(e.MAX_LETTERS+1);let h=f>>>1;if(0!==h)for(;h<c.length;++h){const a=c[h];if(this.rootArcs[a&e.LETTER_MASK]=d[h],a>=e.LAST_ARC_FLAG)break}}serialize(){let a=this.charCodes.length,b=this.arcTargets.length,c=new Uint8Array(e.HEADER_BYTES+4*(a+b)+b),d=new Int32Array(c.buffer,0,4);return d[0]=e.MAGIC,d[1]=a,d[2]=b,d[3]=this.rootRef,new Int32Array(c.buffer,e.HEADER_BYTES,a).set(this.charCodes),new Int32Array(c.buffer,e.HEADER_BYTES+4*a,b).set(this.arcTargets),c.set(this.arcLabels,e.HEADER_BYTES+4*(a+b)),c}has(a){return 0!==a.length&&(1&this.findReversedRef(a))==1}hasPrefix(a){if(0===a.length)return 0!==this.rootRef;let b=this.findReversedRef(a);return(1&b)==1||0!==this.getArc(b,e.SEPARATOR)}findReversedRef(a){let b=this.letterByCharCode,c=b.length,d=a.length-1,e=a.charCodeAt(d),f=e<c?b[e]:0;if(0===f)return 0;let g=this.rootArcs[f];for(--d;d>=0&&0!==g;--d){let e=a.charCodeAt(d),f=e<c?b[e]:0;if(0===f)return 0;g=this.getArc(g,f)}return g}getArc(a,b){if(a===this.rootRef)return this.rootArcs[b]??0;let c=this.arcLabels,d=a>>>1;if(0===d)return 0;for(;d<c.length;++d){let a=c[d],f=a&e.LETTER_MASK;if(f===b)return this.arcTargets[d];if(f>b||a>=e.LAST_ARC_FLAG)break}return 0}getLetter(a){let b=this.letterByCharCode,c=a>=0&&a<b.length?b[a]??0:0;return 0===c?-1:c}get arcsCount(){return this.arcTargets.length-1}}b.Gaddag=f},58612:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isError=void 0;let d=c(52143);b.isError=a=>!!(0,d.isObject)(a)&&"string"==typeof a.message},59321:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.unzip=void 0;let e=d(c(29021)),f=d(c(42029));b.unzip=(a,b,c)=>e.default.createReadStream(a).pipe(f.default.Parse()).on("entry",a=>{a.path===b?a.pipe(e.default.createWriteStream(c)):a.autodrain()}).promise()},67511:function(a,b,c){var d,e=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),f=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),g=this&&this.__importStar||(d=function(a){return(d=Object.getOwnPropertyNames||function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[b.length]=c);return b})(a)},function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c=d(a),g=0;g<c.length;g++)"default"!==c[g]&&e(b,a,c[g]);return f(b,a),b});Object.defineProperty(b,"__esModule",{value:!0}),b.turkish=b.spanish=b.romanian=b.polish=b.persian=b.french=b.german=b.english=void 0,b.english=g(c(80119)),b.german=g(c(37779)),b.french=g(c(10305)),b.persian=g(c(91135)),b.polish=g(c(72794)),b.romanian=g(c(82248)),b.spanish=g(c(39287)),b.turkish=g(c(92639))},67699:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.WordBonus=void 0;let d=c(34474),e=c(57103);class f extends e.Bonus{constructor(){super(...arguments),this.type=d.BONUS_WORD}get value(){return{characterMultiplier:1,wordMultiplier:this.multiplier}}}b.WordBonus=f},70294:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MemoryCache=void 0;let d=c(84960);class e{constructor(){this.cache={},this.cacheTimestamps={}}get(a){return Promise.resolve(this.cache[a])}getLastModifiedTimestamp(a){return this.cacheTimestamps[a]}has(a){return void 0!==this.cache[a]}isStale(a){let b=this.getLastModifiedTimestamp(a);if(this.has(a)&&void 0!==b)return Math.abs(b-Date.now())>d.CACHE_STALE_THRESHOLD}set(a,b){return this.cacheTimestamps[a]=Date.now(),this.cache[a]=b,Promise.resolve()}}b.MemoryCache=e},70928:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.DiskCache=void 0;let e=c(26578),f=c(57519),g=d(c(29021)),h=c(84960),i=c(1356);class j{constructor(a=h.OUTPUT_DIRECTORY){this.directory=a}async get(a){if(!this.has(a))return;let b=(0,i.getDictionaryFilepath)(a,this.directory);try{let a=await g.default.promises.readFile(b);return e.Gaddag.deserialize(new Uint8Array(a.buffer,a.byteOffset,a.byteLength))}catch(c){f.logger.warn("DiskCache - incompatible or corrupted dictionary file, it will be rebuilt",{error:c,locale:a}),await g.default.promises.rm(b,{force:!0});return}}getLastModifiedTimestamp(a){let b=(0,i.getDictionaryFilepath)(a,this.directory);if(g.default.existsSync(b))return g.default.statSync(b).mtimeMs}has(a){let b=(0,i.getDictionaryFilepath)(a,this.directory);return g.default.existsSync(b)}isStale(a){if(!this.has(a))return;let b=this.getLastModifiedTimestamp(a);if(void 0!==b)return Math.abs(b-Date.now())>h.CACHE_STALE_THRESHOLD}async set(a,b){let c=(0,i.getDictionaryFilepath)(a,this.directory);await g.default.promises.writeFile(c,b.serialize()),await g.default.promises.rm((0,i.getLegacyDictionaryFilepath)(a,this.directory),{force:!0})}}b.DiskCache=j},72794:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let e=c(29562),f=c(14217),g=d(c(29021)),h=c(79551),i=c(98335);b.getWordList=async()=>{try{let a=(0,i.getTempFilepath)(),b=await j("https://sjp.pl/sl/growy/"),c=await (0,i.downloadFile)(b);await (0,i.unzip)(c,"slowa.txt",a),g.default.unlinkSync(c);let d=g.default.readFileSync(a,"utf-8");g.default.unlinkSync(a);let e=(0,i.extractWords)(d.toLocaleString(),"pl-PL");if(e.length<2e6)return l();return e}catch{return l()}};let j=async a=>{let b=k(await (0,i.downloadHtml)(a)),{href:c}=new h.URL(b,a);return c},k=a=>{let b=(0,f.load)(a),c=Array.from(b("a")).map(a=>b(a).attr("href")).filter(Boolean).find(a=>a.endsWith(".zip"));if(void 0===c)throw Error("Cannot find link to zip file on the page");return c},l=()=>(0,i.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/polish/sjp.txt",e.Locale.PL_PL)},74784:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCellJson=void 0;let d=c(52143),e=c(91652);b.isCellJson=a=>(0,d.isObject)(a)&&"boolean"==typeof a.isEmpty&&((0,e.isTileJson)(a.tile)||null===a.tile)&&"number"==typeof a.x&&"number"==typeof a.y},75494:(a,b,c)=>{c.d(b,{T:()=>d});let d=a=>({origin:a.headers.origin,referer:a.headers.referer,userAgent:a.headers["user-agent"],xForwardedFor:a.headers["x-forwarded-for"],xRealIp:a.headers["x-real-ip"]})},77279:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.downloadFile=void 0;let e=c(31097),f=d(c(29021)),g=c(52498);b.downloadFile=a=>new Promise((b,c)=>{let d=(0,g.getTempFilepath)(),h=a.startsWith("https")?e.https:e.http,i=f.default.createWriteStream(d);h.get(a,e=>{void 0===e.statusCode||e.statusCode>=400?c(Error(`Cannot download file: ${a}`)):(e.on("error",a=>{i.close(),c(a)}),e.on("end",()=>{i.on("finish",()=>{i.close(),b(d)})}),e.pipe(i))}).on("error",a=>{i.close(),c(a)})})},77715:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.dictionaries=void 0;let f=c(90949);e(c(2655),b),b.dictionaries=new f.Dictionaries},80119:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordListUs=b.getWordListGb=void 0;let d=c(29562),e=c(98335);b.getWordListGb=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/sowpods.txt",d.Locale.EN_GB),b.getWordListUs=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/twl06.txt",d.Locale.EN_US)},80457:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createAsyncProxy=void 0,b.createAsyncProxy=a=>{let b=null;return async()=>{if(b)return b;try{return b=a(),await b}finally{b=null}}}},81510:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.insertItems=b.sortItems=b.generateItems=b.encodeWords=b.scanWords=void 0;let d=c(42277);b.scanWords=a=>{let b=new Uint8Array(65536),c=0,e=0,f=0;for(let g of a){if("string"!=typeof g)throw TypeError("Gaddag supports string words only");if(0!==g.length&&!(g.length>d.MAX_WORD_LENGTH)){e+=g.length,++f;for(let a=0;a<g.length;++a){let d=g.charCodeAt(a);0===b[d]&&(b[d]=1,++c)}}}if(c>d.MAX_LETTERS)throw RangeError(`Gaddag supports up to ${d.MAX_LETTERS} distinct characters, got ${c}`);if(f>d.MAX_WORDS)throw RangeError(`Gaddag supports up to ${d.MAX_WORDS} words, got ${f}`);let g=new Int32Array(c);for(let a=0,d=0;d<c;++a)1===b[a]&&(g[d]=a,++d);let h=new Int32Array((0===c?-1:g[c-1])+1);for(let a=0;a<g.length;++a)h[g[a]]=a+1;return{charCodes:g,itemsCount:e,letterByCharCode:h,wordsCount:f}},b.encodeWords=(a,b)=>{let{itemsCount:c,letterByCharCode:e,wordsCount:f}=b,g=new Uint8Array(c),h=new Int32Array(f+1),i=0,j=0;for(let b of a)if(0!==b.length&&!(b.length>d.MAX_WORD_LENGTH)){h[j]=i;for(let a=0;a<b.length;++a)g[i]=e[b.charCodeAt(a)],++i;++j}return h[f]=i,{wordBytes:g,wordOffsets:h}},b.generateItems=a=>{let b=a.length-1,c=new Int32Array(a[b]),d=0;for(let e=0;e<b;++e){let b=a[e+1]-a[e];for(let a=1;a<=b;++a)c[d]=e<<6|a,++d}return c};let e=d.MAX_LETTERS+2;b.sortItems=(a,b,c)=>{let d=new Uint8Array(a.length),g=new Int32Array(e),i=new Int32Array(e),j=new Int32Array(e),k=new Int32Array(192),l=0,m=(a,b,c)=>{if(l+3>k.length){let a=new Int32Array(2*k.length);a.set(k),k=a}k[l]=a,k[l+1]=b,k[l+2]=c,l+=3};for(m(0,a.length,0);l>0;){let n=k[l-=3],o=k[l+1],p=k[l+2];if(!(o-n<2)){if(o-n<=24){f(a,n,o,p,b,c);continue}for(;;){g.fill(0);for(let e=n;e<o;++e){let f=h(a[e],p,b,c);d[e]=f,++g[f]}let f=-1;for(let a=0;a<e;++a){if(g[a]===o-n){f=a;break}if(g[a]>0)break}if(f>0){++p;continue}if(0===f)break;let k=n;for(let a=0;a<e;++a)i[a]=k,j[a]=k,k+=g[a];let l=e-1;for(;0===g[l];)--l;for(let b=0;b<l;++b){let c=i[b]+g[b];for(;j[b]<c;){let c=a[j[b]],e=d[j[b]];for(;e!==b;){let b=j[e],f=a[b],g=d[b];a[b]=c,++j[e],c=f,e=g}a[j[b]]=c,++j[b]}}for(let a=1;a<e;++a)g[a]>1&&m(i[a],i[a]+g[a],p+1);break}}}};let f=(a,b,c,d,e,f)=>{for(let h=b+1;h<c;++h){let c=a[h],i=h-1;for(;i>=b&&g(a[i],c,d,e,f)>0;)a[i+1]=a[i],--i;a[i+1]=c}},g=(a,b,c,d,e)=>{for(let f=c;;++f){let c=h(a,f,d,e),g=h(b,f,d,e);if(c!==g)return c-g;if(0===c)return 0}},h=(a,b,c,d)=>{let e=a>>>6,f=63&a,g=d[e];return b<f?c[g+f-1-b]+1:b===f?+(f<d[e+1]-g):b<=d[e+1]-g?c[g+b-1]+1:0},i=d.MAX_WORD_LENGTH+1,j=i+1,k=d.MAX_LETTERS+1;b.insertItems=(a,b,c)=>{let d=new l,e=new Uint8Array(i),f=new Uint8Array(i);for(let g=0;g<a.length;++g){let h=a[g],i=h>>>6,j=63&h,k=c[i],l=c[i+1]-k,m=0;for(let a=j-1;a>=0;--a)e[m]=b[k+a],++m;if(j<l){e[m]=0,++m;for(let a=j;a<l;++a)e[m]=b[k+a],++m}d.insert(e,m);let n=e;e=f,f=n}return d.finish()};class l{labels;targets;arcTop;table;tableHashes;tableCount;pathLetters;pathTargets;pathCounts;pathFinal;previous;previousLength;constructor(){this.labels=new Uint8Array(65536),this.targets=new Int32Array(65536),this.arcTop=1,this.table=new Int32Array(65536),this.tableHashes=new Int32Array(65536),this.tableCount=0,this.pathLetters=new Uint8Array(j*k),this.pathTargets=new Int32Array(j*k),this.pathCounts=new Int32Array(j),this.pathFinal=new Uint8Array(j),this.previous=new Uint8Array(0),this.previousLength=0}insert(a,b){let{previous:c,pathCounts:d,pathFinal:e}=this,f=0,g=Math.min(b,this.previousLength);for(;f<g&&a[f]===c[f];)++f;if(f<g?a[f]<c[f]:b<this.previousLength)throw Error("Gaddag sequences must be inserted in sorted order");for(let a=this.previousLength;a>f;--a)this.freeze(a);for(let c=f;c<b;++c){let b=c*k;this.pathLetters[b+d[c]]=a[c],this.pathTargets[b+d[c]]=0,++d[c],d[c+1]=0,e[c+1]=0}e[b]=1,this.previous=a,this.previousLength=b}finish(){for(let a=this.previousLength;a>0;--a)this.freeze(a);let a=this.registerState(0);return{arcLabels:this.labels.slice(0,this.arcTop),arcTargets:this.targets.slice(0,this.arcTop),rootRef:a}}freeze(a){let b=this.registerState(a),c=(a-1)*k;this.pathTargets[c+this.pathCounts[a-1]-1]=b}registerState(a){let b=this.pathCounts[a],c=this.pathFinal[a];if(0===b)return c;let d=a*k,e=this.hashPath(d,b),f=this.table.length-1,g=e&f;for(;;){let a=this.table[g];if(0===a)break;if(this.equalsPath(a,d,b))return a<<1|c;g=g+1&f}let h=this.appendArcs(d,b);return this.table[g]=h,this.tableHashes[g]=e,++this.tableCount,10*this.tableCount>7*this.table.length&&this.growTable(),h<<1|c}hashPath(a,b){let c=0x811c9dc5^b;for(let d=0;d<b;++d)c=Math.imul((c=Math.imul(c^this.pathLetters[a+d],0x1000193))^this.pathTargets[a+d],0x1000193);return c>>>0}equalsPath(a,b,c){for(let e=0;e<c;++e){let f=this.labels[a+e];if((f&d.LETTER_MASK)!==this.pathLetters[b+e]||this.targets[a+e]!==this.pathTargets[b+e]||f>=d.LAST_ARC_FLAG!=(e===c-1))return!1}return!0}appendArcs(a,b){if(this.arcTop+b>0x40000000)throw RangeError("Gaddag supports up to 1073741824 arcs");if(this.arcTop+b>this.labels.length){let a=Math.max(2*this.labels.length,this.arcTop+b),c=new Uint8Array(a);c.set(this.labels),this.labels=c;let d=new Int32Array(a);d.set(this.targets),this.targets=d}let c=this.arcTop;for(let c=0;c<b;++c)this.labels[this.arcTop]=this.pathLetters[a+c]|(c===b-1?d.LAST_ARC_FLAG:0),this.targets[this.arcTop]=this.pathTargets[a+c],++this.arcTop;return c}growTable(){let a=this.table,b=this.tableHashes;this.table=new Int32Array(2*a.length),this.tableHashes=new Int32Array(2*a.length);let c=this.table.length-1;for(let d=0;d<a.length;++d){let e=a[d];if(0===e)continue;let f=b[d],g=f&c;for(;0!==this.table[g];)g=g+1&c;this.table[g]=e,this.tableHashes[g]=f}}}},82248:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt",d.Locale.RO_RO);return(0,e.transliterateDiacritics)(a)}},84960:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.OUTPUT_DIRECTORY=b.CACHE_STALE_THRESHOLD=b.DAY=void 0;let e=d(c(21820)),f=d(c(33873));b.DAY=864e5,b.CACHE_STALE_THRESHOLD=+b.DAY,b.OUTPUT_DIRECTORY=f.default.resolve(e.default.homedir(),".scrabble-solver","dictionaries")},90949:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.Dictionaries=void 0;let e=c(57519),f=c(29562),g=d(c(29021)),h=c(84960),i=c(2655);class j{constructor(){this.cache=new i.LayeredCache,this.downloadDictionaryProxies=Object.fromEntries(Object.values(f.Locale).map(a=>[a,(0,i.createAsyncProxy)(()=>(0,i.downloadDictionary)(a))]))}async get(a){if(this.cache.has(a)){let b=await this.cache.get(a);if(b)return b}return e.logger.info("Dictionaries - cache miss",{locale:a}),this.updateDictionary(a)}remove(){g.default.rmdirSync(h.OUTPUT_DIRECTORY,{recursive:!0})}async update(a){let b=a?Object.values(f.Locale):this.getLocalesToUpdate();e.logger.info("Dictionaries - update",{force:a,locales:b}),await Promise.all(b.map(a=>this.updateDictionary(a)))}getLocalesToUpdate(){return Object.values(f.Locale).filter(a=>!1!==this.cache.isStale(a))}async updateDictionary(a){e.logger.info("Dictionaries - updateDictionary",{locale:a}),g.default.mkdirSync(h.OUTPUT_DIRECTORY,{recursive:!0});let b=this.downloadDictionaryProxies[a],c=await b();return await this.cache.set(a,c),c}}b.Dictionaries=j},91135:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/persian/persian.txt",d.Locale.FA_IR)},91652:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isTileJson=void 0;let d=c(52143);b.isTileJson=a=>(0,d.isObject)(a)&&"string"==typeof a.character&&"boolean"==typeof a.isBlank},92639:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/turkish/kelimelik.txt",d.Locale.TR_TR)},93839:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getHash=void 0;let e=d(c(55511));b.getHash=(a=8)=>e.default.randomBytes(a).toString("hex")},95776:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Config=void 0;let d=c(34474),e=c(24392),f=c(67699);class g{constructor(a){this.bonuses=h(a),this.config=a,this.pointsMap=j(this.config)}get alphabet(){return i(this.config)}get bingo(){return this.config.bingo}get blankScore(){return this.config.blankScore}get blanksCount(){return this.config.blanksCount}get boardHeight(){return this.config.boardHeight}get boardWidth(){return this.config.boardWidth}get game(){return this.config.game}get locale(){return this.config.locale}get twoCharacterTiles(){return this.config.tiles.filter(a=>2===a.character.length).map(a=>a.character)}getCellBonus(a){return this.bonuses.find(b=>b.matchesCellCoordinates(a))}getCellBonusValue(a){return this.getCellBonus(a)?.value||d.NO_BONUS}getCharacterPoints(a){if(null!==a)return a===d.BLANK?this.blankScore:this.pointsMap[a]}getTwoCharacterTileByPrefix(a){if(1===a.length)return this.twoCharacterTiles.find(b=>b.startsWith(a.toLocaleLowerCase()))}getTilePoints(a){if(null!==a)return a.isBlank?this.blankScore:this.getCharacterPoints(a.character)}hasCharacter(a){return a in this.pointsMap}isTwoCharacterTilePrefix(a){return void 0!==this.getTwoCharacterTileByPrefix(a)}get rackSize(){return this.config.rackSize}get supportsRemainingTiles(){return this.tiles.every(a=>"number"==typeof a.count)}get tiles(){return this.config.tiles}toJson(){return this.config}}b.Config=g,g.fromJson=a=>new g(a);let h=a=>a.bonuses.map(a=>{if(a.type===d.BONUS_CHARACTER)return new e.CharacterBonus(a);if(a.type===d.BONUS_WORD)return new f.WordBonus(a);throw Error(`Unsupported Bonus type: "${a.type}"`)}),i=a=>a.tiles.map(({character:a})=>a),j=a=>a.tiles.reduce((a,{character:b,score:c})=>({...a,[b]:c}),{})},97055:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isMultiplierBingo=b.isScoreBingo=b.isBingo=void 0;let d=c(52143);b.isBingo=a=>(0,b.isScoreBingo)(a)||(0,b.isMultiplierBingo)(a),b.isScoreBingo=a=>(0,d.isObject)(a)&&"score"in a&&"number"==typeof a.score,b.isMultiplierBingo=a=>(0,d.isObject)(a)&&"multiplier"in a&&"number"==typeof a.multiplier},98335:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unzip=b.unique=b.transliterateDiacritics=b.getTxtWordList=b.getTempFilepath=b.getHash=b.findFirstWordIndex=b.extractWords=b.downloadHtml=b.downloadFile=void 0;var d=c(77279);Object.defineProperty(b,"downloadFile",{enumerable:!0,get:function(){return d.downloadFile}});var e=c(52250);Object.defineProperty(b,"downloadHtml",{enumerable:!0,get:function(){return e.downloadHtml}});var f=c(33471);Object.defineProperty(b,"extractWords",{enumerable:!0,get:function(){return f.extractWords}});var g=c(5878);Object.defineProperty(b,"findFirstWordIndex",{enumerable:!0,get:function(){return g.findFirstWordIndex}});var h=c(93839);Object.defineProperty(b,"getHash",{enumerable:!0,get:function(){return h.getHash}});var i=c(52498);Object.defineProperty(b,"getTempFilepath",{enumerable:!0,get:function(){return i.getTempFilepath}});var j=c(5145);Object.defineProperty(b,"getTxtWordList",{enumerable:!0,get:function(){return j.getTxtWordList}});var k=c(38670);Object.defineProperty(b,"transliterateDiacritics",{enumerable:!0,get:function(){return k.transliterateDiacritics}});var l=c(40224);Object.defineProperty(b,"unique",{enumerable:!0,get:function(){return l.unique}});var m=c(59321);Object.defineProperty(b,"unzip",{enumerable:!0,get:function(){return m.unzip}})}};
|
|
1
|
+
"use strict";exports.id=392,exports.ids=[392],exports.modules={678:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isLocale=void 0;let d=Object.values(c(52680).Locale);b.isLocale=a=>d.includes(a)},1356:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getLegacyDictionaryFilepath=b.getDictionaryFilepath=void 0;let e=d(c(33873)),f=c(62579);b.getDictionaryFilepath=(a,b=f.OUTPUT_DIRECTORY)=>e.default.resolve(b,`${a}.gaddag`),b.getLegacyDictionaryFilepath=(a,b=f.OUTPUT_DIRECTORY)=>e.default.resolve(b,`${a}.txt`)},2655:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MemoryCache=b.LayeredCache=b.getDictionaryFilepath=b.downloadDictionary=b.DiskCache=b.createCacheTimestampComparator=b.createAsyncProxy=void 0;var d=c(80457);Object.defineProperty(b,"createAsyncProxy",{enumerable:!0,get:function(){return d.createAsyncProxy}});var e=c(10743);Object.defineProperty(b,"createCacheTimestampComparator",{enumerable:!0,get:function(){return e.createCacheTimestampComparator}});var f=c(70928);Object.defineProperty(b,"DiskCache",{enumerable:!0,get:function(){return f.DiskCache}});var g=c(49085);Object.defineProperty(b,"downloadDictionary",{enumerable:!0,get:function(){return g.downloadDictionary}});var h=c(1356);Object.defineProperty(b,"getDictionaryFilepath",{enumerable:!0,get:function(){return h.getDictionaryFilepath}});var i=c(16299);Object.defineProperty(b,"LayeredCache",{enumerable:!0,get:function(){return i.LayeredCache}});var j=c(70294);Object.defineProperty(b,"MemoryCache",{enumerable:!0,get:function(){return j.MemoryCache}})},4860:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isSameBoardWord=function(a,b){return a.direction===b.direction&&a.x===b.x&&a.y===b.y}},5145:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getTxtWordList=void 0;let e=d(c(29021)),f=c(77279),g=c(33471);b.getTxtWordList=async(a,b)=>{let c=await (0,f.downloadFile)(a),d=e.default.readFileSync(c,"utf-8"),h=(0,g.extractWords)(d.toLocaleString(),b);return e.default.unlinkSync(c),h}},5461:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getPlacedCell=function(a,b,c,f){let g=a.tiles[b],h=a.blankIndices.includes(b);return new d.Cell({isEmpty:!0,tile:new e.Tile({character:g,isBlank:h}),x:c,y:f})};let d=c(43734),e=c(35722)},5878:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.findFirstWordIndex=void 0,b.findFirstWordIndex=(a,b)=>{let c=a.findIndex((a,c)=>{let d=a[c+1]||"",e=a.localeCompare(d,b)>0,f=!!a.match(/\s/);return 0!==a.trim().length&&!f&&e});if(void 0===c)throw Error("Cannot find index of the first word in the file");return c}},9205:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getBoardWords=function(a){return[...(0,d.getWordsInRows)(a.rows,"horizontal"),...(0,d.getWordsInRows)((0,e.transpose)(a.rows),"vertical")]};let d=c(63903),e=c(61787)},10305:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/french/ods8.txt",d.Locale.FR_FR);return(0,e.transliterateDiacritics)(a)}},10743:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createCacheTimestampComparator=void 0,b.createCacheTimestampComparator=a=>(b,c)=>{let d=b.getLastModifiedTimestamp(a),e=c.getLastModifiedTimestamp(a);return d===e?0:void 0===d?1:void 0===e?-1:e-d}},16185:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isObject=void 0,b.isObject=a=>"object"==typeof a&&null!==a},16299:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.LayeredCache=void 0;let d=c(10743),e=c(70928),f=c(70294);class g{constructor(){this.layers=[new f.MemoryCache,new e.DiskCache]}async get(a){let b=this.getLastModifiedLayer(a);if(!b)return Promise.resolve(void 0);let[c,d]=this.layers,e=await b.get(a);return b===d&&void 0!==e&&await c.set(a,e),e}getLastModifiedTimestamp(a){let b=this.getLastModifiedLayer(a);if(b)return b.getLastModifiedTimestamp(a)}has(a){return this.layers.some(b=>b.has(a))}isStale(a){return!!this.layers.some(b=>b.isStale(a))||!!this.layers.every(b=>void 0===b.isStale(a))&&void 0}async set(a,b){let[c,d]=this.layers;await d.set(a,b),await c.set(a,b)}getLastModifiedLayer(a){let[b]=[...this.layers.filter(b=>b.has(a))].sort((0,d.createCacheTimestampComparator)(a));return b}}b.LayeredCache=g},24392:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.CharacterBonus=void 0;let d=c(34474),e=c(57103);class f extends e.Bonus{constructor(){super(...arguments),this.type=d.BONUS_CHARACTER}canApply(a,b){return super.canApply(a,b)&&this.matchesCellTileScore(a,b)}matchesCellTileScore(a,b){return void 0===this.score||this.score===a.pointsMap[b.tile.character]}get value(){return{characterMultiplier:this.multiplier,wordMultiplier:1}}}b.CharacterBonus=f},24954:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCellJson=void 0;let d=c(16185),e=c(89106);b.isCellJson=a=>(0,d.isObject)(a)&&"boolean"==typeof a.isEmpty&&((0,e.isTileJson)(a.tile)||null===a.tile)&&"number"==typeof a.x&&"number"==typeof a.y},26220:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.OUTPUT_DIRECTORY=void 0;let e=d(c(21820));b.OUTPUT_DIRECTORY=d(c(33873)).default.resolve(e.default.homedir(),".scrabble-solver","logs")},27475:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;var f=c(42507);Object.defineProperty(b,"getWordList",{enumerable:!0,get:function(){return f.getWordList}}),e(c(67511),b),e(c(98335),b)},27605:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Result=void 0;let d=c(34474),e=c(31090);class f{constructor({cells:a,id:b,collisions:c,points:d}){const e=k(a);this.blanksCount=g(e).length,this.cells=a,this.collisions=c,this.consonantsCount=h(e).length,this.id=b,this.length=a.length,this.points=d,this.pointsRatio=j(e,d),this.tiles=e,this.tilesCount=e.length,this.vowelsCount=i(e).length,this.word=l(a),this.words=m(a,c),this.wordsCount=1+this.collisions.length}toJson(){let a=this.cells.filter(a=>a.isEmpty);return{blankIndices:a.flatMap((a,b)=>a.tile.isBlank?[b]:[]),id:this.id,isHorizontal:this.isHorizontal(),points:this.points,tiles:a.map(a=>a.tile.character),x:this.cells[0].x,y:this.cells[0].y}}isHorizontal(){return this.cells[0].y===this.cells[1].y}isVertical(){return this.cells[0].x===this.cells[1].x}}b.Result=f,f.fromJson=(a,b)=>{let c=(0,e.getCells)(b,a);return new f({cells:c,collisions:(0,e.getCollisions)(b,c,a.isHorizontal),id:a.id,points:a.points})};let g=a=>a.filter(({isBlank:a})=>a),h=a=>a.filter(n),i=a=>a.filter(o),j=(a,b)=>b/a.length,k=a=>a.filter(({isEmpty:a})=>a).map(({tile:a})=>a),l=a=>a.reduce((a,b)=>a+b.toString(),""),m=(a,b)=>[a,...b].map(l),n=({character:a,isBlank:b})=>d.CONSONANTS.includes(a)&&!b,o=({character:a,isBlank:b})=>d.VOWELS.includes(a)&&!b},29562:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.WordDefinition=b.WordBonus=b.isTileJson=b.isScoreBingo=b.isObject=b.isMultiplierBingo=b.isLocale=b.isGame=b.isError=b.isCellJson=b.isBoardJson=b.isBingo=b.Tile=b.Result=b.Locale=b.isSameBoardWord=b.Game=b.Config=b.CharacterBonus=b.Cell=b.Bonus=b.Board=void 0;var d=c(54182);Object.defineProperty(b,"Board",{enumerable:!0,get:function(){return d.Board}});var e=c(57103);Object.defineProperty(b,"Bonus",{enumerable:!0,get:function(){return e.Bonus}});var f=c(43734);Object.defineProperty(b,"Cell",{enumerable:!0,get:function(){return f.Cell}});var g=c(24392);Object.defineProperty(b,"CharacterBonus",{enumerable:!0,get:function(){return g.CharacterBonus}});var h=c(95776);Object.defineProperty(b,"Config",{enumerable:!0,get:function(){return h.Config}});var i=c(48852);Object.defineProperty(b,"Game",{enumerable:!0,get:function(){return i.Game}});var j=c(31090);Object.defineProperty(b,"isSameBoardWord",{enumerable:!0,get:function(){return j.isSameBoardWord}});var k=c(52680);Object.defineProperty(b,"Locale",{enumerable:!0,get:function(){return k.Locale}});var l=c(27605);Object.defineProperty(b,"Result",{enumerable:!0,get:function(){return l.Result}});var m=c(35722);Object.defineProperty(b,"Tile",{enumerable:!0,get:function(){return m.Tile}});var n=c(79728);Object.defineProperty(b,"isBingo",{enumerable:!0,get:function(){return n.isBingo}}),Object.defineProperty(b,"isBoardJson",{enumerable:!0,get:function(){return n.isBoardJson}}),Object.defineProperty(b,"isCellJson",{enumerable:!0,get:function(){return n.isCellJson}}),Object.defineProperty(b,"isError",{enumerable:!0,get:function(){return n.isError}}),Object.defineProperty(b,"isGame",{enumerable:!0,get:function(){return n.isGame}}),Object.defineProperty(b,"isLocale",{enumerable:!0,get:function(){return n.isLocale}}),Object.defineProperty(b,"isMultiplierBingo",{enumerable:!0,get:function(){return n.isMultiplierBingo}}),Object.defineProperty(b,"isObject",{enumerable:!0,get:function(){return n.isObject}}),Object.defineProperty(b,"isScoreBingo",{enumerable:!0,get:function(){return n.isScoreBingo}}),Object.defineProperty(b,"isTileJson",{enumerable:!0,get:function(){return n.isTileJson}});var o=c(67699);Object.defineProperty(b,"WordBonus",{enumerable:!0,get:function(){return o.WordBonus}});var p=c(51385);Object.defineProperty(b,"WordDefinition",{enumerable:!0,get:function(){return p.WordDefinition}})},31090:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(9205),b),e(c(92289),b),e(c(84960),b),e(c(38649),b),e(c(4860),b)},33471:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.extractWords=void 0;let d=c(5878);b.extractWords=(a,b)=>{let c=a.split(/\r?\n/g),e=(0,d.findFirstWordIndex)(c,b),f=[];for(let a=e;a<c.length;++a){let b=c[a].trim();b.length>0&&f.push(b.toLocaleLowerCase())}return f}},33985:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isBingo=void 0;let d=c(62174),e=c(85207);b.isBingo=a=>(0,e.isScoreBingo)(a)||(0,d.isMultiplierBingo)(a)},34474:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VOWELS=b.CONSONANTS=b.NO_BONUS=b.EMPTY_CELL=b.BONUS_WORD=b.BONUS_CHARACTER=b.BLANK=b.COMMA_LATIN=b.COMMA_ARABIC=void 0,b.COMMA_ARABIC="،",b.COMMA_LATIN=",",b.BLANK=" ",b.BONUS_CHARACTER="BONUS_CHARACTER",b.BONUS_WORD="BONUS_WORD",b.EMPTY_CELL=" ",b.NO_BONUS={characterMultiplier:1,wordMultiplier:1},b.CONSONANTS="bc\xe7ćdfgğhjklłmnń\xf1pqrsşśtvwxzźż".split(""),b.VOWELS="aą\xe4eęio\xf3\xf6u\xfcyı".split("")},35722:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Tile=void 0;let d=c(34474);class e{constructor({character:a,isBlank:b=!1}){this.character=a,this.isBlank=b}clone(){return new e({character:this.character,isBlank:this.isBlank})}equals(a){return this.character===a.character&&this.isBlank===a.isBlank}toJson(){return{character:this.character,isBlank:this.isBlank}}toString(){return this.character}}b.Tile=e,e.fromJson=a=>a?new e({character:a.character,isBlank:a.isBlank}):e.Null,e.Null=Object.freeze({character:d.EMPTY_CELL,isBlank:!1,clone:()=>e.Null,equals:a=>a===e.Null,toJson:()=>null,toString:()=>d.EMPTY_CELL})},37779:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/german/german.txt",d.Locale.DE_DE)},38649:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getCollisions=function(a,b,c){let e=[];for(let f of b){if(f.isFilled())continue;let b=(0,d.getCollision)(f,a,c);b.length>1&&e.push(b)}return e};let d=c(43018)},38670:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.transliterateDiacritics=void 0;let d=c(66605),e=c(40224);b.transliterateDiacritics=(a,b)=>(0,e.unique)(a.map(a=>(0,d.transliterate)(a,b)))},39287:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/spanish/file-2017.txt",d.Locale.ES_ES);return(0,e.transliterateDiacritics)(a,{ignore:["\xf1"]})}},40224:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unique=void 0,b.unique=a=>Array.from(new Set(a))},42507:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(67511),f={[d.Locale.DE_DE]:e.german.getWordList,[d.Locale.EN_GB]:e.english.getWordListGb,[d.Locale.EN_US]:e.english.getWordListUs,[d.Locale.ES_ES]:e.spanish.getWordList,[d.Locale.FA_IR]:e.persian.getWordList,[d.Locale.FR_FR]:e.french.getWordList,[d.Locale.PL_PL]:e.polish.getWordList,[d.Locale.RO_RO]:e.romanian.getWordList,[d.Locale.TR_TR]:e.turkish.getWordList};b.getWordList=a=>f[a]()},43018:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getCollision=function(a,b,c){let d=+!c,e=+!!c,f=a.x-d,g=a.y-e;for(;f>=0&&g>=0&&b.rows[g][f].isFilled();)f-=d,g-=e;f+=d,g+=e;let h=[];for(;g<b.rowsCount&&f<b.columnsCount;){if(f===a.x&&g===a.y)h.push(a);else{let a=b.rows[g][f];if(!a.isFilled())break;h.push(a.clone())}f+=d,g+=e}return h}},43734:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Cell=void 0;let d=c(35722);class e{constructor({isEmpty:a=!0,tile:b=d.Tile.Null,x:c,y:e}){this.isEmpty=a,this.tile=b,this.x=c,this.y=e}clone(){return new e({isEmpty:this.isEmpty,tile:this.tile.clone(),x:this.x,y:this.y})}equals(a){return this.x===a.x&&this.y===a.y&&this.isEmpty===a.isEmpty&&this.tile.equals(a.tile)}hasTile(){return this.tile!==d.Tile.Null}isCandidate(){return this.isEmpty&&this.hasTile()}isFilled(){return!this.isEmpty&&this.hasTile()}toJson(){return{isEmpty:this.isEmpty,tile:this.tile.toJson(),x:this.x,y:this.y}}toString(){return this.tile.toString()}}b.Cell=e,e.fromJson=a=>new e({isEmpty:a.isEmpty,tile:d.Tile.fromJson(a.tile),x:a.x,y:a.y})},45582:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isGame=void 0;let d=Object.values(c(48852).Game);b.isGame=a=>d.includes(a)},48852:(a,b)=>{var c,d;Object.defineProperty(b,"__esModule",{value:!0}),b.Game=void 0,(d=c||(b.Game=c={})).Crossplay="crossplay",d.Kelimelik="kelimelik",d.LetterLeague="letter-league",d.Literaki="literaki",d.Scrabble="scrabble",d.ScrabbleDuel="scrabble-duel",d.SuperScrabble="super-scrabble",d.Wyrazy="wyrazy"},49085:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.downloadDictionary=void 0;let d=c(11366),e=c(57519),f=c(27475);b.downloadDictionary=async a=>{e.logger.info("downloadDictionary",{locale:a});let b=await (0,f.getWordList)(a);e.logger.info("downloadDictionary - success",{locale:a});let c=d.Gaddag.fromArray(b);return e.logger.info("downloadDictionary - gaddag built",{locale:a}),c}},51385:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.WordDefinition=void 0;class c{constructor({definitions:a,exists:b,isAllowed:c,word:d}){this.definitions=a,this.exists=b,this.isAllowed=c,this.word=d}toJson(){return{definitions:this.definitions,exists:this.exists,isAllowed:this.isAllowed,word:this.word}}}b.WordDefinition=c,c.fromJson=a=>a?new c({definitions:a.definitions,exists:a.exists,isAllowed:a.isAllowed,word:a.word}):c.Null,c.Null=Object.freeze({definitions:[],exists:!1,isAllowed:!1,word:"",toJson:()=>null})},51513:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.logger=void 0;let e=d(c(33873)),f=c(55124),g=c(26220);b.logger=(0,f.createLogger)({level:"info",format:f.format.combine(f.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),f.format.errors({stack:!0}),f.format.splat(),f.format.json(),f.format.prettyPrint()),transports:[new f.transports.File({filename:e.default.resolve(g.OUTPUT_DIRECTORY,"error.log"),level:"error"}),new f.transports.File({filename:e.default.resolve(g.OUTPUT_DIRECTORY,"all.log")}),new f.transports.Console({format:f.format.combine(f.format.colorize(),f.format.simple()),level:"error"})]})},52250:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.downloadHtml=void 0;let d=c(31097);b.downloadHtml=a=>new Promise((b,c)=>{(a.startsWith("https")?d.https:d.http).get(a,a=>{let d="";a.setEncoding("utf8"),a.on("data",a=>{d+=a}),a.on("end",()=>{b(d)}),a.on("error",c)})})},52498:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getTempFilepath=void 0;let e=d(c(21820)),f=d(c(33873)),g=c(93839),h=f.default.resolve(e.default.homedir(),".scrabble-solver");b.getTempFilepath=()=>{let a=`${(0,g.getHash)()}.txt`;return f.default.join(h,a)}},52680:(a,b)=>{var c,d;Object.defineProperty(b,"__esModule",{value:!0}),b.Locale=void 0,(d=c||(b.Locale=c={})).DE_DE="de-DE",d.EN_GB="en-GB",d.EN_US="en-US",d.ES_ES="es-ES",d.FA_IR="fa-IR",d.FR_FR="fr-FR",d.PL_PL="pl-PL",d.RO_RO="ro-RO",d.TR_TR="tr-TR"},54182:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Board=void 0;let d=c(34474),e=c(43734),f=c(31090),g=c(35722);class h{static fromStringArray(a){return new h({rows:a.map((a,b)=>a.split("").map((a,c)=>new e.Cell({isEmpty:!a||a===d.EMPTY_CELL,tile:a===d.EMPTY_CELL?g.Tile.Null:new g.Tile({character:a}),x:c,y:b})))})}constructor({rows:a}){this.rows=a,this.columnsCount=a[0].length,this.rowsCount=a.length}get center(){let a=Math.floor(this.columnsCount/2),b=Math.floor(this.rowsCount/2);return this.rows[b][a]}clone(){return new h({rows:this.rows.map(a=>a.map(a=>a.clone()))})}collides(a){return this.collidesUp(a)||this.collidesDown(a)||this.collidesLeft(a)||this.collidesRight(a)}collidesDown({x:a,y:b}){return b<this.rowsCount-1&&!this.rows[b+1][a].isEmpty}collidesLeft({x:a,y:b}){return a>0&&!this.rows[b][a-1].isEmpty}collidesRight({x:a,y:b}){return a<this.columnsCount-1&&!this.rows[b][a+1].isEmpty}collidesUp({x:a,y:b}){return b>0&&!this.rows[b-1][a].isEmpty}equals(a){return this.columnsCount===a.columnsCount&&this.rowsCount===a.rowsCount&&this.rows.every((b,c)=>b.every((b,d)=>b.equals(a.rows[c][d])))}getBlanksCount(){return this.rows.reduce((a,b)=>a+b.reduce((a,b)=>a+ +!!b.tile.isBlank,0),0)}getCollidingWords(a){return(0,f.getCollidingWords)(this,a)}getColumn(a){return this.rows.map(b=>b[a])}getRow(a){return this.rows[a]}getTilesCount(){return this.rows.reduce((a,b)=>a+b.reduce((a,b)=>a+ +!!b.hasTile(),0),0)}getWords(){return(0,f.getBoardWords)(this)}isEmpty(){return this.rows.every(a=>a.every(({isEmpty:a})=>a))}toJson(){return this.rows.map(a=>a.map(a=>a.toJson()))}toString(){return this.rows.map(a=>a.map(String).join("")).join("\n")}updateCell(a,b,c){this.rows[b][a]=c(this.rows[b][a])}updateRow(a,b){this.rows[a]=b(this.rows[a])}}b.Board=h,h.create=(a,b)=>{let c=Array(b),d=Array(a).fill(" ").join(""),e=c.fill(d);return h.fromStringArray(e)},h.fromJson=a=>new h({rows:a.map(a=>a.map(e.Cell.fromJson))})},57103:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Bonus=void 0;class c{constructor({multiplier:a,score:b,x:c,y:d}){this.multiplier=a,this.score=b,this.x=c,this.y=d}canApply(a,b){return b.isEmpty&&this.matchesCellCoordinates(b)}matchesCellCoordinates(a){return this.x===a.x&&this.y===a.y}toJson(){return{multiplier:this.multiplier,score:this.score,type:this.type,x:this.x,y:this.y}}get value(){return{characterMultiplier:1,wordMultiplier:1}}}b.Bonus=c},57519:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.logger=void 0;var d=c(51513);Object.defineProperty(b,"logger",{enumerable:!0,get:function(){return d.logger}})},59321:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.unzip=void 0;let e=d(c(29021)),f=d(c(42029));b.unzip=(a,b,c)=>e.default.createReadStream(a).pipe(f.default.Parse()).on("entry",a=>{a.path===b?a.pipe(e.default.createWriteStream(c)):a.autodrain()}).promise()},61787:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.transpose=function(a){let b=a.length,c=a[0].length,d=Array(c).fill(null).map(()=>Array(b));for(let e=0;e<b;++e)for(let b=0;b<c;++b)d[b][e]=a[e][b];return d}},62174:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isMultiplierBingo=void 0;let d=c(16185);b.isMultiplierBingo=a=>(0,d.isObject)(a)&&"multiplier"in a&&"number"==typeof a.multiplier},62579:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.OUTPUT_DIRECTORY=b.CACHE_STALE_THRESHOLD=b.DAY=void 0;let e=d(c(21820)),f=d(c(33873));b.DAY=864e5,b.CACHE_STALE_THRESHOLD=+b.DAY,b.OUTPUT_DIRECTORY=f.default.resolve(e.default.homedir(),".scrabble-solver","dictionaries")},63903:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordsInRows=function(a,b){let c=[];for(let e of a){let a=[];for(let f of e)f.isEmpty?a.length>0&&(a.length>1&&c.push((0,d.toBoardWord)(a,b)),a=[]):a.push(f);a.length>1&&c.push((0,d.toBoardWord)(a,b))}return c};let d=c(94335)},65118:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isBoardJson=void 0;let d=c(24954);b.isBoardJson=a=>{if(!Array.isArray(a))return!1;for(let b of a){if(!Array.isArray(b))return!1;for(let a of b)if(!(0,d.isCellJson)(a))return!1}return!0}},67511:function(a,b,c){var d,e=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),f=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),g=this&&this.__importStar||(d=function(a){return(d=Object.getOwnPropertyNames||function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[b.length]=c);return b})(a)},function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c=d(a),g=0;g<c.length;g++)"default"!==c[g]&&e(b,a,c[g]);return f(b,a),b});Object.defineProperty(b,"__esModule",{value:!0}),b.turkish=b.spanish=b.romanian=b.polish=b.persian=b.french=b.german=b.english=void 0,b.english=g(c(80119)),b.german=g(c(37779)),b.french=g(c(10305)),b.persian=g(c(91135)),b.polish=g(c(72794)),b.romanian=g(c(82248)),b.spanish=g(c(39287)),b.turkish=g(c(92639))},67699:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.WordBonus=void 0;let d=c(34474),e=c(57103);class f extends e.Bonus{constructor(){super(...arguments),this.type=d.BONUS_WORD}get value(){return{characterMultiplier:1,wordMultiplier:this.multiplier}}}b.WordBonus=f},70294:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MemoryCache=void 0;let d=c(62579);class e{constructor(){this.cache={},this.cacheTimestamps={}}get(a){return Promise.resolve(this.cache[a])}getLastModifiedTimestamp(a){return this.cacheTimestamps[a]}has(a){return void 0!==this.cache[a]}isStale(a){let b=this.getLastModifiedTimestamp(a);if(this.has(a)&&void 0!==b)return Math.abs(b-Date.now())>d.CACHE_STALE_THRESHOLD}set(a,b){return this.cacheTimestamps[a]=Date.now(),this.cache[a]=b,Promise.resolve()}}b.MemoryCache=e},70928:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.DiskCache=void 0;let e=c(11366),f=c(57519),g=d(c(29021)),h=c(62579),i=c(1356);class j{constructor(a=h.OUTPUT_DIRECTORY){this.directory=a}async get(a){if(!this.has(a))return;let b=(0,i.getDictionaryFilepath)(a,this.directory);try{let a=await g.default.promises.readFile(b);return e.Gaddag.deserialize(new Uint8Array(a.buffer,a.byteOffset,a.byteLength))}catch(c){f.logger.warn("DiskCache - incompatible or corrupted dictionary file, it will be rebuilt",{error:c,locale:a}),await g.default.promises.rm(b,{force:!0});return}}getLastModifiedTimestamp(a){let b=(0,i.getDictionaryFilepath)(a,this.directory);if(g.default.existsSync(b))return g.default.statSync(b).mtimeMs}has(a){let b=(0,i.getDictionaryFilepath)(a,this.directory);return g.default.existsSync(b)}isStale(a){if(!this.has(a))return;let b=this.getLastModifiedTimestamp(a);if(void 0!==b)return Math.abs(b-Date.now())>h.CACHE_STALE_THRESHOLD}async set(a,b){let c=(0,i.getDictionaryFilepath)(a,this.directory);await g.default.promises.writeFile(c,b.serialize()),await g.default.promises.rm((0,i.getLegacyDictionaryFilepath)(a,this.directory),{force:!0})}}b.DiskCache=j},72794:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let e=c(29562),f=c(14217),g=d(c(29021)),h=c(79551),i=c(98335);b.getWordList=async()=>{try{let a=(0,i.getTempFilepath)(),b=await j("https://sjp.pl/sl/growy/"),c=await (0,i.downloadFile)(b);await (0,i.unzip)(c,"slowa.txt",a),g.default.unlinkSync(c);let d=g.default.readFileSync(a,"utf-8");g.default.unlinkSync(a);let e=(0,i.extractWords)(d.toLocaleString(),"pl-PL");if(e.length<2e6)return l();return e}catch{return l()}};let j=async a=>{let b=k(await (0,i.downloadHtml)(a)),{href:c}=new h.URL(b,a);return c},k=a=>{let b=(0,f.load)(a),c=Array.from(b("a")).map(a=>b(a).attr("href")).filter(Boolean).find(a=>a.endsWith(".zip"));if(void 0===c)throw Error("Cannot find link to zip file on the page");return c},l=()=>(0,i.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/polish/sjp.txt",e.Locale.PL_PL)},75494:(a,b,c)=>{c.d(b,{T:()=>d});let d=a=>({origin:a.headers.origin,referer:a.headers.referer,userAgent:a.headers["user-agent"],xForwardedFor:a.headers["x-forwarded-for"],xRealIp:a.headers["x-real-ip"]})},77279:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.downloadFile=void 0;let e=c(31097),f=d(c(29021)),g=c(52498);b.downloadFile=a=>new Promise((b,c)=>{let d=(0,g.getTempFilepath)(),h=a.startsWith("https")?e.https:e.http,i=f.default.createWriteStream(d);h.get(a,e=>{void 0===e.statusCode||e.statusCode>=400?c(Error(`Cannot download file: ${a}`)):(e.on("error",a=>{i.close(),c(a)}),e.on("end",()=>{i.on("finish",()=>{i.close(),b(d)})}),e.pipe(i))}).on("error",a=>{i.close(),c(a)})})},77715:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.dictionaries=void 0;let f=c(90949);e(c(2655),b),b.dictionaries=new f.Dictionaries},79728:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isTileJson=b.isScoreBingo=b.isObject=b.isMultiplierBingo=b.isLocale=b.isGame=b.isError=b.isCellJson=b.isBoardJson=b.isBingo=void 0;var d=c(33985);Object.defineProperty(b,"isBingo",{enumerable:!0,get:function(){return d.isBingo}});var e=c(65118);Object.defineProperty(b,"isBoardJson",{enumerable:!0,get:function(){return e.isBoardJson}});var f=c(24954);Object.defineProperty(b,"isCellJson",{enumerable:!0,get:function(){return f.isCellJson}});var g=c(93810);Object.defineProperty(b,"isError",{enumerable:!0,get:function(){return g.isError}});var h=c(45582);Object.defineProperty(b,"isGame",{enumerable:!0,get:function(){return h.isGame}});var i=c(678);Object.defineProperty(b,"isLocale",{enumerable:!0,get:function(){return i.isLocale}});var j=c(62174);Object.defineProperty(b,"isMultiplierBingo",{enumerable:!0,get:function(){return j.isMultiplierBingo}});var k=c(16185);Object.defineProperty(b,"isObject",{enumerable:!0,get:function(){return k.isObject}});var l=c(85207);Object.defineProperty(b,"isScoreBingo",{enumerable:!0,get:function(){return l.isScoreBingo}});var m=c(89106);Object.defineProperty(b,"isTileJson",{enumerable:!0,get:function(){return m.isTileJson}})},80119:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordListUs=b.getWordListGb=void 0;let d=c(29562),e=c(98335);b.getWordListGb=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/sowpods.txt",d.Locale.EN_GB),b.getWordListUs=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/twl06.txt",d.Locale.EN_US)},80457:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createAsyncProxy=void 0,b.createAsyncProxy=a=>{let b=null;return async()=>{if(b)return b;try{return b=a(),await b}finally{b=null}}}},81029:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordThrough=function(a,b,c,e){let f=+("horizontal"===e),g=+("horizontal"!==e),h=b,i=c;for(;h-f>=0&&i-g>=0&&!a.rows[i-g][h-f].isEmpty;)h-=f,i-=g;let j=[],k=h,l=i;for(;k<a.columnsCount&&l<a.rowsCount&&!a.rows[l][k].isEmpty;)j.push(a.rows[l][k]),k+=f,l+=g;return j.length>1?(0,d.toBoardWord)(j,e):void 0};let d=c(94335)},82248:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>{let a=await (0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/romanian/loc-5.0.txt",d.Locale.RO_RO);return(0,e.transliterateDiacritics)(a)}},84960:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getCollidingWords=function(a,b){let c="horizontal"===b.direction,e=c?"vertical":"horizontal",f=[],{x:g,y:h}=b;for(;g<a.columnsCount&&h<a.rowsCount&&!a.rows[h][g].isEmpty;){let b=(0,d.getWordThrough)(a,g,h,e);b&&f.push(b),g+=+!!c,h+=+!c}return f};let d=c(81029)},85207:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isScoreBingo=void 0;let d=c(16185);b.isScoreBingo=a=>(0,d.isObject)(a)&&"score"in a&&"number"==typeof a.score},89106:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isTileJson=void 0;let d=c(16185);b.isTileJson=a=>(0,d.isObject)(a)&&"string"==typeof a.character&&"boolean"==typeof a.isBlank},90949:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.Dictionaries=void 0;let e=c(57519),f=c(29562),g=d(c(29021)),h=c(62579),i=c(2655);class j{constructor(){this.cache=new i.LayeredCache,this.downloadDictionaryProxies=Object.fromEntries(Object.values(f.Locale).map(a=>[a,(0,i.createAsyncProxy)(()=>(0,i.downloadDictionary)(a))]))}async get(a){if(this.cache.has(a)){let b=await this.cache.get(a);if(b)return b}return e.logger.info("Dictionaries - cache miss",{locale:a}),this.updateDictionary(a)}remove(){g.default.rmdirSync(h.OUTPUT_DIRECTORY,{recursive:!0})}async update(a){let b=a?Object.values(f.Locale):this.getLocalesToUpdate();e.logger.info("Dictionaries - update",{force:a,locales:b}),await Promise.all(b.map(a=>this.updateDictionary(a)))}getLocalesToUpdate(){return Object.values(f.Locale).filter(a=>!1!==this.cache.isStale(a))}async updateDictionary(a){e.logger.info("Dictionaries - updateDictionary",{locale:a}),g.default.mkdirSync(h.OUTPUT_DIRECTORY,{recursive:!0});let b=this.downloadDictionaryProxies[a],c=await b();return await this.cache.set(a,c),c}}b.Dictionaries=j},91135:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/persian/persian.txt",d.Locale.FA_IR)},92289:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getCells=function(a,b){let c=+!!b.isHorizontal,e=+!b.isHorizontal,f=[],g=0,{x:h,y:i}=b;for(;i<a.rowsCount&&h<a.columnsCount;){let j=a.rows[i][h];if(j.isFilled())f.push(j.clone());else if(g<b.tiles.length)f.push((0,d.getPlacedCell)(b,g,h,i)),g+=1;else break;h+=c,i+=e}return f};let d=c(5461)},92639:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getWordList=void 0;let d=c(29562),e=c(98335);b.getWordList=async()=>(0,e.getTxtWordList)("https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/master/turkish/kelimelik.txt",d.Locale.TR_TR)},93810:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isError=void 0;let d=c(16185);b.isError=a=>!!(0,d.isObject)(a)&&"string"==typeof a.message},93839:function(a,b,c){var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.getHash=void 0;let e=d(c(55511));b.getHash=(a=8)=>e.default.randomBytes(a).toString("hex")},94335:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.toBoardWord=function(a,b){return{direction:b,word:a.map(a=>a.tile.character).join(""),x:a[0].x,y:a[0].y}}},95776:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.Config=void 0;let d=c(34474),e=c(24392),f=c(67699);class g{constructor(a){this.bonuses=h(a),this.config=a,this.pointsMap=j(this.config)}get alphabet(){return i(this.config)}get bingo(){return this.config.bingo}get blankScore(){return this.config.blankScore}get blanksCount(){return this.config.blanksCount}get boardHeight(){return this.config.boardHeight}get boardWidth(){return this.config.boardWidth}get game(){return this.config.game}get locale(){return this.config.locale}get twoCharacterTiles(){return this.config.tiles.filter(a=>2===a.character.length).map(a=>a.character)}getCellBonus(a){return this.bonuses.find(b=>b.matchesCellCoordinates(a))}getCellBonusValue(a){return this.getCellBonus(a)?.value||d.NO_BONUS}getCharacterPoints(a){if(null!==a)return a===d.BLANK?this.blankScore:this.pointsMap[a]}getTwoCharacterTileByPrefix(a){if(1===a.length)return this.twoCharacterTiles.find(b=>b.startsWith(a.toLocaleLowerCase()))}getTilePoints(a){if(null!==a)return a.isBlank?this.blankScore:this.getCharacterPoints(a.character)}hasCharacter(a){return a in this.pointsMap}isTwoCharacterTilePrefix(a){return void 0!==this.getTwoCharacterTileByPrefix(a)}get rackSize(){return this.config.rackSize}get supportsRemainingTiles(){return this.tiles.every(a=>"number"==typeof a.count)}get tiles(){return this.config.tiles}toJson(){return this.config}}b.Config=g,g.fromJson=a=>new g(a);let h=a=>a.bonuses.map(a=>{if(a.type===d.BONUS_CHARACTER)return new e.CharacterBonus(a);if(a.type===d.BONUS_WORD)return new f.WordBonus(a);throw Error(`Unsupported Bonus type: "${a.type}"`)}),i=a=>a.tiles.map(({character:a})=>a),j=a=>a.tiles.reduce((a,{character:b,score:c})=>({...a,[b]:c}),{})},98335:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unzip=b.unique=b.transliterateDiacritics=b.getTxtWordList=b.getTempFilepath=b.getHash=b.findFirstWordIndex=b.extractWords=b.downloadHtml=b.downloadFile=void 0;var d=c(77279);Object.defineProperty(b,"downloadFile",{enumerable:!0,get:function(){return d.downloadFile}});var e=c(52250);Object.defineProperty(b,"downloadHtml",{enumerable:!0,get:function(){return e.downloadHtml}});var f=c(33471);Object.defineProperty(b,"extractWords",{enumerable:!0,get:function(){return f.extractWords}});var g=c(5878);Object.defineProperty(b,"findFirstWordIndex",{enumerable:!0,get:function(){return g.findFirstWordIndex}});var h=c(93839);Object.defineProperty(b,"getHash",{enumerable:!0,get:function(){return h.getHash}});var i=c(52498);Object.defineProperty(b,"getTempFilepath",{enumerable:!0,get:function(){return i.getTempFilepath}});var j=c(5145);Object.defineProperty(b,"getTxtWordList",{enumerable:!0,get:function(){return j.getTxtWordList}});var k=c(38670);Object.defineProperty(b,"transliterateDiacritics",{enumerable:!0,get:function(){return k.transliterateDiacritics}});var l=c(40224);Object.defineProperty(b,"unique",{enumerable:!0,get:function(){return l.unique}});var m=c(59321);Object.defineProperty(b,"unzip",{enumerable:!0,get:function(){return m.unzip}})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=465,exports.ids=[465],exports.modules={73465:a=>{a.exports=JSON.parse('{"cell.enter-word":"Kelimeyi girin","cell.filter-cell.exclude":"Hedefi hari\xe7 tut","cell.filter-cell.include":"Hedef varış noktası","cell.set-blank":"Boş olarak işaretle","cell.set-not-blank":"Boş değil olarak işaretle","cell.tile.location":"Tahta: harfler {{coordinates}}","cell.toggle-direction":"Yazma y\xf6n\xfc - ge\xe7iş yapmak i\xe7in tıklayın","common.arrows":"Ok tuşları","common.blanks":"Jokerler","common.clear":"Sıfırla","common.close":"Kapat","common.consonants":"\xdcnl\xfc harfler","common.loading":"Y\xfckleniyor","common.next":"Sonraki","common.off":"Kapalı","common.on":"A\xe7ık","common.points":"Puanlar","common.previous":"\xd6ncesi","common.space":"Boşluk \xe7ubuğu","common.tiles":"Taşlar","common.two-letter-tiles":"İki Harfli","common.vowels":"\xdcns\xfcz harfler","common.word":"Kelime","common.words":"Kelimeler","dictionary":"S\xf6zl\xfck","dictionary.empty-state.no-definitions":"Kelime s\xf6zl\xfckte var ama tanımı yok.","dictionary.empty-state.no-results":"S\xf6zl\xfckte kelime tanımı bulunamadı.","dictionary.empty-state.not-allowed":"Bu kelimeye izin verilmiyor.","dictionary.empty-state.uninitialized":"En son vurgulanan kelimenin s\xf6zl\xfck tanımı burada g\xf6sterilecektir.","dictionary.input.placeholder":"S\xf6zl\xfckte ara...","dictionary.input.title":"Virg\xfclle ayrılmış kelimeler","empty-state.error":"Hata","empty-state.info":"Bilgi","empty-state.success":"Evet!","empty-state.warning":"Aman hayır!","github":"GitHub\'da bu projeye bakın","keyMap":"Klavye Kısayolları","keyMap.board":"Tahta","keyMap.board.toggle-blank":"Taşı joker olarak işaretle/olmaktan \xe7ıkar","keyMap.board.toggle-cell-filter":"Hedef filtresini değiştir","keyMap.board.toggle-direction":"Yazma y\xf6n\xfcn\xfc değiştir","keyMap.board-and-rack":"Tahta ve Deste","keyMap.board-and-rack.insert-two-letter-tile":"İki harfli kutucuğu ekle","keyMap.board-and-rack.navigate":"Gezinme","keyMap.board-and-rack.remove-tile":"Taşı kaldır","keyMap.board-and-rack.submit":"\xc7\xf6z","keyMap.rack":"Deste","keyMap.rack.insert-blank":"Joker ekle (spacebar)","menu":"Men\xfc","rack.placeholder":"Taşlar…","rack.tile.location":"Deste: harfler ({{index}})","rack.touchscreen.placeholder":"Taşlar…","remaining-tiles":"Kalan taşlar","results":"Sonu\xe7lar","results.empty-state.no-results":"Sonu\xe7 bulunamadı - kelime \xfcretilemedi.","results.empty-state.outdated":"Sonu\xe7lar g\xfcncelliğini yitirmiştir.","results.empty-state.uninitialized":"Harflerinizden oluşturulan kelimeler burada g\xf6sterilecektir.","results.input.placeholder":"Sonu\xe7ları Ara... (RegExp)","results.insert":"Sokmak","results.preview":"\xd6nizleme","results.solve":"\xc7\xf6z","settings":"Ayarlar","settings.autoGroupTiles":"Kalan taşları grupla","settings.autoGroupTiles.left":"Soldaki","settings.autoGroupTiles.right":"Sağdaki","settings.autoGroupTiles.null":"Gruplamayın","settings.game":"Oyun","settings.highlightUnreachableCells":"Ulaşılamayan kareleri vurgula","settings.inputMode":"Giriş Methodu","settings.inputMode.keyboard":"Klavye","settings.inputMode.touchscreen":"Dokunmatik ekran","settings.language":"Dil","settings.removeCellFilters":"Tahtadan filtreleri otomatik olarak kaldır","settings.removeCellFilters.always":"Her zaman","settings.removeCellFilters.never":"Asla","settings.showCoordinates":"Koordinatlar","settings.showCoordinates.alternative":"Alternatif","settings.showCoordinates.original":"Orijinal","words":"Oluşturulan kelimeler","words.invalid":"Ge\xe7ersiz","words.valid":"Ge\xe7erli"}')}};
|
|
1
|
+
"use strict";exports.id=465,exports.ids=[465],exports.modules={73465:a=>{a.exports=JSON.parse('{"cell.enter-word":"Kelimeyi girin","cell.filter-cell.exclude":"Hedefi hari\xe7 tut","cell.filter-cell.include":"Hedef varış noktası","cell.set-blank":"Boş olarak işaretle","cell.set-not-blank":"Boş değil olarak işaretle","cell.tile.location":"Tahta: harfler {{coordinates}}","cell.toggle-direction":"Yazma y\xf6n\xfc - ge\xe7iş yapmak i\xe7in tıklayın","common.arrows":"Ok tuşları","common.blanks":"Jokerler","common.clear":"Sıfırla","common.close":"Kapat","common.consonants":"\xdcnl\xfc harfler","common.loading":"Y\xfckleniyor","common.next":"Sonraki","common.off":"Kapalı","common.on":"A\xe7ık","common.points":"Puanlar","common.previous":"\xd6ncesi","common.space":"Boşluk \xe7ubuğu","common.tiles":"Taşlar","common.two-letter-tiles":"İki Harfli","common.vowels":"\xdcns\xfcz harfler","common.word":"Kelime","common.words":"Kelimeler","dictionary":"S\xf6zl\xfck","dictionary.empty-state.no-definitions":"Kelime s\xf6zl\xfckte var ama tanımı yok.","dictionary.empty-state.no-results":"S\xf6zl\xfckte kelime tanımı bulunamadı.","dictionary.empty-state.not-allowed":"Bu kelimeye izin verilmiyor.","dictionary.empty-state.uninitialized":"En son vurgulanan kelimenin s\xf6zl\xfck tanımı burada g\xf6sterilecektir.","dictionary.input.placeholder":"S\xf6zl\xfckte ara...","dictionary.input.title":"Virg\xfclle ayrılmış kelimeler","empty-state.error":"Hata","empty-state.info":"Bilgi","empty-state.success":"Evet!","empty-state.warning":"Aman hayır!","github":"GitHub\'da bu projeye bakın","keyMap":"Klavye Kısayolları","keyMap.board":"Tahta","keyMap.board.toggle-blank":"Taşı joker olarak işaretle/olmaktan \xe7ıkar","keyMap.board.toggle-cell-filter":"Hedef filtresini değiştir","keyMap.board.toggle-direction":"Yazma y\xf6n\xfcn\xfc değiştir","keyMap.board-and-rack":"Tahta ve Deste","keyMap.board-and-rack.insert-two-letter-tile":"İki harfli kutucuğu ekle","keyMap.board-and-rack.navigate":"Gezinme","keyMap.board-and-rack.remove-tile":"Taşı kaldır","keyMap.board-and-rack.submit":"\xc7\xf6z","keyMap.rack":"Deste","keyMap.rack.insert-blank":"Joker ekle (spacebar)","menu":"Men\xfc","rack.placeholder":"Taşlar…","rack.tile.location":"Deste: harfler ({{index}})","rack.touchscreen.placeholder":"Taşlar…","remaining-tiles":"Kalan taşlar","results":"Sonu\xe7lar","results.empty-state.no-results":"Sonu\xe7 bulunamadı - kelime \xfcretilemedi.","results.empty-state.outdated":"Sonu\xe7lar g\xfcncelliğini yitirmiştir.","results.empty-state.uninitialized":"Harflerinizden oluşturulan kelimeler burada g\xf6sterilecektir.","results.input.placeholder":"Sonu\xe7ları Ara... (RegExp)","results.insert":"Sokmak","results.preview":"\xd6nizleme","results.select":"Se\xe7...","results.solve":"\xc7\xf6z","settings":"Ayarlar","settings.autoGroupTiles":"Kalan taşları grupla","settings.autoGroupTiles.left":"Soldaki","settings.autoGroupTiles.right":"Sağdaki","settings.autoGroupTiles.null":"Gruplamayın","settings.game":"Oyun","settings.highlightUnreachableCells":"Ulaşılamayan kareleri vurgula","settings.inputMode":"Giriş Methodu","settings.inputMode.keyboard":"Klavye","settings.inputMode.touchscreen":"Dokunmatik ekran","settings.language":"Dil","settings.removeCellFilters":"Tahtadan filtreleri otomatik olarak kaldır","settings.removeCellFilters.always":"Her zaman","settings.removeCellFilters.never":"Asla","settings.showCoordinates":"Koordinatlar","settings.showCoordinates.alternative":"Alternatif","settings.showCoordinates.original":"Orijinal","words":"Oluşturulan kelimeler","words.empty-state.no-words":"Oluşturulan kelime yok - tahta boş.","words.input.placeholder":"Kelimeleri Ara... (RegExp)","words.invalid":"Ge\xe7ersiz","words.preview":"\xd6nizleme","words.valid":"Ge\xe7erli","words.validity":"Ge\xe7erlilik"}')}};
|