@gamepark/rules-api 5.8.0 → 5.11.0

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/dist/Action.js CHANGED
@@ -14,8 +14,8 @@ function playAction(game, move, playerId, id) {
14
14
  game.play(JSON.parse(JSON.stringify(move_1)));
15
15
  action.consequences.push(move_1);
16
16
  }
17
- return consequence !== undefined;
18
- }, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves after " + JSON.stringify(move) + " in " + JSON.stringify(game.state)); } });
17
+ return consequences.length > 0;
18
+ }, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves after ".concat(JSON.stringify(move), " in ").concat(JSON.stringify(game.state))); } });
19
19
  return action;
20
20
  }
21
21
  exports.playAction = playAction;
@@ -44,8 +44,8 @@ function playActionWithViews(game, move, playerId, recipients, id) {
44
44
  }
45
45
  game.play(JSON.parse(JSON.stringify(move_2)));
46
46
  }
47
- return consequence !== undefined;
48
- }, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves after " + JSON.stringify(move) + " in " + JSON.stringify(game.state)); } });
47
+ return consequences.length > 0;
48
+ }, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves after ".concat(JSON.stringify(move), " in ").concat(JSON.stringify(game.state))); } });
49
49
  return actionWithView;
50
50
  }
51
51
  exports.playActionWithViews = playActionWithViews;
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
package/dist/Game.js CHANGED
@@ -9,8 +9,8 @@ function applyAutomaticMoves(game) {
9
9
  var move = consequences_1[_i];
10
10
  game.play(JSON.parse(JSON.stringify(move)));
11
11
  }
12
- return consequence != undefined;
13
- }, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves in " + JSON.stringify(game.state)); } });
12
+ return consequences.length > 0;
13
+ }, { errorFn: function () { return new Error("Infinite loop detected while applying automatic moves in ".concat(JSON.stringify(game.state))); } });
14
14
  }
15
15
  exports.applyAutomaticMoves = applyAutomaticMoves;
16
16
  function loopWithFuse(repeat, options) {
package/dist/Game.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;;AAQA,SAAgB,mBAAmB,CAAc,IAAuB;IACtE,YAAY,CAAC;QACX,IAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/E,IAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAChG,KAAmB,UAAY,EAAZ,6BAAY,EAAZ,0BAAY,EAAZ,IAAY,EAAE;YAA5B,IAAM,IAAI,qBAAA;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAC5C;QACD,OAAO,WAAW,IAAI,SAAS,CAAA;IACjC,CAAC,EAAE,EAAC,OAAO,EAAE,cAAM,OAAA,IAAI,KAAK,CAAC,8DAA4D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAG,CAAC,EAAnG,CAAmG,EAAC,CAAC,CAAA;AAC1H,CAAC;AATD,kDASC;AAED,SAAgB,YAAY,CAAC,MAAqB,EAAE,OAAsD;IACxG,IAAI,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzF,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,CAAC,cAAM,OAAA,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAnC,CAAmC,CAAC,CAAA;IAC/E,OAAO,MAAM,EAAE,EAAE;QACf,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,MAAM,OAAO,EAAE,CAAA;SAChB;QACD,QAAQ,EAAE,CAAA;KACX;AACH,CAAC;AATD,oCASC"}
1
+ {"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;;AAQA,SAAgB,mBAAmB,CAAc,IAAuB;IACtE,YAAY,CAAC;QACX,IAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/E,IAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAChG,KAAmB,UAAY,EAAZ,6BAAY,EAAZ,0BAAY,EAAZ,IAAY,EAAE;YAA5B,IAAM,IAAI,qBAAA;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAC5C;QACD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAChC,CAAC,EAAE,EAAC,OAAO,EAAE,cAAM,OAAA,IAAI,KAAK,CAAC,mEAA4D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE,CAAC,EAAnG,CAAmG,EAAC,CAAC,CAAA;AAC1H,CAAC;AATD,kDASC;AAED,SAAgB,YAAY,CAAC,MAAqB,EAAE,OAAsD;IACxG,IAAI,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzF,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,CAAC,cAAM,OAAA,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAnC,CAAmC,CAAC,CAAA;IAC/E,OAAO,MAAM,EAAE,EAAE;QACf,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,MAAM,OAAO,EAAE,CAAA;SAChB;QACD,QAAQ,EAAE,CAAA;KACX;AACH,CAAC;AATD,oCASC"}
package/dist/Rules.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import Game from './Game';
2
2
  export default interface Rules<State, Move = string, PlayerId = number> extends Game<State, Move> {
3
+ isTurnToPlay(playerId: PlayerId): boolean;
3
4
  isLegalMove(playerId: PlayerId, move: Move): boolean;
4
5
  isOver(): boolean;
5
6
  }
@@ -5,7 +5,7 @@ export default abstract class SequentialGame<State, Move = string, PlayerId = nu
5
5
  abstract play(move: Move): void;
6
6
  isLegalMove(playerId: PlayerId, move: Move): boolean;
7
7
  abstract getActivePlayer?(): PlayerId | undefined;
8
- isActive(playerId: PlayerId): boolean;
8
+ isTurnToPlay(playerId: PlayerId): boolean;
9
9
  abstract getLegalMoves?(): Move[];
10
10
  isOver(): boolean;
11
11
  }
