@scrabble-solver/types 2.15.9 → 2.15.11

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 (88) hide show
  1. package/build/Bingo.d.ts +10 -0
  2. package/build/Bingo.js +16 -0
  3. package/build/Board.d.ts +5 -6
  4. package/build/Board.js +17 -16
  5. package/build/BoardJson.d.ts +2 -3
  6. package/build/Bonus.d.ts +5 -6
  7. package/build/Bonus.js +2 -1
  8. package/build/BonusJson.d.ts +1 -2
  9. package/build/BonusValue.d.ts +1 -2
  10. package/build/Cell.d.ts +4 -5
  11. package/build/Cell.js +13 -15
  12. package/build/CellJson.d.ts +2 -3
  13. package/build/CellJson.js +2 -5
  14. package/build/CharacterBonus.d.ts +5 -6
  15. package/build/CharacterBonus.js +4 -6
  16. package/build/Collision.d.ts +2 -3
  17. package/build/CollisionJson.d.ts +2 -3
  18. package/build/Config.d.ts +15 -13
  19. package/build/Config.js +19 -15
  20. package/build/ConfigJson.d.ts +9 -8
  21. package/build/Dictionary.d.ts +2 -3
  22. package/build/FinalPattern.d.ts +2 -3
  23. package/build/FinalPattern.js +4 -6
  24. package/build/Game.d.ts +3 -2
  25. package/build/Game.js +4 -3
  26. package/build/HorizontalPattern.d.ts +2 -3
  27. package/build/HorizontalPattern.js +5 -7
  28. package/build/Locale.d.ts +1 -2
  29. package/build/Locale.js +2 -3
  30. package/build/Pattern.d.ts +5 -6
  31. package/build/Pattern.js +2 -1
  32. package/build/PatternJson.d.ts +2 -3
  33. package/build/Result.d.ts +6 -6
  34. package/build/Result.js +11 -13
  35. package/build/ResultJson.d.ts +3 -4
  36. package/build/ShowCoordinates.d.ts +1 -2
  37. package/build/Tile.d.ts +3 -4
  38. package/build/Tile.js +11 -10
  39. package/build/TileConfig.d.ts +2 -3
  40. package/build/TileJson.d.ts +1 -2
  41. package/build/TileJson.js +2 -5
  42. package/build/VerticalPattern.d.ts +2 -3
  43. package/build/VerticalPattern.js +5 -7
  44. package/build/WordBonus.d.ts +3 -4
  45. package/build/WordBonus.js +4 -6
  46. package/build/WordDefinition.d.ts +3 -4
  47. package/build/WordDefinition.js +13 -12
  48. package/build/WordDefinitionJson.d.ts +1 -2
  49. package/build/index.d.ts +32 -31
  50. package/build/index.js +24 -23
  51. package/build/isError.d.ts +1 -2
  52. package/build/isError.js +4 -6
  53. package/build/isObject.d.ts +1 -2
  54. package/build/isObject.js +2 -1
  55. package/package.json +3 -3
  56. package/src/Bingo.ts +19 -0
  57. package/src/Board.ts +14 -13
  58. package/src/BoardJson.ts +2 -4
  59. package/src/Bonus.ts +5 -7
  60. package/src/BonusJson.ts +1 -3
  61. package/src/BonusValue.ts +1 -3
  62. package/src/Cell.ts +5 -7
  63. package/src/CellJson.ts +3 -5
  64. package/src/CharacterBonus.ts +5 -7
  65. package/src/Collision.ts +2 -4
  66. package/src/CollisionJson.ts +2 -4
  67. package/src/Config.ts +27 -20
  68. package/src/ConfigJson.ts +9 -9
  69. package/src/Dictionary.ts +2 -4
  70. package/src/FinalPattern.ts +2 -4
  71. package/src/Game.ts +3 -3
  72. package/src/HorizontalPattern.ts +2 -4
  73. package/src/Locale.ts +1 -3
  74. package/src/Pattern.ts +5 -7
  75. package/src/PatternJson.ts +2 -4
  76. package/src/Result.ts +6 -8
  77. package/src/ResultJson.ts +3 -5
  78. package/src/ShowCoordinates.ts +1 -3
  79. package/src/Tile.ts +4 -6
  80. package/src/TileConfig.ts +2 -4
  81. package/src/TileJson.ts +2 -4
  82. package/src/VerticalPattern.ts +2 -4
  83. package/src/WordBonus.ts +3 -5
  84. package/src/WordDefinition.ts +4 -6
  85. package/src/WordDefinitionJson.ts +1 -3
  86. package/src/index.ts +32 -31
  87. package/src/isError.ts +2 -4
  88. package/src/isObject.ts +1 -3
