@gamepark/rules-api 6.9.2 → 6.10.1

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 (95) hide show
  1. package/dist/Action.d.ts +4 -4
  2. package/dist/Action.js +0 -2
  3. package/dist/Action.js.map +1 -1
  4. package/dist/Competitive.d.ts +1 -1
  5. package/dist/DefaultGameSetup.js +1 -1
  6. package/dist/Dummy.js +1 -1
  7. package/dist/Robot.d.ts +1 -1
  8. package/dist/Rules.js +1 -1
  9. package/dist/TimeLimit.d.ts +0 -8
  10. package/dist/UnpredictableMove.d.ts +1 -1
  11. package/dist/material/HiddenMaterialRules.d.ts +4 -3
  12. package/dist/material/HiddenMaterialRules.js +4 -5
  13. package/dist/material/HiddenMaterialRules.js.map +1 -1
  14. package/dist/material/MaterialGame.d.ts +1 -1
  15. package/dist/material/MaterialGameSetup.d.ts +10 -6
  16. package/dist/material/MaterialGameSetup.js +28 -4
  17. package/dist/material/MaterialGameSetup.js.map +1 -1
  18. package/dist/material/MaterialRules.js +3 -3
  19. package/dist/material/MaterialRules.js.map +1 -1
  20. package/dist/material/SecretMaterialRules.d.ts +5 -4
  21. package/dist/material/SecretMaterialRules.js +4 -2
  22. package/dist/material/SecretMaterialRules.js.map +1 -1
  23. package/dist/material/items/Material.d.ts +22 -16
  24. package/dist/material/items/Material.js +57 -13
  25. package/dist/material/items/Material.js.map +1 -1
  26. package/dist/material/items/MaterialDeck.d.ts +7 -0
  27. package/dist/material/items/MaterialDeck.js +35 -0
  28. package/dist/material/items/MaterialDeck.js.map +1 -0
  29. package/dist/material/items/MaterialItem.d.ts +2 -5
  30. package/dist/material/items/MaterialMutator.js +3 -3
  31. package/dist/material/items/MaterialMutator.js.map +1 -1
  32. package/dist/material/location/Location.d.ts +2 -2
  33. package/dist/material/location/LocationBuilder.js +1 -1
  34. package/dist/material/location/strategy/FillGapStrategy.d.ts +0 -3
  35. package/dist/material/location/strategy/FillGapStrategy.js +1 -4
  36. package/dist/material/location/strategy/FillGapStrategy.js.map +1 -1
  37. package/dist/material/location/strategy/LocationStrategy.d.ts +1 -1
  38. package/dist/material/location/strategy/PositiveSequenceStrategy.d.ts +0 -3
  39. package/dist/material/location/strategy/PositiveSequenceStrategy.js +1 -4
  40. package/dist/material/location/strategy/PositiveSequenceStrategy.js.map +1 -1
  41. package/dist/material/memory/GameMemory.js +1 -1
  42. package/dist/material/memory/PlayerMemory.js +1 -1
  43. package/dist/material/moves/CustomMove.d.ts +1 -1
  44. package/dist/material/moves/MaterialMove.d.ts +3 -3
  45. package/dist/material/moves/items/CreateItem.d.ts +1 -1
  46. package/dist/material/moves/items/DeleteItem.d.ts +1 -1
  47. package/dist/material/moves/items/ItemMove.d.ts +4 -4
  48. package/dist/material/moves/items/ItemMovesBuilder.js +1 -1
  49. package/dist/material/moves/items/MoveItem.d.ts +2 -2
  50. package/dist/material/moves/items/Roll.d.ts +11 -0
  51. package/dist/material/moves/items/Roll.js +16 -0
  52. package/dist/material/moves/items/Roll.js.map +1 -0
  53. package/dist/material/moves/items/RollItem.d.ts +11 -0
  54. package/dist/material/moves/items/RollItem.js +16 -0
  55. package/dist/material/moves/items/RollItem.js.map +1 -0
  56. package/dist/material/moves/items/Shuffle.d.ts +2 -2
  57. package/dist/material/moves/local/CloseTutorialPopup.d.ts +1 -1
  58. package/dist/material/moves/local/DisplayRules.d.ts +5 -5
  59. package/dist/material/moves/local/DropItem.d.ts +2 -2
  60. package/dist/material/moves/local/LocalMove.d.ts +1 -1
  61. package/dist/material/moves/local/SetTutorialStep.d.ts +1 -1
  62. package/dist/material/moves/rules/EndGame.d.ts +1 -1
  63. package/dist/material/moves/rules/EndPlayerTurn.d.ts +1 -1
  64. package/dist/material/moves/rules/RuleMove.d.ts +2 -2
  65. package/dist/material/moves/rules/StartPlayerTurn.d.ts +1 -1
  66. package/dist/material/moves/rules/StartRule.d.ts +1 -1
  67. package/dist/material/moves/rules/StartSimultaneousRule.d.ts +1 -1
  68. package/dist/material/rules/MaterialRulesMovesBuilder.js +2 -2
  69. package/dist/material/rules/MaterialRulesMovesBuilder.js.map +1 -1
  70. package/dist/material/rules/MaterialRulesPart.js +1 -1
  71. package/dist/material/rules/PlayerTurnRule.js +1 -1
  72. package/dist/material/rules/RuleStep.d.ts +1 -1
  73. package/dist/material/rules/SimultaneousRule.js +1 -1
  74. package/dist/options/EnumOption.d.ts +1 -1
  75. package/dist/options/Option.d.ts +1 -1
  76. package/dist/options/OptionSpecOf.d.ts +2 -2
  77. package/dist/options/OptionsSpec.d.ts +1 -1
  78. package/dist/options/OptionsValidationError.js +1 -1
  79. package/dist/options/PlayerEnumOption.d.ts +2 -2
  80. package/dist/options/PlayerEnumOption.js +0 -3
  81. package/dist/options/PlayerEnumOption.js.map +1 -1
  82. package/dist/options/PlayersOptionsSpec.d.ts +1 -1
  83. package/dist/options/WithIdOption.d.ts +1 -1
  84. package/dist/options/WithPlayerOptionsSpec.d.ts +1 -1
  85. package/dist/options/WithPlayersOptions.d.ts +1 -1
  86. package/dist/utils/grid.util.d.ts +1 -1
  87. package/dist/utils/index.d.ts +1 -0
  88. package/dist/utils/index.js +1 -0
  89. package/dist/utils/index.js.map +1 -1
  90. package/dist/utils/isDeadEndMove.util.js +0 -1
  91. package/dist/utils/isDeadEndMove.util.js.map +1 -1
  92. package/dist/utils/listing.util.d.ts +1 -0
  93. package/dist/utils/listing.util.js +15 -0
  94. package/dist/utils/listing.util.js.map +1 -0
  95. package/package.json +2 -2
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MaterialRulesMovesBuilder = void 0;
4
4
  var moves_1 = require("../moves");