@@ -24,9 +24,9 @@ var SequentialGame = /** @class */ (function () {
24
24
  }
25
25
  return false;
26
26
  };
27
- SequentialGame.prototype.isActive = function (playerId) {
27
+ SequentialGame.prototype.isTurnToPlay = function (playerId) {
28
28
  if (!this.getActivePlayer) {
29
- throw new Error('You must either implement "isActive" or "getActivePlayer"');
29
+ throw new Error('You must either implement "isTurnToPlay" or "getActivePlayer"');
30
30
  }
31
31
  return playerId === this.getActivePlayer();
32
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SequentialGame.js","sourceRoot":"","sources":["../src/SequentialGame.ts"],"names":[],"mappings":";;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAG9C;IAGE,wBAAsB,IAAW;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAID,oCAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAA;SACtG;QACD,IAAI,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE;YACvC,OAAO,KAAK,CAAA;SACb;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAClE,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAID,iCAAQ,GAAR,UAAS,QAAkB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;SAC7E;QACD,OAAO,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,CAAA;IAC5C,CAAC;IAID,+BAAM,GAAN;QACE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,SAAS,CAAA;IAC7C,CAAC;IACH,qBAAC;AAAD,CAAC,AA1CD,IA0CC"}
1
+ {"version":3,"file":"SequentialGame.js","sourceRoot":"","sources":["../src/SequentialGame.ts"],"names":[],"mappings":";;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAG9C;IAGE,wBAAsB,IAAW;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAID,oCAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAA;SACtG;QACD,IAAI,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE;YACvC,OAAO,KAAK,CAAA;SACb;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAClE,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAID,qCAAY,GAAZ,UAAa,QAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;SACjF;QACD,OAAO,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,CAAA;IAC5C,CAAC;IAID,+BAAM,GAAN;QACE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,SAAS,CAAA;IAC7C,CAAC;IACH,qBAAC;AAAD,CAAC,AA1CD,IA0CC"}
@@ -4,6 +4,8 @@ export default abstract class SimultaneousGame<State, Move = string, PlayerId =
4
4
  protected constructor(game: State);
5
5
  abstract play(move: Move): void;
6
6
  isLegalMove(playerId: PlayerId, move: Move): boolean;
7
+ abstract isTurnToPlay(playerId: PlayerId): boolean;
7
8
  abstract getLegalMoves?(playerId: PlayerId): Move[];
8
- abstract isOver(): boolean;
9
+ abstract getPlayerIds?(): PlayerId[];
10
+ isOver(): boolean;
9
11
  }
@@ -21,6 +21,12 @@ var SimultaneousGame = /** @class */ (function () {
21
21
  }
22
22
  return false;
23
23
  };
24
+ SimultaneousGame.prototype.isOver = function () {
25
+ if (!this.getPlayerIds) {
26
+ throw new Error('You must either implement "isOver" or "getPlayerIds"');
27
+ }
28
+ return !this.getPlayerIds().some(this.isTurnToPlay);
29
+ };
24
30
  return SimultaneousGame;
25
31
  }());
26
32
  exports.default = SimultaneousGame;
@@ -1 +1 @@
1
- {"version":3,"file":"SimultaneousGame.js","sourceRoot":"","sources":["../src/SimultaneousGame.ts"],"names":[],"mappings":";;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAG9C;IAGE,0BAAsB,IAAW;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAID,sCAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;SAC7E;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAKH,uBAAC;AAAD,CAAC,AAzBD,IAyBC"}
1
+ {"version":3,"file":"SimultaneousGame.js","sourceRoot":"","sources":["../src/SimultaneousGame.ts"],"names":[],"mappings":";;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAG9C;IAGE,0BAAsB,IAAW;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAID,sCAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;SAC7E;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAQD,iCAAM,GAAN;QACE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;SACxE;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACrD,CAAC;IACH,uBAAC;AAAD,CAAC,AAlCD,IAkCC"}
@@ -1,10 +1,5 @@
1
1
  import Rules from './Rules';