package/build/Result.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import Cell from './Cell';
2
- import ResultJson from './ResultJson';
3
- import Tile from './Tile';
1
+ import { Cell } from './Cell';
2
+ import { ResultJson } from './ResultJson';
3
+ import { Tile } from './Tile';
4
4
  type Collision = Cell[];
5
- declare class Result {
6
- static fromJson(json: ResultJson): Result;
5
+ export declare class Result {
6
+ static fromJson: (json: ResultJson) => Result;
7
7
  readonly blanksCount: number;
8
8
  readonly cells: Cell[];
9
9
  readonly collisions: Collision[];
@@ -26,4 +26,4 @@ declare class Result {
26
26
  });
27
27
  toJson(): ResultJson;
28
28
  }
29
- export default Result;
29
+ export {};
package/build/Result.js CHANGED
@@ -1,19 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Result = void 0;
6
4
  const constants_1 = require("@scrabble-solver/constants");
7
- const Cell_1 = __importDefault(require("./Cell"));
5
+ const Cell_1 = require("./Cell");
8
6
  class Result {
9
- static fromJson(json) {
10
- return new Result({
11
- id: json.id,
12
- cells: json.cells.map(Cell_1.default.fromJson),
13
- collisions: json.collisions.map((collision) => collision.map(Cell_1.default.fromJson)),
14
- points: json.points,
15
- });
16
- }
17
7
  constructor({ cells, id, collisions, points, }) {
18
8
  const tiles = getTiles(cells);
19
9
  this.blanksCount = getBlanks(tiles).length;
@@ -40,6 +30,15 @@ class Result {
40
30
  };
41
31
  }
42
32
  }
33
+ exports.Result = Result;
34
+ Result.fromJson = (json) => {
35
+ return new Result({
36
+ id: json.id,
37
+ cells: json.cells.map(Cell_1.Cell.fromJson),
38
+ collisions: json.collisions.map((collision) => collision.map(Cell_1.Cell.fromJson)),
39
+ points: json.points,
40
+ });
41
+ };
43
42
  const getBlanks = (tiles) => tiles.filter(({ isBlank }) => isBlank);
44
43
  const getConsonants = (tiles) => tiles.filter(isConsonant);
45
44
  const getVowels = (tiles) => tiles.filter(isVowel);
