@scrabble-solver/types 2.15.8 → 2.15.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/LICENSE +1 -1
  2. package/build/Board.d.ts +5 -6
  3. package/build/Board.js +17 -16
  4. package/build/BoardJson.d.ts +2 -3
  5. package/build/Bonus.d.ts +5 -6
  6. package/build/Bonus.js +2 -1
  7. package/build/BonusJson.d.ts +1 -2
  8. package/build/BonusValue.d.ts +1 -2
  9. package/build/Cell.d.ts +4 -5
  10. package/build/Cell.js +13 -16
  11. package/build/CellJson.d.ts +2 -3
  12. package/build/CellJson.js +2 -5
  13. package/build/CharacterBonus.d.ts +5 -6
  14. package/build/CharacterBonus.js +4 -6
  15. package/build/Collision.d.ts +2 -3
  16. package/build/CollisionJson.d.ts +2 -3
  17. package/build/Config.d.ts +12 -12
  18. package/build/Config.js +14 -13
  19. package/build/ConfigJson.d.ts +7 -7
  20. package/build/Dictionary.d.ts +2 -3
  21. package/build/FinalPattern.d.ts +2 -3
  22. package/build/FinalPattern.js +4 -6
  23. package/build/Game.d.ts +2 -2
  24. package/build/Game.js +3 -3
  25. package/build/HorizontalPattern.d.ts +2 -3
  26. package/build/HorizontalPattern.js +5 -7
  27. package/build/Locale.d.ts +1 -2
  28. package/build/Locale.js +2 -3
  29. package/build/Pattern.d.ts +5 -6
  30. package/build/Pattern.js +2 -1
  31. package/build/PatternJson.d.ts +2 -3
  32. package/build/Result.d.ts +6 -6
  33. package/build/Result.js +11 -14
  34. package/build/ResultJson.d.ts +3 -4
  35. package/build/ShowCoordinates.d.ts +1 -2
  36. package/build/Tile.d.ts +3 -4
  37. package/build/Tile.js +11 -10
  38. package/build/TileConfig.d.ts +1 -2
  39. package/build/TileJson.d.ts +1 -2
  40. package/build/TileJson.js +2 -5
  41. package/build/VerticalPattern.d.ts +2 -3
  42. package/build/VerticalPattern.js +5 -7
  43. package/build/WordBonus.d.ts +3 -4
  44. package/build/WordBonus.js +4 -6
  45. package/build/WordDefinition.d.ts +3 -4
  46. package/build/WordDefinition.js +13 -12
  47. package/build/WordDefinitionJson.d.ts +1 -2
  48. package/build/index.d.ts +31 -31
  49. package/build/index.js +20 -23
  50. package/build/isError.d.ts +1 -2
  51. package/build/isError.js +4 -6
  52. package/build/isObject.d.ts +1 -2
  53. package/build/isObject.js +2 -1
  54. package/package.json +3 -3
  55. package/src/Board.ts +14 -13
  56. package/src/BoardJson.ts +2 -4
  57. package/src/Bonus.ts +5 -7
  58. package/src/BonusJson.ts +1 -3
  59. package/src/BonusValue.ts +1 -3
  60. package/src/Cell.ts +5 -8
  61. package/src/CellJson.ts +3 -5
  62. package/src/CharacterBonus.ts +5 -7
  63. package/src/Collision.ts +2 -4
  64. package/src/CollisionJson.ts +2 -4
  65. package/src/Config.ts +20 -18
  66. package/src/ConfigJson.ts +7 -8
  67. package/src/Dictionary.ts +2 -4
  68. package/src/FinalPattern.ts +2 -4
  69. package/src/Game.ts +2 -3
  70. package/src/HorizontalPattern.ts +2 -4
  71. package/src/Locale.ts +1 -3
  72. package/src/Pattern.ts +5 -7
  73. package/src/PatternJson.ts +2 -4
  74. package/src/Result.ts +6 -9
  75. package/src/ResultJson.ts +3 -5
  76. package/src/ShowCoordinates.ts +1 -3
  77. package/src/Tile.ts +4 -6
  78. package/src/TileConfig.ts +1 -3
  79. package/src/TileJson.ts +2 -4
  80. package/src/VerticalPattern.ts +2 -4
  81. package/src/WordBonus.ts +3 -5
  82. package/src/WordDefinition.ts +4 -6
  83. package/src/WordDefinitionJson.ts +1 -3
  84. package/src/index.ts +31 -31
  85. package/src/isError.ts +2 -4
  86. package/src/isObject.ts +1 -3
