@chaos-overlords/kernel 0.8.1 → 0.9.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 (60) hide show
  1. package/dist/domain/entities.d.ts +31 -1
  2. package/dist/domain/entities.d.ts.map +1 -1
  3. package/dist/domain/entities.js +9 -1
  4. package/dist/domain/entities.js.map +1 -1
  5. package/dist/domain/errors.d.ts.map +1 -1
  6. package/dist/domain/errors.js.map +1 -1
  7. package/dist/logic/canonical-json.d.ts.map +1 -1
  8. package/dist/logic/canonical-json.js.map +1 -1
  9. package/dist/logic/turn-logic.d.ts.map +1 -1
  10. package/dist/logic/turn-logic.js +2 -4
  11. package/dist/logic/turn-logic.js.map +1 -1
  12. package/dist/ports/storage.d.ts +130 -12
  13. package/dist/ports/storage.d.ts.map +1 -1
  14. package/dist/services/AuthService.d.ts.map +1 -1
  15. package/dist/services/AuthService.js.map +1 -1
  16. package/dist/services/EventPublisher.d.ts.map +1 -1
  17. package/dist/services/EventPublisher.js.map +1 -1
  18. package/dist/services/LobbyService.d.ts +40 -2
  19. package/dist/services/LobbyService.d.ts.map +1 -1
  20. package/dist/services/LobbyService.js +245 -91
  21. package/dist/services/LobbyService.js.map +1 -1
  22. package/dist/services/MatchQueryService.d.ts +12 -2
  23. package/dist/services/MatchQueryService.d.ts.map +1 -1
  24. package/dist/services/MatchQueryService.js +44 -24
  25. package/dist/services/MatchQueryService.js.map +1 -1
  26. package/dist/services/RateLimiter.d.ts +10 -0
  27. package/dist/services/RateLimiter.d.ts.map +1 -1
  28. package/dist/services/RateLimiter.js +48 -5
  29. package/dist/services/RateLimiter.js.map +1 -1
  30. package/dist/services/RetentionService.d.ts +15 -0
  31. package/dist/services/RetentionService.d.ts.map +1 -1
  32. package/dist/services/RetentionService.js +20 -23
  33. package/dist/services/RetentionService.js.map +1 -1
  34. package/dist/services/SnapshotService.d.ts +55 -9
  35. package/dist/services/SnapshotService.d.ts.map +1 -1
  36. package/dist/services/SnapshotService.js +120 -41
  37. package/dist/services/SnapshotService.js.map +1 -1
  38. package/dist/services/TurnService.d.ts +23 -7
  39. package/dist/services/TurnService.d.ts.map +1 -1
  40. package/dist/services/TurnService.js +217 -76
  41. package/dist/services/TurnService.js.map +1 -1
  42. package/dist/services/createKernel.js.map +1 -1
  43. package/dist/services/guards.d.ts +9 -0
  44. package/dist/services/guards.d.ts.map +1 -0
  45. package/dist/services/guards.js +22 -0
  46. package/dist/services/guards.js.map +1 -0
  47. package/dist/testing/CountingStorage.d.ts +25 -0
  48. package/dist/testing/CountingStorage.d.ts.map +1 -0
  49. package/dist/testing/CountingStorage.js +51 -0
  50. package/dist/testing/CountingStorage.js.map +1 -0
  51. package/dist/testing/InMemoryStorage.d.ts.map +1 -1
  52. package/dist/testing/InMemoryStorage.js +83 -17
  53. package/dist/testing/InMemoryStorage.js.map +1 -1
  54. package/dist/testing/fakes.d.ts.map +1 -1
  55. package/dist/testing/fakes.js.map +1 -1
  56. package/dist/testing/index.d.ts +1 -0
  57. package/dist/testing/index.d.ts.map +1 -1
  58. package/dist/testing/index.js +1 -0
  59. package/dist/testing/index.js.map +1 -1
  60. package/package.json +4 -4
