@datamoc/mw_games 0.4.1 → 0.4.3

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 (260) hide show
  1. package/README.md +2 -2
  2. package/dist/actors/ItemStatusEffect.d.ts +1 -1
  3. package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
  4. package/dist/actors/ItemStatusEffect.js +2 -11
  5. package/dist/actors/ItemStatusEffect.js.map +1 -1
  6. package/dist/actors/StatusEffect.d.ts +11 -0
  7. package/dist/actors/StatusEffect.d.ts.map +1 -1
  8. package/dist/actors/StatusEffect.js +21 -8
  9. package/dist/actors/StatusEffect.js.map +1 -1
  10. package/dist/assets/binary.d.ts +52 -0
  11. package/dist/assets/binary.d.ts.map +1 -0
  12. package/dist/assets/binary.js +57 -0
  13. package/dist/assets/binary.js.map +1 -0
  14. package/dist/assets/index.d.ts +10 -5
  15. package/dist/assets/index.d.ts.map +1 -1
  16. package/dist/assets/index.js +9 -5
  17. package/dist/assets/index.js.map +1 -1
  18. package/dist/board/Army.d.ts +75 -0
  19. package/dist/board/Army.d.ts.map +1 -1
  20. package/dist/board/Army.js +75 -0
  21. package/dist/board/Army.js.map +1 -1
  22. package/dist/board/Classics.d.ts +297 -1
  23. package/dist/board/Classics.d.ts.map +1 -1
  24. package/dist/board/Classics.js +297 -1
  25. package/dist/board/Classics.js.map +1 -1
  26. package/dist/board/Engine.d.ts +23 -0
  27. package/dist/board/Engine.d.ts.map +1 -1
  28. package/dist/board/Engine.js +23 -0
  29. package/dist/board/Engine.js.map +1 -1
  30. package/dist/board/FogOfWar.d.ts +20 -0
  31. package/dist/board/FogOfWar.d.ts.map +1 -1
  32. package/dist/board/FogOfWar.js +20 -0
  33. package/dist/board/FogOfWar.js.map +1 -1
  34. package/dist/board/Tactics.d.ts +158 -1
  35. package/dist/board/Tactics.d.ts.map +1 -1
  36. package/dist/board/Tactics.js +125 -1
  37. package/dist/board/Tactics.js.map +1 -1
  38. package/dist/board/chess.d.ts +87 -3
  39. package/dist/board/chess.d.ts.map +1 -1
  40. package/dist/board/chess.js +96 -4
  41. package/dist/board/chess.js.map +1 -1
  42. package/dist/core/HttpTransport.d.ts +1 -1
  43. package/dist/core/HttpTransport.js +1 -1
  44. package/dist/core/News.d.ts +6 -13
  45. package/dist/core/News.d.ts.map +1 -1
  46. package/dist/core/News.js +10 -23
  47. package/dist/core/News.js.map +1 -1
  48. package/dist/core/RunHistory.d.ts +1 -2
  49. package/dist/core/RunHistory.d.ts.map +1 -1
  50. package/dist/core/RunHistory.js +5 -6
  51. package/dist/core/RunHistory.js.map +1 -1
  52. package/dist/core/Stats.d.ts +1 -2
  53. package/dist/core/Stats.d.ts.map +1 -1
  54. package/dist/core/Stats.js +5 -6
  55. package/dist/core/Stats.js.map +1 -1
  56. package/dist/core/StoredValue.d.ts +21 -0
  57. package/dist/core/StoredValue.d.ts.map +1 -0
  58. package/dist/core/StoredValue.js +28 -0
  59. package/dist/core/StoredValue.js.map +1 -0
  60. package/dist/i18n/Content.d.ts +151 -0
  61. package/dist/i18n/Content.d.ts.map +1 -0
  62. package/dist/i18n/Content.js +219 -0
  63. package/dist/i18n/Content.js.map +1 -0
  64. package/dist/i18n/index.d.ts +35 -3
  65. package/dist/i18n/index.d.ts.map +1 -1
  66. package/dist/i18n/index.js +88 -6
  67. package/dist/i18n/index.js.map +1 -1
  68. package/dist/mw_games.global.js +90 -90
  69. package/dist/roguelike/Level.d.ts +10 -0
  70. package/dist/roguelike/Level.d.ts.map +1 -1
  71. package/dist/roguelike/Level.js +57 -17
  72. package/dist/roguelike/Level.js.map +1 -1
  73. package/dist/roguelike/Pathfinder.js +19 -19
  74. package/dist/roguelike/Pathfinder.js.map +1 -1
  75. package/dist/roguelike/Placement.d.ts +62 -0
  76. package/dist/roguelike/Placement.d.ts.map +1 -0
  77. package/dist/roguelike/Placement.js +79 -0
  78. package/dist/roguelike/Placement.js.map +1 -0
  79. package/dist/roguelike/index.d.ts +2 -0
  80. package/dist/roguelike/index.d.ts.map +1 -1
  81. package/dist/roguelike/index.js +1 -0
  82. package/dist/roguelike/index.js.map +1 -1
  83. package/dist/rpg/FreeMover.d.ts +1 -1
  84. package/dist/rpg/FreeMover.d.ts.map +1 -1
  85. package/dist/rpg/FreeMover.js +3 -6
  86. package/dist/rpg/FreeMover.js.map +1 -1
  87. package/dist/rpg/GridMover.d.ts +1 -1
  88. package/dist/rpg/GridMover.d.ts.map +1 -1
  89. package/dist/rpg/GridMover.js +3 -6
  90. package/dist/rpg/GridMover.js.map +1 -1
  91. package/dist/rpg/MovableSprite.d.ts +6 -0
  92. package/dist/rpg/MovableSprite.d.ts.map +1 -1
  93. package/dist/rpg/MovableSprite.js +9 -1
  94. package/dist/rpg/MovableSprite.js.map +1 -1
  95. package/dist/three-d/Models.d.ts +38 -1
  96. package/dist/three-d/Models.d.ts.map +1 -1
  97. package/dist/three-d/Models.js +66 -3
  98. package/dist/three-d/Models.js.map +1 -1
  99. package/dist/two-d/render/ActorAnimator.d.ts +32 -0
  100. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -1
  101. package/dist/two-d/render/ActorAnimator.js +21 -0
  102. package/dist/two-d/render/ActorAnimator.js.map +1 -1
  103. package/dist/two-d/render/AnimatedSprite.d.ts +24 -4
  104. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
  105. package/dist/two-d/render/AnimatedSprite.js +24 -4
  106. package/dist/two-d/render/AnimatedSprite.js.map +1 -1
  107. package/dist/two-d/render/Autotile.d.ts +33 -1
  108. package/dist/two-d/render/Autotile.d.ts.map +1 -1
  109. package/dist/two-d/render/Autotile.js +33 -1
  110. package/dist/two-d/render/Autotile.js.map +1 -1
  111. package/dist/two-d/render/Camera.d.ts +53 -1
  112. package/dist/two-d/render/Camera.d.ts.map +1 -1
  113. package/dist/two-d/render/Camera.js +36 -1
  114. package/dist/two-d/render/Camera.js.map +1 -1
  115. package/dist/two-d/render/Capabilities.d.ts +33 -0
  116. package/dist/two-d/render/Capabilities.d.ts.map +1 -1
  117. package/dist/two-d/render/Capabilities.js +33 -0
  118. package/dist/two-d/render/Capabilities.js.map +1 -1
  119. package/dist/two-d/render/ColorBlindness.d.ts +23 -0
  120. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -1
  121. package/dist/two-d/render/ColorBlindness.js +23 -4
  122. package/dist/two-d/render/ColorBlindness.js.map +1 -1
  123. package/dist/two-d/render/ColorTransformBatcher.d.ts +67 -1
  124. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  125. package/dist/two-d/render/ColorTransformBatcher.js +57 -1
  126. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  127. package/dist/two-d/render/LayeredSprite.d.ts +19 -0
  128. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
  129. package/dist/two-d/render/LayeredSprite.js +19 -0
  130. package/dist/two-d/render/LayeredSprite.js.map +1 -1
  131. package/dist/two-d/render/Minimap.d.ts +25 -1
  132. package/dist/two-d/render/Minimap.d.ts.map +1 -1
  133. package/dist/two-d/render/Minimap.js +25 -1
  134. package/dist/two-d/render/Minimap.js.map +1 -1
  135. package/dist/two-d/render/Particles.d.ts +26 -2
  136. package/dist/two-d/render/Particles.d.ts.map +1 -1
  137. package/dist/two-d/render/Particles.js +23 -0
  138. package/dist/two-d/render/Particles.js.map +1 -1
  139. package/dist/two-d/render/Projectile.d.ts +14 -0
  140. package/dist/two-d/render/Projectile.d.ts.map +1 -1
  141. package/dist/two-d/render/Projectile.js +14 -0
  142. package/dist/two-d/render/Projectile.js.map +1 -1
  143. package/dist/two-d/render/ScreenEffects.d.ts +15 -0
  144. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
  145. package/dist/two-d/render/ScreenEffects.js +15 -0
  146. package/dist/two-d/render/ScreenEffects.js.map +1 -1
  147. package/dist/two-d/render/Shape2D.d.ts +58 -1
  148. package/dist/two-d/render/Shape2D.d.ts.map +1 -1
  149. package/dist/two-d/render/Shape2D.js +58 -1
  150. package/dist/two-d/render/Shape2D.js.map +1 -1
  151. package/dist/two-d/render/StatusVisuals.d.ts +22 -0
  152. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
  153. package/dist/two-d/render/StatusVisuals.js +22 -0
  154. package/dist/two-d/render/StatusVisuals.js.map +1 -1
  155. package/dist/two-d/render/TileMap.d.ts +65 -3
  156. package/dist/two-d/render/TileMap.d.ts.map +1 -1
  157. package/dist/two-d/render/TileMap.js +65 -3
  158. package/dist/two-d/render/TileMap.js.map +1 -1
  159. package/dist/two-d/render/TiledMap.d.ts +9 -3
  160. package/dist/two-d/render/TiledMap.d.ts.map +1 -1
  161. package/dist/two-d/render/TiledMap.js +9 -3
  162. package/dist/two-d/render/TiledMap.js.map +1 -1
  163. package/dist/two-d/render/TintedSprite.d.ts +9 -2
  164. package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
  165. package/dist/two-d/render/TintedSprite.js +9 -2
  166. package/dist/two-d/render/TintedSprite.js.map +1 -1
  167. package/dist/two-d/render/Types2D.d.ts +14 -2
  168. package/dist/two-d/render/Types2D.d.ts.map +1 -1
  169. package/dist/two-d/render/Types2D.js +14 -2
  170. package/dist/two-d/render/Types2D.js.map +1 -1
  171. package/dist/two-d/render/Viewport.d.ts +22 -0
  172. package/dist/two-d/render/Viewport.d.ts.map +1 -1
  173. package/dist/two-d/render/Viewport.js +22 -0
  174. package/dist/two-d/render/Viewport.js.map +1 -1
  175. package/dist/two-d/ui/Bar.d.ts +16 -3
  176. package/dist/two-d/ui/Bar.d.ts.map +1 -1
  177. package/dist/two-d/ui/Bar.js +16 -1
  178. package/dist/two-d/ui/Bar.js.map +1 -1
  179. package/dist/two-d/ui/BitmapLabel.d.ts +26 -10
  180. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -1
  181. package/dist/two-d/ui/BitmapLabel.js +26 -3
  182. package/dist/two-d/ui/BitmapLabel.js.map +1 -1
  183. package/dist/two-d/ui/Button.d.ts +15 -0
  184. package/dist/two-d/ui/Button.d.ts.map +1 -1
  185. package/dist/two-d/ui/Button.js +15 -0
  186. package/dist/two-d/ui/Button.js.map +1 -1
  187. package/dist/two-d/ui/FloatingText.d.ts +15 -0
  188. package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
  189. package/dist/two-d/ui/FloatingText.js +15 -0
  190. package/dist/two-d/ui/FloatingText.js.map +1 -1
  191. package/dist/two-d/ui/HelpScreen.d.ts +16 -0
  192. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -1
  193. package/dist/two-d/ui/HelpScreen.js +23 -3
  194. package/dist/two-d/ui/HelpScreen.js.map +1 -1
  195. package/dist/two-d/ui/IconGrid.d.ts +27 -3
  196. package/dist/two-d/ui/IconGrid.d.ts.map +1 -1
  197. package/dist/two-d/ui/IconGrid.js +71 -55
  198. package/dist/two-d/ui/IconGrid.js.map +1 -1
  199. package/dist/two-d/ui/Label.d.ts +12 -8
  200. package/dist/two-d/ui/Label.d.ts.map +1 -1
  201. package/dist/two-d/ui/Label.js +14 -3
  202. package/dist/two-d/ui/Label.js.map +1 -1
  203. package/dist/two-d/ui/ListView.d.ts +22 -4
  204. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  205. package/dist/two-d/ui/ListView.js +44 -43
  206. package/dist/two-d/ui/ListView.js.map +1 -1
  207. package/dist/two-d/ui/LoadingScreen.d.ts +24 -1
  208. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -1
  209. package/dist/two-d/ui/LoadingScreen.js +24 -1
  210. package/dist/two-d/ui/LoadingScreen.js.map +1 -1
  211. package/dist/two-d/ui/MessageBox.d.ts +21 -2
  212. package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
  213. package/dist/two-d/ui/MessageBox.js +19 -0
  214. package/dist/two-d/ui/MessageBox.js.map +1 -1
  215. package/dist/two-d/ui/NinePatch.d.ts +12 -0
  216. package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
  217. package/dist/two-d/ui/NinePatch.js +12 -0
  218. package/dist/two-d/ui/NinePatch.js.map +1 -1
  219. package/dist/two-d/ui/RebindScreen.d.ts +15 -0
  220. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -1
  221. package/dist/two-d/ui/RebindScreen.js +15 -0
  222. package/dist/two-d/ui/RebindScreen.js.map +1 -1
  223. package/dist/two-d/ui/SelectionModel.d.ts +50 -0
  224. package/dist/two-d/ui/SelectionModel.d.ts.map +1 -0
  225. package/dist/two-d/ui/SelectionModel.js +73 -0
  226. package/dist/two-d/ui/SelectionModel.js.map +1 -0
  227. package/dist/two-d/ui/StatsScreen.d.ts +15 -0
  228. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -1
  229. package/dist/two-d/ui/StatsScreen.js +15 -0
  230. package/dist/two-d/ui/StatsScreen.js.map +1 -1
  231. package/dist/two-d/ui/Toast.d.ts +12 -0
  232. package/dist/two-d/ui/Toast.d.ts.map +1 -1
  233. package/dist/two-d/ui/Toast.js +12 -0
  234. package/dist/two-d/ui/Toast.js.map +1 -1
  235. package/dist/two-d/ui/Tooltip.d.ts +14 -0
  236. package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
  237. package/dist/two-d/ui/Tooltip.js +14 -0
  238. package/dist/two-d/ui/Tooltip.js.map +1 -1
  239. package/dist/two-d/ui/VerticalLabel.d.ts +18 -0
  240. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -1
  241. package/dist/two-d/ui/VerticalLabel.js +18 -0
  242. package/dist/two-d/ui/VerticalLabel.js.map +1 -1
  243. package/dist/two-d/ui/Window.d.ts +12 -0
  244. package/dist/two-d/ui/Window.d.ts.map +1 -1
  245. package/dist/two-d/ui/Window.js +12 -0
  246. package/dist/two-d/ui/Window.js.map +1 -1
  247. package/dist/two-d/ui/theme.d.ts +45 -1
  248. package/dist/two-d/ui/theme.d.ts.map +1 -1
  249. package/dist/two-d/ui/theme.js +45 -1
  250. package/dist/two-d/ui/theme.js.map +1 -1
  251. package/dist/two-d/ui/themedText.d.ts +20 -0
  252. package/dist/two-d/ui/themedText.d.ts.map +1 -0
  253. package/dist/two-d/ui/themedText.js +9 -0
  254. package/dist/two-d/ui/themedText.js.map +1 -0
  255. package/dist/version.d.ts +1 -1
  256. package/dist/version.js +1 -1
  257. package/package.json +11 -2
  258. package/tools/compile-resources.mjs +1 -1
  259. package/tools/compress-dist.d.mts +16 -0
  260. package/tools/compress-dist.mjs +116 -0
