scrabble-solver 2.12.1 → 2.12.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/README.md +36 -4
- package/lerna.json +1 -1
- package/package.json +9 -8
- package/packages/configs/build/games/index.d.ts +3 -0
- package/packages/configs/build/games/index.js +12 -0
- package/packages/configs/build/games/literaki.d.ts +25 -0
- package/packages/configs/build/games/literaki.js +110 -0
- package/packages/configs/build/games/scrabble.d.ts +18 -0
- package/packages/configs/build/games/scrabble.js +78 -0
- package/packages/configs/build/games/superScrabble.d.ts +18 -0
- package/packages/configs/build/games/superScrabble.js +141 -0
- package/packages/configs/build/getConfig.d.ts +2 -6
- package/packages/configs/build/getConfig.js +29 -10
- package/packages/configs/build/hasConfig.d.ts +3 -0
- package/packages/configs/build/hasConfig.js +31 -0
- package/packages/configs/build/index.d.ts +7 -4
- package/packages/configs/build/index.js +32 -9
- package/packages/configs/build/locales/deDe.d.ts +3 -0
- package/packages/configs/build/locales/deDe.js +42 -0
- package/packages/configs/build/locales/enGb.d.ts +3 -0
- package/packages/configs/build/locales/enGb.js +104 -0
- package/packages/configs/build/locales/enUs.d.ts +3 -0
- package/packages/configs/build/locales/enUs.js +104 -0
- package/packages/configs/build/locales/esEs.d.ts +3 -0
- package/packages/configs/build/locales/esEs.js +41 -0
- package/packages/configs/build/locales/faIr.d.ts +3 -0
- package/packages/configs/build/locales/faIr.js +45 -0
- package/packages/configs/build/locales/frFr.d.ts +3 -0
- package/packages/configs/build/locales/frFr.js +39 -0
- package/packages/configs/build/locales/index.d.ts +7 -0
- package/packages/configs/build/locales/index.js +20 -0
- package/packages/configs/build/locales/plPl.d.ts +3 -0
- package/packages/configs/build/locales/plPl.js +83 -0
- package/packages/configs/package.json +4 -4
- package/packages/configs/src/games/index.ts +3 -0
- package/packages/configs/src/games/literaki.ts +110 -0
- package/packages/configs/src/games/scrabble.ts +78 -0
- package/packages/configs/src/games/superScrabble.ts +141 -0
- package/packages/configs/src/getConfig.ts +8 -15
- package/packages/configs/src/hasConfig.ts +10 -0
- package/packages/configs/src/index.ts +7 -4
- package/packages/configs/src/locales/deDe.ts +43 -0
- package/packages/configs/src/locales/enGb.ts +105 -0
- package/packages/configs/src/locales/enUs.ts +105 -0
- package/packages/configs/src/locales/esEs.ts +42 -0
- package/packages/configs/src/locales/faIr.ts +46 -0
- package/packages/configs/src/locales/frFr.ts +40 -0
- package/packages/configs/src/locales/index.ts +7 -0
- package/packages/configs/src/locales/plPl.ts +84 -0
- package/packages/constants/package.json +2 -2
- package/packages/dictionaries/package-lock.json +3 -10
- package/packages/dictionaries/package.json +5 -5
- package/packages/logger/package-lock.json +3 -224
- package/packages/logger/package.json +2 -2
- 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/.tsbuildinfo +1 -1
- package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
- package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +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/edge-server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +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/next-server.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
- package/packages/scrabble-solver/.next/required-server-files.json +1 -1
- package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/131.js +478 -106
- package/packages/scrabble-solver/.next/server/chunks/277.js +1202 -1013
- package/packages/scrabble-solver/.next/server/chunks/44.js +36 -6
- package/packages/scrabble-solver/.next/server/chunks/675.js +35 -13
- package/packages/scrabble-solver/.next/server/chunks/859.js +21 -4
- package/packages/scrabble-solver/.next/server/chunks/865.js +478 -106
- package/packages/scrabble-solver/.next/server/chunks/911.js +894 -773
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/_app.js +3 -1
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +4 -2
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +51 -20
- package/packages/scrabble-solver/.next/server/pages/api/verify.js +8 -5
- package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.js +55 -65
- 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-manifest.json +2 -2
- package/packages/scrabble-solver/.next/static/chunks/{framework-2c5cac93e8c637b5.js → framework-2c29dc3cd933590b.js} +2 -2
- package/packages/scrabble-solver/.next/static/chunks/main-4dcb7f9b52833aba.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-e7f3d1c9c09c8f91.js +32 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/index-82b2939158c7729f.js +1 -0
- package/packages/scrabble-solver/.next/static/css/4e8b47fe382a8a8f.css +2 -0
- package/packages/scrabble-solver/.next/static/css/cfae5256f1689f57.css +1 -0
- package/packages/scrabble-solver/.next/static/{_yG9K-PD5kWT_p4sMdCSV → wNIKOJJzkMSJYb2nOL21o}/_buildManifest.js +1 -1
- package/packages/scrabble-solver/.next/trace +51 -52
- package/packages/scrabble-solver/package-lock.json +269 -5105
- package/packages/scrabble-solver/package.json +13 -13
- package/packages/scrabble-solver/src/components/Board/Board.module.scss +33 -0
- package/packages/scrabble-solver/src/components/Board/Board.tsx +3 -0
- package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +25 -1
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +4 -12
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx +4 -0
- package/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.tsx +1 -0
- package/packages/scrabble-solver/src/components/Board/hooks/useBackgroundImage.tsx +24 -6
- package/packages/scrabble-solver/src/components/PlainTiles/lib/createPlainTile.ts +4 -4
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/InputPrompt.tsx +1 -0
- package/packages/scrabble-solver/src/components/Radio/Radio.module.scss +4 -0
- package/packages/scrabble-solver/src/components/Radio/Radio.tsx +1 -0
- package/packages/scrabble-solver/src/components/SeoMessage/SeoMessage.tsx +3 -3
- package/packages/scrabble-solver/src/hooks/useAppLayout.ts +1 -2
- package/packages/scrabble-solver/src/hooks/useLocalStorage.ts +5 -5
- package/packages/scrabble-solver/src/i18n/constants.ts +31 -61
- package/packages/scrabble-solver/src/lib/extractCharacters.test.ts +3 -3
- package/packages/scrabble-solver/src/lib/extractCharactersByCase.test.ts +3 -3
- package/packages/scrabble-solver/src/lib/getCellSize.ts +2 -2
- package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.module.scss +0 -1
- package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.tsx +3 -3
- package/packages/scrabble-solver/src/modals/SettingsModal/SettingsModal.tsx +7 -3
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +16 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +1 -4
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +8 -8
- package/packages/scrabble-solver/src/pages/_app.tsx +3 -1
- package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/[word].ts +6 -3
- package/packages/scrabble-solver/src/pages/api/solve.ts +11 -7
- package/packages/scrabble-solver/src/pages/api/verify.ts +11 -7
- package/packages/scrabble-solver/src/pages/index.module.scss +0 -1
- package/packages/scrabble-solver/src/parameters/index.ts +4 -6
- package/packages/scrabble-solver/src/sdk/solve.ts +3 -3
- package/packages/scrabble-solver/src/sdk/verify.ts +3 -3
- package/packages/scrabble-solver/src/service-worker/routeSolveRequests.ts +3 -3
- package/packages/scrabble-solver/src/state/localStorage.ts +6 -6
- package/packages/scrabble-solver/src/state/sagas.ts +18 -7
- package/packages/scrabble-solver/src/state/selectors.ts +10 -10
- package/packages/scrabble-solver/src/state/slices/boardInitialState.ts +3 -3
- package/packages/scrabble-solver/src/state/slices/boardSlice.ts +20 -6
- package/packages/scrabble-solver/src/state/slices/settingsInitialState.ts +3 -4
- package/packages/scrabble-solver/src/state/slices/settingsSlice.ts +5 -5
- package/packages/scrabble-solver/src/styles/variables.scss +0 -9
- package/packages/solver/README.md +1 -1
- package/packages/solver/build/areDigraphsValid.d.ts +3 -0
- package/packages/solver/build/areDigraphsValid.js +16 -0
- package/packages/solver/build/getPatternHash.js +2 -2
- package/packages/solver/build/index.d.ts +1 -0
- package/packages/solver/build/index.js +3 -1
- package/packages/solver/build/solve.js +5 -1
- package/packages/solver/package-lock.json +3 -10
- package/packages/solver/package.json +6 -6
- package/packages/solver/src/areDigraphsValid.ts +20 -0
- package/packages/solver/src/fillPattern.test.ts +3 -3
- package/packages/solver/src/generatePatterns.test.ts +13 -0
- package/packages/solver/src/getPatternHash.ts +2 -2
- package/packages/solver/src/getPatternScore.test.ts +13 -3
- package/packages/solver/src/index.ts +1 -0
- package/packages/solver/src/solve.test.ts +93 -7
- package/packages/solver/src/solve.ts +6 -1
- package/packages/types/build/Config.d.ts +2 -0
- package/packages/types/build/Config.js +3 -0
- package/packages/types/build/ConfigJson.d.ts +2 -1
- package/packages/types/build/Dictionary.d.ts +7 -0
- package/packages/types/build/Dictionary.js +2 -0
- package/packages/types/build/Game.d.ts +7 -0
- package/packages/types/build/Game.js +13 -0
- package/packages/types/build/Locale.d.ts +5 -0
- package/packages/types/build/Locale.js +5 -1
- package/packages/types/build/index.d.ts +4 -2
- package/packages/types/build/index.js +8 -5
- package/packages/types/package.json +3 -3
- package/packages/types/src/Config.ts +5 -0
- package/packages/types/src/ConfigJson.ts +2 -1
- package/packages/types/src/Dictionary.ts +9 -0
- package/packages/types/src/Game.ts +11 -0
- package/packages/types/src/Locale.ts +5 -1
- package/packages/types/src/index.ts +4 -2
- package/packages/word-definitions/build/lib/normalizeDefinition.js +3 -1
- package/packages/word-definitions/package-lock.json +9 -159
- package/packages/word-definitions/package.json +3 -3
- package/packages/word-definitions/src/lib/normalizeDefinition.ts +3 -1
- package/packages/word-lists/package-lock.json +9 -401
- package/packages/word-lists/package.json +3 -3
- package/packages/configs/build/getLocaleConfig.d.ts +0 -3
- package/packages/configs/build/getLocaleConfig.js +0 -10
- package/packages/configs/build/isConfigId.d.ts +0 -2
- package/packages/configs/build/isConfigId.js +0 -12
- package/packages/configs/build/literaki/bonuses.d.ts +0 -14
- package/packages/configs/build/literaki/bonuses.js +0 -99
- package/packages/configs/build/literaki/index.d.ts +0 -1
- package/packages/configs/build/literaki/index.js +0 -8
- package/packages/configs/build/literaki/literaki.d.ts +0 -13
- package/packages/configs/build/literaki/literaki.js +0 -31
- package/packages/configs/build/literaki/tiles/index.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/index.js +0 -18
- package/packages/configs/build/literaki/tiles/tilesDe.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/tilesDe.js +0 -34
- package/packages/configs/build/literaki/tiles/tilesEn.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/tilesEn.js +0 -31
- package/packages/configs/build/literaki/tiles/tilesEs.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/tilesEs.js +0 -33
- package/packages/configs/build/literaki/tiles/tilesFa.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/tilesFa.js +0 -37
- package/packages/configs/build/literaki/tiles/tilesFr.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/tilesFr.js +0 -31
- package/packages/configs/build/literaki/tiles/tilesPl.d.ts +0 -6
- package/packages/configs/build/literaki/tiles/tilesPl.js +0 -37
- package/packages/configs/build/scrabble/bonuses.d.ts +0 -7
- package/packages/configs/build/scrabble/bonuses.js +0 -67
- package/packages/configs/build/scrabble/index.d.ts +0 -1
- package/packages/configs/build/scrabble/index.js +0 -8
- package/packages/configs/build/scrabble/scrabble.d.ts +0 -13
- package/packages/configs/build/scrabble/scrabble.js +0 -31
- package/packages/configs/build/scrabble/tiles/index.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/index.js +0 -18
- package/packages/configs/build/scrabble/tiles/tilesDe.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/tilesDe.js +0 -34
- package/packages/configs/build/scrabble/tiles/tilesEn.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/tilesEn.js +0 -31
- package/packages/configs/build/scrabble/tiles/tilesEs.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/tilesEs.js +0 -33
- package/packages/configs/build/scrabble/tiles/tilesFa.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/tilesFa.js +0 -37
- package/packages/configs/build/scrabble/tiles/tilesFr.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/tilesFr.js +0 -31
- package/packages/configs/build/scrabble/tiles/tilesPl.d.ts +0 -6
- package/packages/configs/build/scrabble/tiles/tilesPl.js +0 -37
- package/packages/configs/src/getLocaleConfig.ts +0 -9
- package/packages/configs/src/isConfigId.ts +0 -10
- package/packages/configs/src/literaki/bonuses.ts +0 -99
- package/packages/configs/src/literaki/index.ts +0 -1
- package/packages/configs/src/literaki/literaki.ts +0 -30
- package/packages/configs/src/literaki/tiles/index.ts +0 -6
- package/packages/configs/src/literaki/tiles/tilesDe.ts +0 -33
- package/packages/configs/src/literaki/tiles/tilesEn.ts +0 -30
- package/packages/configs/src/literaki/tiles/tilesEs.ts +0 -32
- package/packages/configs/src/literaki/tiles/tilesFa.ts +0 -36
- package/packages/configs/src/literaki/tiles/tilesFr.ts +0 -30
- package/packages/configs/src/literaki/tiles/tilesPl.ts +0 -36
- package/packages/configs/src/scrabble/bonuses.ts +0 -67
- package/packages/configs/src/scrabble/index.ts +0 -1
- package/packages/configs/src/scrabble/scrabble.ts +0 -30
- package/packages/configs/src/scrabble/tiles/index.ts +0 -6
- package/packages/configs/src/scrabble/tiles/tilesDe.ts +0 -33
- package/packages/configs/src/scrabble/tiles/tilesEn.ts +0 -30
- package/packages/configs/src/scrabble/tiles/tilesEs.ts +0 -32
- package/packages/configs/src/scrabble/tiles/tilesFa.ts +0 -36
- package/packages/configs/src/scrabble/tiles/tilesFr.ts +0 -30
- package/packages/configs/src/scrabble/tiles/tilesPl.ts +0 -36
- package/packages/scrabble-solver/.next/static/chunks/main-0ecb9ccfcb6c9b24.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-bea4539a6b8042de.js +0 -32
- package/packages/scrabble-solver/.next/static/chunks/pages/index-4e8566409753e1c3.js +0 -1
- package/packages/scrabble-solver/.next/static/css/58053f9594647860.css +0 -2
- package/packages/scrabble-solver/.next/static/css/60e8258da7362a1a.css +0 -1
- package/packages/scrabble-solver/src/i18n/i18n.module.scss +0 -27
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/options.ts +0 -19
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/types.ts +0 -9
- package/packages/scrabble-solver/src/modals/SettingsModal/components/InputModeSetting/types.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/types.ts +0 -9
- /package/packages/scrabble-solver/.next/static/{_yG9K-PD5kWT_p4sMdCSV → wNIKOJJzkMSJYb2nOL21o}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p>
|
|
9
|
-
Free, open-source, and cross-platform analysis tool for <a href="https://en.wikipedia.org/wiki/Scrabble">Scrabble</a> & <a href="https://pl.wikipedia.org/wiki/Literaki">Literaki</a>.
|
|
9
|
+
Free, open-source, and cross-platform analysis tool for <a href="https://en.wikipedia.org/wiki/Scrabble">Scrabble</a>, <a href="https://en.wikipedia.org/wiki/Super_Scrabble">Super Scrabble</a> & <a href="https://pl.wikipedia.org/wiki/Literaki">Literaki</a>.
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p>
|
|
@@ -51,8 +51,13 @@
|
|
|
51
51
|
3. [Install](#install)
|
|
52
52
|
4. [Uninstall](#uninstall)
|
|
53
53
|
5. [Develop](#develop)
|
|
54
|
+
1. [Setup](#setup)
|
|
55
|
+
2. [Run app dev server](#run-app-dev-server)
|
|
56
|
+
3. [Rebuild a single package](#rebuild-a-single-package)
|
|
57
|
+
4. [Add a new language](#add-a-new-language)
|
|
54
58
|
6. [Tech stack](#tech-stack)
|
|
55
59
|
7. [Related projects](#related-projects)
|
|
60
|
+
8. [Media](#media)
|
|
56
61
|
|
|
57
62
|
## Dictionaries
|
|
58
63
|
|
|
@@ -88,8 +93,8 @@ scrabble-solver
|
|
|
88
93
|
```Shell
|
|
89
94
|
npm uninstall -g scrabble-solver
|
|
90
95
|
|
|
91
|
-
#
|
|
92
|
-
#
|
|
96
|
+
# Logs and dictionaries are stored in $HOME/.scrabble-solver
|
|
97
|
+
# $HOME location is acquired using os.homedir()
|
|
93
98
|
rm -rf $HOME/.scrabble-solver
|
|
94
99
|
```
|
|
95
100
|
|
|
@@ -102,7 +107,7 @@ npm install
|
|
|
102
107
|
npm run install:dev
|
|
103
108
|
```
|
|
104
109
|
|
|
105
|
-
###
|
|
110
|
+
### Run app dev server
|
|
106
111
|
|
|
107
112
|
```Shell
|
|
108
113
|
npx lerna run dev --scope=@scrabble-solver/scrabble-solver
|
|
@@ -116,6 +121,29 @@ Note: hot code reload works only for the [`scrabble-solver`](https://github.com/
|
|
|
116
121
|
npx lerna run build --scope=@scrabble-solver/PACKAGE_NAME_HERE
|
|
117
122
|
```
|
|
118
123
|
|
|
124
|
+
### Add a new language
|
|
125
|
+
|
|
126
|
+
1. Find and download a flag representing the locale in an SVG format
|
|
127
|
+
- I usually find them at https://commons.wikimedia.org/
|
|
128
|
+
2. Rename the file to `FlagXX.svg` and put it in [packages/scrabble-solver/src/icons](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver/src/icons)
|
|
129
|
+
3. Export the SVG file in [packages/scrabble-solver/src/icons/index.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/icons/index.ts)
|
|
130
|
+
4. Add IETF language tag for the new locale in [packages/types/src/Locale.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/types/src/Locale.ts)
|
|
131
|
+
5. Rebuild the types package
|
|
132
|
+
```Shell
|
|
133
|
+
npx lerna run build --scope=@scrabble-solver/types
|
|
134
|
+
```
|
|
135
|
+
6. Add locale configuration in [packages/scrabble-solver/src/i18n/constants.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/i18n/constants.ts)
|
|
136
|
+
7. Update locale-detecting code in [packages/scrabble-solver/src/lib/detectLocale.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/lib/detectLocale.ts)
|
|
137
|
+
8. Add game configs for the new locale in [packages/configs/src/locales](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/configs/src/locales)
|
|
138
|
+
9. Add an export for these locale configs in [packages/configs/src/locales/index.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/configs/src/locales/index.ts)
|
|
139
|
+
10. Add a translation file in [packages/scrabble-solver/src/i18n](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver/src/i18n) and fill it with translations
|
|
140
|
+
- Copy any existing file, e.g. `en.json` and modify it
|
|
141
|
+
11. Add an entry for the translations in [packages/scrabble-solver/src/i18n/i18n.ts](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver/src/i18n/i18n.ts)
|
|
142
|
+
12. Add a function to fetch the list of words in the new locale in [packages/word-lists/src/getWordList.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-lists/src/getWordList.ts)
|
|
143
|
+
13. Add a function to fetch the word definition in the new locale in [packages/word-definitions/src/crawl/crawl.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-definitions/src/crawl/crawl.ts)
|
|
144
|
+
14. Add a function to parse the word definition crawled in the previous step in [packages/word-definitions/src/parse/parse.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-definitions/src/parse/parse.ts)
|
|
145
|
+
- Bonus points for adding tests in [packages/word-definitions/src/parse/parse.test.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-definitions/src/parse/parse.test.ts)
|
|
146
|
+
|
|
119
147
|
## Tech stack
|
|
120
148
|
|
|
121
149
|
- [TypeScript](https://www.typescriptlang.org/)
|
|
@@ -143,3 +171,7 @@ The user interface and source code for the web front end of Lexatious is based o
|
|
|
143
171
|
|
|
144
172
|
- Web: https://lexatious.com
|
|
145
173
|
- GitHub: https://github.com/ericgjackson/lexatious_web
|
|
174
|
+
|
|
175
|
+
## Media
|
|
176
|
+
|
|
177
|
+
- [5 Free Scrabble Solver Websites To Quickly Find Top Scoring Words](https://www.ilovefreesoftware.com/05/featured/free-scrabble-solver-websites-to-quickly-find-top-scoring-words.html)
|
package/lerna.json
CHANGED
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scrabble-solver",
|
|
3
|
-
"version": "2.12.
|
|
4
|
-
"description": "Scrabble Solver 2 - Free, open-source, and cross-platform analysis tool for Scrabble & Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish.",
|
|
3
|
+
"version": "2.12.3",
|
|
4
|
+
"description": "Scrabble Solver 2 - Free, open-source, and cross-platform analysis tool for Scrabble, Super Scrabble & Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Scrabble",
|
|
7
|
+
"Super Scrabble",
|
|
7
8
|
"Literaki",
|
|
8
9
|
"Solver",
|
|
9
10
|
"Finder",
|
|
@@ -72,7 +73,7 @@
|
|
|
72
73
|
"bugs": {
|
|
73
74
|
"url": "https://github.com/kamilmielnik/scrabble-solver/issues"
|
|
74
75
|
},
|
|
75
|
-
"homepage": "https://
|
|
76
|
+
"homepage": "https://scrabble-solver.org",
|
|
76
77
|
"dependencies": {
|
|
77
78
|
"lerna": "^6.6.1",
|
|
78
79
|
"npm-run-all": "^4.1.5",
|
|
@@ -84,10 +85,10 @@
|
|
|
84
85
|
"@babel/preset-env": "^7.21.4",
|
|
85
86
|
"@types/jest": "^29.5.0",
|
|
86
87
|
"@types/node": "^18.15.11",
|
|
87
|
-
"@typescript-eslint/eslint-plugin": "^5.57.
|
|
88
|
-
"@typescript-eslint/parser": "^5.57.
|
|
88
|
+
"@typescript-eslint/eslint-plugin": "^5.57.1",
|
|
89
|
+
"@typescript-eslint/parser": "^5.57.1",
|
|
89
90
|
"babel-eslint": "10.1.0",
|
|
90
|
-
"eslint": "^8.
|
|
91
|
+
"eslint": "^8.38.0",
|
|
91
92
|
"eslint-config-prettier": "^8.8.0",
|
|
92
93
|
"eslint-import-resolver-node": "^0.3.7",
|
|
93
94
|
"eslint-plugin-import": "^2.27.5",
|
|
@@ -98,7 +99,7 @@
|
|
|
98
99
|
"np": "^7.7.0",
|
|
99
100
|
"prettier": "^2.8.7",
|
|
100
101
|
"rimraf": "^4.4.1",
|
|
101
|
-
"ts-jest": "^29.0
|
|
102
|
-
"typescript": "^5.0.
|
|
102
|
+
"ts-jest": "^29.1.0",
|
|
103
|
+
"typescript": "^5.0.4"
|
|
103
104
|
}
|
|
104
105
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.superScrabble = exports.scrabble = exports.literaki = void 0;
|
|
7
|
+
var literaki_1 = require("./literaki");
|
|
8
|
+
Object.defineProperty(exports, "literaki", { enumerable: true, get: function () { return __importDefault(literaki_1).default; } });
|
|
9
|
+
var scrabble_1 = require("./scrabble");
|
|
10
|
+
Object.defineProperty(exports, "scrabble", { enumerable: true, get: function () { return __importDefault(scrabble_1).default; } });
|
|
11
|
+
var superScrabble_1 = require("./superScrabble");
|
|
12
|
+
Object.defineProperty(exports, "superScrabble", { enumerable: true, get: function () { return __importDefault(superScrabble_1).default; } });
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Game } from '@scrabble-solver/types';
|
|
2
|
+
declare const literaki: {
|
|
3
|
+
allTilesBonusScore: number;
|
|
4
|
+
blankScore: number;
|
|
5
|
+
blanksCount: number;
|
|
6
|
+
boardHeight: number;
|
|
7
|
+
boardWidth: number;
|
|
8
|
+
game: Game;
|
|
9
|
+
maximumCharactersCount: number;
|
|
10
|
+
name: string;
|
|
11
|
+
bonuses: ({
|
|
12
|
+
multiplier: number;
|
|
13
|
+
score: number;
|
|
14
|
+
type: string;
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
} | {
|
|
18
|
+
multiplier: number;
|
|
19
|
+
type: string;
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
score?: undefined;
|
|
23
|
+
})[];
|
|
24
|
+
};
|
|
25
|
+
export default literaki;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_1 = require("@scrabble-solver/constants");
|
|
4
|
+
const types_1 = require("@scrabble-solver/types");
|
|
5
|
+
const literaki = {
|
|
6
|
+
allTilesBonusScore: 50,
|
|
7
|
+
blankScore: 0,
|
|
8
|
+
blanksCount: 2,
|
|
9
|
+
boardHeight: 15,
|
|
10
|
+
boardWidth: 15,
|
|
11
|
+
game: types_1.Game.Literaki,
|
|
12
|
+
maximumCharactersCount: 7,
|
|
13
|
+
name: 'Literaki',
|
|
14
|
+
bonuses: [
|
|
15
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 0 },
|
|
16
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 0 },
|
|
17
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 0 },
|
|
18
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 0 },
|
|
19
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 0 },
|
|
20
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 0 },
|
|
21
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 0 },
|
|
22
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },
|
|
23
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 1 },
|
|
24
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 1 },
|
|
25
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 1 },
|
|
26
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 2 },
|
|
27
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 2 },
|
|
28
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 2 },
|
|
29
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 2 },
|
|
30
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },
|
|
31
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 2 },
|
|
32
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 2 },
|
|
33
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 3 },
|
|
34
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 3 },
|
|
35
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },
|
|
36
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 3 },
|
|
37
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 3 },
|
|
38
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 3 },
|
|
39
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },
|
|
40
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 4 },
|
|
41
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 4 },
|
|
42
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 4 },
|
|
43
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 4 },
|
|
44
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 4 },
|
|
45
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 5 },
|
|
46
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 5 },
|
|
47
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 5 },
|
|
48
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 5 },
|
|
49
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 5 },
|
|
50
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 5 },
|
|
51
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 5 },
|
|
52
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 6 },
|
|
53
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },
|
|
54
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },
|
|
55
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },
|
|
56
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 6 },
|
|
57
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 6 },
|
|
58
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 7 },
|
|
59
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 2, y: 7 },
|
|
60
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 7 },
|
|
61
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 7 },
|
|
62
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 7 },
|
|
63
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 12, y: 7 },
|
|
64
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 7 },
|
|
65
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 8 },
|
|
66
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 8 },
|
|
67
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },
|
|
68
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
|
|
69
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 8 },
|
|
70
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 8 },
|
|
71
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 9 },
|
|
72
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },
|
|
73
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 9 },
|
|
74
|
+
{ multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 9 },
|
|
75
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 9 },
|
|
76
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 9 },
|
|
77
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 9 },
|
|
78
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 10 },
|
|
79
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 10 },
|
|
80
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 10 },
|
|
81
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 10 },
|
|
82
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 10 },
|
|
83
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 10 },
|
|
84
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 11 },
|
|
85
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 11 },
|
|
86
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 11 },
|
|
87
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 11 },
|
|
88
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 11 },
|
|
89
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 11 },
|
|
90
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 12 },
|
|
91
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 12 },
|
|
92
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 12 },
|
|
93
|
+
{ multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 12 },
|
|
94
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 12 },
|
|
95
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 12 },
|
|
96
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 12 },
|
|
97
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 13 },
|
|
98
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 13 },
|
|
99
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 13 },
|
|
100
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 13 },
|
|
101
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 14 },
|
|
102
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 14 },
|
|
103
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 14 },
|
|
104
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 14 },
|
|
105
|
+
{ multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 14 },
|
|
106
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 14 },
|
|
107
|
+
{ multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 14 },
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
exports.default = literaki;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Game } from '@scrabble-solver/types';
|
|
2
|
+
declare const scrabble: {
|
|
3
|
+
allTilesBonusScore: number;
|
|
4
|
+
blankScore: number;
|
|
5
|
+
blanksCount: number;
|
|
6
|
+
boardHeight: number;
|
|
7
|
+
boardWidth: number;
|
|
8
|
+
game: Game;
|
|
9
|
+
maximumCharactersCount: number;
|
|
10
|
+
name: string;
|
|
11
|
+
bonuses: {
|
|
12
|
+
multiplier: number;
|
|
13
|
+
type: string;
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
export default scrabble;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_1 = require("@scrabble-solver/constants");
|
|
4
|
+
const types_1 = require("@scrabble-solver/types");
|
|
5
|
+
const scrabble = {
|
|
6
|
+
allTilesBonusScore: 50,
|
|
7
|
+
blankScore: 0,
|
|
8
|
+
blanksCount: 2,
|
|
9
|
+
boardHeight: 15,
|
|
10
|
+
boardWidth: 15,
|
|
11
|
+
game: types_1.Game.Scrabble,
|
|
12
|
+
maximumCharactersCount: 7,
|
|
13
|
+
name: 'Scrabble',
|
|
14
|
+
bonuses: [
|
|
15
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 0 },
|
|
16
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },
|
|
17
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },
|
|
18
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 0 },
|
|
19
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 0 },
|
|
20
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },
|
|
21
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 1 },
|
|
22
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 1 },
|
|
23
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 1 },
|
|
24
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },
|
|
25
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 2 },
|
|
26
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 2 },
|
|
27
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 2 },
|
|
28
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },
|
|
29
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 3 },
|
|
30
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 3 },
|
|
31
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 3 },
|
|
32
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },
|
|
33
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },
|
|
34
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 4 },
|
|
35
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },
|
|
36
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 5 },
|
|
37
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },
|
|
38
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 5 },
|
|
39
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 6 },
|
|
40
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },
|
|
41
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },
|
|
42
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 6 },
|
|
43
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },
|
|
44
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 7 },
|
|
45
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },
|
|
46
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 7 },
|
|
47
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 7 },
|
|
48
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 8 },
|
|
49
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },
|
|
50
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
|
|
51
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },
|
|
52
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 9 },
|
|
53
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },
|
|
54
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },
|
|
55
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 9 },
|
|
56
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 10 },
|
|
57
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 10 },
|
|
58
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 11 },
|
|
59
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 11 },
|
|
60
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 11 },
|
|
61
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 11 },
|
|
62
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 11 },
|
|
63
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 12 },
|
|
64
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 12 },
|
|
65
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },
|
|
66
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 12 },
|
|
67
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 13 },
|
|
68
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 13 },
|
|
69
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 13 },
|
|
70
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },
|
|
71
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 14 },
|
|
72
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },
|
|
73
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 14 },
|
|
74
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 14 },
|
|
75
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 14 },
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
exports.default = scrabble;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Game } from '@scrabble-solver/types';
|
|
2
|
+
declare const scrabble: {
|
|
3
|
+
allTilesBonusScore: number;
|
|
4
|
+
blankScore: number;
|
|
5
|
+
blanksCount: number;
|
|
6
|
+
boardHeight: number;
|
|
7
|
+
boardWidth: number;
|
|
8
|
+
game: Game;
|
|
9
|
+
maximumCharactersCount: number;
|
|
10
|
+
name: string;
|
|
11
|
+
bonuses: {
|
|
12
|
+
multiplier: number;
|
|
13
|
+
type: string;
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
export default scrabble;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_1 = require("@scrabble-solver/constants");
|
|
4
|
+
const types_1 = require("@scrabble-solver/types");
|
|
5
|
+
const scrabble = {
|
|
6
|
+
allTilesBonusScore: 50,
|
|
7
|
+
blankScore: 0,
|
|
8
|
+
blanksCount: 4,
|
|
9
|
+
boardHeight: 21,
|
|
10
|
+
boardWidth: 21,
|
|
11
|
+
game: types_1.Game.SuperScrabble,
|
|
12
|
+
maximumCharactersCount: 7,
|
|
13
|
+
name: 'Super Scrabble',
|
|
14
|
+
bonuses: [
|
|
15
|
+
{ multiplier: 4, type: constants_1.BONUS_WORD, x: 0, y: 0 },
|
|
16
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },
|
|
17
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },
|
|
18
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 0 },
|
|
19
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 13, y: 0 },
|
|
20
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 0 },
|
|
21
|
+
{ multiplier: 4, type: constants_1.BONUS_WORD, x: 20, y: 0 },
|
|
22
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },
|
|
23
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },
|
|
24
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 1 },
|
|
25
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 1 },
|
|
26
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 1 },
|
|
27
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 1 },
|
|
28
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },
|
|
29
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 5, y: 2 },
|
|
30
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },
|
|
31
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 2 },
|
|
32
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 15, y: 2 },
|
|
33
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 2 },
|
|
34
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },
|
|
35
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 3 },
|
|
36
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },
|
|
37
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 3 },
|
|
38
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },
|
|
39
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 3 },
|
|
40
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 3 },
|
|
41
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },
|
|
42
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },
|
|
43
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 4 },
|
|
44
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 4 },
|
|
45
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 4 },
|
|
46
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 19, y: 4 },
|
|
47
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 2, y: 5 },
|
|
48
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 5 },
|
|
49
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },
|
|
50
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 5 },
|
|
51
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 5 },
|
|
52
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 18, y: 5 },
|
|
53
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },
|
|
54
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 6, y: 6 },
|
|
55
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 6 },
|
|
56
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 14, y: 6 },
|
|
57
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 6 },
|
|
58
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },
|
|
59
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },
|
|
60
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 7 },
|
|
61
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 20, y: 7 },
|
|
62
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 8 },
|
|
63
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 8 },
|
|
64
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
|
|
65
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },
|
|
66
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 8 },
|
|
67
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 8 },
|
|
68
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },
|
|
69
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },
|
|
70
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },
|
|
71
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 9 },
|
|
72
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 9 },
|
|
73
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 9 },
|
|
74
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 10 },
|
|
75
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 10 },
|
|
76
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 10 },
|
|
77
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 10 },
|
|
78
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 10 },
|
|
79
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 10 },
|
|
80
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 11 },
|
|
81
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 11 },
|
|
82
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 11 },
|
|
83
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 11 },
|
|
84
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 11 },
|
|
85
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 11 },
|
|
86
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 12 },
|
|
87
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 12 },
|
|
88
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },
|
|
89
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 12 },
|
|
90
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 12 },
|
|
91
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 12 },
|
|
92
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 13 },
|
|
93
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 13 },
|
|
94
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },
|
|
95
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 20, y: 13 },
|
|
96
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },
|
|
97
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 6, y: 14 },
|
|
98
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 14 },
|
|
99
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 14, y: 14 },
|
|
100
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 14 },
|
|
101
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 2, y: 15 },
|
|
102
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 15 },
|
|
103
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 15 },
|
|
104
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 15 },
|
|
105
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 15 },
|
|
106
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 18, y: 15 },
|
|
107
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 16 },
|
|
108
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 16 },
|
|
109
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 16 },
|
|
110
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 16 },
|
|
111
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 16 },
|
|
112
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 19, y: 16 },
|
|
113
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 17 },
|
|
114
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 17 },
|
|
115
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 17 },
|
|
116
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 17 },
|
|
117
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 17 },
|
|
118
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 17 },
|
|
119
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 17 },
|
|
120
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 18 },
|
|
121
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 5, y: 18 },
|
|
122
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 18 },
|
|
123
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 18 },
|
|
124
|
+
{ multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 15, y: 18 },
|
|
125
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 18 },
|
|
126
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 19 },
|
|
127
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 19 },
|
|
128
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 19 },
|
|
129
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 19 },
|
|
130
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 19 },
|
|
131
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 19 },
|
|
132
|
+
{ multiplier: 4, type: constants_1.BONUS_WORD, x: 0, y: 20 },
|
|
133
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 20 },
|
|
134
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 20 },
|
|
135
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 20 },
|
|
136
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 13, y: 20 },
|
|
137
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 20 },
|
|
138
|
+
{ multiplier: 4, type: constants_1.BONUS_WORD, x: 20, y: 20 },
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
exports.default = scrabble;
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { Config, Locale } from '@scrabble-solver/types';
|
|
2
|
-
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
}
|
|
6
|
-
declare const getConfig: (configId: string) => Result;
|
|
1
|
+
import { Config, Game, Locale } from '@scrabble-solver/types';
|
|
2
|
+
declare const getConfig: (game: Game, locale: Locale) => Config;
|
|
7
3
|
export default getConfig;
|
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const configs =
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
throw new Error(`Invalid "configId" parameter: not one of ${configs.map(({ id }) => id).join('/')}`);
|
|
26
|
+
const locales = __importStar(require("./locales"));
|
|
27
|
+
const getConfig = (game, locale) => {
|
|
28
|
+
const configs = Object.values(locales).flat();
|
|
29
|
+
const localeConfig = configs.find((config) => config.game === game && config.locale === locale);
|
|
30
|
+
if (typeof localeConfig === 'undefined') {
|
|
31
|
+
throw new Error(`No game "${game}" in "${locale}"`);
|
|
13
32
|
}
|
|
14
|
-
return
|
|
33
|
+
return localeConfig;
|
|
15
34
|
};
|
|
16
35
|
exports.default = getConfig;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const locales = __importStar(require("./locales"));
|
|
27
|
+
const hasConfig = (game, locale) => {
|
|
28
|
+
const configs = Object.values(locales).flat();
|
|
29
|
+
return configs.some((config) => config.game === game && config.locale === locale);
|
|
30
|
+
};
|
|
31
|
+
exports.default = hasConfig;
|