scrabble-solver 2.11.6 → 2.11.8
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 +1 -1
- package/lerna.json +1 -1
- package/package.json +1 -1
- package/packages/configs/package.json +3 -3
- package/packages/constants/package.json +1 -1
- package/packages/dictionaries/package-lock.json +2 -2
- package/packages/dictionaries/package.json +4 -4
- package/packages/logger/package-lock.json +2 -2
- package/packages/logger/package.json +1 -1
- package/packages/scrabble-solver/.next/BUILD_ID +1 -1
- package/packages/scrabble-solver/.next/build-manifest.json +11 -11
- 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/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/277.js +653 -399
- package/packages/scrabble-solver/.next/server/chunks/865.js +153 -115
- 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 +9 -2
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +30 -1
- package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.js +35 -6
- 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 +3 -3
- package/packages/scrabble-solver/.next/static/5ttGCAW8jcIKxpR8om9fK/_buildManifest.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/framework-2c5cac93e8c637b5.js +49 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/{404-8176f4acd0cfeb42.js → 404-ca203fa27afc37d8.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-76a8840b6244d5a2.js +28 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/index-6894f40e6cac9243.js +1 -0
- package/packages/scrabble-solver/.next/static/css/af871fef886ef5b7.css +2 -0
- package/packages/scrabble-solver/.next/static/css/c6e0e01f44fc0425.css +1 -0
- package/packages/scrabble-solver/.next/trace +50 -50
- package/packages/scrabble-solver/package-lock.json +2 -2
- package/packages/scrabble-solver/package.json +8 -8
- package/packages/scrabble-solver/src/components/Board/Board.module.scss +2 -59
- package/packages/scrabble-solver/src/components/Board/Board.tsx +22 -10
- package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +13 -8
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +8 -140
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx +18 -37
- package/packages/scrabble-solver/src/components/Board/hooks/index.ts +1 -0
- package/packages/scrabble-solver/src/components/Board/hooks/useBackgroundImage.tsx +174 -0
- package/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts +17 -1
- package/packages/scrabble-solver/src/components/Board/lib/getBonusColor.ts +18 -0
- package/packages/scrabble-solver/src/components/Board/lib/index.ts +1 -0
- package/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.tsx +5 -3
- package/packages/scrabble-solver/src/components/Key/Key.module.scss +7 -11
- package/packages/scrabble-solver/src/components/Rack/Rack.tsx +4 -1
- package/packages/scrabble-solver/src/components/Rack/RackTile.tsx +12 -2
- package/packages/scrabble-solver/src/components/Results/Cell.tsx +2 -2
- package/packages/scrabble-solver/src/components/Results/Result.tsx +4 -8
- package/packages/scrabble-solver/src/components/Results/Results.module.scss +5 -3
- package/packages/scrabble-solver/src/components/Solver/Solver.tsx +2 -2
- package/packages/scrabble-solver/src/components/Tile/Tile.module.scss +4 -0
- package/packages/scrabble-solver/src/components/Tooltip/Tooltip.module.scss +2 -0
- package/packages/scrabble-solver/src/hooks/useAppLayout.ts +1 -0
- package/packages/scrabble-solver/src/i18n/constants.ts +25 -8
- package/packages/scrabble-solver/src/i18n/de.json +2 -2
- package/packages/scrabble-solver/src/i18n/en.json +2 -2
- package/packages/scrabble-solver/src/i18n/es.json +2 -2
- package/packages/scrabble-solver/src/i18n/fa.json +2 -2
- package/packages/scrabble-solver/src/i18n/fr.json +2 -2
- package/packages/scrabble-solver/src/i18n/pl.json +2 -2
- package/packages/scrabble-solver/src/lib/dataUrlToBlob.ts +20 -0
- package/packages/scrabble-solver/src/lib/index.ts +2 -0
- package/packages/scrabble-solver/src/lib/isCtrl.ts +7 -0
- package/packages/scrabble-solver/src/modals/KeyMapModal/KeyMapModal.tsx +20 -4
- package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +10 -4
- package/packages/scrabble-solver/src/pages/_app.tsx +1 -3
- package/packages/scrabble-solver/src/parameters/index.ts +33 -2
- package/packages/scrabble-solver/src/state/index.ts +1 -1
- package/packages/scrabble-solver/src/state/sagas.ts +3 -4
- package/packages/scrabble-solver/src/state/store.ts +34 -0
- package/packages/scrabble-solver/src/styles/variables.scss +4 -0
- package/packages/solver/package-lock.json +2 -2
- package/packages/solver/package.json +5 -5
- package/packages/types/package.json +2 -2
- package/packages/word-definitions/package-lock.json +161 -11
- package/packages/word-definitions/package.json +2 -2
- package/packages/word-lists/package-lock.json +2 -2
- package/packages/word-lists/package.json +2 -2
- package/screencast.gif +0 -0
- package/img/screencast.gif +0 -0
- package/packages/scrabble-solver/.next/static/Jmk00rVXCbdjFgP77tKXQ/_buildManifest.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/framework-2c79e2a64abdb08b.js +0 -33
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-b4fa92112b8f0385.js +0 -28
- package/packages/scrabble-solver/.next/static/chunks/pages/index-ccd762f8f5028729.js +0 -1
- package/packages/scrabble-solver/.next/static/css/1cd302e7648d209c.css +0 -2
- package/packages/scrabble-solver/.next/static/css/34adfcf12a7d9bb6.css +0 -1
- package/packages/scrabble-solver/src/components/Board/components/Cell/CellPure.tsx +0 -93
- package/packages/scrabble-solver/src/components/Board/components/Cell/lib.ts +0 -59
- package/packages/scrabble-solver/src/state/createAppStore.ts +0 -38
- /package/packages/scrabble-solver/.next/static/{Jmk00rVXCbdjFgP77tKXQ → 5ttGCAW8jcIKxpR8om9fK}/_ssgManifest.js +0 -0
|
@@ -8,6 +8,7 @@ export { default as createKeyComparator } from './createKeyComparator';
|
|
|
8
8
|
export { default as createNullMovingComparator } from './createNullMovingComparator';
|
|
9
9
|
export { default as createRegExp } from './createRegExp';
|
|
10
10
|
export { default as createStringComparator } from './createStringComparator';
|
|
11
|
+
export { default as dataUrlToBlob } from './dataUrlToBlob';
|
|
11
12
|
export { default as detectLocale } from './detectLocale';
|
|
12
13
|
export { default as extractCharacters } from './extractCharacters';
|
|
13
14
|
export { default as extractInputValue } from './extractInputValue';
|
|
@@ -21,6 +22,7 @@ export { default as getTotalRemainingTilesCount } from './getTotalRemainingTiles
|
|
|
21
22
|
export { default as groupResults } from './groupResults';
|
|
22
23
|
export { default as guessLocale } from './guessLocale';
|
|
23
24
|
export { default as inverseDirection } from './inverseDirection';
|
|
25
|
+
export { default as isCtrl } from './isCtrl';
|
|
24
26
|
export { default as isMac } from './isMac';
|
|
25
27
|
export { default as isRegExp } from './isRegExp';
|
|
26
28
|
export { default as isStringArray } from './isStringArray';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { FunctionComponent, memo } from 'react';
|
|
2
2
|
|
|
3
|
-
import { Modal } from 'components';
|
|
4
|
-
import { useTranslate } from 'state';
|
|
3
|
+
import { Key, Modal } from 'components';
|
|
4
|
+
import { selectConfig, useTranslate, useTypedSelector } from 'state';
|
|
5
5
|
|
|
6
6
|
import { Mapping } from './components';
|
|
7
|
-
import { ARROWS, BACKSPACE, DEL, ENTER, SPACE } from './keys';
|
|
7
|
+
import { ARROWS, BACKSPACE, CTRL, DEL, ENTER, SPACE } from './keys';
|
|
8
8
|
|
|
9
9
|
interface Props {
|
|
10
10
|
className?: string;
|
|
@@ -14,6 +14,7 @@ interface Props {
|
|
|
14
14
|
|
|
15
15
|
const KeyMapModal: FunctionComponent<Props> = ({ className, isOpen, onClose }) => {
|
|
16
16
|
const translate = useTranslate();
|
|
17
|
+
const config = useTypedSelector(selectConfig);
|
|
17
18
|
|
|
18
19
|
return (
|
|
19
20
|
<Modal className={className} isOpen={isOpen} title={translate('keyMap')} onClose={onClose}>
|
|
@@ -21,10 +22,25 @@ const KeyMapModal: FunctionComponent<Props> = ({ className, isOpen, onClose }) =
|
|
|
21
22
|
<Mapping description={translate('keyMap.board-and-rack.navigate')} mapping={[ARROWS]} />
|
|
22
23
|
<Mapping description={translate('keyMap.board-and-rack.remove-tile')} mapping={[DEL, BACKSPACE]} />
|
|
23
24
|
<Mapping description={translate('keyMap.board-and-rack.submit')} mapping={[ENTER]} />
|
|
25
|
+
{config.twoCharacterTiles.length > 0 && (
|
|
26
|
+
<Mapping
|
|
27
|
+
description={translate('keyMap.board-and-rack.insert-two-letter-tile')}
|
|
28
|
+
mapping={[
|
|
29
|
+
[
|
|
30
|
+
CTRL,
|
|
31
|
+
<>
|
|
32
|
+
{config.twoCharacterTiles.map(([firstLetter]) => (
|
|
33
|
+
<Key key={firstLetter}>{firstLetter.toUpperCase()}</Key>
|
|
34
|
+
))}
|
|
35
|
+
</>,
|
|
36
|
+
],
|
|
37
|
+
]}
|
|
38
|
+
/>
|
|
39
|
+
)}
|
|
24
40
|
</Modal.Section>
|
|
25
41
|
|
|
26
42
|
<Modal.Section title={translate('keyMap.board')}>
|
|
27
|
-
<Mapping description={translate('keyMap.board.toggle-blank')} mapping={[SPACE]} />
|
|
43
|
+
<Mapping description={translate('keyMap.board.toggle-blank')} mapping={[SPACE, [CTRL, <Key key="b">B</Key>]]} />
|
|
28
44
|
<Mapping description={translate('keyMap.board.toggle-direction')} mapping={[ARROWS]} />
|
|
29
45
|
</Modal.Section>
|
|
30
46
|
|
package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss
CHANGED
|
@@ -18,13 +18,19 @@
|
|
|
18
18
|
flex-wrap: wrap;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.group
|
|
22
|
-
.plus {
|
|
21
|
+
.group {
|
|
23
22
|
margin: 0 var(--spacing--s);
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
.slash
|
|
27
|
-
|
|
25
|
+
.slash,
|
|
26
|
+
.plus {
|
|
27
|
+
min-width: var(--key--height);
|
|
28
|
+
height: var(--key--height);
|
|
29
|
+
padding: var(--spacing--s) var(--spacing--m);
|
|
30
|
+
font-family: var(--font--family--monospace);
|
|
31
|
+
line-height: calc(var(--key--height) - 2 * (var(--spacing--s) + var(--border--width)));
|
|
32
|
+
vertical-align: middle;
|
|
33
|
+
text-align: center;
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
.group {
|
|
@@ -4,7 +4,7 @@ import { FunctionComponent } from 'react';
|
|
|
4
4
|
import { Provider } from 'react-redux';
|
|
5
5
|
|
|
6
6
|
import { SeoMessage } from 'components';
|
|
7
|
-
import {
|
|
7
|
+
import { store } from 'state';
|
|
8
8
|
|
|
9
9
|
import 'styles/global.scss';
|
|
10
10
|
|
|
@@ -40,8 +40,6 @@ const KEYWORDS = [
|
|
|
40
40
|
'Kamil Mielnik',
|
|
41
41
|
].join(',');
|
|
42
42
|
|
|
43
|
-
const store = createAppStore();
|
|
44
|
-
|
|
45
43
|
const App: FunctionComponent<AppProps> = ({ Component, pageProps }) => (
|
|
46
44
|
<>
|
|
47
45
|
<Head>
|
|
@@ -19,6 +19,34 @@ export const COLOR_GREEN = '#bae3ba';
|
|
|
19
19
|
export const COLOR_RED = '#f7c2aa';
|
|
20
20
|
export const COLOR_YELLOW = '#efe3ae';
|
|
21
21
|
|
|
22
|
+
export const COLOR_BONUS_CHARACTER_1 = '#f7f1d6';
|
|
23
|
+
export const COLOR_BONUS_CHARACTER_2 = '#d6ebd6';
|
|
24
|
+
export const COLOR_BONUS_CHARACTER_3 = '#dde4f6';
|
|
25
|
+
export const COLOR_BONUS_CHARACTER_5 = '#fbe0d4';
|
|
26
|
+
export const COLOR_BONUS_CHARACTER_MULTIPLIER_2 = '#b8d5ed';
|
|
27
|
+
export const COLOR_BONUS_CHARACTER_MULTIPLIER_3 = '#86aed1';
|
|
28
|
+
export const COLOR_BONUS_START = '#b284b8';
|
|
29
|
+
export const COLOR_BONUS_WORD_MULTIPLIER_2 = '#fbc997';
|
|
30
|
+
export const COLOR_BONUS_WORD_MULTIPLIER_3 = '#f19393';
|
|
31
|
+
export const COLOR_FILTERED = '#444';
|
|
32
|
+
|
|
33
|
+
export const COLOR_BONUS_CHARACTER: Record<number, string> = {
|
|
34
|
+
1: COLOR_BONUS_CHARACTER_1,
|
|
35
|
+
2: COLOR_BONUS_CHARACTER_2,
|
|
36
|
+
3: COLOR_BONUS_CHARACTER_3,
|
|
37
|
+
5: COLOR_BONUS_CHARACTER_5,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const COLOR_BONUS_CHARACTER_MULTIPLIER: Record<number, string> = {
|
|
41
|
+
2: COLOR_BONUS_CHARACTER_MULTIPLIER_2,
|
|
42
|
+
3: COLOR_BONUS_CHARACTER_MULTIPLIER_3,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const COLOR_BONUS_WORD: Record<number, string> = {
|
|
46
|
+
2: COLOR_BONUS_WORD_MULTIPLIER_2,
|
|
47
|
+
3: COLOR_BONUS_WORD_MULTIPLIER_3,
|
|
48
|
+
};
|
|
49
|
+
|
|
22
50
|
export const SPACING_XS = 2;
|
|
23
51
|
export const SPACING_S = 5;
|
|
24
52
|
export const SPACING_M = 10;
|
|
@@ -40,6 +68,9 @@ export const BOARD_TILE_SIZE_MAX = 64;
|
|
|
40
68
|
*/
|
|
41
69
|
export const BOARD_TILE_SIZE_MIN = 20;
|
|
42
70
|
|
|
71
|
+
export const BORDER_COLOR = '#cdcdcd';
|
|
72
|
+
export const BORDER_COLOR_LIGHT = '#d9d9d9';
|
|
73
|
+
export const BORDER_RADIUS = 5;
|
|
43
74
|
export const BORDER_WIDTH = 1;
|
|
44
75
|
|
|
45
76
|
export const BUTTON_ICON_SIZE = 24;
|
|
@@ -90,10 +121,10 @@ export const RACK_TILE_SIZE_MAX = 80;
|
|
|
90
121
|
|
|
91
122
|
export const REMAINING_TILES_TILE_SIZE = 50;
|
|
92
123
|
|
|
93
|
-
export const RESULTS_HEADER_HEIGHT = 35;
|
|
94
|
-
|
|
95
124
|
export const RESULTS_ITEM_HEIGHT = 40;
|
|
96
125
|
|
|
126
|
+
export const RESULTS_HEADER_HEIGHT = RESULTS_ITEM_HEIGHT;
|
|
127
|
+
|
|
97
128
|
export const SOLVER_COLUMN_WIDTH = 580;
|
|
98
129
|
|
|
99
130
|
export const TEXT_INPUT_HEIGHT = 40;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './actions';
|
|
2
|
-
export { default as createAppStore } from './createAppStore';
|
|
3
2
|
export { default as localStorage } from './localStorage';
|
|
4
3
|
export * from './selectors';
|
|
5
4
|
export * from './slices';
|
|
5
|
+
export { default as store } from './store';
|
|
6
6
|
export { default as useTranslate } from './useTranslate';
|
|
7
7
|
export { default as useTypedSelector } from './useTypedSelector';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable max-lines */
|
|
2
2
|
|
|
3
3
|
import { PayloadAction } from '@reduxjs/toolkit';
|
|
4
|
-
import { COMMA_ARABIC, COMMA_LATIN } from '@scrabble-solver/constants';
|
|
5
4
|
import { Locale, Result } from '@scrabble-solver/types';
|
|
6
5
|
import { call, delay, put, select, takeEvery, takeLatest } from 'redux-saga/effects';
|
|
7
6
|
|
|
7
|
+
import { LOCALE_FEATURES } from 'i18n';
|
|
8
8
|
import { memoize } from 'lib';
|
|
9
9
|
import { findWordDefinitions, solve, verify, visit } from 'sdk';
|
|
10
10
|
|
|
@@ -144,9 +144,8 @@ function* onLocaleChange(): AnyGenerator {
|
|
|
144
144
|
|
|
145
145
|
function* onResultCandidateChange({ payload: result }: PayloadAction<Result | null>): AnyGenerator {
|
|
146
146
|
if (result) {
|
|
147
|
-
const locale = yield select(selectLocale);
|
|
148
|
-
|
|
149
|
-
yield put(dictionarySlice.actions.changeInput(result.words.join(comma)));
|
|
147
|
+
const locale: Locale = yield select(selectLocale);
|
|
148
|
+
yield put(dictionarySlice.actions.changeInput(result.words.join(LOCALE_FEATURES[locale].separator)));
|
|
150
149
|
yield put(dictionarySlice.actions.submit());
|
|
151
150
|
}
|
|
152
151
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { configureStore } from '@reduxjs/toolkit';
|
|
2
|
+
import reduxSaga from 'redux-saga';
|
|
3
|
+
|
|
4
|
+
import { rootSaga } from './sagas';
|
|
5
|
+
import {
|
|
6
|
+
boardSlice,
|
|
7
|
+
cellFilterSlice,
|
|
8
|
+
dictionarySlice,
|
|
9
|
+
rackSlice,
|
|
10
|
+
resultsSlice,
|
|
11
|
+
settingsSlice,
|
|
12
|
+
solveSlice,
|
|
13
|
+
verifySlice,
|
|
14
|
+
} from './slices';
|
|
15
|
+
|
|
16
|
+
const sagaMiddleware = reduxSaga();
|
|
17
|
+
|
|
18
|
+
const store = configureStore({
|
|
19
|
+
reducer: {
|
|
20
|
+
board: boardSlice.reducer,
|
|
21
|
+
cellFilter: cellFilterSlice.reducer,
|
|
22
|
+
dictionary: dictionarySlice.reducer,
|
|
23
|
+
rack: rackSlice.reducer,
|
|
24
|
+
results: resultsSlice.reducer,
|
|
25
|
+
settings: settingsSlice.reducer,
|
|
26
|
+
solve: solveSlice.reducer,
|
|
27
|
+
verify: verifySlice.reducer,
|
|
28
|
+
},
|
|
29
|
+
middleware: [sagaMiddleware],
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
sagaMiddleware.run(rootSaga);
|
|
33
|
+
|
|
34
|
+
export default store;
|
|
@@ -107,14 +107,18 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
|
|
|
107
107
|
--button--icon--size: 24px;
|
|
108
108
|
--dictionary--height: 260px;
|
|
109
109
|
--dictionary--height--mobile: 110px;
|
|
110
|
+
--key--height: 36px;
|
|
111
|
+
--key--icon--size: 16px;
|
|
110
112
|
--logo--aspect-ratio: 682 / 166;
|
|
111
113
|
--logo--height: 60px;
|
|
112
114
|
--modal--width: 370px;
|
|
113
115
|
--nav--height: calc(var(--logo--height) + var(--nav--padding));
|
|
114
116
|
--nav--padding: var(--spacing--l);
|
|
117
|
+
--results--item--height: 40px;
|
|
115
118
|
--solver-column--width: 580px;
|
|
116
119
|
--square-button--size: 32px;
|
|
117
120
|
--text-input--height: 40px;
|
|
121
|
+
--tooltip--max-width: 360px;
|
|
118
122
|
|
|
119
123
|
@include media('<l') {
|
|
120
124
|
--dictionary--height: var(--dictionary--height--mobile);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/solver",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.8",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/solver",
|
|
9
|
-
"version": "2.11.
|
|
9
|
+
"version": "2.11.8",
|
|
10
10
|
"license": "CC-BY-NC-ND-4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@kamilmielnik/trie": "^2.0.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/solver",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.8",
|
|
4
4
|
"description": "Scrabble Solver 2 - Solver",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@kamilmielnik/trie": "^2.0.1",
|
|
28
|
-
"@scrabble-solver/types": "^2.11.
|
|
28
|
+
"@scrabble-solver/types": "^2.11.8"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@scrabble-solver/configs": "^2.11.
|
|
32
|
-
"@scrabble-solver/constants": "^2.11.
|
|
33
|
-
"@scrabble-solver/dictionaries": "^2.11.
|
|
31
|
+
"@scrabble-solver/configs": "^2.11.8",
|
|
32
|
+
"@scrabble-solver/constants": "^2.11.8",
|
|
33
|
+
"@scrabble-solver/dictionaries": "^2.11.8"
|
|
34
34
|
},
|
|
35
35
|
"gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
|
|
36
36
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/types",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.8",
|
|
4
4
|
"description": "Scrabble Solver 2 - Types",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"clean:force": "npm run clean && rimraf package-lock.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@scrabble-solver/constants": "^2.11.
|
|
27
|
+
"@scrabble-solver/constants": "^2.11.8"
|
|
28
28
|
},
|
|
29
29
|
"gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
|
|
30
30
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-definitions",
|
|
3
|
-
"version": "2.11.
|
|
4
|
-
"lockfileVersion":
|
|
3
|
+
"version": "2.11.8",
|
|
4
|
+
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/word-definitions",
|
|
9
|
-
"version": "2.11.
|
|
9
|
+
"version": "2.11.8",
|
|
10
10
|
"license": "CC-BY-NC-ND-4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cheerio": "^1.0.0-rc.12",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"node_modules/@types/node": {
|
|
30
|
-
"version": "18.15.
|
|
31
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.
|
|
32
|
-
"integrity": "sha512-
|
|
30
|
+
"version": "18.15.11",
|
|
31
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
|
32
|
+
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
|
33
33
|
"dev": true
|
|
34
34
|
},
|
|
35
35
|
"node_modules/boolbase": {
|
|
@@ -181,9 +181,9 @@
|
|
|
181
181
|
}
|
|
182
182
|
},
|
|
183
183
|
"node_modules/htmlparser2": {
|
|
184
|
-
"version": "8.0.
|
|
185
|
-
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.
|
|
186
|
-
"integrity": "sha512-
|
|
184
|
+
"version": "8.0.2",
|
|
185
|
+
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
|
186
|
+
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
|
|
187
187
|
"funding": [
|
|
188
188
|
"https://github.com/fb55/htmlparser2?sponsor=1",
|
|
189
189
|
{
|
|
@@ -193,9 +193,9 @@
|
|
|
193
193
|
],
|
|
194
194
|
"dependencies": {
|
|
195
195
|
"domelementtype": "^2.3.0",
|
|
196
|
-
"domhandler": "^5.0.
|
|
196
|
+
"domhandler": "^5.0.3",
|
|
197
197
|
"domutils": "^3.0.1",
|
|
198
|
-
"entities": "^4.
|
|
198
|
+
"entities": "^4.4.0"
|
|
199
199
|
}
|
|
200
200
|
},
|
|
201
201
|
"node_modules/nth-check": {
|
|
@@ -237,5 +237,155 @@
|
|
|
237
237
|
"resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz",
|
|
238
238
|
"integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw=="
|
|
239
239
|
}
|
|
240
|
+
},
|
|
241
|
+
"dependencies": {
|
|
242
|
+
"@types/follow-redirects": {
|
|
243
|
+
"version": "1.14.1",
|
|
244
|
+
"resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz",
|
|
245
|
+
"integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==",
|
|
246
|
+
"dev": true,
|
|
247
|
+
"requires": {
|
|
248
|
+
"@types/node": "*"
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"@types/node": {
|
|
252
|
+
"version": "18.15.11",
|
|
253
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
|
254
|
+
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
|
255
|
+
"dev": true
|
|
256
|
+
},
|
|
257
|
+
"boolbase": {
|
|
258
|
+
"version": "1.0.0",
|
|
259
|
+
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
|
260
|
+
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
|
|
261
|
+
},
|
|
262
|
+
"cheerio": {
|
|
263
|
+
"version": "1.0.0-rc.12",
|
|
264
|
+
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
|
|
265
|
+
"integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
|
|
266
|
+
"requires": {
|
|
267
|
+
"cheerio-select": "^2.1.0",
|
|
268
|
+
"dom-serializer": "^2.0.0",
|
|
269
|
+
"domhandler": "^5.0.3",
|
|
270
|
+
"domutils": "^3.0.1",
|
|
271
|
+
"htmlparser2": "^8.0.1",
|
|
272
|
+
"parse5": "^7.0.0",
|
|
273
|
+
"parse5-htmlparser2-tree-adapter": "^7.0.0"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"cheerio-select": {
|
|
277
|
+
"version": "2.1.0",
|
|
278
|
+
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
|
|
279
|
+
"integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
|
|
280
|
+
"requires": {
|
|
281
|
+
"boolbase": "^1.0.0",
|
|
282
|
+
"css-select": "^5.1.0",
|
|
283
|
+
"css-what": "^6.1.0",
|
|
284
|
+
"domelementtype": "^2.3.0",
|
|
285
|
+
"domhandler": "^5.0.3",
|
|
286
|
+
"domutils": "^3.0.1"
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"css-select": {
|
|
290
|
+
"version": "5.1.0",
|
|
291
|
+
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
|
|
292
|
+
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
|
|
293
|
+
"requires": {
|
|
294
|
+
"boolbase": "^1.0.0",
|
|
295
|
+
"css-what": "^6.1.0",
|
|
296
|
+
"domhandler": "^5.0.2",
|
|
297
|
+
"domutils": "^3.0.1",
|
|
298
|
+
"nth-check": "^2.0.1"
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"css-what": {
|
|
302
|
+
"version": "6.1.0",
|
|
303
|
+
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
|
304
|
+
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
|
305
|
+
},
|
|
306
|
+
"dom-serializer": {
|
|
307
|
+
"version": "2.0.0",
|
|
308
|
+
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
|
|
309
|
+
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
|
|
310
|
+
"requires": {
|
|
311
|
+
"domelementtype": "^2.3.0",
|
|
312
|
+
"domhandler": "^5.0.2",
|
|
313
|
+
"entities": "^4.2.0"
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"domelementtype": {
|
|
317
|
+
"version": "2.3.0",
|
|
318
|
+
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
|
319
|
+
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
|
|
320
|
+
},
|
|
321
|
+
"domhandler": {
|
|
322
|
+
"version": "5.0.3",
|
|
323
|
+
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
|
|
324
|
+
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
|
|
325
|
+
"requires": {
|
|
326
|
+
"domelementtype": "^2.3.0"
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"domutils": {
|
|
330
|
+
"version": "3.0.1",
|
|
331
|
+
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
|
|
332
|
+
"integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
|
|
333
|
+
"requires": {
|
|
334
|
+
"dom-serializer": "^2.0.0",
|
|
335
|
+
"domelementtype": "^2.3.0",
|
|
336
|
+
"domhandler": "^5.0.1"
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"entities": {
|
|
340
|
+
"version": "4.4.0",
|
|
341
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
|
342
|
+
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
|
|
343
|
+
},
|
|
344
|
+
"follow-redirects": {
|
|
345
|
+
"version": "1.15.2",
|
|
346
|
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
|
347
|
+
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
|
|
348
|
+
},
|
|
349
|
+
"htmlparser2": {
|
|
350
|
+
"version": "8.0.2",
|
|
351
|
+
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
|
352
|
+
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
|
|
353
|
+
"requires": {
|
|
354
|
+
"domelementtype": "^2.3.0",
|
|
355
|
+
"domhandler": "^5.0.3",
|
|
356
|
+
"domutils": "^3.0.1",
|
|
357
|
+
"entities": "^4.4.0"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"nth-check": {
|
|
361
|
+
"version": "2.1.1",
|
|
362
|
+
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
|
363
|
+
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
|
|
364
|
+
"requires": {
|
|
365
|
+
"boolbase": "^1.0.0"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"parse5": {
|
|
369
|
+
"version": "7.1.2",
|
|
370
|
+
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
|
|
371
|
+
"integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
|
|
372
|
+
"requires": {
|
|
373
|
+
"entities": "^4.4.0"
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"parse5-htmlparser2-tree-adapter": {
|
|
377
|
+
"version": "7.0.0",
|
|
378
|
+
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
|
|
379
|
+
"integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
|
|
380
|
+
"requires": {
|
|
381
|
+
"domhandler": "^5.0.2",
|
|
382
|
+
"parse5": "^7.0.0"
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"striptags": {
|
|
386
|
+
"version": "3.2.0",
|
|
387
|
+
"resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz",
|
|
388
|
+
"integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw=="
|
|
389
|
+
}
|
|
240
390
|
}
|
|
241
391
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-definitions",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.8",
|
|
4
4
|
"description": "Scrabble Solver 2 - Word definitions",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"clean": "rimraf build/ node_modules/ package-lock.json"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@scrabble-solver/types": "^2.11.
|
|
26
|
+
"@scrabble-solver/types": "^2.11.8",
|
|
27
27
|
"cheerio": "^1.0.0-rc.12",
|
|
28
28
|
"follow-redirects": "^1.15.2",
|
|
29
29
|
"striptags": "^3.2.0"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-lists",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.8",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@scrabble-solver/word-lists",
|
|
9
|
-
"version": "2.11.
|
|
9
|
+
"version": "2.11.8",
|
|
10
10
|
"license": "CC-BY-NC-ND-4.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cheerio": "^1.0.0-rc.12",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/word-lists",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.8",
|
|
4
4
|
"description": "Scrabble Solver 2 - Word lists",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"clean:force": "npm run clean && rimraf package-lock.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@scrabble-solver/types": "^2.11.
|
|
27
|
+
"@scrabble-solver/types": "^2.11.8",
|
|
28
28
|
"cheerio": "^1.0.0-rc.12",
|
|
29
29
|
"follow-redirects": "^1.15.2",
|
|
30
30
|
"unzipper": "^0.10.11"
|
package/screencast.gif
ADDED
|
Binary file
|
package/img/screencast.gif
DELETED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST={__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/css/34adfcf12a7d9bb6.css","static/chunks/pages/index-ccd762f8f5028729.js"],"/404":["static/chunks/pages/404-8176f4acd0cfeb42.js"],"/_error":["static/chunks/pages/_error-54de1933a164a1ff.js"],sortedPages:["/","/404","/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|