2
2
  export default interface TimeLimit<State, Move = string, PlayerId = number> extends Rules<State, Move, PlayerId> {
3
- /**
4
- * Game Park needs to know which players are active to decrease their timer when they are.
5
- * @param playerId Id of the player
6
- */
7
- isActive(playerId: PlayerId): boolean;
8
3
  /**
9
4
  * Amount of time given to a player everytime it is their turn to play.
10
5
  * @param playerId Id of the player, if you want to give different time depending of the id for asymmetric games.
@@ -1 +1 @@
1
- {"version":3,"file":"TimeLimit.js","sourceRoot":"","sources":["../src/TimeLimit.ts"],"names":[],"mappings":";;;AAsBA,SAAgB,YAAY,CAAwB,KAAmC;IACrF,OAAO,OAAQ,KAA0C,CAAC,QAAQ,KAAK,UAAU,CAAA;AACnF,CAAC;AAFD,oCAEC;AAED,IAAY,SAAwD;AAApE,WAAY,SAAS;IAAE,kCAAqB,CAAA;IAAE,kCAAqB,CAAA;AAAA,CAAC,EAAxD,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAA+C"}
1
+ {"version":3,"file":"TimeLimit.js","sourceRoot":"","sources":["../src/TimeLimit.ts"],"names":[],"mappings":";;;AAgBA,SAAgB,YAAY,CAAwB,KAAmC;IACrF,OAAO,OAAQ,KAA0C,CAAC,QAAQ,KAAK,UAAU,CAAA;AACnF,CAAC;AAFD,oCAEC;AAED,IAAY,SAAwD;AAApE,WAAY,SAAS;IAAE,kCAAqB,CAAA;IAAE,kCAAqB,CAAA;AAAA,CAAC,EAAxD,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAA+C"}
package/dist/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,yCAAsB;AAEtB,mDAA0D;AAAlD,iIAAA,OAAO,OAAkB;AACjC,uDAA8D;AAAtD,qIAAA,OAAO,OAAoB;AAKnC,2CAAwB;AAGxB,0DAAuC;AAGvC,yCAAsB;AAGtB,gDAA6B;AAG7B,iDAA8B;AAG9B,8CAA2B;AAG3B,iCAAwC;AAAhC,+GAAA,OAAO,OAAS;AAExB,4CAAyB;AACzB,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,yCAAsB;AAEtB,mDAA0D;AAAlD,iIAAA,OAAO,OAAkB;AACjC,uDAA8D;AAAtD,qIAAA,OAAO,OAAoB;AAKnC,2CAAwB;AAGxB,0DAAuC;AAGvC,yCAAsB;AAGtB,gDAA6B;AAG7B,iDAA8B;AAG9B,8CAA2B;AAG3B,iCAAwC;AAAhC,+GAAA,OAAO,OAAS;AAExB,4CAAyB;AACzB,0CAAuB"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,+CAA4B;AAK5B,uDAA8D;AAAtD,qIAAA,OAAO,OAAoB;AACnC,iEAAwE;AAAhE,+IAAA,OAAO,OAAyB;AACxC,iEAAwE;AAAhE,+IAAA,OAAO,OAAyB;AACxC,mEAA0E;AAAlE,iJAAA,OAAO,OAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,+CAA4B;AAK5B,uDAA8D;AAAtD,qIAAA,OAAO,OAAoB;AACnC,iEAAwE;AAAhE,+IAAA,OAAO,OAAyB;AACxC,iEAAwE;AAAhE,+IAAA,OAAO,OAAyB;AACxC,mEAA0E;AAAlE,iJAAA,OAAO,OAA0B"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/rules-api",
3
- "version": "5.8.0",
3
+ "version": "5.11.0",
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",
@@ -27,5 +27,5 @@
27
27
  "devDependencies": {
28
28
  "i18next": ">=21.3.0"
29
29
  },
30
- "gitHead": "5c34aecdfb89202475688db7f8caf5bfb5e709eb"
30
+ "gitHead": "fe09a6a3c87e2eea4127086da0de6b026ba5e07d"
31
31
  }