5
- var MaterialRulesMovesBuilder = /** @class */ (function () {
5
+ var MaterialRulesMovesBuilder = (function () {
6
6
  function MaterialRulesMovesBuilder(game) {
7
7
  this.game = game;
8
8
  }
@@ -23,7 +23,7 @@ var MaterialRulesMovesBuilder = /** @class */ (function () {
23
23
  };
24
24
  MaterialRulesMovesBuilder.prototype.customMove = function (type, data) {
25
25
  var move = { kind: moves_1.MoveKind.CustomMove, type: type };
26
- if (data)
26
+ if (data !== undefined)
27
27
  move.data = data;
28
28
  return move;
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;AACA,kCAAwI;AAExI;IAKE,mCAAY,IAAsD;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,mDAAe,GAAf,UAAgD,EAAU,EAAE,MAAc;QACxE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,eAAe,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,CAAA;IACrF,CAAC;IAED,yDAAqB,GAArB,UAAsD,EAAU,EAAE,OAAkB;QAClF,IAAM,IAAI,GAA0C,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,qBAAqB,EAAE,EAAE,IAAA,EAAE,CAAA;QAC9H,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iDAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,aAAa,EAAE,MAAM,QAAA,EAAE,CAAA;IAC/E,CAAC;IAED,6CAAS,GAAT,UAA0C,EAAU;QAClD,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;IACvE,CAAC;IAED,8CAAU,GAAV,UAAyC,IAAU,EAAE,IAAU;QAC7D,IAAM,IAAI,GAAe,EAAE,IAAI,EAAE,gBAAQ,CAAC,UAAU,EAAE,IAAI,MAAA,EAAE,CAAA;QAC5D,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2CAAO,GAAP;QACE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,OAAO,EAAE,CAAA;IACjE,CAAC;IACH,gCAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,8DAAyB"}
1
+ {"version":3,"file":"MaterialRulesMovesBuilder.js","sourceRoot":"","sources":["../../../src/material/rules/MaterialRulesMovesBuilder.ts"],"names":[],"mappings":";;;AACA,kCAAwI;AAExI;IAKE,mCAAY,IAAsD;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,mDAAe,GAAf,UAAgD,EAAU,EAAE,MAAc;QACxE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,eAAe,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,CAAA;IACrF,CAAC;IAED,yDAAqB,GAArB,UAAsD,EAAU,EAAE,OAAkB;QAClF,IAAM,IAAI,GAA0C,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,qBAAqB,EAAE,EAAE,IAAA,EAAE,CAAA;QAC9H,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iDAAa,GAAb,UAAc,MAAc;QAC1B,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,aAAa,EAAE,MAAM,QAAA,EAAE,CAAA;IAC/E,CAAC;IAED,6CAAS,GAAT,UAA0C,EAAU;QAClD,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,SAAS,EAAE,EAAE,IAAA,EAAE,CAAA;IACvE,CAAC;IAED,8CAAU,GAAV,UAAyC,IAAU,EAAE,IAAU;QAC7D,IAAM,IAAI,GAAe,EAAE,IAAI,EAAE,gBAAQ,CAAC,UAAU,EAAE,IAAI,MAAA,EAAE,CAAA;QAC5D,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2CAAO,GAAP;QACE,OAAO,EAAE,IAAI,EAAE,gBAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAY,CAAC,OAAO,EAAE,CAAA;IACjE,CAAC;IACH,gCAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,8DAAyB"}
@@ -20,7 +20,7 @@ var Rules_1 = require("../../Rules");
20
20
  var items_1 = require("../items");
21
21
  var MaterialRulesMovesBuilder_1 = require("./MaterialRulesMovesBuilder");
22
22
  var memory_1 = require("../memory");
23
- var MaterialRulesPart = /** @class */ (function (_super) {
23
+ var MaterialRulesPart = (function (_super) {
24
24
  __extends(MaterialRulesPart, _super);
25
25
  function MaterialRulesPart() {
26
26
  return _super !== null && _super.apply(this, arguments) || this;
@@ -17,7 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.PlayerTurnRule = void 0;
19
19
  var MaterialRulesPart_1 = require("./MaterialRulesPart");
20
- var PlayerTurnRule = /** @class */ (function (_super) {
20
+ var PlayerTurnRule = (function (_super) {
21
21
  __extends(PlayerTurnRule, _super);
22
22
  function PlayerTurnRule() {
23
23
  return _super !== null && _super.apply(this, arguments) || this;
@@ -1,4 +1,4 @@
1
- export declare type RuleStep<Player extends number = number, RuleId extends number = number> = {
1
+ export type RuleStep<Player extends number = number, RuleId extends number = number> = {
2
2
  id: RuleId;
3
3
  player?: Player;
4
4
  players?: Player[];
@@ -17,7 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.SimultaneousRule = void 0;
19
19
  var MaterialRulesPart_1 = require("./MaterialRulesPart");
20
- var SimultaneousRule = /** @class */ (function (_super) {
20
+ var SimultaneousRule = (function (_super) {
21
21
  __extends(SimultaneousRule, _super);
22
22
  function SimultaneousRule() {
23
23
  return _super !== null && _super.apply(this, arguments) || this;
@@ -1,5 +1,5 @@
1
1
  import { Option } from './Option';
2
- export declare type EnumOption<T = any> = Option & {
2
+ export type EnumOption<T = any> = Option & {
3
3
  values: T[];
4
4
  valueSpec: (value: T) => Option;
5
5
  };
@@ -1,5 +1,5 @@
1
1
  import { TFunction } from 'i18next';
2
- export declare type Option = {
2
+ export type Option = {
3
3
  label: (t: TFunction) => string;
4
4
  help?: (t: TFunction) => string;
5
5
  warn?: (t: TFunction) => string;
@@ -1,5 +1,5 @@
1
1
  import { EnumOption } from './EnumOption';
2
2
  import { Option } from './Option';
3
3
  import { PlayerEnumOption } from './PlayerEnumOption';
4
- export declare type OptionSpecOf<T> = [T] extends [boolean] ? Option : EnumOption<T>;
5
- export declare type PlayerOptionSpecOf<T> = [T] extends [boolean] ? Option : PlayerEnumOption<T>;
4
+ export type OptionSpecOf<T> = [T] extends [boolean] ? Option : EnumOption<T>;
5
+ export type PlayerOptionSpecOf<T> = [T] extends [boolean] ? Option : PlayerEnumOption<T>;
@@ -2,7 +2,7 @@ import { TFunction } from 'i18next';
2
2
  import { OptionSpecOf } from './OptionSpecOf';
3
3
  import { WithPlayerOptionsSpec } from './WithPlayerOptionsSpec';
4
4
  import { WithPlayersOptions } from './WithPlayersOptions';
5
- export declare type OptionsSpec<Options> = (Options extends WithPlayersOptions<infer P> ? WithPlayerOptionsSpec<P> : {}) & {
5
+ export type OptionsSpec<Options> = (Options extends WithPlayersOptions<infer P> ? WithPlayerOptionsSpec<P> : {}) & {
6
6
  [key in keyof Omit<Options, 'players'>]: OptionSpecOf<Options[key]>;
7
7
  } & {
8
8
  validate?: (options: Partial<Options>, t: TFunction) => void;
@@ -16,7 +16,7 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.OptionsValidationError = void 0;
19
- var OptionsValidationError = /** @class */ (function (_super) {
19
+ var OptionsValidationError = (function (_super) {
20
20
  __extends(OptionsValidationError, _super);
21
21
  function OptionsValidationError(message, fields) {
22
22
  if (fields === void 0) { fields = []; }
@@ -1,11 +1,11 @@
1
1
  import { EnumOption } from './EnumOption';
2
- export declare type PlayerEnumOption<T = any> = EnumOption<T> & {
2
+ export type PlayerEnumOption<T = any> = EnumOption<T> & {
3
3
  mandatory?: (players: number) => T[];
4
4
  unavailable?: (players: number) => T[];
5
5
  share?: boolean;
6
6
  optional?: boolean;
7
7
  };
8
- export declare type PlayerIdOption<T = any> = PlayerEnumOption<T> & {
8
+ export type PlayerIdOption<T = any> = PlayerEnumOption<T> & {
9
9
  share?: false;
10
10
  optional?: false;
11
11
  };
@@ -20,7 +20,6 @@ function getPlayersAvailableValues(spec, players) {
20
20
  }
21
21
  exports.getPlayersAvailableValues = getPlayersAvailableValues;
22
22
  function generatePlayersOption(playersChoices, option) {
23
- // Force to pick mandatory values
24
23
  var mandatoryValues = getPlayersMandatoryValues(option, playersChoices.length);
25
24
  for (var _i = 0, mandatoryValues_1 = mandatoryValues; _i < mandatoryValues_1.length; _i++) {
26
25
  var mandatoryValue = mandatoryValues_1[_i];
@@ -30,7 +29,6 @@ function generatePlayersOption(playersChoices, option) {
30
29
  playersChoices[index] = mandatoryValue;
31
30
  }
32
31
  }
33
- // Remove invalid choices
34
32
  var availableValues = getPlayersAvailableValues(option, playersChoices.length);
35
33
  var _loop_1 = function (i) {
36
34
  var choice = playersChoices[i];
@@ -54,7 +52,6 @@ function generatePlayersOption(playersChoices, option) {
54
52
  _loop_1(i);
55
53
  }
56
54
  if (!option.optional) {
57
- // Provide missing choices (different values if possible)
58
55
  var remainingValues = (0, difference_1.default)(availableValues, playersChoices);
59
56
  for (var i = 0; i < playersChoices.length; i++) {
60
57
  if (playersChoices[i] === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerEnumOption.js","sourceRoot":"","sources":["../../src/options/PlayerEnumOption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlayerEnumOption.js","sourceRoot":"","sources":["../../src/options/PlayerEnumOption.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { PlayerEnumOption } from './PlayerEnumOption';
2
2
  import { WithIdOption } from './WithIdOption';
3
- export declare type PlayersOptionsSpec<Options> = (Options extends WithIdOption<infer Id> ? {
3
+ export type PlayersOptionsSpec<Options> = (Options extends WithIdOption<infer Id> ? {
4
4
  id: PlayerEnumOption<Id>;
5
5
  } : {}) & {
6
6
  [key in keyof Omit<Options, 'id'>]: PlayerEnumOption<Options[key]>;
@@ -1,3 +1,3 @@
1
- export declare type WithIdOption<PlayerId> = {
1
+ export type WithIdOption<PlayerId> = {
2
2
  id: PlayerId;
3
3
  };
@@ -1,6 +1,6 @@
1
1
  import { PlayersOptionsSpec } from './PlayersOptionsSpec';
2
2
  import { OptionsSpec } from './OptionsSpec';
3
- export declare type WithPlayerOptionsSpec<P> = {
3
+ export type WithPlayerOptionsSpec<P> = {
4
4
  players: PlayersOptionsSpec<P>;
5
5
  };
6
6
  export declare function isWithPlayerOptions<P, Options>(optionsSpec: OptionsSpec<Options>): optionsSpec is OptionsSpec<Options> & WithPlayerOptionsSpec<P>;
@@ -1,3 +1,3 @@
1
- export declare type WithPlayersOptions<P> = {
1
+ export type WithPlayersOptions<P> = {
2
2
  players: P[];
3
3
  };
@@ -1,4 +1,4 @@
1
- export declare type XYCoordinates = {
1
+ export type XYCoordinates = {
2
2
  x: number;
3
3
  y: number;
4
4
  };
@@ -2,3 +2,4 @@ export * from './EnumUtils';
2
2
  export * from './grid.util';
3
3
  export * from './grid.squares.util';
4
4
  export * from './isDeadEndMove.util';
5
+ export * from './listing.util';
@@ -18,4 +18,5 @@ __exportStar(require("./EnumUtils"), exports);
18
18
  __exportStar(require("./grid.util"), exports);
19
19
  __exportStar(require("./grid.squares.util"), exports);
20
20
  __exportStar(require("./isDeadEndMove.util"), exports);
21
+ __exportStar(require("./listing.util"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,8CAA2B;AAC3B,sDAAmC;AACnC,uDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,8CAA2B;AAC3B,sDAAmC;AACnC,uDAAoC;AACpC,iDAA8B"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isDeadEndMove = void 0;
4
4
  var Action_1 = require("../Action");
5
- // For some game, it is easier to play the moves to know whether the action can be completed, than code all the conditions
6
5
  function isDeadEndMove(move, game, Rules, predicate, maxDepth) {
7
6
  if (maxDepth === void 0) { maxDepth = 5; }
8
7
  if (maxDepth === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"isDeadEndMove.util.js","sourceRoot":"","sources":["../../src/utils/isDeadEndMove.util.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AAEpC,0HAA0H;AAC1H,SAAgB,aAAa,CAAU,IAAO,EAAE,IAAO,EAAE,KAA4B,EAAE,SAA+B,EAAE,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAClI,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAChC,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzD,IAAA,iBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACrB,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACvC,IAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;IAC5C,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAA,IAAI,IAAI,OAAA,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,EAA/D,CAA+D,CAAC,CAAA;AACzH,CAAC;AARD,sCAQC"}
1
+ {"version":3,"file":"isDeadEndMove.util.js","sourceRoot":"","sources":["../../src/utils/isDeadEndMove.util.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AAGpC,SAAgB,aAAa,CAAU,IAAO,EAAE,IAAO,EAAE,KAA4B,EAAE,SAA+B,EAAE,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAClI,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAChC,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzD,IAAA,iBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACrB,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACvC,IAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;IAC5C,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAA,IAAI,IAAI,OAAA,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,EAA/D,CAA+D,CAAC,CAAA;AACzH,CAAC;AARD,sCAQC"}
@@ -0,0 +1 @@
1
+ export declare function listingToList<T extends number>(listing: Partial<Record<T, number>>): T[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listingToList = void 0;
4
+ function listingToList(listing) {
5
+ var list = [];
6
+ for (var key in listing) {
7
+ var intKey = parseInt(key);
8
+ for (var i = 0; i < listing[key]; i++) {
9
+ list.push(intKey);
10
+ }
11
+ }
12
+ return list;
13
+ }
14
+ exports.listingToList = listingToList;
15
+ //# sourceMappingURL=listing.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listing.util.js","sourceRoot":"","sources":["../../src/utils/listing.util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAmB,OAAmC;IACjF,IAAM,IAAI,GAAQ,EAAE,CAAA;IACpB,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;QACzB,IAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAM,CAAA;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAClB;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AATD,sCASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/rules-api",
3
- "version": "6.9.2",
3
+ "version": "6.10.1",
4
4
  "description": "API to implement the rules of a board game",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,5 +29,5 @@
29
29
  "@types/lodash": "^4.14.195",
30
30
  "i18next": ">=21.3.0"
31
31
  },
32
- "gitHead": "e8073e2d53979a4d754da223d08c5b3073c73a6d"
32
+ "gitHead": "b40e78ee555c3cf3afffe9c18fbc71bffeb11158"
33
33
  }