@provable-games/dm-engine 0.5.1 → 0.6.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.
Files changed (44) hide show
  1. package/dist/constants/game.d.ts +2 -0
  2. package/dist/constants/game.d.ts.map +1 -1
  3. package/dist/constants/game.js +2 -0
  4. package/dist/constants/game.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/packing.d.ts +51 -3
  10. package/dist/packing.d.ts.map +1 -1
  11. package/dist/packing.js +99 -8
  12. package/dist/packing.js.map +1 -1
  13. package/dist/protocol.d.ts +8 -0
  14. package/dist/protocol.d.ts.map +1 -1
  15. package/dist/protocol.js +9 -1
  16. package/dist/protocol.js.map +1 -1
  17. package/dist/replay.d.ts +22 -9
  18. package/dist/replay.d.ts.map +1 -1
  19. package/dist/replay.js +170 -45
  20. package/dist/replay.js.map +1 -1
  21. package/dist/rules/boosts.d.ts +39 -0
  22. package/dist/rules/boosts.d.ts.map +1 -0
  23. package/dist/rules/boosts.js +105 -0
  24. package/dist/rules/boosts.js.map +1 -0
  25. package/dist/rules/game.d.ts +19 -3
  26. package/dist/rules/game.d.ts.map +1 -1
  27. package/dist/rules/game.js +66 -42
  28. package/dist/rules/game.js.map +1 -1
  29. package/dist/rules/gameSimulation.d.ts +22 -6
  30. package/dist/rules/gameSimulation.d.ts.map +1 -1
  31. package/dist/rules/gameSimulation.js +89 -44
  32. package/dist/rules/gameSimulation.js.map +1 -1
  33. package/dist/rules/loot.d.ts +39 -4
  34. package/dist/rules/loot.d.ts.map +1 -1
  35. package/dist/rules/loot.js +75 -142
  36. package/dist/rules/loot.js.map +1 -1
  37. package/dist/transcript.d.ts +6 -1
  38. package/dist/transcript.d.ts.map +1 -1
  39. package/dist/transcript.js.map +1 -1
  40. package/dist/view.d.ts +7 -2
  41. package/dist/view.d.ts.map +1 -1
  42. package/dist/view.js +10 -4
  43. package/dist/view.js.map +1 -1
  44. package/package.json +1 -1
@@ -7,6 +7,8 @@ export declare const STARTING_HEALTH = 100;
7
7
  export declare const STARTING_GOLD = 40;
8
8
  export declare const STARTER_WEAPONS: number[];
9
9
  export declare const MAX_STAT_VALUE = 31;
10
+ /** `MAX_STAT_UPGRADES_AVAILABLE` — 4 bits in the packed adventurer, so grants saturate here. */
11
+ export declare const MAX_STAT_UPGRADES_AVAILABLE = 15;
10
12
  export declare const MAX_BAG_SIZE = 15;
11
13
  export declare const MIN_DAMAGE = 4;
12
14
  export declare const MAX_GOLD = 511;