@@ -7,7 +7,18 @@
7
7
  * Draws by fifty moves, repetition or dead material are not detected either -
8
8
  * claims, not rules of movement, and a minigame ends on mate or stalemate.
9
9
  */
10
- /** 'e4' to 28 and back - tests read `sq('e4')` rather than bare numbers */
10
+ /**
11
+ * 'e4' to 28 and back - tests read `sq('e4')` rather than bare numbers.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { sq } from '@datamoc/mw_games/board';
16
+ *
17
+ * console.log(sq('a1')); // 0
18
+ * console.log(sq('e4')); // 28
19
+ * console.log(sq('h8')); // 63
20
+ * ```
21
+ */
11
22
  export function sq(name) {
12
23
  const file = name.charCodeAt(0) - 97;
13
24
  const rank = name.charCodeAt(1) - 49;
@@ -16,6 +27,18 @@ export function sq(name) {
16
27
  }
17
28
  return rank * 8 + file;
18
29
  }
30
+ /**
31
+ * The inverse of `sq`: an index 0-63 back to its algebraic name.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * import { squareName } from '@datamoc/mw_games/board';
36
+ *
37
+ * console.log(squareName(0)); // 'a1'
38
+ * console.log(squareName(28)); // 'e4'
39
+ * console.log(squareName(63)); // 'h8'
40
+ * ```
41
+ */
19
42
  export function squareName(sq) {
20
43
  return String.fromCharCode(97 + (sq & 7)) + String.fromCharCode(49 + (sq >> 3));
21
44
  }