@@ -1,11 +1,11 @@
1
1
  import { BONUS_CHARACTER } from '@scrabble-solver/constants';
2
2
 
3
- import Bonus from './Bonus';
4
- import BonusValue from './BonusValue';
5
- import Cell from './Cell';
6
- import Config from './Config';
3
+ import { Bonus } from './Bonus';
4
+ import { BonusValue } from './BonusValue';
5
+ import { Cell } from './Cell';
6
+ import { type Config } from './Config';
7
7
 
8
- class CharacterBonus extends Bonus {
8
+ export class CharacterBonus extends Bonus {
9
9
  public readonly type = BONUS_CHARACTER;
10
10
 
11
11
  public canApply(config: Config, cell: Cell): boolean {
@@ -27,5 +27,3 @@ class CharacterBonus extends Bonus {
27
27
  };
28
28
  }
29
29
  }
30
-
31
- export default CharacterBonus;
package/src/Collision.ts CHANGED
@@ -1,5 +1,3 @@
1
- import Cell from './Cell';
1
+ import { Cell } from './Cell';
2
2
 
3
- type Collision = Cell[];
4
-
5
- export default Collision;
3
+ export type Collision = Cell[];
@@ -1,5 +1,3 @@
1
- import CellJson from './CellJson';
1
+ import { CellJson } from './CellJson';
2
2
 
3
- type CollisionJson = CellJson[];
4
-
5
- export default CollisionJson;
3
+ export type CollisionJson = CellJson[];
package/src/Config.ts CHANGED
@@ -1,20 +1,20 @@
1
1
  import { BLANK, BONUS_CHARACTER, BONUS_WORD, NO_BONUS } from '@scrabble-solver/constants';
2
2
 
3
- import Bonus from './Bonus';
4
- import BonusValue from './BonusValue';
5
- import Cell from './Cell';
6
- import CharacterBonus from './CharacterBonus';
7
- import ConfigJson from './ConfigJson';
8
- import Game from './Game';
9
- import Locale from './Locale';
10
- import Tile from './Tile';
11
- import TileConfig from './TileConfig';
12
- import WordBonus from './WordBonus';
13
-
14
- class Config {
15
- public static fromJson(json: ConfigJson): Config {
3
+ import { Bonus } from './Bonus';
4
+ import { BonusValue } from './BonusValue';
5
+ import { Cell } from './Cell';
6
+ import { CharacterBonus } from './CharacterBonus';
7
+ import { ConfigJson } from './ConfigJson';
8
+ import { Game } from './Game';
9
+ import { Locale } from './Locale';
10
+ import { Tile } from './Tile';
11
+ import { TileConfig } from './TileConfig';
12
+ import { WordBonus } from './WordBonus';
13
+
14
+ export class Config {
15
+ public static fromJson = (json: ConfigJson): Config => {
16
16
  return new Config(json);
17
- }
17
+ };
18
18
 
19
19
  public readonly bonuses: Bonus[];
20
20
 
@@ -44,8 +44,12 @@ class Config {
44
44
  return this.config.blanksCount;
45
45
  }
46
46
 
47
- public get boardSize(): number {
48
- return this.config.boardSize;
47
+ public get boardHeight(): number {
48
+ return this.config.boardHeight;
49
+ }
50
+
51
+ public get boardWidth(): number {
52
+ return this.config.boardWidth;
49
53
  }
50
54
 
51
55
  public get game(): Game {
@@ -141,5 +145,3 @@ const getPointsMap = (config: ConfigJson): Record<string, number> =>
141
145
  }),
142
146
  {},
143
147
  );
144
-
145
- export default Config;
package/src/ConfigJson.ts CHANGED
@@ -1,13 +1,14 @@
1
- import BonusJson from './BonusJson';
2
- import Game from './Game';
3
- import Locale from './Locale';
4
- import TileConfig from './TileConfig';
1
+ import { BonusJson } from './BonusJson';
2
+ import { Game } from './Game';
3
+ import { Locale } from './Locale';
4
+ import { TileConfig } from './TileConfig';
5
5
 
6
- interface ConfigJson {
6
+ export interface ConfigJson {
7
7
  bingoScore: number;
8
8
  blankScore: number;
9
9
  blanksCount: number;
10
- boardSize: number;
10
+ boardHeight: number;
11
+ boardWidth: number;
11
12
  bonuses: BonusJson[];
12
13
  game: Game;
13
14
  locale: Locale;
@@ -15,5 +16,3 @@ interface ConfigJson {
15
16
  rackSize: number;
16
17
  tiles: TileConfig[];
17
18
  }
18
-
19
- export default ConfigJson;
package/src/Dictionary.ts CHANGED
@@ -1,9 +1,7 @@
1
- import Locale from './Locale';
1
+ import { Locale } from './Locale';
2
2
 
3
- interface Dictionary {
3
+ export interface Dictionary {
4
4
  description: string;
5
5
  locale: Locale;
6
6
  name: string;
7
7
  }
8
-
9
- export default Dictionary;
@@ -1,6 +1,6 @@
1
- import Pattern from './Pattern';
1
+ import { Pattern } from './Pattern';
2
2
 
3
- class FinalPattern extends Pattern {
3
+ export class FinalPattern extends Pattern {
4
4
  private readonly collisions: Pattern[];
5
5
 
6
6
  constructor(pattern: Pattern) {
@@ -12,5 +12,3 @@ class FinalPattern extends Pattern {
12
12
  return this.collisions;
13
13
  }
14
14
  }
15
-
16
- export default FinalPattern;
package/src/Game.ts CHANGED
@@ -1,12 +1,11 @@
1
- enum Game {
1
+ export enum Game {
2
2
  Kelimelik = 'kelimelik',
3
3
  Literaki = 'literaki',
4
4
  Scrabble = 'scrabble',
5
+ ScrabbleDuel = 'scrabble-duel',
5
6
  SuperScrabble = 'super-scrabble',
6
7
  }
7
8
 
8
9
  const games = Object.values(Game);
9
10
 
10
11
  export const isGame = (locale: unknown): locale is Game => games.includes(locale as Game);
11
-
12
- export default Game;
@@ -1,6 +1,6 @@
1
- import Pattern from './Pattern';
1
+ import { Pattern } from './Pattern';
2
2
 
3
- class HorizontalPattern extends Pattern {
3
+ export class HorizontalPattern extends Pattern {
4
4
  public clone(): Pattern {
5
5
  return new HorizontalPattern(
6
6
  this.board,
@@ -35,5 +35,3 @@ class HorizontalPattern extends Pattern {
35
35
  return collisions;
36
36
  }
37
37
  }
38
-
39
- export default HorizontalPattern;
package/src/Locale.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * @see https://en.wikipedia.org/wiki/IETF_language_tag
4
4
  * @see https://en.wikipedia.org/wiki/ISO_3166-1
5
5
  */
6
- enum Locale {
6
+ export enum Locale {
7
7
  DE_DE = 'de-DE',
8
8
  EN_GB = 'en-GB',
9
9
  EN_US = 'en-US',
@@ -18,5 +18,3 @@ enum Locale {
18
18
  const locales = Object.values(Locale);
19
19
 
20
20
  export const isLocale = (locale: unknown): locale is Locale => locales.includes(locale as Locale);
21
-
22
- export default Locale;
package/src/Pattern.ts CHANGED
@@ -1,9 +1,9 @@
1
- import Board from './Board';
2
- import Cell from './Cell';
3
- import Config from './Config';
4
- import PatternJson from './PatternJson';
1
+ import { Board } from './Board';
2
+ import { Cell } from './Cell';
3
+ import { Config } from './Config';
4
+ import { PatternJson } from './PatternJson';
5
5
 
6
- class Pattern {
6
+ export class Pattern {
7
7
  public readonly board: Board;
8
8
 
9
9
  public readonly cells: Cell[];
@@ -69,5 +69,3 @@ class Pattern {
69
69
  return this.cells.reduce((result, cell) => result + cell.toString(), '');
70
70
  }
71
71
  }
72
-
73
- export default Pattern;
@@ -1,9 +1,7 @@
1
- import CellJson from './CellJson';
1
+ import { CellJson } from './CellJson';
2
2
 
3
- interface PatternJson {
3
+ export interface PatternJson {
4
4
  cells: CellJson[];
5
5
  collisions: PatternJson[];
6
6
  word: string;
7
7
  }
8
-
9
- export default PatternJson;
package/src/Result.ts CHANGED
@@ -1,20 +1,20 @@
1
1
  import { CONSONANTS, VOWELS } from '@scrabble-solver/constants';
2
2
 
3
- import Cell from './Cell';
4
- import ResultJson from './ResultJson';
5
- import Tile from './Tile';
3
+ import { Cell } from './Cell';
4
+ import { ResultJson } from './ResultJson';
5
+ import { Tile } from './Tile';
6
6
 
7
7
  type Collision = Cell[];
8
8
 
9
- class Result {
10
- public static fromJson(json: ResultJson): Result {
9
+ export class Result {
10
+ public static fromJson = (json: ResultJson): Result => {
11
11
  return new Result({
12
12
  id: json.id,
13
13
  cells: json.cells.map(Cell.fromJson),
14
14
  collisions: json.collisions.map((collision) => collision.map(Cell.fromJson)),
15
15
  points: json.points,
16
16
  });
17
- }
17
+ };
18
18
 
19
19
  public readonly blanksCount: number;
20
20
 
@@ -92,7 +92,6 @@ const getPointsRatio = (tiles: Tile[], points: number): number => points / tiles
92
92
 
93
93
  const getTiles = (cells: Cell[]): Tile[] => cells.filter(({ isEmpty }) => isEmpty).map(({ tile }) => tile);
94
94
 
95
- // eslint-disable-next-line prefer-template
96
95
  const getWord = (cells: Cell[]): string => cells.reduce((word, cell) => word + cell.toString(), '');
97
96
 
98
97
  const getWords = (cells: Cell[], collisions: Collision[]): string[] => [cells, ...collisions].map(getWord);
@@ -100,5 +99,3 @@ const getWords = (cells: Cell[], collisions: Collision[]): string[] => [cells, .
100
99
  const isConsonant = ({ character, isBlank }: Tile): boolean => CONSONANTS.includes(character) && !isBlank;
101
100
 
102
101
  const isVowel = ({ character, isBlank }: Tile): boolean => VOWELS.includes(character) && !isBlank;
103
-
104
- export default Result;
package/src/ResultJson.ts CHANGED
@@ -1,11 +1,9 @@
1
- import CellJson from './CellJson';
2
- import CollisionJson from './CollisionJson';
1
+ import { CellJson } from './CellJson';
2
+ import { CollisionJson } from './CollisionJson';
3
3
 
4
- interface ResultJson {
4
+ export interface ResultJson {
5
5
  cells: CellJson[];
6
6
  collisions: CollisionJson[];
7
7
  id: number;
8
8
  points: number;
9
9
  }
10
-
11
- export default ResultJson;
@@ -3,6 +3,4 @@
3
3
  * 'alternative' means columns have numbers and rows have letters
4
4
  * 'hidden' means coordinates won't be shown
5
5
  */
6
- type ShowCoordinates = 'original' | 'alternative' | 'hidden';
7
-
8
- export default ShowCoordinates;
6
+ export type ShowCoordinates = 'original' | 'alternative' | 'hidden';
package/src/Tile.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { EMPTY_CELL } from '@scrabble-solver/constants';
2
2
 
3
- import TileJson from './TileJson';
3
+ import { TileJson } from './TileJson';
4
4
 
5
- class Tile {
6
- public static fromJson(json: TileJson | null): Tile {
5
+ export class Tile {
6
+ public static fromJson = (json: TileJson | null): Tile => {
7
7
  if (!json) {
8
8
  return Tile.Null;
9
9
  }
@@ -12,7 +12,7 @@ class Tile {
12
12
  character: json.character,
13
13
  isBlank: json.isBlank,
14
14
  });
15
- }
15
+ };
16
16
 
17
17
  public static readonly Null: Tile = Object.freeze({
18
18
  character: EMPTY_CELL,
@@ -54,5 +54,3 @@ class Tile {
54
54
  return this.character;
55
55
  }
56
56
  }
57
-
58
- export default Tile;
package/src/TileConfig.ts CHANGED
@@ -1,7 +1,5 @@
1
- interface TileConfig {
1
+ export interface TileConfig {
2
2
  character: string;
3
3
  count: number;
4
4
  score: number;
5
5
  }
6
-
7
- export default TileConfig;
package/src/TileJson.ts CHANGED
@@ -1,6 +1,6 @@
1
- import isObject from './isObject';
1
+ import { isObject } from './isObject';
2
2
 
3
- interface TileJson {
3
+ export interface TileJson {
4
4
  character: string;
5
5
  isBlank: boolean;
6
6
  }
@@ -8,5 +8,3 @@ interface TileJson {
8
8
  export const isTileJson = (value: unknown): value is TileJson => {
9
9
  return isObject(value) && typeof value.character === 'string' && typeof value.isBlank === 'boolean';
10
10
  };
11
-
12
- export default TileJson;
@@ -1,6 +1,6 @@
1
- import Pattern from './Pattern';
1
+ import { Pattern } from './Pattern';
2
2
 
3
- class VerticalPattern extends Pattern {
3
+ export class VerticalPattern extends Pattern {
4
4
  public clone(): Pattern {
5
5
  return new VerticalPattern(
6
6
  this.board,
@@ -35,5 +35,3 @@ class VerticalPattern extends Pattern {
35
35
  return collisions;
36
36
  }
37
37
  }
38
-
39
- export default VerticalPattern;
package/src/WordBonus.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { BONUS_WORD } from '@scrabble-solver/constants';
2
2
 
3
- import Bonus from './Bonus';
4
- import BonusValue from './BonusValue';
3
+ import { Bonus } from './Bonus';
4
+ import { BonusValue } from './BonusValue';
5
5
 
6
- class WordBonus extends Bonus {
6
+ export class WordBonus extends Bonus {
7
7
  public readonly type = BONUS_WORD;
8
8
 
9
9
  public get value(): BonusValue {
@@ -13,5 +13,3 @@ class WordBonus extends Bonus {
13
13
  };
14
14
  }
15
15
  }
16
-
17
- export default WordBonus;
@@ -1,7 +1,7 @@
1
- import WordDefinitionJson from './WordDefinitionJson';
1
+ import { WordDefinitionJson } from './WordDefinitionJson';
2
2
 
3
- class WordDefinition {
4
- public static fromJson(json: WordDefinitionJson | null): WordDefinition {
3
+ export class WordDefinition {
4
+ public static fromJson = (json: WordDefinitionJson | null): WordDefinition => {
5
5
  if (!json) {
6
6
  return WordDefinition.Null;
7
7
  }
@@ -12,7 +12,7 @@ class WordDefinition {
12
12
  isAllowed: json.isAllowed,
13
13
  word: json.word,
14
14
  });
15
- }
15
+ };
16
16
 
17
17
  public static readonly Null: WordDefinition = Object.freeze({
18
18
  definitions: [],
@@ -52,5 +52,3 @@ class WordDefinition {
52
52
  };
53
53
  }
54
54
  }
55
-
56
- export default WordDefinition;
@@ -1,4 +1,4 @@
1
- interface WordDefinitionJson {
1
+ export interface WordDefinitionJson {
2
2
  definitions: string[];
3
3
  /**
4
4
  * Does the word have an entry in a corresponding online dictionary?
@@ -10,5 +10,3 @@ interface WordDefinitionJson {
10
10
  isAllowed: boolean;
11
11
  word: string;
12
12
  }
13
-
14
- export default WordDefinitionJson;
package/src/index.ts CHANGED
@@ -1,31 +1,31 @@
1
- export { default as Board } from './Board';
2
- export { default as BoardJson, isBoardJson } from './BoardJson';
3
- export { default as Bonus } from './Bonus';
4
- export { default as BonusJson } from './BonusJson';
5
- export { default as BonusValue } from './BonusValue';
6
- export { default as Cell } from './Cell';
7
- export { default as CellJson, isCellJson } from './CellJson';
8
- export { default as CharacterBonus } from './CharacterBonus';
9
- export { default as Collision } from './Collision';
10
- export { default as CollisionJson } from './CollisionJson';
11
- export { default as Config } from './Config';
12
- export { default as ConfigJson } from './ConfigJson';
13
- export { default as Dictionary } from './Dictionary';
14
- export { default as FinalPattern } from './FinalPattern';
15
- export { default as Game, isGame } from './Game';
16
- export { default as HorizontalPattern } from './HorizontalPattern';
17
- export { default as Locale, isLocale } from './Locale';
18
- export { default as Pattern } from './Pattern';
19
- export { default as PatternJson } from './PatternJson';
20
- export { default as Result } from './Result';
21
- export { default as ResultJson } from './ResultJson';
22
- export { default as ShowCoordinates } from './ShowCoordinates';
23
- export { default as Tile } from './Tile';
24
- export { default as TileConfig } from './TileConfig';
25
- export { default as TileJson, isTileJson } from './TileJson';
26
- export { default as VerticalPattern } from './VerticalPattern';
27
- export { default as WordBonus } from './WordBonus';
28
- export { default as WordDefinition } from './WordDefinition';
29
- export { default as WordDefinitionJson } from './WordDefinitionJson';
30
- export { default as isError } from './isError';
31
- export { default as isObject } from './isObject';
1
+ export { Board } from './Board';
2
+ export { BoardJson, isBoardJson } from './BoardJson';
3
+ export { Bonus } from './Bonus';
4
+ export { BonusJson } from './BonusJson';
5
+ export { BonusValue } from './BonusValue';
6
+ export { Cell } from './Cell';
7
+ export { CellJson, isCellJson } from './CellJson';
8
+ export { CharacterBonus } from './CharacterBonus';
9
+ export { Collision } from './Collision';
10
+ export { CollisionJson } from './CollisionJson';
11
+ export { Config } from './Config';
12
+ export { ConfigJson } from './ConfigJson';
13
+ export { Dictionary } from './Dictionary';
14
+ export { FinalPattern } from './FinalPattern';
15
+ export { Game, isGame } from './Game';
16
+ export { HorizontalPattern } from './HorizontalPattern';
17
+ export { isError } from './isError';
18
+ export { isObject } from './isObject';
19
+ export { isLocale, Locale } from './Locale';
20
+ export { Pattern } from './Pattern';
21
+ export { PatternJson } from './PatternJson';
22
+ export { Result } from './Result';
23
+ export { ResultJson } from './ResultJson';
24
+ export { ShowCoordinates } from './ShowCoordinates';
25
+ export { Tile } from './Tile';
26
+ export { TileConfig } from './TileConfig';
27
+ export { isTileJson, TileJson } from './TileJson';
28
+ export { VerticalPattern } from './VerticalPattern';
29
+ export { WordBonus } from './WordBonus';
30
+ export { WordDefinition } from './WordDefinition';
31
+ export { WordDefinitionJson } from './WordDefinitionJson';
package/src/isError.ts CHANGED
@@ -1,11 +1,9 @@
1
- import isObject from './isObject';
1
+ import { isObject } from './isObject';
2
2
 
3
- const isError = (value: unknown): value is Error => {
3
+ export const isError = (value: unknown): value is Error => {
4
4
  if (!isObject(value)) {
5
5
  return false;
6
6
  }
7
7
 
8
8
  return typeof value.message === 'string';
9
9
  };
10
-
11
- export default isError;
package/src/isObject.ts CHANGED
@@ -1,5 +1,3 @@
1
- const isObject = (value: unknown): value is Record<string, unknown> => {
1
+ export const isObject = (value: unknown): value is Record<string, unknown> => {
2
2
  return typeof value === 'object' && value !== null;
3
3
  };
4
-
5
- export default isObject;