@@ -0,0 +1,22 @@
1
+ import { isHumanParticipant, isInProgress, } from '../domain/entities';
2
+ import { ConflictError, ForbiddenError, NotFoundError } from '../domain/errors';
3
+ /** Refuse a match that has not started or has ended. A desync pause passes. */
4
+ export function requireInProgress(match) {
5
+ if (isInProgress(match))
6
+ return;
7
+ throw new ConflictError('The match is not in progress', { reason: 'match_not_running' });
8
+ }
9
+ /** Refuse a caller whose seat was left, kicked or handed to the computer. */
10
+ export function requireParticipant(player) {
11
+ if (isHumanParticipant(player))
12
+ return;
13
+ throw new ForbiddenError('You are no longer part of this match', { reason: 'not_active' });
14
+ }
15
+ /** One read of the turn row, refused as `unknown_turn` when the match has no such turn. */
16
+ export async function requireTurn(turns, matchId, number) {
17
+ const turn = await turns.get(matchId, number);
18
+ if (!turn)
19
+ throw new NotFoundError('No such turn', { reason: 'unknown_turn' });
20
+ return turn;
21
+ }
22
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/services/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,YAAY,GAIb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG/E,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAM;IAC/B,MAAM,IAAI,aAAa,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;AAC1F,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,kBAAkB,CAAC,MAAM,CAAC;QAAE,OAAM;IACtC,MAAM,IAAI,cAAc,CAAC,sCAAsC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;AAC5F,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAkC,EAClC,OAAe,EACf,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IAC9E,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { MultiplayerStorage } from '../ports/storage';
2
+ /**
3
+ * Counts the storage calls a code path makes, so a hot path can be pinned to a number.
4
+ *
5
+ * Nothing else notices when a request or a sweep pass grows an extra read: the behaviour is
6
+ * identical and only the cost moves, which is how a verdict came to page an entire event log and a
7
+ * response to a megabyte snapshot came to be parsed three times. A test that asserts the count of a
8
+ * seal, a submission or a sweep fails the moment somebody adds a query to it.
9
+ *
10
+ * It wraps any storage, so the same assertions hold against the in-memory reference and against a
11
+ * real repository: the methods are the port's, and counting them is counting statements.
12
+ */
13
+ export declare class CountingStorage {
14
+ readonly counts: Map<string, number>;
15
+ readonly storage: MultiplayerStorage;
16
+ constructor(inner: MultiplayerStorage);
17
+ /** Calls to one port method, e.g. `turns.getOrders`. */
18
+ get(method: string): number;
19
+ /** Every method called at least once, with its count, for a readable failure message. */
20
+ snapshot(): Record<string, number>;
21
+ total(): number;
22
+ reset(): void;
23
+ private wrap;
24
+ }
25
+ //# sourceMappingURL=CountingStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountingStorage.d.ts","sourceRoot":"","sources":["../../src/testing/CountingStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE1D;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,MAAM,sBAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IAEpC,YAAY,KAAK,EAAE,kBAAkB,EAOpC;IAED,wDAAwD;IACxD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1B;IAED,yFAAyF;IACzF,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjC;IAED,KAAK,IAAI,MAAM,CAEd;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,OAAO,CAAC,IAAI;CAeb"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Counts the storage calls a code path makes, so a hot path can be pinned to a number.
3
+ *
4
+ * Nothing else notices when a request or a sweep pass grows an extra read: the behaviour is
5
+ * identical and only the cost moves, which is how a verdict came to page an entire event log and a
6
+ * response to a megabyte snapshot came to be parsed three times. A test that asserts the count of a
7
+ * seal, a submission or a sweep fails the moment somebody adds a query to it.
8
+ *
9
+ * It wraps any storage, so the same assertions hold against the in-memory reference and against a
10
+ * real repository: the methods are the port's, and counting them is counting statements.
11
+ */
12
+ export class CountingStorage {
13
+ counts = new Map();
14
+ storage;
15
+ constructor(inner) {
16
+ this.storage = Object.fromEntries(Object.entries(inner).map(([name, repository]) => [
17
+ name,
18
+ this.wrap(name, repository),
19
+ ]));
20
+ }
21
+ /** Calls to one port method, e.g. `turns.getOrders`. */
22
+ get(method) {
23
+ return this.counts.get(method) ?? 0;
24
+ }
25
+ /** Every method called at least once, with its count, for a readable failure message. */
26
+ snapshot() {
27
+ return Object.fromEntries([...this.counts.entries()].sort(([a], [b]) => a.localeCompare(b)));
28
+ }
29
+ total() {
30
+ return [...this.counts.values()].reduce((sum, count) => sum + count, 0);
31
+ }
32
+ reset() {
33
+ this.counts.clear();
34
+ }
35
+ wrap(repository, inner) {
36
+ const wrapped = {};
37
+ for (const [method, value] of Object.entries(inner)) {
38
+ if (typeof value !== 'function') {
39
+ wrapped[method] = value;
40
+ continue;
41
+ }
42
+ const key = `${repository}.${method}`;
43
+ wrapped[method] = (...args) => {
44
+ this.counts.set(key, this.get(key) + 1);
45
+ return value.apply(inner, args);
46
+ };
47
+ }
48
+ return wrapped;
49
+ }
50
+ }
51
+ //# sourceMappingURL=CountingStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountingStorage.js","sourceRoot":"","sources":["../../src/testing/CountingStorage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,eAAe;IACjB,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAClC,OAAO,CAAoB;IAEpC,YAAY,KAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAqC,CAAC;SACvD,CAAC,CAC8B,CAAA;IACpC,CAAC;IAED,wDAAwD;IACxD,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,yFAAyF;IACzF,QAAQ;QACN,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9F,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAEO,IAAI,CAAC,UAAkB,EAAE,KAA8B;QAC7D,MAAM,OAAO,GAA4B,EAAE,CAAA;QAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;gBACvB,SAAQ;YACV,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,CAAA;YACrC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;gBACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,OAAQ,KAAsC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACnE,CAAC,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStorage.d.ts","sourceRoot":"","sources":["../../src/testing/InMemoryStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAc,MAAM,4BAA4B,CAAA;AAWvF,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACf,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2D;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,QAAQ,CAAC,OAAO,EAAE,eAAe,CA2FhC;IAED,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CA4DjC;IAED,QAAQ,CAAC,KAAK,EAAE,cAAc,CA4F7B;IAED,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CA6BrC;IAED,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAoCrC;IAED,QAAQ,CAAC,MAAM,EAAE,eAAe,CAc/B;IAED,qFAAqF;IACrF,OAAO,CAAC,WAAW;IA0BnB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAGnD"}
1
+ {"version":3,"file":"InMemoryStorage.d.ts","sourceRoot":"","sources":["../../src/testing/InMemoryStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,4BAA4B,CAAA;AAazE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACf,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2D;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,QAAQ,CAAC,OAAO,EAAE,eAAe,CA6GhC;IAED,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CA8DjC;IAED,QAAQ,CAAC,KAAK,EAAE,cAAc,CAiI7B;IAED,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAmCrC;IAED,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAoCrC;IAED,QAAQ,CAAC,MAAM,EAAE,eAAe,CAc/B;IAED,qFAAqF;IACrF,OAAO,CAAC,WAAW;IA0BnB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEjD;CACF"}
@@ -1,3 +1,4 @@
1
+ import { humanParticipants } from '../domain/entities';
1
2
  /**
2
3
  * A reference implementation of the storage ports with the same semantics as the SQL ones:
3
4
  * single-threaded JS makes every method atomic, and the uniqueness a database index would enforce
@@ -30,19 +31,25 @@ export class InMemoryStorage {
30
31
  for (const match of this.matchRows.values()) {
31
32
  if (!['lobby', 'running'].includes(match.status) || match.settings.visibility !== 'public')
32
33
  continue;
34
+ const humanCount = humanParticipants([...this.playerRows.values()].filter((player) => player.matchId === match.id)).length;
35
+ // A running match no human holds a seat in is paused and `joinRunning` refuses it, so it
36
+ // is not advertised either. See the SQL twins for why `takeoverPending` counts as human.
37
+ if (match.status === 'running' && humanCount === 0)
38
+ continue;
33
39
  const host = this.playerRows.get(match.hostPlayerId);
34
40
  lobbies.push({
35
41
  id: match.id,
36
42
  joinCode: match.joinCode,
37
43
  name: match.settings.name,
38
44
  hostDisplayName: host?.displayName ?? '',
39
- playerCount: match.seatCount,
45
+ playerCount: match.status === 'running' ? humanCount : match.seatCount,
40
46
  maxPlayers: match.settings.maxPlayers,
41
47
  passwordProtected: match.passwordHash !== null,
42
48
  status: match.status,
43
49
  settings: match.settings,
44
50
  availableSlots: [],
45
51
  availableSeatSummaries: [],
52
+ hasSnapshot: [...this.snapshotRows.values()].some((row) => row.matchId === match.id),
46
53
  createdAt: match.createdAt.toISOString(),
47
54
  });
48
55
  }
@@ -89,17 +96,24 @@ export class InMemoryStorage {
89
96
  this.deleteMatch(match.id);
90
97
  return doomed.length;
91
98
  },
92
- deleteAbandonedLive: async (before, limit) => {
99
+ deleteAbandonedLive: async (before, limit, requireEmptyRoster) => {
93
100
  const doomed = [...this.matchRows.values()]
94
101
  .filter((match) => (match.status === 'running' || match.status === 'desynced') &&
95
102
  match.updatedAt < before &&
96
- ![...this.playerRows.values()].some((player) => player.matchId === match.id && player.status === 'active'))
103
+ (!requireEmptyRoster ||
104
+ ![...this.playerRows.values()].some((player) => player.matchId === match.id && player.status === 'active')))
97
105
  .sort((a, b) => a.updatedAt.getTime() - b.updatedAt.getTime())
98
106
  .slice(0, limit);
99
107
  for (const match of doomed)
100
108
  this.deleteMatch(match.id);
101
109
  return doomed.length;
102
110
  },
111
+ listDesynced: async (limit, touchedSince) => [...this.matchRows.values()]
112
+ .filter((match) => match.status === 'desynced' &&
113
+ (touchedSince === null || match.updatedAt >= touchedSince))
114
+ .sort((a, b) => a.updatedAt.getTime() - b.updatedAt.getTime())
115
+ .slice(0, limit)
116
+ .map((match) => match.id),
103
117
  transition: async (matchId, from, patch) => {
104
118
  const match = this.matchRows.get(matchId);
105
119
  if (!match || !from.includes(match.status))
@@ -124,7 +138,11 @@ export class InMemoryStorage {
124
138
  const match = this.matchRows.get(player.matchId);
125
139
  if (match?.status !== 'running')
126
140
  return false;
127
- if ([...this.playerRows.values()].some((candidate) => candidate.matchId === player.matchId && candidate.slot === player.slot))
141
+ const seated = [...this.playerRows.values()].filter((candidate) => candidate.matchId === player.matchId);
142
+ if (seated.some((candidate) => candidate.slot === player.slot))
143
+ return false;
144
+ // Capacity is part of the claim, not a check the caller made a moment earlier.
145
+ if (seated.length >= match.settings.maxPlayers)
128
146
  return false;
129
147
  this.playerRows.set(player.id, { ...player });
130
148
  return true;
@@ -135,6 +153,9 @@ export class InMemoryStorage {
135
153
  .filter((player) => player.matchId === matchId)
136
154
  .sort((a, b) => a.slot - b.slot || a.joinOrder - b.joinOrder || a.id.localeCompare(b.id))
137
155
  .map((player) => ({ ...player })),
156
+ listSeats: async (matchIds) => [...this.playerRows.values()]
157
+ .filter((player) => matchIds.includes(player.matchId))
158
+ .map((player) => ({ matchId: player.matchId, slot: player.slot })),
138
159
  setStatus: async (playerId, status) => {
139
160
  const player = this.playerRows.get(playerId);
140
161
  if (player)
@@ -159,9 +180,7 @@ export class InMemoryStorage {
159
180
  player.slot = slot;
160
181
  }
161
182
  },
162
- delete: async (playerId) => {
163
- this.playerRows.delete(playerId);
164
- },
183
+ delete: async (playerId) => this.playerRows.delete(playerId),
165
184
  };
166
185
  turns = {
167
186
  open: async (turn, playerIds) => {
@@ -194,6 +213,18 @@ export class InMemoryStorage {
194
213
  return true;
195
214
  },
196
215
  getOrders: async (matchId, number, playerId) => clone(this.orderRows.get(orderKey(matchId, number, playerId))),
216
+ getOrderSummary: async (matchId, number, playerId) => {
217
+ const row = this.orderRows.get(orderKey(matchId, number, playerId));
218
+ if (!row)
219
+ return null;
220
+ return {
221
+ matchId: row.matchId,
222
+ turn: row.turn,
223
+ playerId: row.playerId,
224
+ ordersHash: row.ordersHash,
225
+ ready: row.ready,
226
+ };
227
+ },
197
228
  listOrders: async (matchId, number) => [...this.orderRows.values()]
198
229
  .filter((row) => row.matchId === matchId && row.turn === number)
199
230
  .sort((a, b) => a.playerId.localeCompare(b.playerId))
@@ -201,12 +232,12 @@ export class InMemoryStorage {
201
232
  listOrderSummaries: async (matchId, number) => [...this.orderRows.values()]
202
233
  .filter((row) => row.matchId === matchId && row.turn === number)
203
234
  .sort((a, b) => a.playerId.localeCompare(b.playerId))
204
- .map(({ matchId, turn, playerId, ordersHash, ready }) => ({
205
- matchId,
206
- turn,
207
- playerId,
208
- ordersHash,
209
- ready,
235
+ .map((row) => ({
236
+ matchId: row.matchId,
237
+ turn: row.turn,
238
+ playerId: row.playerId,
239
+ ordersHash: row.ordersHash,
240
+ ready: row.ready,
210
241
  })),
211
242
  transition: async (matchId, number, from, patch) => {
212
243
  const turn = this.turnRows.get(turnKey(matchId, number));
@@ -215,6 +246,23 @@ export class InMemoryStorage {
215
246
  Object.assign(turn, definedOnly(patch));
216
247
  return true;
217
248
  },
249
+ freezeSeal: async (matchId, number, frozen) => {
250
+ const turn = this.turnRows.get(turnKey(matchId, number));
251
+ // Conditional on what is being frozen, not on the status: two callers are in this branch
252
+ // for the whole window between the seal's swap and the successor opening.
253
+ if (!turn || turn.status === 'open' || turn.orderSetHash !== null)
254
+ return false;
255
+ turn.orderSetHash = frozen.orderSetHash;
256
+ turn.sealedSlots = structuredClone(frozen.sealedSlots);
257
+ return true;
258
+ },
259
+ claimDesyncAnnouncement: async (matchId, number, at) => {
260
+ const turn = this.turnRows.get(turnKey(matchId, number));
261
+ if (turn?.status !== 'desynced' || turn.desyncedAt !== null)
262
+ return false;
263
+ turn.desyncedAt = at;
264
+ return true;
265
+ },
218
266
  rescheduleDeadline: async (matchId, number, deadlineAt) => {
219
267
  const turn = this.turnRows.get(turnKey(matchId, number));
220
268
  if (turn?.status !== 'open')
@@ -223,7 +271,12 @@ export class InMemoryStorage {
223
271
  return true;
224
272
  },
225
273
  upsertReport: async (report) => {
274
+ const turn = this.turnRows.get(turnKey(report.matchId, report.turn));
275
+ // Conditional on the turn still awaiting a verdict, like the conditional insert in SQL.
276
+ if (turn?.status !== 'sealed' && turn?.status !== 'desynced')
277
+ return false;
226
278
  this.reportRows.set(orderKey(report.matchId, report.turn, report.playerId), { ...report });
279
+ return true;
227
280
  },
228
281
  listReports: async (matchId, number) => [...this.reportRows.values()]
229
282
  .filter((row) => row.matchId === matchId && row.turn === number)
@@ -235,15 +288,21 @@ export class InMemoryStorage {
235
288
  .sort((a, b) => a.number - b.number)
236
289
  .map((turn) => ({ ...turn })),
237
290
  listExpiredOpen: async (now, limit) => [...this.turnRows.values()]
238
- .filter((turn) => turn.status === 'open' && turn.deadlineAt !== null && turn.deadlineAt <= now)
291
+ .filter((turn) => turn.status === 'open' &&
292
+ turn.deadlineAt !== null &&
293
+ turn.deadlineAt <= now &&
294
+ // Only a running match can seal; a desynced one holds its expired deadline for the
295
+ // whole pause and would sit at the head of every page.
296
+ this.matchRows.get(turn.matchId)?.status === 'running')
239
297
  .sort((a, b) => (a.deadlineAt?.getTime() ?? 0) - (b.deadlineAt?.getTime() ?? 0))
240
298
  .slice(0, limit)
241
299
  .map((turn) => ({ matchId: turn.matchId, number: turn.number })),
242
300
  // Driven from the matches, so a current turn with no row at all counts as stalled too.
243
- listStalledSeals: async (limit) => [...this.matchRows.values()]
301
+ listStalledSeals: async (limit, touchedSince) => [...this.matchRows.values()]
244
302
  .filter((match) => match.status === 'running' || match.status === 'desynced')
303
+ .filter((match) => touchedSince === null || match.updatedAt >= touchedSince)
245
304
  .filter((match) => this.turnRows.get(turnKey(match.id, match.currentTurn))?.status !== 'open')
246
- .sort((a, b) => a.id.localeCompare(b.id))
305
+ .sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime() || a.id.localeCompare(b.id))
247
306
  .slice(0, limit)
248
307
  .map((match) => ({ matchId: match.id, number: match.currentTurn })),
249
308
  };
@@ -252,6 +311,13 @@ export class InMemoryStorage {
252
311
  this.snapshotRows.set(turnKey(snapshot.matchId, snapshot.turn), { ...snapshot });
253
312
  },
254
313
  get: async (matchId, turn) => clone(this.snapshotRows.get(turnKey(matchId, turn))),
314
+ getSummary: async (matchId, turn) => {
315
+ const row = this.snapshotRows.get(turnKey(matchId, turn));
316
+ if (!row)
317
+ return null;
318
+ const { body: _body, ...summary } = row;
319
+ return structuredClone(summary);
320
+ },
255
321
  prune: async (matchId, keep) => {
256
322
  const turns = [...this.snapshotRows.values()]
257
323
  .filter((snapshot) => snapshot.matchId === matchId)
@@ -297,7 +363,7 @@ export class InMemoryStorage {
297
363
  .filter((prompt) => prompt.matchId === matchId)
298
364
  .map((prompt) => prompt.playerId)
299
365
  .sort(),
300
- castVote: async (matchId, targetPlayerId, voterPlayerId, decision, castAt) => {
366
+ castVote: async ({ matchId, targetPlayerId, voterPlayerId, decision, castAt }) => {
301
367
  if (!this.promptRows.has(promptKey(matchId, targetPlayerId)))
302
368
  return false;
303
369
  this.voteRows.set(`${promptKey(matchId, targetPlayerId)}:${voterPlayerId}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStorage.js","sourceRoot":"","sources":["../../src/testing/InMemoryStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryStorage.js","sourceRoot":"","sources":["../../src/testing/InMemoryStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAsBtD;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IACT,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAA;IACpC,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAA;IAClC,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;IACzC,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC1C,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC1C,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAA;IAC/C,UAAU,GAAG,IAAI,GAAG,EAAiD,CAAA;IACrE,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;IAElD,OAAO,GAAoB;QAClC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAA;YACzF,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAA;YACvD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;YAC1C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAChC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAClF,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,OAAO,GAAqB,EAAE,CAAA;YACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,KAAK,QAAQ;oBACxF,SAAQ;gBACV,MAAM,UAAU,GAAG,iBAAiB,CAClC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAC9E,CAAC,MAAM,CAAA;gBACR,yFAAyF;gBACzF,yFAAyF;gBACzF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,KAAK,CAAC;oBAAE,SAAQ;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBACpD,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;oBACzB,eAAe,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE;oBACxC,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;oBACtE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;oBACrC,iBAAiB,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI;oBAC9C,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,cAAc,EAAE,EAAE;oBAClB,sBAAsB,EAAE,EAAE;oBAC1B,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;oBACpF,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;iBACzC,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,OAAO;iBACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAClF,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,KAAK,EAAE,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC9E,OAAO,IAAI,CAAA;YACb,CAAC;YACD,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;YACpB,KAAK,CAAC,WAAW,IAAI,CAAC,CAAA;YACtB,OAAO,KAAK,CAAC,WAAW,GAAG,CAAC,CAAA;QAC9B,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;gBAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;QACxD,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,KAAK,EAAE,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAA;YACpF,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;YAC1C,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;YACpE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,KAAK,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,EAAE,MAAM,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAA;YAC7E,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAA;YACnF,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;iBACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;iBAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;iBAC7D,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAClB,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACtD,OAAO,MAAM,CAAC,MAAM,CAAA;QACtB,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE;YAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;iBACxC,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;gBAC3D,KAAK,CAAC,SAAS,GAAG,MAAM;gBACxB,CAAC,CAAC,kBAAkB;oBAClB,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACjC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CACtE,CAAC,CACP;iBACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;iBAC7D,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAClB,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACtD,OAAO,MAAM,CAAC,MAAM,CAAA;QACtB,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAC1C,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACzB,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,MAAM,KAAK,UAAU;YAC3B,CAAC,YAAY,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,YAAY,CAAC,CAC7D;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC7D,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAA;YACxD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YACxC,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;IAEQ,OAAO,GAAqB;QACnC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC9C,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CACzE,CAAA;YACD,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,8BAA8B,CAAC,CAAA;YACpE,CAAC;YACD,mFAAmF;YACnF,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAA;YACxE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAChD,IAAI,KAAK,EAAE,MAAM,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CACpD,CAAA;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC5E,+EAA+E;YAC/E,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAA;YAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjD,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAClC,KAAK,CACH,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CACxE,CACF;QACH,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC7B,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACxF,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACrC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC5B,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACrD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACpC,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1D,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,MAAM;gBAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAA;QACrC,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YACjC,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC5C,IAAI,MAAM;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;YAChC,CAAC;QACH,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC7D,CAAA;IAEQ,KAAK,GAAmB;QAC/B,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YACtE,IAAI,OAAO;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;YAC/E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACzD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAQ;gBACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;oBACtB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,IAAI,CAAC,MAAM;oBACjB,QAAQ;oBACR,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAClF,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;YACnE,IAAI,IAAI,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAA;YACjD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAC7C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YACrB,OAAO;gBACL,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAA;QACH,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CACpC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC/B,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAC5C,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC;QACP,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAA;YACtD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,yFAAyF;YACzF,0EAA0E;YAC1E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;YAC/E,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;YACvC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YACtD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,IAAI,IAAI,EAAE,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;YACzE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,IAAI,IAAI,EAAE,MAAM,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAA;YACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YACpE,wFAAwF;YACxF,IAAI,IAAI,EAAE,MAAM,KAAK,QAAQ,IAAI,IAAI,EAAE,MAAM,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAA;YAC1E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;YAC1F,OAAO,IAAI,CAAA;QACb,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC/B,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC/B,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aACxB,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,OAAO,KAAK,OAAO;YACvB,CAAC,QAAQ,EAAE,UAAU,CAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CACjE;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;aACnC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACjC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CACpC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aACxB,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,MAAM;YACtB,IAAI,CAAC,UAAU,KAAK,IAAI;YACxB,IAAI,CAAC,UAAU,IAAI,GAAG;YACtB,mFAAmF;YACnF,uDAAuD;YACvD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,SAAS,CACzD;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aAC/E,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,uFAAuF;QACvF,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAC9C,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;aAC5E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,YAAY,CAAC;aAC3E,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CACtF;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACzF,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;KACxE,CAAA;IAEQ,SAAS,GAAuB;QACvC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAClF,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;YACzD,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YACrB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAA;YACvC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;iBAC1C,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC;iBAClD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;iBAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACxB,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACjC,KAAK,MAAM,IAAI,IAAI,OAAO;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;YAC5E,OAAO,OAAO,CAAC,MAAM,CAAA;QACvB,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC3B,KAAK,CACH,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACtC;QACH,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;iBAC3C,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACrC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YACxB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YAC1C,OAAO,eAAe,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;KACF,CAAA;IAEQ,SAAS,GAAuB;QACvC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACxC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ;oBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC7F,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAChC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;QAC5E,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACjC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;aAC9C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aAChC,IAAI,EAAE;QACX,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YAC/E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,aAAa,EAAE,EAAE;gBAC1E,OAAO;gBACP,cAAc;gBACd,aAAa;gBACb,QAAQ;gBACR,MAAM;aACP,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAC3C,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC;aACpF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;aAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;KAClC,CAAA;IAEQ,MAAM,GAAoB;QACjC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACnD,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAoB,CAAA;YACjF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACtC,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;QACzB,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAC5C,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;aACvC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;KAC1E,CAAA;IAED,qFAAqF;IAC7E,WAAW,CAAC,OAAe;QACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IAC5C,CAAC;CACF;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,GAAG,OAAO,IAAI,MAAM,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,QAAgB;IAClD,OAAO,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAA;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB;IACjE,OAAO,GAAG,OAAO,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAA;AAC3C,CAAC;AAED,SAAS,KAAK,CAAI,KAAoB;IACpC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,WAAW,CAAmB,KAAQ;IAC7C,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAG,GAA+B,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACxE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fakes.d.ts","sourceRoot":"","sources":["../../src/testing/fakes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,YAAY,EACb,MAAM,kBAAkB,CAAA;AAEzB,qCAAqC;AACrC,qBAAa,WAAY,YAAW,KAAK;IAC3B,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,IAA2C;IACxE,GAAG,IAAI,IAAI;IAGX,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAGzB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAGtB;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,CAAK;IAChC,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD;AAED,wGAAwG;AACxG,qBAAa,qBAAsB,YAAW,YAAY;IACxD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAK;IAC5D,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC,CAAK;IACxE,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrF;AAED,qBAAa,eAAgB,YAAW,MAAM;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;KAC5C,CAAC,CAAK;IACP,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG1D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAGzD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAGzD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG3D"}
1
+ {"version":3,"file":"fakes.d.ts","sourceRoot":"","sources":["../../src/testing/fakes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,YAAY,EACb,MAAM,kBAAkB,CAAA;AAEzB,qCAAqC;AACrC,qBAAa,WAAY,YAAW,KAAK;IAC3B,OAAO,CAAC,OAAO;IAA3B,YAAoB,OAAO,GAAE,IAA2C,EAAI;IAC5E,GAAG,IAAI,IAAI,CAEV;IACD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExB;IACD,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEpB;CACF;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,CAAK;IAChC,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;CACF;AAED,wGAAwG;AACxG,qBAAa,qBAAsB,YAAW,YAAY;IACxD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAK;IAC5D,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;CACF;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC,CAAK;IACxE,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF;CACF;AAED,qBAAa,eAAgB,YAAW,MAAM;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;KAC5C,CAAC,CAAK;IACP,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEzD;IACD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAExD;IACD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAExD;IACD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEzD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"fakes.js","sourceRoot":"","sources":["../../src/testing/fakes.ts"],"names":[],"mappings":"AASA,qCAAqC;AACrC,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,UAAgB,IAAI,IAAI,CAAC,0BAA0B,CAAC;QAApD,YAAO,GAAP,OAAO,CAA6C;IAAG,CAAC;IAC5E,GAAG;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,GAAG,CAAC,IAAU;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,iBAAiB;IACnB,MAAM,GAAqB,EAAE,CAAA;IACtC,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;CACF;AAED,wGAAwG;AACxG,MAAM,OAAO,qBAAqB;IACvB,MAAM,GAAiD,EAAE,CAAA;IAClE,KAAK,CAAC,KAAK,CAAC,KAA4C;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IACpB,SAAS,GAA0D,EAAE,CAAA;IAC9E,KAAK,CAAC,QAAQ,CAAC,KAAqD;QAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IACjB,KAAK,GAIT,EAAE,CAAA;IACP,KAAK,CAAC,GAAW,EAAE,MAAgC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,MAAgC;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,MAAgC;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,KAAK,CAAC,GAAW,EAAE,MAAgC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"fakes.js","sourceRoot":"","sources":["../../src/testing/fakes.ts"],"names":[],"mappings":"AASA,qCAAqC;AACrC,MAAM,OAAO,WAAW;IACF,OAAO;IAA3B,YAAoB,OAAO,GAAS,IAAI,IAAI,CAAC,0BAA0B,CAAC;uBAApD,OAAO;IAAgD,CAAC;IAC5E,GAAG;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,CAAC,EAAU;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,GAAG,CAAC,IAAU;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,iBAAiB;IACnB,MAAM,GAAqB,EAAE,CAAA;IACtC,KAAK,CAAC,MAAM,CAAC,KAAqB;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;CACF;AAED,wGAAwG;AACxG,MAAM,OAAO,qBAAqB;IACvB,MAAM,GAAiD,EAAE,CAAA;IAClE,KAAK,CAAC,KAAK,CAAC,KAA4C;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IACpB,SAAS,GAA0D,EAAE,CAAA;IAC9E,KAAK,CAAC,QAAQ,CAAC,KAAqD;QAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IACjB,KAAK,GAIT,EAAE,CAAA;IACP,KAAK,CAAC,GAAW,EAAE,MAAgC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,MAAgC;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,MAAgC;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,KAAK,CAAC,GAAW,EAAE,MAAgC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAClD,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
1
  export * from './fakes';
2
2
  export * from './InMemoryStorage';
3
+ export * from './CountingStorage';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export * from './fakes';
2
2
  export * from './InMemoryStorage';
3
+ export * from './CountingStorage';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chaos-overlords/kernel",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "Runtime-neutral domain of the multiplayer server: entities, ports, pure turn logic and the lobby/turn/snapshot services.",
5
5
  "keywords": [
6
6
  "chaos-overlords",
@@ -52,11 +52,11 @@
52
52
  "provenance": true
53
53
  },
54
54
  "dependencies": {
55
- "@chaos-overlords/contracts": "0.8.1"
55
+ "@chaos-overlords/contracts": "0.9.0"
56
56
  },
57
57
  "devDependencies": {
58
- "typescript": "^5.9.3",
59
- "valibot": "^1.4.0",
58
+ "typescript": "^7.0.2",
59
+ "valibot": "^1.5.0",
60
60
  "vitest": "^4.1.11"
61
61
  },
62
62
  "scripts": {