@@ -49,4 +48,3 @@ const getWord = (cells) => cells.reduce((word, cell) => word + cell.toString(),
49
48
  const getWords = (cells, collisions) => [cells, ...collisions].map(getWord);
50
49
  const isConsonant = ({ character, isBlank }) => constants_1.CONSONANTS.includes(character) && !isBlank;
51
50
  const isVowel = ({ character, isBlank }) => constants_1.VOWELS.includes(character) && !isBlank;
52
- exports.default = Result;
@@ -1,9 +1,8 @@
1
- import CellJson from './CellJson';
2
- import CollisionJson from './CollisionJson';
3
- interface ResultJson {
1
+ import { CellJson } from './CellJson';
2
+ import { CollisionJson } from './CollisionJson';
3
+ export interface ResultJson {
4
4
  cells: CellJson[];
5
5
  collisions: CollisionJson[];
6
6
  id: number;
7
7
  points: number;
8
8
  }
9
- export default ResultJson;
@@ -3,5 +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
- export default ShowCoordinates;
6
+ export type ShowCoordinates = 'original' | 'alternative' | 'hidden';
package/build/Tile.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import TileJson from './TileJson';
2
- declare class Tile {
3
- static fromJson(json: TileJson | null): Tile;
1
+ import { TileJson } from './TileJson';
2
+ export declare class Tile {
3
+ static fromJson: (json: TileJson | null) => Tile;
4
4
  static readonly Null: Tile;
5
5
  character: string;
6
6
  isBlank: boolean;
@@ -13,4 +13,3 @@ declare class Tile {
13
13
  toJson(): TileJson | null;
14
14
  toString(): string;
15
15
  }
16
- export default Tile;
package/build/Tile.js CHANGED
@@ -1,16 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tile = void 0;
3
4
  const constants_1 = require("@scrabble-solver/constants");
4
5
  class Tile {
5
- static fromJson(json) {
6
- if (!json) {
7
- return Tile.Null;
8
- }
9
- return new Tile({
10
- character: json.character,
11
- isBlank: json.isBlank,
12
- });
13
- }
14
6
  constructor({ character, isBlank = false }) {
15
7
  this.character = character;
16
8
  this.isBlank = isBlank;
@@ -34,6 +26,16 @@ class Tile {
34
26
  return this.character;
35
27
  }
36
28
  }
29
+ exports.Tile = Tile;
30
+ Tile.fromJson = (json) => {
31
+ if (!json) {
32
+ return Tile.Null;
33
+ }
34
+ return new Tile({
35
+ character: json.character,
36
+ isBlank: json.isBlank,
37
+ });
38
+ };
37
39
  Tile.Null = Object.freeze({
38
40
  character: constants_1.EMPTY_CELL,
39
41
  isBlank: false,
@@ -42,4 +44,3 @@ Tile.Null = Object.freeze({
42
44
  toJson: () => null,
43
45
  toString: () => constants_1.EMPTY_CELL,
44
46
  });
45
- exports.default = Tile;
@@ -1,6 +1,5 @@
1
- interface TileConfig {
1
+ export interface TileConfig {
2
2
  character: string;
3
- count: number;
3
+ count?: number;
4
4
  score: number;
5
5
  }
6
- export default TileConfig;
@@ -1,6 +1,5 @@
1
- interface TileJson {
1
+ export interface TileJson {
2
2
  character: string;
3
3
  isBlank: boolean;
4
4
  }
5
5
  export declare const isTileJson: (value: unknown) => value is TileJson;
6
- export default TileJson;
package/build/TileJson.js CHANGED
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.isTileJson = void 0;
7
- const isObject_1 = __importDefault(require("./isObject"));
4
+ const isObject_1 = require("./isObject");
8
5
  const isTileJson = (value) => {
9
- return (0, isObject_1.default)(value) && typeof value.character === 'string' && typeof value.isBlank === 'boolean';
6
+ return (0, isObject_1.isObject)(value) && typeof value.character === 'string' && typeof value.isBlank === 'boolean';
10
7
  };
11
8
  exports.isTileJson = isTileJson;
@@ -1,6 +1,5 @@
1
- import Pattern from './Pattern';
2
- declare class VerticalPattern extends Pattern {
1
+ import { Pattern } from './Pattern';
2
+ export declare class VerticalPattern extends Pattern {
3
3
  clone(): Pattern;
4
4
  getCollisions(): Pattern[];
5
5
  }
6
- export default VerticalPattern;
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const Pattern_1 = __importDefault(require("./Pattern"));
7
- class VerticalPattern extends Pattern_1.default {
3
+ exports.VerticalPattern = void 0;
4
+ const Pattern_1 = require("./Pattern");
5
+ class VerticalPattern extends Pattern_1.Pattern {
8
6
  clone() {
9
7
  return new VerticalPattern(this.board, this.cells.map((cell) => cell.clone()));
10
8
  }
@@ -26,11 +24,11 @@ class VerticalPattern extends Pattern_1.default {
26
24
  const nextCells = row.slice(cell.x + 1, x);
27
25
  const cells = [...previousCells, cell, ...nextCells];
28
26
  if (cells.length > 1) {
29
- const pattern = new Pattern_1.default(this.board, cells);
27
+ const pattern = new Pattern_1.Pattern(this.board, cells);
30
28
  collisions.push(pattern);
31
29
  }
32
30
  });
33
31
  return collisions;
34
32
  }
35
33
  }
36
- exports.default = VerticalPattern;
34
+ exports.VerticalPattern = VerticalPattern;
@@ -1,7 +1,6 @@
1
- import Bonus from './Bonus';
2
- import BonusValue from './BonusValue';
3
- declare class WordBonus extends Bonus {
1
+ import { Bonus } from './Bonus';
2
+ import { BonusValue } from './BonusValue';
3
+ export declare class WordBonus extends Bonus {
4
4
  readonly type = "BONUS_WORD";
5
5
  get value(): BonusValue;
6
6
  }
7
- export default WordBonus;
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WordBonus = void 0;
6
4
  const constants_1 = require("@scrabble-solver/constants");
7
- const Bonus_1 = __importDefault(require("./Bonus"));
8
- class WordBonus extends Bonus_1.default {
5
+ const Bonus_1 = require("./Bonus");
6
+ class WordBonus extends Bonus_1.Bonus {
9
7
  constructor() {
10
8
  super(...arguments);
11
9
  this.type = constants_1.BONUS_WORD;
@@ -17,4 +15,4 @@ class WordBonus extends Bonus_1.default {
17
15
  };
18
16
  }
19
17
  }
20
- exports.default = WordBonus;
18
+ exports.WordBonus = WordBonus;
@@ -1,6 +1,6 @@
1
- import WordDefinitionJson from './WordDefinitionJson';
2
- declare class WordDefinition {
3
- static fromJson(json: WordDefinitionJson | null): WordDefinition;
1
+ import { WordDefinitionJson } from './WordDefinitionJson';
2
+ export declare class WordDefinition {
3
+ static fromJson: (json: WordDefinitionJson | null) => WordDefinition;
4
4
  static readonly Null: WordDefinition;
5
5
  readonly definitions: string[];
6
6
  /**
@@ -15,4 +15,3 @@ declare class WordDefinition {
15
15
  constructor({ definitions, exists, isAllowed, word }: WordDefinitionJson);
16
16
  toJson(): WordDefinitionJson | null;
17
17
  }
18
- export default WordDefinition;
@@ -1,17 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WordDefinition = void 0;
3
4
  class WordDefinition {
4
- static fromJson(json) {
5
- if (!json) {
6
- return WordDefinition.Null;
7
- }
8
- return new WordDefinition({
9
- definitions: json.definitions,
10
- exists: json.exists,
11
- isAllowed: json.isAllowed,
12
- word: json.word,
13
- });
14
- }
15
5
  constructor({ definitions, exists, isAllowed, word }) {
16
6
  this.definitions = definitions;
17
7
  this.exists = exists;
@@ -27,6 +17,18 @@ class WordDefinition {
27
17
  };
28
18
  }
29
19
  }
20
+ exports.WordDefinition = WordDefinition;
21
+ WordDefinition.fromJson = (json) => {
22
+ if (!json) {
23
+ return WordDefinition.Null;
24
+ }
25
+ return new WordDefinition({
26
+ definitions: json.definitions,
27
+ exists: json.exists,
28
+ isAllowed: json.isAllowed,
29
+ word: json.word,
30
+ });
31
+ };
30
32
  WordDefinition.Null = Object.freeze({
31
33
  definitions: [],
32
34
  exists: false,
@@ -34,4 +36,3 @@ WordDefinition.Null = Object.freeze({
34
36
  word: '',
35
37
  toJson: () => null,
36
38
  });
37
- exports.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,4 +10,3 @@ interface WordDefinitionJson {
10
10
  isAllowed: boolean;
11
11
  word: string;
12
12
  }
13
- export default WordDefinitionJson;
package/build/index.d.ts CHANGED
@@ -1,31 +1,32 @@
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 { Bingo, isBingo, isMultiplierBingo, isScoreBingo } from './Bingo';
2
+ export { Board } from './Board';
3
+ export { BoardJson, isBoardJson } from './BoardJson';
4
+ export { Bonus } from './Bonus';
5
+ export { BonusJson } from './BonusJson';
6
+ export { BonusValue } from './BonusValue';
7
+ export { Cell } from './Cell';
8
+ export { CellJson, isCellJson } from './CellJson';
9
+ export { CharacterBonus } from './CharacterBonus';
10
+ export { Collision } from './Collision';
11
+ export { CollisionJson } from './CollisionJson';
12
+ export { Config } from './Config';
13
+ export { ConfigJson } from './ConfigJson';
14
+ export { Dictionary } from './Dictionary';
15
+ export { FinalPattern } from './FinalPattern';
16
+ export { Game, isGame } from './Game';
17
+ export { HorizontalPattern } from './HorizontalPattern';
18
+ export { isError } from './isError';
19
+ export { isObject } from './isObject';
20
+ export { isLocale, Locale } from './Locale';
21
+ export { Pattern } from './Pattern';
22
+ export { PatternJson } from './PatternJson';
23
+ export { Result } from './Result';
24
+ export { ResultJson } from './ResultJson';
25
+ export { ShowCoordinates } from './ShowCoordinates';
26
+ export { Tile } from './Tile';
27
+ export { TileConfig } from './TileConfig';
28
+ export { isTileJson, TileJson } from './TileJson';
29
+ export { VerticalPattern } from './VerticalPattern';
30
+ export { WordBonus } from './WordBonus';
31
+ export { WordDefinition } from './WordDefinition';
32
+ export { WordDefinitionJson } from './WordDefinitionJson';
package/build/index.js CHANGED
@@ -1,48 +1,49 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isObject = exports.isError = exports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.isLocale = exports.Locale = exports.HorizontalPattern = exports.isGame = exports.Game = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = void 0;
3
+ exports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.Locale = exports.isLocale = exports.isObject = exports.isError = exports.HorizontalPattern = exports.isGame = exports.Game = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = exports.isScoreBingo = exports.isMultiplierBingo = exports.isBingo = void 0;
4
+ var Bingo_1 = require("./Bingo");
5
+ Object.defineProperty(exports, "isBingo", { enumerable: true, get: function () { return Bingo_1.isBingo; } });
6
+ Object.defineProperty(exports, "isMultiplierBingo", { enumerable: true, get: function () { return Bingo_1.isMultiplierBingo; } });
7
+ Object.defineProperty(exports, "isScoreBingo", { enumerable: true, get: function () { return Bingo_1.isScoreBingo; } });
7
8
  var Board_1 = require("./Board");
8
- Object.defineProperty(exports, "Board", { enumerable: true, get: function () { return __importDefault(Board_1).default; } });
9
+ Object.defineProperty(exports, "Board", { enumerable: true, get: function () { return Board_1.Board; } });
9
10
  var BoardJson_1 = require("./BoardJson");
10
11
  Object.defineProperty(exports, "isBoardJson", { enumerable: true, get: function () { return BoardJson_1.isBoardJson; } });
11
12
  var Bonus_1 = require("./Bonus");
12
- Object.defineProperty(exports, "Bonus", { enumerable: true, get: function () { return __importDefault(Bonus_1).default; } });
13
+ Object.defineProperty(exports, "Bonus", { enumerable: true, get: function () { return Bonus_1.Bonus; } });
13
14
  var Cell_1 = require("./Cell");
14
- Object.defineProperty(exports, "Cell", { enumerable: true, get: function () { return __importDefault(Cell_1).default; } });
15
+ Object.defineProperty(exports, "Cell", { enumerable: true, get: function () { return Cell_1.Cell; } });
15
16
  var CellJson_1 = require("./CellJson");
16
17
  Object.defineProperty(exports, "isCellJson", { enumerable: true, get: function () { return CellJson_1.isCellJson; } });
17
18
  var CharacterBonus_1 = require("./CharacterBonus");
18
- Object.defineProperty(exports, "CharacterBonus", { enumerable: true, get: function () { return __importDefault(CharacterBonus_1).default; } });
19
+ Object.defineProperty(exports, "CharacterBonus", { enumerable: true, get: function () { return CharacterBonus_1.CharacterBonus; } });
19
20
  var Config_1 = require("./Config");
20
- Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return __importDefault(Config_1).default; } });
21
+ Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return Config_1.Config; } });
21
22
  var FinalPattern_1 = require("./FinalPattern");
22
- Object.defineProperty(exports, "FinalPattern", { enumerable: true, get: function () { return __importDefault(FinalPattern_1).default; } });
23
+ Object.defineProperty(exports, "FinalPattern", { enumerable: true, get: function () { return FinalPattern_1.FinalPattern; } });
23
24
  var Game_1 = require("./Game");
24
- Object.defineProperty(exports, "Game", { enumerable: true, get: function () { return __importDefault(Game_1).default; } });
25
+ Object.defineProperty(exports, "Game", { enumerable: true, get: function () { return Game_1.Game; } });
25
26
  Object.defineProperty(exports, "isGame", { enumerable: true, get: function () { return Game_1.isGame; } });
26
27
  var HorizontalPattern_1 = require("./HorizontalPattern");
27
- Object.defineProperty(exports, "HorizontalPattern", { enumerable: true, get: function () { return __importDefault(HorizontalPattern_1).default; } });
28
+ Object.defineProperty(exports, "HorizontalPattern", { enumerable: true, get: function () { return HorizontalPattern_1.HorizontalPattern; } });
29
+ var isError_1 = require("./isError");
30
+ Object.defineProperty(exports, "isError", { enumerable: true, get: function () { return isError_1.isError; } });
31
+ var isObject_1 = require("./isObject");
32
+ Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return isObject_1.isObject; } });
28
33
  var Locale_1 = require("./Locale");
29
- Object.defineProperty(exports, "Locale", { enumerable: true, get: function () { return __importDefault(Locale_1).default; } });
30
34
  Object.defineProperty(exports, "isLocale", { enumerable: true, get: function () { return Locale_1.isLocale; } });
35
+ Object.defineProperty(exports, "Locale", { enumerable: true, get: function () { return Locale_1.Locale; } });
31
36
  var Pattern_1 = require("./Pattern");
32
- Object.defineProperty(exports, "Pattern", { enumerable: true, get: function () { return __importDefault(Pattern_1).default; } });
37
+ Object.defineProperty(exports, "Pattern", { enumerable: true, get: function () { return Pattern_1.Pattern; } });
33
38
  var Result_1 = require("./Result");
34
- Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return __importDefault(Result_1).default; } });
39
+ Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return Result_1.Result; } });
35
40
  var Tile_1 = require("./Tile");
36
- Object.defineProperty(exports, "Tile", { enumerable: true, get: function () { return __importDefault(Tile_1).default; } });
41
+ Object.defineProperty(exports, "Tile", { enumerable: true, get: function () { return Tile_1.Tile; } });
37
42
  var TileJson_1 = require("./TileJson");
38
43
  Object.defineProperty(exports, "isTileJson", { enumerable: true, get: function () { return TileJson_1.isTileJson; } });
39
44
  var VerticalPattern_1 = require("./VerticalPattern");
40
- Object.defineProperty(exports, "VerticalPattern", { enumerable: true, get: function () { return __importDefault(VerticalPattern_1).default; } });
45
+ Object.defineProperty(exports, "VerticalPattern", { enumerable: true, get: function () { return VerticalPattern_1.VerticalPattern; } });
41
46
  var WordBonus_1 = require("./WordBonus");
42
- Object.defineProperty(exports, "WordBonus", { enumerable: true, get: function () { return __importDefault(WordBonus_1).default; } });
47
+ Object.defineProperty(exports, "WordBonus", { enumerable: true, get: function () { return WordBonus_1.WordBonus; } });
43
48
  var WordDefinition_1 = require("./WordDefinition");
44
- Object.defineProperty(exports, "WordDefinition", { enumerable: true, get: function () { return __importDefault(WordDefinition_1).default; } });
45
- var isError_1 = require("./isError");
46
- Object.defineProperty(exports, "isError", { enumerable: true, get: function () { return __importDefault(isError_1).default; } });
47
- var isObject_1 = require("./isObject");
48
- Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return __importDefault(isObject_1).default; } });
49
+ Object.defineProperty(exports, "WordDefinition", { enumerable: true, get: function () { return WordDefinition_1.WordDefinition; } });
@@ -1,2 +1 @@
1
- declare const isError: (value: unknown) => value is Error;
2
- export default isError;
1
+ export declare const isError: (value: unknown) => value is Error;
package/build/isError.js CHANGED
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const isObject_1 = __importDefault(require("./isObject"));
3
+ exports.isError = void 0;
4
+ const isObject_1 = require("./isObject");
7
5
  const isError = (value) => {
8
- if (!(0, isObject_1.default)(value)) {
6
+ if (!(0, isObject_1.isObject)(value)) {
9
7
  return false;
10
8
  }
11
9
  return typeof value.message === 'string';
12
10
  };
13
- exports.default = isError;
11
+ exports.isError = isError;
@@ -1,2 +1 @@
1
- declare const isObject: (value: unknown) => value is Record<string, unknown>;
2
- export default isObject;
1
+ export declare const isObject: (value: unknown) => value is Record<string, unknown>;
package/build/isObject.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isObject = void 0;
3
4
  const isObject = (value) => {
4
5
  return typeof value === 'object' && value !== null;
5
6
  };
6
- exports.default = isObject;
7
+ exports.isObject = isObject;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/types",
3
- "version": "2.15.9",
3
+ "version": "2.15.11",
4
4
  "description": "Scrabble Solver 2 - Types",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -23,7 +23,7 @@
23
23
  "clean": "rimraf build/"
24
24
  },
25
25
  "dependencies": {
26
- "@scrabble-solver/constants": "^2.15.9"
26
+ "@scrabble-solver/constants": "^2.15.11"
27
27
  },
28
- "gitHead": "d0654f37094c58a9982d7984e3fc8722f1fa24f0"
28
+ "gitHead": "4fa527098d5e67120adb7964777c044a09378332"
29
29
  }
package/src/Bingo.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { isObject } from './isObject';
2
+
3
+ export type MultiplierBingo = { multiplier: number };
4
+
5
+ export type ScoreBingo = { score: number };
6
+
7
+ export type Bingo = MultiplierBingo | ScoreBingo;
8
+
9
+ export const isBingo = (value: unknown): value is Bingo => {
10
+ return isScoreBingo(value) || isMultiplierBingo(value);
11
+ };
12
+
13
+ export const isScoreBingo = (value: unknown): value is ScoreBingo => {
14
+ return isObject(value) && 'score' in value && typeof value.score === 'number';
15
+ };
16
+
17
+ export const isMultiplierBingo = (value: unknown): value is MultiplierBingo => {
18
+ return isObject(value) && 'multiplier' in value && typeof value.multiplier === 'number';
19
+ };
package/src/Board.ts CHANGED
@@ -1,19 +1,22 @@
1
1
  import { EMPTY_CELL } from '@scrabble-solver/constants';
2
2
 
3
- import BoardJson from './BoardJson';
4
- import Cell from './Cell';
5
- import Tile from './Tile';
6
-
7
- class Board {
8
- public static create(size: number): Board {
9
- return Board.fromStringArray(Array(size).fill(Array(size).fill(' ').join('')));
10
- }
11
-
12
- public static fromJson(json: BoardJson): Board {
3
+ import { BoardJson } from './BoardJson';
4
+ import { Cell } from './Cell';
5
+ import { Tile } from './Tile';
6
+
7
+ export class Board {
8
+ public static create = (width: number, height: number): Board => {
9
+ const rows = Array(height);
10
+ const emptyRow = Array(width).fill(' ').join('');
11
+ const emptyRows: string[] = rows.fill(emptyRow);
12
+ return Board.fromStringArray(emptyRows);
13
+ };
14
+
15
+ public static fromJson = (json: BoardJson): Board => {
13
16
  return new Board({
14
17
  rows: json.map((row) => row.map(Cell.fromJson)),
15
18
  });
16
- }
19
+ };
17
20
 
18
21
  public static fromStringArray(stringArray: string[]): Board {
19
22
  return new Board({
@@ -148,5 +151,3 @@ class Board {
148
151
  this.rows[y] = updateRow(this.rows[y]);
149
152
  }
150
153
  }
151
-
152
- export default Board;
package/src/BoardJson.ts CHANGED
@@ -1,6 +1,6 @@
1
- import CellJson, { isCellJson } from './CellJson';
1
+ import { CellJson, isCellJson } from './CellJson';
2
2
 
3
- type BoardJson = CellJson[][];
3
+ export type BoardJson = CellJson[][];
4
4
 
5
5
  export const isBoardJson = (value: unknown): value is BoardJson => {
6
6
  if (!Array.isArray(value)) {
@@ -21,5 +21,3 @@ export const isBoardJson = (value: unknown): value is BoardJson => {
21
21
 
22
22
  return true;
23
23
  };
24
-
25
- export default BoardJson;
package/src/Bonus.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { BONUS_CHARACTER, BONUS_WORD } from '@scrabble-solver/constants';
2
2
 
3
- import BonusJson from './BonusJson';
4
- import BonusValue from './BonusValue';
5
- import Cell from './Cell';
6
- import type Config from './Config';
3
+ import { BonusJson } from './BonusJson';
4
+ import { BonusValue } from './BonusValue';
5
+ import { Cell } from './Cell';
6
+ import { type Config } from './Config';
7
7
 
8
- abstract class Bonus {
8
+ export abstract class Bonus {
9
9
  public readonly multiplier: number;
10
10
 
11
11
  public readonly score: number | undefined;
@@ -48,5 +48,3 @@ abstract class Bonus {
48
48
  };
49
49
  }
50
50
  }
51
-
52
- export default Bonus;
package/src/BonusJson.ts CHANGED
@@ -1,9 +1,7 @@
1
- interface BonusJson {
1
+ export interface BonusJson {
2
2
  multiplier: number;
3
3
  score?: number;
4
4
  type: string;
5
5
  x: number;
6
6
  y: number;
7
7
  }
8
-
9
- export default BonusJson;
package/src/BonusValue.ts CHANGED
@@ -1,6 +1,4 @@
1
- interface BonusValue {
1
+ export interface BonusValue {
2
2
  characterMultiplier: number;
3
3
  wordMultiplier: number;
4
4
  }
5
-
6
- export default BonusValue;