@@ -1 +1 @@
1
- {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,eAAe,UAAmB,CAAC;AAChD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
1
+ {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,eAAe,UAAmB,CAAC;AAChD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,gGAAgG;AAChG,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
@@ -10,6 +10,8 @@ export const STARTING_HEALTH = 100;
10
10
  export const STARTING_GOLD = 40;
11
11
  export const STARTER_WEAPONS = [12, 16, 46, 76];
12
12
  export const MAX_STAT_VALUE = 31;
13
+ /** `MAX_STAT_UPGRADES_AVAILABLE` — 4 bits in the packed adventurer, so grants saturate here. */
14
+ export const MAX_STAT_UPGRADES_AVAILABLE = 15;
13
15
  export const MAX_BAG_SIZE = 15;
14
16
  export const MIN_DAMAGE = 4;
15
17
  export const MAX_GOLD = 511;
@@ -1 +1 @@
1
- {"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,iBAAiB;AACjB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,uBAAuB;AACvB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,iBAAiB;AACjB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,uBAAuB;AACvB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,gGAAgG;AAChG,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export * as BeastConstants from "./constants/beast.js";
20
20
  export * as LootConstants from "./constants/loot.js";
21
21
  export * as ObstacleConstants from "./constants/obstacle.js";
22
22
  export * from "./rules/beast.js";
23
+ export * from "./rules/boosts.js";
23
24
  export * from "./rules/game.js";
24
25
  export * from "./rules/gameSimulation.js";
25
26
  export * from "./rules/health.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAG7D,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAG7D,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ export * as LootConstants from "./constants/loot.js";
24
24
  export * as ObstacleConstants from "./constants/obstacle.js";
25
25
  // Rules.
26
26
  export * from "./rules/beast.js";
27
+ export * from "./rules/boosts.js";
27
28
  export * from "./rules/game.js";
28
29
  export * from "./rules/gameSimulation.js";
29
30
  export * from "./rules/health.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,UAAU;AACV,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,SAAS;AACT,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,UAAU;AACV,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,SAAS;AACT,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
package/dist/packing.d.ts CHANGED
@@ -1,5 +1,51 @@
1
1
  import type { Adventurer, Item } from "./types.js";
2
+ /** `ImplBag`'s slot count. The bag is fifteen FIXED slots, not a list -- see `emptyBag`. */
3
+ export declare const BAG_SLOTS = 15;
4
+ /**
5
+ * A bag is `item_1 .. item_15`, and the slot an item sits in is part of the packed felt.
6
+ *
7
+ * `ImplBag::remove_item` zeroes its slot IN PLACE and `add_item` fills the FIRST empty one, so a
8
+ * bag that has lost an item carries a hole and the next pickup lands in it. Modelling the bag as
9
+ * a JavaScript list instead -- `splice` to remove, `push` to add -- reorders every slot after the
10
+ * hole, and `packBag` then produces a felt the chain never stored. Nothing in the RULES reads the
11
+ * order (boosts are a sum, `bagIsFull` is a count), so the divergence is invisible right up until
12
+ * a settled game's `packed_bag` is compared against `GameSettled` and does not match.
13
+ *
14
+ * So the engine carries all fifteen slots, holes included, and `compactBag` is the projection for
15
+ * anything that renders a list.
16
+ */
17
+ export declare function emptyBag(): Item[];
18
+ /** Widen a short or compacted bag to fifteen slots, preserving the order it arrived in. */
19
+ export declare function toBagSlots(items: readonly Item[]): Item[];
20
+ /** The occupied slots, in slot order. What a renderer or a length check wants. */
21
+ export declare function compactBag(bag: readonly Item[]): Item[];
22
+ /** How many slots hold an item. NOT `bag.length`, which is 15 for every bag. */
23
+ export declare function bagCount(bag: readonly Item[]): number;
24
+ /** `ImplBag::is_full` -- true only when all fifteen slots are occupied. */
25
+ export declare function bagIsFull(bag: readonly Item[]): boolean;
26
+ /** `ImplBag::contains`. */
27
+ export declare function bagContains(bag: readonly Item[], itemId: number): boolean;
28
+ /**
29
+ * `ImplBag::add_item` -- the first EMPTY slot, which is not the same as the end.
30
+ *
31
+ * Mutates in place and returns the slot index, or throws when the bag is full, exactly as the
32
+ * contract's `'Bag is full'` panic does.
33
+ */
34
+ export declare function addToBag(bag: Item[], item: Item): number;
35
+ /**
36
+ * `ImplBag::remove_item` -- zero the slot where it sits, leaving a hole for the next pickup.
37
+ *
38
+ * Returns the removed item, or null when the bag does not hold it.
39
+ */
40
+ export declare function removeFromBag(bag: Item[], itemId: number): Item | null;
2
41
  export declare function unpackAdventurer(packed: bigint): Adventurer;
42
+ /**
43
+ * All fifteen slots, holes included.
44
+ *
45
+ * This used to drop the empty ones, which made `unpackBag(packBag(x))` an identity for a bag with
46
+ * no holes and a REORDERING for one with them -- see `emptyBag`. Callers that want a list call
47
+ * `compactBag` on the result.
48
+ */
3
49
  export declare function unpackBag(packed: bigint): Item[];
4
50
  /**
5
51
  * The inverse of `unpackAdventurer`, and the payload `GameCore::initialize_game` takes.
@@ -13,9 +59,11 @@ export declare function unpackBag(packed: bigint): Item[];
13
59
  */
14
60
  export declare function packAdventurer(adventurer: Adventurer): bigint;
15
61
  /**
16
- * The inverse of `unpackBag`. Items land in slots 1..15 in the order given, which is where
17
- * `ImplBag::add_item` would have put them — `unpackBag` compacts empty slots away, so a bag with
18
- * a gap in it does not survive a round trip and never had to.
62
+ * The inverse of `unpackBag`: slot `k` is written at bit `16k`, holes included.
63
+ *
64
+ * A short array is accepted and packed from slot 0 -- which is what a caller building a fixture
65
+ * bag wants -- but a bag that has been through `removeFromBag` must be passed whole, or its holes
66
+ * collapse and every later slot shifts down.
19
67
  */
20
68
  export declare function packBag(items: Item[]): bigint;
21
69
  export declare function felt252AsU256(value: bigint): [bigint, bigint];
@@ -1 +1 @@
1
- {"version":3,"file":"packing.d.ts","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AASnD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CA4C3D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAShD;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqC7D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAO7C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAG7D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3E"}
1
+ {"version":3,"file":"packing.d.ts","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKnD,4FAA4F;AAC5F,eAAO,MAAM,SAAS,KAAK,CAAC;AAM5B;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,IAAI,EAAE,CAEjC;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,CAOzD;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,CAEvD;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAIrD;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAEvD;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAcxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAStE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CA4C3D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAQhD;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqC7D;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAO7C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAG7D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3E"}
package/dist/packing.js CHANGED
@@ -1,8 +1,92 @@
1
1
  const MASK_16 = 0xffffn;
2
2
  const MASK_128 = (1n << 128n) - 1n;
3
+ /** `ImplBag`'s slot count. The bag is fifteen FIXED slots, not a list -- see `emptyBag`. */
4
+ export const BAG_SLOTS = 15;
3
5
  function unpackItem(raw) {
4
6
  return { id: Number(raw & 0x7fn), xp: Number(raw >> 7n) };
5
7
  }
8
+ /**
9
+ * A bag is `item_1 .. item_15`, and the slot an item sits in is part of the packed felt.
10
+ *
11
+ * `ImplBag::remove_item` zeroes its slot IN PLACE and `add_item` fills the FIRST empty one, so a
12
+ * bag that has lost an item carries a hole and the next pickup lands in it. Modelling the bag as
13
+ * a JavaScript list instead -- `splice` to remove, `push` to add -- reorders every slot after the
14
+ * hole, and `packBag` then produces a felt the chain never stored. Nothing in the RULES reads the
15
+ * order (boosts are a sum, `bagIsFull` is a count), so the divergence is invisible right up until
16
+ * a settled game's `packed_bag` is compared against `GameSettled` and does not match.
17
+ *
18
+ * So the engine carries all fifteen slots, holes included, and `compactBag` is the projection for
19
+ * anything that renders a list.
20
+ */
21
+ export function emptyBag() {
22
+ return Array.from({ length: BAG_SLOTS }, () => ({ id: 0, xp: 0 }));
23
+ }
24
+ /** Widen a short or compacted bag to fifteen slots, preserving the order it arrived in. */
25
+ export function toBagSlots(items) {
26
+ if (items.length > BAG_SLOTS)
27
+ throw new Error("bag holds at most 15 items");
28
+ const slots = emptyBag();
29
+ items.forEach((item, index) => {
30
+ slots[index] = { id: item?.id ?? 0, xp: item?.xp ?? 0 };
31
+ });
32
+ return slots;
33
+ }
34
+ /** The occupied slots, in slot order. What a renderer or a length check wants. */
35
+ export function compactBag(bag) {
36
+ return bag.filter((item) => item.id !== 0).map((item) => ({ ...item }));
37
+ }
38
+ /** How many slots hold an item. NOT `bag.length`, which is 15 for every bag. */
39
+ export function bagCount(bag) {
40
+ let count = 0;
41
+ for (const item of bag)
42
+ if (item.id !== 0)
43
+ count += 1;
44
+ return count;
45
+ }
46
+ /** `ImplBag::is_full` -- true only when all fifteen slots are occupied. */
47
+ export function bagIsFull(bag) {
48
+ return bagCount(bag) >= BAG_SLOTS;
49
+ }
50
+ /** `ImplBag::contains`. */
51
+ export function bagContains(bag, itemId) {
52
+ return itemId !== 0 && bag.some((item) => item.id === itemId);
53
+ }
54
+ /**
55
+ * `ImplBag::add_item` -- the first EMPTY slot, which is not the same as the end.
56
+ *
57
+ * Mutates in place and returns the slot index, or throws when the bag is full, exactly as the
58
+ * contract's `'Bag is full'` panic does.
59
+ */
60
+ export function addToBag(bag, item) {
61
+ for (let index = 0; index < bag.length; index += 1) {
62
+ if (bag[index].id === 0) {
63
+ bag[index] = { id: item.id, xp: item.xp };
64
+ return index;
65
+ }
66
+ }
67
+ // A caller may hand in a shorter array than fifteen -- a compacted one, or a fixture. It has no
68
+ // holes by construction, so appending lands in the same slot the contract would have used.
69
+ if (bag.length < BAG_SLOTS) {
70
+ bag.push({ id: item.id, xp: item.xp });
71
+ return bag.length - 1;
72
+ }
73
+ throw new Error("bag is full");
74
+ }
75
+ /**
76
+ * `ImplBag::remove_item` -- zero the slot where it sits, leaving a hole for the next pickup.
77
+ *
78
+ * Returns the removed item, or null when the bag does not hold it.
79
+ */
80
+ export function removeFromBag(bag, itemId) {
81
+ for (let index = 0; index < bag.length; index += 1) {
82
+ if (bag[index].id === itemId && itemId !== 0) {
83
+ const removed = { ...bag[index] };
84
+ bag[index] = { id: 0, xp: 0 };
85
+ return removed;
86
+ }
87
+ }
88
+ return null;
89
+ }
6
90
  export function unpackAdventurer(packed) {
7
91
  let equipment = packed & MASK_128;
8
92
  const items = [];
@@ -47,13 +131,18 @@ export function unpackAdventurer(packed) {
47
131
  level_salt: take(14n),
48
132
  };
49
133
  }
134
+ /**
135
+ * All fifteen slots, holes included.
136
+ *
137
+ * This used to drop the empty ones, which made `unpackBag(packBag(x))` an identity for a bag with
138
+ * no holes and a REORDERING for one with them -- see `emptyBag`. Callers that want a list call
139
+ * `compactBag` on the result.
140
+ */
50
141
  export function unpackBag(packed) {
51
142
  const items = [];
52
143
  let value = packed;
53
- for (let index = 0; index < 15; index += 1) {
54
- const item = unpackItem(value & MASK_16);
55
- if (item.id !== 0)
56
- items.push(item);
144
+ for (let index = 0; index < BAG_SLOTS; index += 1) {
145
+ items.push(unpackItem(value & MASK_16));
57
146
  value >>= 16n;
58
147
  }
59
148
  return items;
@@ -116,12 +205,14 @@ export function packAdventurer(adventurer) {
116
205
  return (high << 128n) | low;
117
206
  }
118
207
  /**
119
- * The inverse of `unpackBag`. Items land in slots 1..15 in the order given, which is where
120
- * `ImplBag::add_item` would have put them — `unpackBag` compacts empty slots away, so a bag with
121
- * a gap in it does not survive a round trip and never had to.
208
+ * The inverse of `unpackBag`: slot `k` is written at bit `16k`, holes included.
209
+ *
210
+ * A short array is accepted and packed from slot 0 -- which is what a caller building a fixture
211
+ * bag wants -- but a bag that has been through `removeFromBag` must be passed whole, or its holes
212
+ * collapse and every later slot shifts down.
122
213
  */
123
214
  export function packBag(items) {
124
- if (items.length > 15)
215
+ if (items.length > BAG_SLOTS)
125
216
  throw new Error("bag holds at most 15 items");
126
217
  let packed = 0n;
127
218
  for (let index = items.length - 1; index >= 0; index -= 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"packing.js","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packing.js","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"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"}
@@ -74,5 +74,13 @@ export declare function encodeEquip(items: number[]): bigint;
74
74
  export declare function encodeDrop(items: number[]): bigint;
75
75
  export declare function encodeSurrender(): bigint;
76
76
  export declare function decodeAction(raw: bigint): DecodedAction;
77
+ /**
78
+ * The low nibble, and nothing else -- `stream.cairo`'s `action_opcode`.
79
+ *
80
+ * `fold_stream` deliberately does NOT decode: it only needs to know whether an action is a START,
81
+ * and `commit_action` already ran the full decode, canonicality included, before the felt entered
82
+ * the chain. Running `decodeAction` here made the reconstruction refuse transcripts the chain
83
+ * folds happily.
84
+ */
77
85
  export declare function actionOpcode(encoded: bigint): OpcodeValue;
78
86
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA6DD,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAChB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAmEvD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEzD"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA6DD,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAChB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAmEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEzD"}
package/dist/protocol.js CHANGED
@@ -276,7 +276,15 @@ export function decodeAction(raw) {
276
276
  }
277
277
  return action;
278
278
  }
279
+ /**
280
+ * The low nibble, and nothing else -- `stream.cairo`'s `action_opcode`.
281
+ *
282
+ * `fold_stream` deliberately does NOT decode: it only needs to know whether an action is a START,
283
+ * and `commit_action` already ran the full decode, canonicality included, before the felt entered
284
+ * the chain. Running `decodeAction` here made the reconstruction refuse transcripts the chain
285
+ * folds happily.
286
+ */
279
287
  export function actionOpcode(encoded) {
280
- return decodeAction(encoded).opcode;
288
+ return Number(encoded & 0xfn);
281
289
  }
282
290
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/replay.d.ts CHANGED
@@ -44,19 +44,32 @@ export interface ReplayState {
44
44
  * itself. Defaults to true so the client's behaviour is the one you get by omission.
45
45
  */
46
46
  equipmentApplied?: boolean;
47
+ /**
48
+ * Whether `adventurer.stats` already carry the equipment and bag boosts.
49
+ *
50
+ * `Replay::step` brackets every dispatch with `add_stat_boosts` / `remove_stat_boosts`, so on
51
+ * chain storage is boost-free and the rules always see boosted stats. The client keeps them
52
+ * baked into its store between actions; the off-chain replayer holds the boost-free state the
53
+ * packed felt carries. Defaults to true so the client's behaviour is the one you get by
54
+ * omission -- the same rule `equipmentApplied` follows.
55
+ *
56
+ * Either way `applyAction` normalises to the chain's convention, applies the bracket, and
57
+ * converts back, so both callers reach the same `packed_adventurer`.
58
+ */
59
+ boostsApplied?: boolean;
47
60
  }
48
61
  /**
49
- * Apply one action to `state` and return the events it produced.
62
+ * Apply one action, with the boost bracket `Replay::step` runs around every dispatch.
50
63
  *
51
- * This is `useGameCore`'s body verbatim, with the store reads replaced by `state` and the
52
- * VRF reads replaced by `entropy`. It is pure: no store, no RPC, no `Date`, and
53
- * -- when `entropy` is non-null -- no `Math.random()`. That last property is what lets the
54
- * client and the off-chain replayer agree, and it is asserted by the entropy test suite.
64
+ * normalise the caller's adventurer to the chain's boost-free convention
65
+ * -> add_stat_boosts (the rules always see boosted stats, and a derived `luck`)
66
+ * -> the handler (which may itself add or remove suffix boosts mid-action)
67
+ * -> remove_stat_boosts (recomputed against the POST-action equipment and bag)
68
+ * -> convert back to the caller's convention
55
69
  *
56
- * `entropy` is the RAW block hash that resolves this action for a commit-reveal game, or `null`
57
- * for a legacy dungeon, where the handlers fall back to a settings `game_seed` or `Math.random()`.
58
- * It is not the seed: `resolveActionRolls` mixes it with the adventurer's own state, which is what
59
- * separates two actions that were committed in the same block and therefore share a hash.
70
+ * The recomputation on the way out is what makes an equip's mid-action `apply_suffix_boost` net
71
+ * out to nothing. Without it every greatness-15 unlock leaves a permanent offset behind, which is
72
+ * what the off-chain replayer used to accumulate.
60
73
  */
61
74
  export declare function applyAction(state: ReplayState, action: GameAction, entropy: bigint | null): GameEvent[];
62
75
  //# sourceMappingURL=replay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA0DxC;;;;;GAKG;AACH,eAAO,MAAM,cAAc;IACzB,sEAAsE;;IAEtE,+FAA+F;;IAE/F,iGAAiG;;CAEzF,CAAC;AAEX,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AA+JD,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,IAAI,EAAE,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,sFAAsF;IACtF,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,SAAS,EAAE,CAk9Bb"}
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA0DxC;;;;;GAKG;AACH,eAAO,MAAM,cAAc;IACzB,sEAAsE;;IAEtE,+FAA+F;;IAE/F,iGAAiG;;CAEzF,CAAC;AAEX,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AA+JD,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,IAAI,EAAE,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,sFAAsF;IACtF,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyjCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,SAAS,EAAE,CA4Bb"}