@@ -25,6 +48,17 @@ export function squareName(sq) {
25
48
  * Placement, side to move, castling rights and the en passant square are read;
26
49
  * the halfmove clock and move number are not (draw claims are out of scope),
27
50
  * and both kings must be present or there is nothing to judge.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * import { parseFen, sq } from '@datamoc/mw_games/board';
55
+ *
56
+ * // Scholar's mate position, black to move, every castling right still on the books
57
+ * const state = parseFen('r1bqkbnr/pppp1Qpp/2n5/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4');
58
+ *
59
+ * console.log(state.turn); // 'black'
60
+ * console.log(state.board[sq('f7')]?.side); // 'white' - the queen that just gave check
61
+ * ```
28
62
  */
29
63
  export function parseFen(fen) {
30
64
  const parts = fen.trim().split(/\s+/);
@@ -94,7 +128,18 @@ function rankOf(sq) {
94
128
  function onBoard(file, rank) {
95
129
  return file >= 0 && file < 8 && rank >= 0 && rank < 8;
96
130
  }
97
- /** the standard opening array, white to move with every right intact */
131
+ /**
132
+ * The standard opening array, white to move with every right intact.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * import { startingChess, legalMoves } from '@datamoc/mw_games/board';
137
+ *
138
+ * const state = startingChess();
139
+ * console.log(state.turn); // 'white'
140
+ * console.log(legalMoves(state).length); // 20 - 16 pawn moves, 4 knight moves
141
+ * ```
142
+ */
98
143
  export function startingChess() {
99
144
  const back = ['rook', 'knight', 'bishop', 'queen', 'king', 'bishop', 'knight', 'rook'];
100
145
  const board = new Array(64).fill(null);
@@ -112,6 +157,19 @@ export function startingChess() {
112
157
  };
113
158
  }
114
159
  /** an independent copy, for searching a move without playing it */
160
+ /**
161
+ * A deep copy, safe to mutate (via `applyMove`) without touching the original - what
162
+ * `legalMoves` uses to try a move and check it does not leave the mover in check.
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * import { startingChess, cloneChess } from '@datamoc/mw_games/board';
167
+ *
168
+ * const state = startingChess();
169
+ * const trial = cloneChess(state);
170
+ * console.log(trial !== state, trial.turn); // true 'white'
171
+ * ```
172
+ */
115
173
  export function cloneChess(state) {
116
174
  return {
117
175
  board: state.board.map((p) => (p ? { side: p.side, kind: p.kind } : null)),
@@ -208,10 +266,26 @@ function findKing(board, side) {
208
266
  throw new Error(`a position without a ${side} king cannot be judged`);
209
267
  return king;
210
268
  }
269
+ /**
270
+ * @example
271
+ * ```ts
272
+ * import { startingChess, inCheck } from '@datamoc/mw_games/board';
273
+ *
274
+ * console.log(inCheck(startingChess(), 'white')); // false - nobody is in check at the start
275
+ * ```
276
+ */
211
277
  export function inCheck(state, side) {
212
278
  return attacks(state.board, findKing(state.board, side), other(side));
213
279
  }
214
- /** every move the piece could make ignoring its own king - checks filter later */
280
+ /** every move the piece could make ignoring its own king - checks filter later
281
+ *
282
+ * @example
283
+ * ```ts
284
+ * import { startingChess, legalMoves } from '@datamoc/mw_games/board';
285
+ *
286
+ * console.log(legalMoves(startingChess()).length); // 20 - the opening position's own count
287
+ * ```
288
+ */
215
289
  function pseudoMoves(state, from) {
216
290
  const piece = state.board[from];
217
291
  if (!piece || piece.side !== state.turn)
@@ -412,6 +486,16 @@ export function legalMoves(state) {
412
486
  /**
413
487
  * Plays a move, mutating the position. Refuses anything `legalMoves` would not
414
488
  * list - a silent illegal move is how a minigame corrupts its own board.
489
+ *
490
+ * @example
491
+ * ```ts
492
+ * import { startingChess, sq, applyMove } from '@datamoc/mw_games/board';
493
+ *
494
+ * const state = startingChess();
495
+ * applyMove(state, { from: sq('e2'), to: sq('e4') });
496
+ * console.log(state.turn); // 'black'
497
+ * console.log(state.board[sq('e4')]); // { side: 'white', kind: 'pawn' }
498
+ * ```
415
499
  */
416
500
  export function applyMove(state, move) {
417
501
  const piece = state.board[move.from];
@@ -428,7 +512,15 @@ export function applyMove(state, move) {
428
512
  }
429
513
  playRaw(state, raw);
430
514
  }
431
- /** mate, stalemate, or more game: whoever just moved is judged through the side to play */
515
+ /** mate, stalemate, or more game: whoever just moved is judged through the side to play
516
+ *
517
+ * @example
518
+ * ```ts
519
+ * import { startingChess, gameResult } from '@datamoc/mw_games/board';
520
+ *
521
+ * console.log(gameResult(startingChess())); // 'ongoing'
522
+ * ```
523
+ */
432
524
  export function gameResult(state) {
433
525
  if (legalMoves(state).length > 0)
434
526
  return 'ongoing';
@@ -1 +1 @@
1
- {"version":3,"file":"chess.js","sourceRoot":"","sources":["../../src/board/chess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chess.js","sourceRoot":"","sources":["../../src/board/chess.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export interface HttpTransportOptions {
5
5
  }
6
6
  /**
7
7
  * The constructor validation and timeout-wrapped fetch shared by every injectable HTTPS
8
- * transport here (`FeedbackClient`, `SaveSyncClient`, `TelemetryClient`) - each one is a
8
+ * transport here (`FeedbackClient`, `NewsClient`, `SaveSyncClient`, `TelemetryClient`) - each one is a
9
9
  * plain request/response against a game's own endpoint, differing only in what they send and
10
10
  * expect back, not in how the endpoint/timeout/fetch options are validated or how a request
11
11
  * is aborted after `timeoutMs`. `label` names the concrete client in its own error messages
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The constructor validation and timeout-wrapped fetch shared by every injectable HTTPS
3
- * transport here (`FeedbackClient`, `SaveSyncClient`, `TelemetryClient`) - each one is a
3
+ * transport here (`FeedbackClient`, `NewsClient`, `SaveSyncClient`, `TelemetryClient`) - each one is a
4
4
  * plain request/response against a game's own endpoint, differing only in what they send and
5
5
  * expect back, not in how the endpoint/timeout/fetch options are validated or how a request
6
6
  * is aborted after `timeoutMs`. `label` names the concrete client in its own error messages
@@ -1,8 +1,9 @@
1
1
  import { type SaveStorage } from './Save.ts';
2
+ import { HttpTransport, type HttpTransportOptions } from './HttpTransport.ts';
2
3
  /**
3
4
  * Fetches a game's own news/announcements feed - the inbound counterpart to
4
- * `FeedbackClient`, following the same injectable-transport shape (a game's own HTTPS
5
- * endpoint, no backend shipped or assumed) rather than a second pattern.
5
+ * `FeedbackClient`, built on the shared `HttpTransport` like every other client here
6
+ * (a game's own HTTPS endpoint, no backend shipped or assumed).
6
7
  *
7
8
  * @example
8
9
  * ```ts
@@ -22,15 +23,8 @@ export interface NewsItem {
22
23
  body: string;
23
24
  publishedAt?: number;
24
25
  }
25
- export interface NewsOptions {
26
- endpoint: string;
27
- timeoutMs?: number;
28
- fetch?: typeof globalThis.fetch;
29
- }
30
- export declare class NewsClient {
31
- private readonly endpoint;
32
- private readonly timeoutMs;
33
- private readonly fetchFn;
26
+ export type NewsOptions = HttpTransportOptions;
27
+ export declare class NewsClient extends HttpTransport {
34
28
  constructor(options: NewsOptions);
35
29
  /**
36
30
  * Fetches and validates the feed; a malformed item throws rather than reaching a game as
@@ -46,8 +40,7 @@ export interface NewsSeenOptions {
46
40
  }
47
41
  /** which news items a player has already dismissed, so a returning player is not shown the same announcement forever */
48
42
  export declare class NewsSeenTracker {
49
- private readonly storage;
50
- private readonly key;
43
+ private readonly store;
51
44
  constructor(options: NewsSeenOptions);
52
45
  private readSeen;
53
46
  isSeen(id: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"News.d.ts","sourceRoot":"","sources":["../../src/core/News.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD,YAAY,OAAO,EAAE,WAAW,EAO/B;IAED;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAYtC;CACD;AAgBD,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wHAAwH;AACxH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,OAAO,EAAE,eAAe,EAGnC;IAED,OAAO,CAAC,QAAQ;IAKhB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1B;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIzB;IAED,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAG7C;CACD"}
1
+ {"version":3,"file":"News.d.ts","sourceRoot":"","sources":["../../src/core/News.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAE/C,qBAAa,UAAW,SAAQ,aAAa;IAC5C,YAAY,OAAO,EAAE,WAAW,EAE/B;IAED;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAQtC;CACD;AAgBD,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wHAAwH;AACxH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,YAAY,OAAO,EAAE,eAAe,EAKnC;IAED,OAAO,CAAC,QAAQ;IAIhB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1B;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIzB;IAED,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAG7C;CACD"}
package/dist/core/News.js CHANGED
@@ -1,16 +1,10 @@
1
1
  import { defaultStorage } from './Save.js';
2
2
  import { sanitizeInboundText } from './Sanitize.js';
3
- export class NewsClient {
3
+ import { StoredValue } from './StoredValue.js';
4
+ import { HttpTransport } from './HttpTransport.js';
5
+ export class NewsClient extends HttpTransport {
4
6
  constructor(options) {
5
- if (!options.endpoint)
6
- throw new Error('news endpoint is required');
7
- this.endpoint = options.endpoint;
8
- this.timeoutMs = options.timeoutMs ?? 10000;
9
- if (!(this.timeoutMs > 0))
10
- throw new Error('news timeout must be positive');
11
- this.fetchFn = options.fetch ?? globalThis.fetch;
12
- if (!this.fetchFn)
13
- throw new Error('fetch is unavailable; provide NewsOptions.fetch');
7
+ super(options, 'news');
14
8
  }
15
9
  /**
16
10
  * Fetches and validates the feed; a malformed item throws rather than reaching a game as
@@ -19,20 +13,15 @@ export class NewsClient {
19
13
  * `normalizeItem`'s own per-field shape check below.
20
14
  */
21
15
  async fetchItems() {
22
- const controller = new AbortController();
23
- const timer = setTimeout(() => controller.abort(), this.timeoutMs);
24
- try {
25
- const response = await this.fetchFn(this.endpoint, { signal: controller.signal });
16
+ return this.withTimeout(async (signal) => {
17
+ const response = await this.fetchFn(this.endpoint, { signal });
26
18
  if (!response.ok)
27
19
  throw new Error(`news request failed with HTTP ${response.status}`);
28
20
  const data = JSON.parse(sanitizeInboundText(await response.text()));
29
21
  if (!Array.isArray(data))
30
22
  throw new Error('news response was not an array');
31
23
  return data.map((raw, index) => normalizeItem(raw, index));
32
- }
33
- finally {
34
- clearTimeout(timer);
35
- }
24
+ });
36
25
  }
37
26
  }
38
27
  function normalizeItem(raw, index) {
@@ -55,12 +44,10 @@ function normalizeItem(raw, index) {
55
44
  /** which news items a player has already dismissed, so a returning player is not shown the same announcement forever */
56
45
  export class NewsSeenTracker {
57
46
  constructor(options) {
58
- this.storage = options.storage ?? defaultStorage();
59
- this.key = `mwg-news-seen:${options.namespace}`;
47
+ this.store = new StoredValue(options.storage ?? defaultStorage(), `mwg-news-seen:${options.namespace}`);
60
48
  }
61
49
  readSeen() {
62
- const raw = this.storage.read(this.key);
63
- return new Set(raw ? JSON.parse(raw) : []);
50
+ return new Set(this.store.read([]));
64
51
  }
65
52
  isSeen(id) {
66
53
  return this.readSeen().has(id);
@@ -68,7 +55,7 @@ export class NewsSeenTracker {
68
55
  markSeen(id) {
69
56
  const seen = this.readSeen();
70
57
  seen.add(id);
71
- this.storage.write(this.key, JSON.stringify([...seen]));
58
+ this.store.write([...seen]);
72
59
  }
73
60
  /** `items` filtered down to whichever have not been marked seen yet */
74
61
  unseen(items) {
@@ -1 +1 @@
1
- {"version":3,"file":"News.js","sourceRoot":"","sources":["../../src/core/News.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"News.js","sourceRoot":"","sources":["../../src/core/News.ts"],"names":[],"mappings":"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"}
@@ -34,9 +34,8 @@ export interface RunHistoryOptions {
34
34
  limit?: number;
35
35
  }
36
36
  export declare class RunHistory<T> {
37
- private readonly storage;
37
+ private readonly store;
38
38
  private readonly limit?;
39
- private readonly key;
40
39
  constructor(options: RunHistoryOptions);
41
40
  private readAll;
42
41
  /** appends a completed run's summary, oldest first; drops the oldest entry once `limit` is exceeded */
@@ -1 +1 @@
1
- {"version":3,"file":"RunHistory.d.ts","sourceRoot":"","sources":["../../src/core/RunHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,iBAAiB;IACjC,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,OAAO,EAAE,iBAAiB,EAIrC;IAED,OAAO,CAAC,OAAO;IAKf,uGAAuG;IACvG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAOrC;IAED,uCAAuC;IACvC,GAAG,IAAI,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAEnC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,GAAE,KAAK,GAAG,MAAe,GAAG,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAIhG;IAED,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAEZ;CACD"}
1
+ {"version":3,"file":"RunHistory.d.ts","sourceRoot":"","sources":["../../src/core/RunHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,iBAAiB;IACjC,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAEhC,YAAY,OAAO,EAAE,iBAAiB,EAMrC;IAED,OAAO,CAAC,OAAO;IAIf,uGAAuG;IACvG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAOrC;IAED,uCAAuC;IACvC,GAAG,IAAI,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAEnC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,GAAE,KAAK,GAAG,MAAe,GAAG,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAIhG;IAED,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAEZ;CACD"}
@@ -1,13 +1,12 @@
1
1
  import { defaultStorage } from './Save.js';
2
+ import { StoredValue } from './StoredValue.js';
2
3
  export class RunHistory {
3
4
  constructor(options) {
4
- this.storage = options.storage ?? defaultStorage();
5
+ this.store = new StoredValue(options.storage ?? defaultStorage(), `mwg-runs:${options.namespace}`);
5
6
  this.limit = options.limit;
6
- this.key = `mwg-runs:${options.namespace}`;
7
7
  }
8
8
  readAll() {
9
- const raw = this.storage.read(this.key);
10
- return raw ? JSON.parse(raw) : [];
9
+ return this.store.read([]);
11
10
  }
12
11
  /** appends a completed run's summary, oldest first; drops the oldest entry once `limit` is exceeded */
13
12
  record(summary) {
@@ -16,7 +15,7 @@ export class RunHistory {
16
15
  entries.push(entry);
17
16
  if (this.limit !== undefined && entries.length > this.limit)
18
17
  entries.splice(0, entries.length - this.limit);
19
- this.storage.write(this.key, JSON.stringify(entries));
18
+ this.store.write(entries);
20
19
  return entry;
21
20
  }
22
21
  /** every recorded run, oldest first */
@@ -35,7 +34,7 @@ export class RunHistory {
35
34
  }
36
35
  /** drops every recorded run */
37
36
  clear() {
38
- this.storage.remove(this.key);
37
+ this.store.remove();
39
38
  }
40
39
  }
41
40
  //# sourceMappingURL=RunHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunHistory.js","sourceRoot":"","sources":["../../src/core/RunHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,WAAW,CAAC;AAsC7D,MAAM,OAAO,UAAU;IAKtB,YAAY,OAA0B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,YAAY,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5C,CAAC;IAEO,OAAO;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,uGAAuG;IACvG,MAAM,CAAC,OAAU;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAuB,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;QAC1G,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,GAAG;QACF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAA0B,EAAE,KAAK,GAAmB,MAAM;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,+BAA+B;IAC/B,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACD"}
1
+ {"version":3,"file":"RunHistory.js","sourceRoot":"","sources":["../../src/core/RunHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsC/C,MAAM,OAAO,UAAU;IAItB,YAAY,OAA0B;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAC3B,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,EACnC,YAAY,OAAO,CAAC,SAAS,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAEO,OAAO;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,uGAAuG;IACvG,MAAM,CAAC,OAAU;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAuB,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;QAC1G,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5G,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,GAAG;QACF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAA0B,EAAE,KAAK,GAAmB,MAAM;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,+BAA+B;IAC/B,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;CACD"}
@@ -32,8 +32,7 @@ export interface PlayerStatsOptions<T, S = T> {
32
32
  * ```
33
33
  */
34
34
  export declare class PlayerStats<T, S = T> {
35
- private readonly storage;
36
- private readonly key;
35
+ private readonly store;
37
36
  private readonly initial;
38
37
  private readonly combine;
39
38
  constructor(options: PlayerStatsOptions<T, S>);
@@ -1 +1 @@
1
- {"version":3,"file":"Stats.d.ts","sourceRoot":"","sources":["../../src/core/Stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IAC3C,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,uDAAuD;IACvD,OAAO,EAAE,CAAC,CAAC;IACX,yDAAyD;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAI;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,YAAY,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAK5C;IAED,6EAA6E;IAC7E,GAAG,IAAI,CAAC,CAGP;IAED,sFAAsF;IACtF,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAIpB;IAED,6EAA6E;IAC7E,KAAK,IAAI,IAAI,CAEZ;CACD"}
1
+ {"version":3,"file":"Stats.d.ts","sourceRoot":"","sources":["../../src/core/Stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7D,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IAC3C,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,uDAAuD;IACvD,OAAO,EAAE,CAAC,CAAC;IACX,yDAAyD;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAI;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,YAAY,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAI5C;IAED,6EAA6E;IAC7E,GAAG,IAAI,CAAC,CAEP;IAED,sFAAsF;IACtF,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAIpB;IAED,6EAA6E;IAC7E,KAAK,IAAI,IAAI,CAEZ;CACD"}
@@ -1,4 +1,5 @@
1
1
  import { defaultStorage } from './Save.js';
2
+ import { StoredValue } from './StoredValue.js';
2
3
  /**
3
4
  * A lifetime running total, folded in one run at a time - distinct from `RunHistory`, which
4
5
  * keeps individual runs and may drop the oldest ones once its own `limit` is reached.
@@ -24,25 +25,23 @@ import { defaultStorage } from './Save.js';
24
25
  */
25
26
  export class PlayerStats {
26
27
  constructor(options) {
27
- this.storage = options.storage ?? defaultStorage();
28
- this.key = `mwg-stats:${options.namespace}`;
28
+ this.store = new StoredValue(options.storage ?? defaultStorage(), `mwg-stats:${options.namespace}`);
29
29
  this.initial = options.initial;
30
30
  this.combine = options.combine;
31
31
  }
32
32
  /** the current lifetime total, `initial` if nothing has been recorded yet */
33
33
  get() {
34
- const raw = this.storage.read(this.key);
35
- return raw ? JSON.parse(raw) : this.initial;
34
+ return this.store.read(this.initial);
36
35
  }
37
36
  /** folds `summary` into the running total and persists it, returning the new total */
38
37
  record(summary) {
39
38
  const next = this.combine(this.get(), summary);
40
- this.storage.write(this.key, JSON.stringify(next));
39
+ this.store.write(next);
41
40
  return next;
42
41
  }
43
42
  /** back to `initial`, as a new save file or a "reset stats" option should */
44
43
  reset() {
45
- this.storage.remove(this.key);
44
+ this.store.remove();
46
45
  }
47
46
  }
48
47
  //# sourceMappingURL=Stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../src/core/Stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,WAAW,CAAC;AAY7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,WAAW;IAMvB,YAAY,OAAiC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,aAAa,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,6EAA6E;IAC7E,GAAG;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACpD,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,OAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6EAA6E;IAC7E,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACD"}
1
+ {"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../src/core/Stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAY/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,WAAW;IAKvB,YAAY,OAAiC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAI,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,EAAE,aAAa,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,6EAA6E;IAC7E,GAAG;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,OAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6EAA6E;IAC7E,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;CACD"}
@@ -0,0 +1,21 @@
1
+ import type { SaveStorage } from './Save.ts';
2
+ /**
3
+ * One JSON value under one storage key: the read-with-fallback / write / remove trio that
4
+ * `PlayerStats`, `RunHistory` and `NewsSeenTracker` each hand-rolled, with slightly
5
+ * different falsy-vs-null edges per copy. The one here treats any missing or empty read as
6
+ * absent (the `raw ? ... : fallback` rule two of the three already followed); corrupt JSON
7
+ * still throws, the same as before, since silently inventing a value would hide a real bug.
8
+ *
9
+ * Internal: multi-key shapes (`Collection`'s prefix scan, `SaveSystem`'s slots) do not fit
10
+ * it and keep their own code.
11
+ */
12
+ export declare class StoredValue<T> {
13
+ private readonly storage;
14
+ private readonly key;
15
+ constructor(storage: SaveStorage, key: string);
16
+ /** the stored value, or `fallback` when nothing has been written yet */
17
+ read(fallback: T): T;
18
+ write(value: T): void;
19
+ remove(): void;
20
+ }
21
+ //# sourceMappingURL=StoredValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoredValue.d.ts","sourceRoot":"","sources":["../../src/core/StoredValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAG5C;IAED,wEAAwE;IACxE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAGnB;IAED,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAEpB;IAED,MAAM,IAAI,IAAI,CAEb;CACD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * One JSON value under one storage key: the read-with-fallback / write / remove trio that
3
+ * `PlayerStats`, `RunHistory` and `NewsSeenTracker` each hand-rolled, with slightly
4
+ * different falsy-vs-null edges per copy. The one here treats any missing or empty read as
5
+ * absent (the `raw ? ... : fallback` rule two of the three already followed); corrupt JSON
6
+ * still throws, the same as before, since silently inventing a value would hide a real bug.
7
+ *
8
+ * Internal: multi-key shapes (`Collection`'s prefix scan, `SaveSystem`'s slots) do not fit
9
+ * it and keep their own code.
10
+ */
11
+ export class StoredValue {
12
+ constructor(storage, key) {
13
+ this.storage = storage;
14
+ this.key = key;
15
+ }
16
+ /** the stored value, or `fallback` when nothing has been written yet */
17
+ read(fallback) {
18
+ const raw = this.storage.read(this.key);
19
+ return raw ? JSON.parse(raw) : fallback;
20
+ }
21
+ write(value) {
22
+ this.storage.write(this.key, JSON.stringify(value));
23
+ }
24
+ remove() {
25
+ this.storage.remove(this.key);
26
+ }
27
+ }
28
+ //# sourceMappingURL=StoredValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoredValue.js","sourceRoot":"","sources":["../../src/core/StoredValue.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,OAAO,WAAW;IAIvB,YAAY,OAAoB,EAAE,GAAW;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,IAAI,CAAC,QAAW;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAQ;QACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACD"}