@flayerlabs/gamemode-client 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.
- package/dist/embed.d.ts +11 -1
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +19 -0
- package/dist/embed.js.map +1 -1
- package/dist/host.d.ts +18 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +11 -0
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +45 -10
- package/dist/live.js.map +1 -1
- package/package.json +2 -2
- package/src/embed.ts +29 -2
- package/src/host.ts +31 -0
- package/src/index.ts +30 -3
- package/src/live.ts +62 -14
package/dist/embed.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Host } from './live.js';
|
|
2
|
+
import type { MarketState, Readable } from './index.js';
|
|
2
3
|
import { type EmbedContext } from '@flayerlabs/gamemode-spec/frame';
|
|
3
4
|
/**
|
|
4
5
|
* Where frames come from and go to. The default is the real window; tests inject a pair of these
|
|
@@ -20,6 +21,15 @@ export interface ConnectHostOptions {
|
|
|
20
21
|
export interface EmbeddedHost {
|
|
21
22
|
host: Host;
|
|
22
23
|
context: EmbedContext;
|
|
24
|
+
/**
|
|
25
|
+
* The coin's market as the embedding page sees it, for `joinEconomy`'s `platform.market`.
|
|
26
|
+
*
|
|
27
|
+
* Always present, because "no market yet" is a state a chart can render — it starts
|
|
28
|
+
* `unavailable` and becomes `live` if and when the page pushes one. A page that never sends a
|
|
29
|
+
* `gm:market` frame leaves it `unavailable` forever, which is the honest answer and the one a
|
|
30
|
+
* game should draw an empty chart for rather than waiting on.
|
|
31
|
+
*/
|
|
32
|
+
market: Readable<MarketState>;
|
|
23
33
|
dispose(): void;
|
|
24
34
|
}
|
|
25
35
|
/**
|
package/dist/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAwB,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAa,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAIL,KAAK,YAAY,EAGlB,MAAM,iCAAiC,CAAC;AAuBzC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACtF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,2FAA2F;IAC3F,YAAY,IAAI,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;;;OAOG;IACH,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB;AAqCD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA8IhG"}
|
package/dist/embed.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { marketFrom } from './live.js';
|
|
2
|
+
import { Signal } from './signal.js';
|
|
1
3
|
import { FRAME_PROTOCOL_VERSION, hostFrameFrom, } from '@flayerlabs/gamemode-spec/frame';
|
|
2
4
|
/**
|
|
3
5
|
* The game's end of the frame protocol: a {@link Host} reconstructed over `postMessage`.
|
|
@@ -61,6 +63,12 @@ export async function connectHost(options = {}) {
|
|
|
61
63
|
const parent = endpoint.parentSource();
|
|
62
64
|
if (parent === null)
|
|
63
65
|
return null;
|
|
66
|
+
const marketSignal = new Signal({
|
|
67
|
+
status: 'unavailable',
|
|
68
|
+
prices: [],
|
|
69
|
+
trades: [],
|
|
70
|
+
marketCapUsd: null,
|
|
71
|
+
});
|
|
64
72
|
const pending = new Map();
|
|
65
73
|
let unlisten = () => { };
|
|
66
74
|
let disposed = false;
|
|
@@ -95,6 +103,12 @@ export async function connectHost(options = {}) {
|
|
|
95
103
|
resolveContext(frame.context);
|
|
96
104
|
return;
|
|
97
105
|
}
|
|
106
|
+
if (frame.type === 'gm:market') {
|
|
107
|
+
const market = marketFrom(frame.market);
|
|
108
|
+
if (market)
|
|
109
|
+
marketSignal.set(market);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
98
112
|
if (frame.type === 'gm:progress') {
|
|
99
113
|
const request = pending.get(frame.id);
|
|
100
114
|
if (request?.kind === 'buy') {
|
|
@@ -168,10 +182,15 @@ export async function connectHost(options = {}) {
|
|
|
168
182
|
return {
|
|
169
183
|
host,
|
|
170
184
|
context,
|
|
185
|
+
market: {
|
|
186
|
+
current: () => marketSignal.current(),
|
|
187
|
+
subscribe: (listener) => marketSignal.subscribe(listener),
|
|
188
|
+
},
|
|
171
189
|
dispose() {
|
|
172
190
|
disposed = true;
|
|
173
191
|
unlisten();
|
|
174
192
|
pending.clear();
|
|
193
|
+
marketSignal.clear();
|
|
175
194
|
},
|
|
176
195
|
};
|
|
177
196
|
}
|
package/dist/embed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"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"}
|
package/dist/host.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Host } from './live.js';
|
|
2
2
|
import { type EmbedContext, type HostErrorCode } from '@flayerlabs/gamemode-spec/frame';
|
|
3
|
+
import type { WireMarketState } from '@flayerlabs/gamemode-spec/live';
|
|
3
4
|
/**
|
|
4
5
|
* The page's end of the frame protocol: service a game iframe's Host calls.
|
|
5
6
|
*
|
|
@@ -31,6 +32,18 @@ export interface PostTarget {
|
|
|
31
32
|
export interface HostListenSource {
|
|
32
33
|
listen(handler: (data: unknown, origin: string, source: unknown) => void): () => void;
|
|
33
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* The page's live market, if it has one to share.
|
|
37
|
+
*
|
|
38
|
+
* Structurally a `Signal` (and anything else with these two methods), so a page that already
|
|
39
|
+
* keeps its chart in an observable hands the same one over rather than building a second.
|
|
40
|
+
* `current()` may answer null: "I have no market yet" is not the same claim as an `unavailable`
|
|
41
|
+
* market, and a page should not have to invent one to attach a host.
|
|
42
|
+
*/
|
|
43
|
+
export interface MarketSource {
|
|
44
|
+
current(): WireMarketState | null;
|
|
45
|
+
subscribe(listener: (market: WireMarketState) => void): () => void;
|
|
46
|
+
}
|
|
34
47
|
export interface AttachGameHostOptions {
|
|
35
48
|
/** The iframe element (or anything with its `contentWindow`). Read at send time, not attach time. */
|
|
36
49
|
frame: {
|
|
@@ -41,6 +54,11 @@ export interface AttachGameHostOptions {
|
|
|
41
54
|
/** What the game needs to join its round. A function is read fresh per send. */
|
|
42
55
|
context: EmbedContext | (() => EmbedContext);
|
|
43
56
|
host: Host;
|
|
57
|
+
/**
|
|
58
|
+
* Where the coin's market comes from. Optional — a page with no chart of its own attaches
|
|
59
|
+
* exactly as before, and the game's market simply stays `unavailable`.
|
|
60
|
+
*/
|
|
61
|
+
market?: MarketSource;
|
|
44
62
|
endpoint?: HostListenSource;
|
|
45
63
|
}
|
|
46
64
|
/** Attach the page's Host to a game iframe. Returns detach; after it, nothing is ever posted again. */
|
package/dist/host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAElB,IAAI,EAAE,aAAa;gBAAnB,IAAI,EAAE,aAAa,EACnC,OAAO,EAAE,MAAM;CAKlB;AAED,gGAAgG;AAChG,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D;AAED,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,eAAe,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,qBAAqB;IACpC,qGAAqG;IACrG,KAAK,EAAE;QAAE,aAAa,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,CAAC;IAC5C,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,OAAO,EAAE,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAiBD,uGAAuG;AACvG,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,IAAI,CAiHzE"}
|
package/dist/host.js
CHANGED
|
@@ -54,6 +54,7 @@ export function attachGameHost(options) {
|
|
|
54
54
|
const context = typeof options.context === 'function' ? options.context() : options.context;
|
|
55
55
|
send({ v: FRAME_PROTOCOL_VERSION, type: 'gm:context', context });
|
|
56
56
|
};
|
|
57
|
+
const sendMarket = (market) => send({ v: FRAME_PROTOCOL_VERSION, type: 'gm:market', market });
|
|
57
58
|
const unlisten = endpoint.listen((data, origin, source) => {
|
|
58
59
|
// Both checks, always: origin says who wrote the frame, source says which window sent it.
|
|
59
60
|
// This listener shares the page's window with every other frame the page hosts.
|
|
@@ -64,6 +65,12 @@ export function attachGameHost(options) {
|
|
|
64
65
|
return;
|
|
65
66
|
if (parsed.type === 'gm:hello') {
|
|
66
67
|
sendContext();
|
|
68
|
+
// A hello means the game has only just started listening, so the market it missed is
|
|
69
|
+
// re-sent alongside the context. Cheap, and it spares the game an empty first chart while
|
|
70
|
+
// it waits for whatever moves the price next.
|
|
71
|
+
const current = options.market?.current();
|
|
72
|
+
if (current)
|
|
73
|
+
sendMarket(current);
|
|
67
74
|
return;
|
|
68
75
|
}
|
|
69
76
|
const { id, call } = parsed;
|
|
@@ -134,8 +141,12 @@ export function attachGameHost(options) {
|
|
|
134
141
|
});
|
|
135
142
|
// Unprompted, because the frame may have said hello before this listener existed.
|
|
136
143
|
sendContext();
|
|
144
|
+
// Subscribing delivers the current value immediately, so this both seeds the game and keeps it
|
|
145
|
+
// current; `send` is a no-op once detached, so a late tick cannot reach a frame we let go of.
|
|
146
|
+
const unsubscribeMarket = options.market?.subscribe(sendMarket) ?? (() => { });
|
|
137
147
|
return () => {
|
|
138
148
|
detached = true;
|
|
149
|
+
unsubscribeMarket();
|
|
139
150
|
unlisten();
|
|
140
151
|
};
|
|
141
152
|
}
|
package/dist/host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,aAAa,GAId,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,aAAa,GAId,MAAM,iCAAiC,CAAC;AAGzC;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAElB;IADlB,YACkB,IAAmB,EACnC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAe;QAInC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAyCD,SAAS,kBAAkB;IACzB,OAAO;QACL,MAAM,CAAC,OAAO;YACZ,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3F,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,KAAc,EAA4C,EAAE,CAC7E,KAAK,YAAY,WAAW;IAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;IAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;AAEnG,uGAAuG;AACvG,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;IAC1D,gGAAgG;IAChG,4FAA4F;IAC5F,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,IAAI,GAAG,CAAC,OAAwB,EAAQ,EAAE;QAC9C,IAAI,QAAQ;YAAE,OAAO;QACrB,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5F,IAAI,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,MAAuB,EAAQ,EAAE,CACnD,IAAI,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACxD,0FAA0F;QAC1F,gFAAgF;QAChF,IAAI,QAAQ,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,KAAK,CAAC,aAAa;YAAE,OAAO;QAChF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,WAAW,EAAE,CAAC;YACd,qFAAqF;YACrF,0FAA0F;YAC1F,8CAA8C;YAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1C,IAAI,OAAO;gBAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC5B,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC1G,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClD,IAAI,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC3G,OAAO;gBACT,CAAC;gBACD,qFAAqF;gBACrF,uFAAuF;gBACvF,wEAAwE;gBACxE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;gBACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,IAAI,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC;oBACjJ,OAAO;gBACT,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;oBAC/E,IAAI,CAAC;wBACH,CAAC,EAAE,sBAAsB;wBACzB,IAAI,EAAE,aAAa;wBACnB,EAAE;wBACF,QAAQ,EACN,QAAQ,CAAC,eAAe,KAAK,SAAS;4BACpC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE;4BACjE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;qBAC3B,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACH,CAAC,EAAE,sBAAsB;wBACzB,IAAI,EAAE,QAAQ;wBACd,EAAE;wBACF,EAAE,EAAE,IAAI;wBACR,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE;qBAC9E,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC3C,IAAI,CAAC;wBACH,CAAC,EAAE,sBAAsB;wBACzB,IAAI,EAAE,QAAQ;wBACd,EAAE;wBACF,EAAE,EAAE,IAAI;wBACR,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE;qBAC/D,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,oFAAoF;oBACpF,kDAAkD;oBAClD,IAAI,CAAC;wBACH,CAAC,EAAE,sBAAsB;wBACzB,IAAI,EAAE,QAAQ;wBACd,EAAE;wBACF,EAAE,EAAE,IAAI;wBACR,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE;qBACrF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAClF,WAAW,EAAE,CAAC;IACd,+FAA+F;IAC/F,8FAA8F;IAC9F,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE9E,OAAO,GAAG,EAAE;QACV,QAAQ,GAAG,IAAI,CAAC;QAChB,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -102,6 +102,7 @@ export type BuyProgress = {
|
|
|
102
102
|
} | {
|
|
103
103
|
state: 'failed';
|
|
104
104
|
reason: BuyFailure;
|
|
105
|
+
refuse?: string;
|
|
105
106
|
};
|
|
106
107
|
export type BuyResult = {
|
|
107
108
|
bought: true;
|
|
@@ -109,6 +110,28 @@ export type BuyResult = {
|
|
|
109
110
|
} | {
|
|
110
111
|
bought: false;
|
|
111
112
|
reason: BuyFailure;
|
|
113
|
+
/**
|
|
114
|
+
* The gate's own refusal code, when a gate is what refused — `claim.nothing_available`,
|
|
115
|
+
* `claim.request_mismatch` and so on.
|
|
116
|
+
*
|
|
117
|
+
* Present because {@link BuyFailure} is deliberately a short list a game can render at a
|
|
118
|
+
* player, and the gate has four times as many ways to say no. Everything the list does not
|
|
119
|
+
* name arrives as `try-again`, which is honest to a player and useless to whoever has to
|
|
120
|
+
* work out why — usually the developer running that gate, who can now log this and read
|
|
121
|
+
* the answer instead of guessing.
|
|
122
|
+
*
|
|
123
|
+
* Never render it. It is a diagnostic: not written for players, and free to change.
|
|
124
|
+
*/
|
|
125
|
+
refuse?: string;
|
|
126
|
+
/**
|
|
127
|
+
* The embedding page's own diagnostic, when the page is what failed — which branch fired,
|
|
128
|
+
* and the transaction it had submitted if it got that far.
|
|
129
|
+
*
|
|
130
|
+
* The counterpart to {@link refuse}: one names a gate's refusal, the other a page's. Between
|
|
131
|
+
* them a `try-again` in a log stops being a guessing game. Never render either.
|
|
132
|
+
*/
|
|
133
|
+
detail?: string;
|
|
134
|
+
transactionHash?: string;
|
|
112
135
|
};
|
|
113
136
|
export interface Social {
|
|
114
137
|
react(id: string): void;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAiBrC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAiBrC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA6KxD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAsE,EACtE,OAA4B;IAE5B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EACT,cAAc,EAEd,WAAW,EAEX,IAAI,EAIL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAML,KAAK,aAAa,EAElB,KAAK,WAAW,EAIhB,KAAK,UAAU,EAIhB,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,IAAI;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtD,iGAAiG;IACjG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IACtE,wFAAwF;IACxF,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,2FAA2F;IAC3F,GAAG,CACD,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,EAC3C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,uFAAuF;AACvF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,iGAAiG;IACjG,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAMD,wBAAsB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAC3D,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAE/C;AAeD,kFAAkF;AAClF,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAe5E;
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EACT,cAAc,EAEd,WAAW,EAEX,IAAI,EAIL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAML,KAAK,aAAa,EAElB,KAAK,WAAW,EAIhB,KAAK,UAAU,EAIhB,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,IAAI;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtD,iGAAiG;IACjG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IACtE,wFAAwF;IACxF,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,2FAA2F;IAC3F,GAAG,CACD,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,EAC3C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,uFAAuF;AACvF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,iGAAiG;IACjG,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAMD,wBAAsB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAC3D,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAE/C;AAeD,kFAAkF;AAClF,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAe5E;AAieD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAmC3D;AAqBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CA6D7D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEpE;AAgBD,uFAAuF;AACvF,qBAAa,QAAS,SAAQ,KAAK;;CAKlC"}
|
package/dist/live.js
CHANGED
|
@@ -314,8 +314,9 @@ class LiveRoom {
|
|
|
314
314
|
});
|
|
315
315
|
}
|
|
316
316
|
catch (error) {
|
|
317
|
-
if (error instanceof GateRefused)
|
|
318
|
-
return this.failBuy(attempt, claimFailure(error.refuse));
|
|
317
|
+
if (error instanceof GateRefused) {
|
|
318
|
+
return this.failBuy(attempt, claimFailure(error.refuse), { refuse: error.refuse });
|
|
319
|
+
}
|
|
319
320
|
return this.failBuy(attempt, 'try-again');
|
|
320
321
|
}
|
|
321
322
|
let spendWei;
|
|
@@ -362,9 +363,13 @@ class LiveRoom {
|
|
|
362
363
|
return this.failBuy(attempt, 'try-again');
|
|
363
364
|
}
|
|
364
365
|
if ('failed' in result) {
|
|
365
|
-
if (result.failed.bought)
|
|
366
|
-
return this.failBuy(attempt, 'try-again');
|
|
367
|
-
|
|
366
|
+
if (result.failed.bought) {
|
|
367
|
+
return this.failBuy(attempt, 'try-again', { detail: 'page-reported-success-as-failure' });
|
|
368
|
+
}
|
|
369
|
+
return this.failBuy(attempt, result.failed.reason, {
|
|
370
|
+
detail: result.failed.detail,
|
|
371
|
+
transactionHash: result.failed.transactionHash ?? transactionHash,
|
|
372
|
+
});
|
|
368
373
|
}
|
|
369
374
|
if (this.activeBuy !== attempt)
|
|
370
375
|
return { bought: false, reason: 'try-again' };
|
|
@@ -406,12 +411,23 @@ class LiveRoom {
|
|
|
406
411
|
this.balanceRevision += 1;
|
|
407
412
|
this.economySignal.set({ ...balance, buy: this.economySignal.current().buy });
|
|
408
413
|
}
|
|
409
|
-
|
|
414
|
+
/**
|
|
415
|
+
* Fail a buy, keeping whatever diagnostic the refusing party supplied.
|
|
416
|
+
*
|
|
417
|
+
* `reason` is the player's answer; the rest is for the developer reading a log afterwards — a
|
|
418
|
+
* gate's `refuse` code, or an embedding page's `detail` and the transaction it had submitted.
|
|
419
|
+
* Carried rather than dropped because `try-again` alone has cost more than one debugging day.
|
|
420
|
+
*/
|
|
421
|
+
failBuy(attempt, reason,
|
|
422
|
+
// `undefined` is admitted explicitly (the package runs exactOptionalPropertyTypes) so a
|
|
423
|
+
// caller can forward a field it may not have without checking first; they are filtered below.
|
|
424
|
+
diagnostic = {}) {
|
|
425
|
+
const named = Object.fromEntries(Object.entries(diagnostic).filter(([, value]) => value !== undefined));
|
|
410
426
|
if (this.activeBuy === attempt) {
|
|
411
427
|
const current = this.economySignal.current();
|
|
412
|
-
this.economySignal.set({ ...current, buy: { state: 'failed', reason } });
|
|
428
|
+
this.economySignal.set({ ...current, buy: { state: 'failed', reason, ...named } });
|
|
413
429
|
}
|
|
414
|
-
return { bought: false, reason };
|
|
430
|
+
return { bought: false, reason, ...named };
|
|
415
431
|
}
|
|
416
432
|
nextRequestId() {
|
|
417
433
|
this.claimSequence += 1;
|
|
@@ -553,11 +569,22 @@ export function marketFrom(input) {
|
|
|
553
569
|
value.prices.length > 1_000 ||
|
|
554
570
|
value.trades.length > 500)
|
|
555
571
|
return null;
|
|
556
|
-
const
|
|
572
|
+
const usable = (figure, floor) => typeof figure === 'number' && Number.isFinite(figure) && figure >= floor;
|
|
573
|
+
const prices = value.prices
|
|
574
|
+
.filter((price) => typeof price?.at === 'number' &&
|
|
557
575
|
Number.isFinite(price.at) &&
|
|
558
576
|
typeof price.priceEth === 'number' &&
|
|
559
577
|
Number.isFinite(price.priceEth) &&
|
|
560
|
-
price.priceEth > 0)
|
|
578
|
+
price.priceEth > 0)
|
|
579
|
+
// The USD pair is dropped per point rather than per series: a platform that starts sending
|
|
580
|
+
// them mid-round leaves a series with both kinds of point in it, and a chart that can plot
|
|
581
|
+
// market cap should plot the part that has one.
|
|
582
|
+
.map((price) => ({
|
|
583
|
+
at: price.at,
|
|
584
|
+
priceEth: price.priceEth,
|
|
585
|
+
...(usable(price.priceUsd, Number.MIN_VALUE) ? { priceUsd: price.priceUsd } : {}),
|
|
586
|
+
...(usable(price.marketCapUsd, 0) ? { marketCapUsd: price.marketCapUsd } : {}),
|
|
587
|
+
}));
|
|
561
588
|
const trades = value.trades.flatMap((trade) => {
|
|
562
589
|
try {
|
|
563
590
|
if (typeof trade?.id !== 'string' ||
|
|
@@ -592,6 +619,14 @@ export function marketFrom(input) {
|
|
|
592
619
|
export function immutableLaunch(launch) {
|
|
593
620
|
return Object.freeze({ ...launch });
|
|
594
621
|
}
|
|
622
|
+
/**
|
|
623
|
+
* A gate refusal in the game's own vocabulary.
|
|
624
|
+
*
|
|
625
|
+
* The gate has far more ways to say no than {@link BuyFailure} has words, and that is on purpose:
|
|
626
|
+
* this list is what a game renders at a player. Everything unnamed becomes `try-again`, which is
|
|
627
|
+
* true for a player (the round is live, another attempt may work) and unhelpful to the developer
|
|
628
|
+
* running the gate — so the raw code travels alongside as `BuyResult.refuse`.
|
|
629
|
+
*/
|
|
595
630
|
function claimFailure(refuse) {
|
|
596
631
|
if (refuse === 'claim.nothing_earned' || refuse === 'claim.nothing_available')
|
|
597
632
|
return 'nothing-to-spend';
|
package/dist/live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,eAAe,GAYhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAoDvD,yFAAyF;AACzF,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAoB;IAEpB,OAAO,SAAS,CAAiC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,OAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAiC,OAAO,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,IAAI,GAAG,MAAM,SAAS,CAA0B,OAAO,CAAC,CAAC;IAC/D,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ;IA6BiB;IA5BrB,MAAM,GAAqB,IAAI,CAAC;IAChC,KAAK,GAAkB,IAAI,CAAC;IAC5B,EAAE,GAAoB,IAAI,CAAC;IAC3B,MAAM,GAA4C,IAAI,CAAC;IAC/D,yEAAyE;IACjE,IAAI,GAAG,CAAC,CAAC;IACT,MAAM,GAAG,KAAK,CAAC;IACf,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,CAAC,CAAC;IACpB,SAAS,GAAkB,IAAI,CAAC;IACvB,eAAe,CAAgB;IACxC,sBAAsB,CAAc;IACpC,qBAAqB,CAA0B;IACtC,gBAAgB,GAAG,IAAI,MAAM,CAAkB,YAAY,CAAC,CAAC;IAC7D,YAAY,CAA+B;IAC3C,WAAW,GAAG,IAAI,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,aAAa,GAAG,IAAI,MAAM,CAAe,YAAY,EAAE,CAAC,CAAC;IACzD,YAAY,CAAsB;IAClC,cAAc,GAAG,IAAI,MAAM,CAAgB,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,UAAU,CAAa;IACvB,SAAS,GAAG,IAAI,GAAG,EAAiD,CAAC;IACrE,iBAAiB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEtE,yFAAyF;IACzF,OAAO,GAA0C,IAAI,CAAC;IAE7C,QAAQ,CAAyB;IAE1C,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;YACtC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAC5B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAC7G,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,EAAE,CAAC;QAEnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAqC,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACzG,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAoB,UAAU,EAAE;YAC7D,OAAO;YACP,SAAS;YACT,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,OAAkD,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,CAAC,eAAe;gBACpB,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAC/B,OAAO,GAAG,UAAU,CAClB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,EAC3E,yBAAyB,CAC1B,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YACD,6FAA6F;YAC7F,wFAAwF;YACxF,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,KAAK,SAAS;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClF,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,IAAI,IAAI,CAAC,KAAK;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,yFAAyF;QACzF,+BAA+B;QAC/B,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,2FAA2F;QAC3F,2FAA2F;QAC3F,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,IAAI,KAA8B,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO;YAC1D,KAAK,GAAG,MAAiC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,QAAQ;gBAAE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB;oBAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO;QAElE,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,2FAA2F;QAC3F,kCAAkC;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,QAAQ;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;YAAE,OAAO;QAE/B,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,IAAkB,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAsB,EAAE,CAAC;QAC7G,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,OAAY,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,QAA8D;QACtE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEQ,MAAM,GAAG;QAChB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;QACpC,SAAS,EAAE,CAAC,QAAwC,EAAE,EAAE,CACtD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACpC,IAAI,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;KACL,CAAC;IAEO,KAAK,GAAG;QACf,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;QACnC,SAAS,EAAE,CAAC,QAAqC,EAAE,EAAE,CACnD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;KACL,CAAC;IAEO,UAAU,GAAG;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;QAC9C,SAAS,EAAE,CAAC,QAA0C,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC;KACrG,CAAC;IAEO,MAAM,GAAG;QAChB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAC1C,SAAS,EAAE,CAAC,QAAsC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;KAC7F,CAAC;IAEO,QAAQ,GAAG;QAClB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QAC5C,SAAS,EAAE,CAAC,QAAwC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;KACjG,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW;gBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACnF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAiB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,cAAc,EAC7C,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAC3C,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACtG,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEQ,OAAO,GAAY;QAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC3C,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC/D,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,YAAY;QAC1D,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;KAC5C,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,WAAmB;QACnC,8FAA8F;QAC9F,8FAA8F;QAC9F,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAe;QAC3D,IAAI,WAAW,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACxE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,aAA4B,CAAC;QACjC,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAgB,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,QAAQ,EAAE;gBAC3F,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAE9E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YACrB,GAAG,MAAM;YACT,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,eAAe;gBAC1C,CAAC,CAAC;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,QAAQ;oBAClC,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;iBACnF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE;SACpC,CAAC,CAAC;QAEH,IAAI,eAAmC,CAAC;QACxC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,2FAA2F;QAC3F,IAAI,MAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC/D,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;oBAAE,OAAO;gBACtD,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;oBACrB,GAAG,OAAO;oBACV,GAAG,EAAE,eAAe,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE;wBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE;iBACpD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,eAAe;aAClE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAE9E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAgB,eAAe,KAAK,SAAS;YAC1D,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;YACnD,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;QACvE,4FAA4F;QAC5F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC;IAEQ,MAAM,GAAW;QACxB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;IAEF,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,UAAU,CAAC,OAAkC;QACnD,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CACb,OAAe,EACf,MAAkB;IAClB,wFAAwF;IACxF,8FAA8F;IAC9F,aAII,EAAE;QAEN,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CACtE,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAC7C,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxB,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;IACnE,CAAC;IAEO,cAAc;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,MAAM,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2FAA2F;IACnF,KAAK,CAAC,SAAS,CAAI,IAAY,EAAE,IAAa;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;gBAAE,MAAM,KAAK,CAAC;YACpE,OAAO,IAAI,CAAC,IAAI,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAsB;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,CAAC;CACF;AAED,SAAS,YAAY;IACnB,OAAO;QACL,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,IAAI;QACnB,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAoC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC;YAC7C,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;YAC1C,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;YACtC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;YACxC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;SACjD,CAAC;QACF,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnG,4FAA4F;QAC5F,2FAA2F;QAC3F,6BAA6B;QAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC1C,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,MAAM,OAAO,GAAG,mBAAmB,CAAC;IACpC,IACE,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACtC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACjC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QACjE,IACE,YAAY,IAAI,EAAE;YAClB,WAAW,IAAI,EAAE;YACjB,OAAO,kBAAkB,KAAK,QAAQ;YACtC,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;YACzC,kBAAkB,IAAI,CAAC;YACvB,2FAA2F;YAC3F,kFAAkF;YAClF,OAAO,eAAe,KAAK,QAAQ;YACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;YACjC,eAAe,IAAI,CAAC;YACpB,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,SAAS,IAAI,CAAC,EACd,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;IACtG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAA+B,CAAC;IAC9C,IACE,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ;QACxC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;QAC3C,KAAK,CAAC,cAAc,GAAG,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAA2C,CAAC;IAC1D,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/F,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;QACxC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAiC,CAAC;IAChD,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7F,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK;QAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;QACzB,OAAO,IAAI,CAAC;IAEd,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,KAAa,EAAW,EAAE,CACzD,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC;IAE3E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;SACxB,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ;QAC7B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,QAAQ,GAAG,CAAC,CACrB;QACD,2FAA2F;QAC3F,2FAA2F;QAC3F,gDAAgD;SAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAC,CAAC,CAAC;IACN,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,IACE,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ;gBAC7B,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;gBAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;gBAC3D,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;gBAC/C,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrG,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,QAAQ,GAAG,EAAE;gBAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC;oBACN,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ;oBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,GAAG,CAAC,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjG,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QAChG,CAAC,CAAC,KAAK,CAAC,YAAY;QACpB,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,MAAM,KAAK,sBAAsB,IAAI,MAAM,KAAK,yBAAyB;QAAE,OAAO,kBAAkB,CAAC;IACzG,IAAI,MAAM,KAAK,oBAAoB,IAAI,MAAM,KAAK,qBAAqB;QAAE,OAAO,eAAe,CAAC;IAChG,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,uFAAuF;AACvF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC;QACE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,2FAA2F;AAC3F,MAAM,WAAY,SAAQ,KAAK;IAER;IADZ,MAAM,CAAS;IACxB,YAAqB,MAAc,EAAE,OAA8C;QACjF,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,mBAAmB,MAAM,GAAG,CAAC,CAAC;QADtD,WAAM,GAAN,MAAM,CAAQ;QAEjC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC;IACnD,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flayerlabs/gamemode-client",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Browser and mock-room client for Flaunch Game Modes",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Flayer Labs",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"ws": "^8.21.3"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@flayerlabs/gamemode-spec": "^0.4.
|
|
36
|
+
"@flayerlabs/gamemode-spec": "^0.4.3"
|
|
37
37
|
},
|
|
38
38
|
"types": "./dist/index.d.ts",
|
|
39
39
|
"exports": {
|
package/src/embed.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { BuyResult } from './index.js';
|
|
1
|
+
import { marketFrom, type Host, type HostBuyProgress } from './live.js';
|
|
2
|
+
import type { BuyResult, MarketState, Readable } from './index.js';
|
|
3
|
+
import { Signal } from './signal.js';
|
|
3
4
|
import {
|
|
4
5
|
FRAME_PROTOCOL_VERSION,
|
|
5
6
|
hostFrameFrom,
|
|
@@ -52,6 +53,15 @@ export interface ConnectHostOptions {
|
|
|
52
53
|
export interface EmbeddedHost {
|
|
53
54
|
host: Host;
|
|
54
55
|
context: EmbedContext;
|
|
56
|
+
/**
|
|
57
|
+
* The coin's market as the embedding page sees it, for `joinEconomy`'s `platform.market`.
|
|
58
|
+
*
|
|
59
|
+
* Always present, because "no market yet" is a state a chart can render — it starts
|
|
60
|
+
* `unavailable` and becomes `live` if and when the page pushes one. A page that never sends a
|
|
61
|
+
* `gm:market` frame leaves it `unavailable` forever, which is the honest answer and the one a
|
|
62
|
+
* game should draw an empty chart for rather than waiting on.
|
|
63
|
+
*/
|
|
64
|
+
market: Readable<MarketState>;
|
|
55
65
|
dispose(): void;
|
|
56
66
|
}
|
|
57
67
|
|
|
@@ -106,6 +116,12 @@ export async function connectHost(options: ConnectHostOptions = {}): Promise<Emb
|
|
|
106
116
|
const parent = endpoint.parentSource();
|
|
107
117
|
if (parent === null) return null;
|
|
108
118
|
|
|
119
|
+
const marketSignal = new Signal<MarketState>({
|
|
120
|
+
status: 'unavailable',
|
|
121
|
+
prices: [],
|
|
122
|
+
trades: [],
|
|
123
|
+
marketCapUsd: null,
|
|
124
|
+
});
|
|
109
125
|
const pending = new Map<string, Pending>();
|
|
110
126
|
let unlisten: () => void = () => {};
|
|
111
127
|
let disposed = false;
|
|
@@ -141,6 +157,12 @@ export async function connectHost(options: ConnectHostOptions = {}): Promise<Emb
|
|
|
141
157
|
return;
|
|
142
158
|
}
|
|
143
159
|
|
|
160
|
+
if (frame.type === 'gm:market') {
|
|
161
|
+
const market = marketFrom(frame.market);
|
|
162
|
+
if (market) marketSignal.set(market);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
144
166
|
if (frame.type === 'gm:progress') {
|
|
145
167
|
const request = pending.get(frame.id);
|
|
146
168
|
if (request?.kind === 'buy') {
|
|
@@ -217,10 +239,15 @@ export async function connectHost(options: ConnectHostOptions = {}): Promise<Emb
|
|
|
217
239
|
return {
|
|
218
240
|
host,
|
|
219
241
|
context,
|
|
242
|
+
market: {
|
|
243
|
+
current: () => marketSignal.current(),
|
|
244
|
+
subscribe: (listener) => marketSignal.subscribe(listener),
|
|
245
|
+
},
|
|
220
246
|
dispose() {
|
|
221
247
|
disposed = true;
|
|
222
248
|
unlisten();
|
|
223
249
|
pending.clear();
|
|
250
|
+
marketSignal.clear();
|
|
224
251
|
},
|
|
225
252
|
};
|
|
226
253
|
}
|
package/src/host.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
type HostErrorCode,
|
|
7
7
|
type HostToGameFrame,
|
|
8
8
|
} from '@flayerlabs/gamemode-spec/frame';
|
|
9
|
+
import type { WireMarketState } from '@flayerlabs/gamemode-spec/live';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* The page's end of the frame protocol: service a game iframe's Host calls.
|
|
@@ -47,6 +48,19 @@ export interface HostListenSource {
|
|
|
47
48
|
listen(handler: (data: unknown, origin: string, source: unknown) => void): () => void;
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
/**
|
|
52
|
+
* The page's live market, if it has one to share.
|
|
53
|
+
*
|
|
54
|
+
* Structurally a `Signal` (and anything else with these two methods), so a page that already
|
|
55
|
+
* keeps its chart in an observable hands the same one over rather than building a second.
|
|
56
|
+
* `current()` may answer null: "I have no market yet" is not the same claim as an `unavailable`
|
|
57
|
+
* market, and a page should not have to invent one to attach a host.
|
|
58
|
+
*/
|
|
59
|
+
export interface MarketSource {
|
|
60
|
+
current(): WireMarketState | null;
|
|
61
|
+
subscribe(listener: (market: WireMarketState) => void): () => void;
|
|
62
|
+
}
|
|
63
|
+
|
|
50
64
|
export interface AttachGameHostOptions {
|
|
51
65
|
/** The iframe element (or anything with its `contentWindow`). Read at send time, not attach time. */
|
|
52
66
|
frame: { contentWindow: PostTarget | null };
|
|
@@ -55,6 +69,11 @@ export interface AttachGameHostOptions {
|
|
|
55
69
|
/** What the game needs to join its round. A function is read fresh per send. */
|
|
56
70
|
context: EmbedContext | (() => EmbedContext);
|
|
57
71
|
host: Host;
|
|
72
|
+
/**
|
|
73
|
+
* Where the coin's market comes from. Optional — a page with no chart of its own attaches
|
|
74
|
+
* exactly as before, and the game's market simply stays `unavailable`.
|
|
75
|
+
*/
|
|
76
|
+
market?: MarketSource;
|
|
58
77
|
endpoint?: HostListenSource;
|
|
59
78
|
}
|
|
60
79
|
|
|
@@ -91,6 +110,9 @@ export function attachGameHost(options: AttachGameHostOptions): () => void {
|
|
|
91
110
|
send({ v: FRAME_PROTOCOL_VERSION, type: 'gm:context', context });
|
|
92
111
|
};
|
|
93
112
|
|
|
113
|
+
const sendMarket = (market: WireMarketState): void =>
|
|
114
|
+
send({ v: FRAME_PROTOCOL_VERSION, type: 'gm:market', market });
|
|
115
|
+
|
|
94
116
|
const unlisten = endpoint.listen((data, origin, source) => {
|
|
95
117
|
// Both checks, always: origin says who wrote the frame, source says which window sent it.
|
|
96
118
|
// This listener shares the page's window with every other frame the page hosts.
|
|
@@ -100,6 +122,11 @@ export function attachGameHost(options: AttachGameHostOptions): () => void {
|
|
|
100
122
|
|
|
101
123
|
if (parsed.type === 'gm:hello') {
|
|
102
124
|
sendContext();
|
|
125
|
+
// A hello means the game has only just started listening, so the market it missed is
|
|
126
|
+
// re-sent alongside the context. Cheap, and it spares the game an empty first chart while
|
|
127
|
+
// it waits for whatever moves the price next.
|
|
128
|
+
const current = options.market?.current();
|
|
129
|
+
if (current) sendMarket(current);
|
|
103
130
|
return;
|
|
104
131
|
}
|
|
105
132
|
|
|
@@ -170,9 +197,13 @@ export function attachGameHost(options: AttachGameHostOptions): () => void {
|
|
|
170
197
|
|
|
171
198
|
// Unprompted, because the frame may have said hello before this listener existed.
|
|
172
199
|
sendContext();
|
|
200
|
+
// Subscribing delivers the current value immediately, so this both seeds the game and keeps it
|
|
201
|
+
// current; `send` is a no-op once detached, so a late tick cannot reach a frame we let go of.
|
|
202
|
+
const unsubscribeMarket = options.market?.subscribe(sendMarket) ?? (() => {});
|
|
173
203
|
|
|
174
204
|
return () => {
|
|
175
205
|
detached = true;
|
|
206
|
+
unsubscribeMarket();
|
|
176
207
|
unlisten();
|
|
177
208
|
};
|
|
178
209
|
}
|
package/src/index.ts
CHANGED
|
@@ -129,9 +129,36 @@ export type BuyProgress =
|
|
|
129
129
|
| { state: 'signing'; spendWei: bigint }
|
|
130
130
|
| { state: 'pending'; spendWei: bigint; transactionHash?: string }
|
|
131
131
|
| { state: 'confirmed'; spentWei: bigint; transactionHash?: string }
|
|
132
|
-
| { state: 'failed'; reason: BuyFailure };
|
|
133
|
-
|
|
134
|
-
export type BuyResult =
|
|
132
|
+
| { state: 'failed'; reason: BuyFailure; refuse?: string };
|
|
133
|
+
|
|
134
|
+
export type BuyResult =
|
|
135
|
+
| { bought: true; spentWei: bigint }
|
|
136
|
+
| {
|
|
137
|
+
bought: false;
|
|
138
|
+
reason: BuyFailure;
|
|
139
|
+
/**
|
|
140
|
+
* The gate's own refusal code, when a gate is what refused — `claim.nothing_available`,
|
|
141
|
+
* `claim.request_mismatch` and so on.
|
|
142
|
+
*
|
|
143
|
+
* Present because {@link BuyFailure} is deliberately a short list a game can render at a
|
|
144
|
+
* player, and the gate has four times as many ways to say no. Everything the list does not
|
|
145
|
+
* name arrives as `try-again`, which is honest to a player and useless to whoever has to
|
|
146
|
+
* work out why — usually the developer running that gate, who can now log this and read
|
|
147
|
+
* the answer instead of guessing.
|
|
148
|
+
*
|
|
149
|
+
* Never render it. It is a diagnostic: not written for players, and free to change.
|
|
150
|
+
*/
|
|
151
|
+
refuse?: string;
|
|
152
|
+
/**
|
|
153
|
+
* The embedding page's own diagnostic, when the page is what failed — which branch fired,
|
|
154
|
+
* and the transaction it had submitted if it got that far.
|
|
155
|
+
*
|
|
156
|
+
* The counterpart to {@link refuse}: one names a gate's refusal, the other a page's. Between
|
|
157
|
+
* them a `try-again` in a log stops being a guessing game. Never render either.
|
|
158
|
+
*/
|
|
159
|
+
detail?: string;
|
|
160
|
+
transactionHash?: string;
|
|
161
|
+
};
|
|
135
162
|
|
|
136
163
|
// BuyFailure lives in @flayerlabs/gamemode-spec/live (re-exported above): the live room and the
|
|
137
164
|
// embedding page both produce those values, so every end shares one definition.
|
package/src/live.ts
CHANGED
|
@@ -405,7 +405,9 @@ class LiveRoom<PublicView, PlayerView, Action> implements Room<PublicView, Playe
|
|
|
405
405
|
requestId,
|
|
406
406
|
});
|
|
407
407
|
} catch (error) {
|
|
408
|
-
if (error instanceof GateRefused)
|
|
408
|
+
if (error instanceof GateRefused) {
|
|
409
|
+
return this.failBuy(attempt, claimFailure(error.refuse), { refuse: error.refuse });
|
|
410
|
+
}
|
|
409
411
|
return this.failBuy(attempt, 'try-again');
|
|
410
412
|
}
|
|
411
413
|
|
|
@@ -452,8 +454,13 @@ class LiveRoom<PublicView, PlayerView, Action> implements Room<PublicView, Playe
|
|
|
452
454
|
}
|
|
453
455
|
|
|
454
456
|
if ('failed' in result) {
|
|
455
|
-
if (result.failed.bought)
|
|
456
|
-
|
|
457
|
+
if (result.failed.bought) {
|
|
458
|
+
return this.failBuy(attempt, 'try-again', { detail: 'page-reported-success-as-failure' });
|
|
459
|
+
}
|
|
460
|
+
return this.failBuy(attempt, result.failed.reason, {
|
|
461
|
+
detail: result.failed.detail,
|
|
462
|
+
transactionHash: result.failed.transactionHash ?? transactionHash,
|
|
463
|
+
});
|
|
457
464
|
}
|
|
458
465
|
if (this.activeBuy !== attempt) return { bought: false, reason: 'try-again' };
|
|
459
466
|
|
|
@@ -498,12 +505,32 @@ class LiveRoom<PublicView, PlayerView, Action> implements Room<PublicView, Playe
|
|
|
498
505
|
this.economySignal.set({ ...balance, buy: this.economySignal.current().buy });
|
|
499
506
|
}
|
|
500
507
|
|
|
501
|
-
|
|
508
|
+
/**
|
|
509
|
+
* Fail a buy, keeping whatever diagnostic the refusing party supplied.
|
|
510
|
+
*
|
|
511
|
+
* `reason` is the player's answer; the rest is for the developer reading a log afterwards — a
|
|
512
|
+
* gate's `refuse` code, or an embedding page's `detail` and the transaction it had submitted.
|
|
513
|
+
* Carried rather than dropped because `try-again` alone has cost more than one debugging day.
|
|
514
|
+
*/
|
|
515
|
+
private failBuy(
|
|
516
|
+
attempt: symbol,
|
|
517
|
+
reason: BuyFailure,
|
|
518
|
+
// `undefined` is admitted explicitly (the package runs exactOptionalPropertyTypes) so a
|
|
519
|
+
// caller can forward a field it may not have without checking first; they are filtered below.
|
|
520
|
+
diagnostic: {
|
|
521
|
+
refuse?: string | undefined;
|
|
522
|
+
detail?: string | undefined;
|
|
523
|
+
transactionHash?: string | undefined;
|
|
524
|
+
} = {},
|
|
525
|
+
): { bought: false; reason: BuyFailure; refuse?: string; detail?: string; transactionHash?: string } {
|
|
526
|
+
const named = Object.fromEntries(
|
|
527
|
+
Object.entries(diagnostic).filter(([, value]) => value !== undefined),
|
|
528
|
+
);
|
|
502
529
|
if (this.activeBuy === attempt) {
|
|
503
530
|
const current = this.economySignal.current();
|
|
504
|
-
this.economySignal.set({ ...current, buy: { state: 'failed', reason } });
|
|
531
|
+
this.economySignal.set({ ...current, buy: { state: 'failed', reason, ...named } });
|
|
505
532
|
}
|
|
506
|
-
return { bought: false, reason };
|
|
533
|
+
return { bought: false, reason, ...named };
|
|
507
534
|
}
|
|
508
535
|
|
|
509
536
|
private nextRequestId(): string {
|
|
@@ -649,14 +676,27 @@ export function marketFrom(input: unknown): MarketState | null {
|
|
|
649
676
|
value.trades.length > 500
|
|
650
677
|
) return null;
|
|
651
678
|
|
|
652
|
-
const
|
|
653
|
-
(
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
679
|
+
const usable = (figure: unknown, floor: number): boolean =>
|
|
680
|
+
typeof figure === 'number' && Number.isFinite(figure) && figure >= floor;
|
|
681
|
+
|
|
682
|
+
const prices = value.prices
|
|
683
|
+
.filter(
|
|
684
|
+
(price) =>
|
|
685
|
+
typeof price?.at === 'number' &&
|
|
686
|
+
Number.isFinite(price.at) &&
|
|
687
|
+
typeof price.priceEth === 'number' &&
|
|
688
|
+
Number.isFinite(price.priceEth) &&
|
|
689
|
+
price.priceEth > 0,
|
|
690
|
+
)
|
|
691
|
+
// The USD pair is dropped per point rather than per series: a platform that starts sending
|
|
692
|
+
// them mid-round leaves a series with both kinds of point in it, and a chart that can plot
|
|
693
|
+
// market cap should plot the part that has one.
|
|
694
|
+
.map((price) => ({
|
|
695
|
+
at: price.at,
|
|
696
|
+
priceEth: price.priceEth,
|
|
697
|
+
...(usable(price.priceUsd, Number.MIN_VALUE) ? { priceUsd: price.priceUsd } : {}),
|
|
698
|
+
...(usable(price.marketCapUsd, 0) ? { marketCapUsd: price.marketCapUsd } : {}),
|
|
699
|
+
}));
|
|
660
700
|
const trades = value.trades.flatMap((trade) => {
|
|
661
701
|
try {
|
|
662
702
|
if (
|
|
@@ -692,6 +732,14 @@ export function immutableLaunch(launch: LaunchContext): LaunchContext {
|
|
|
692
732
|
return Object.freeze({ ...launch });
|
|
693
733
|
}
|
|
694
734
|
|
|
735
|
+
/**
|
|
736
|
+
* A gate refusal in the game's own vocabulary.
|
|
737
|
+
*
|
|
738
|
+
* The gate has far more ways to say no than {@link BuyFailure} has words, and that is on purpose:
|
|
739
|
+
* this list is what a game renders at a player. Everything unnamed becomes `try-again`, which is
|
|
740
|
+
* true for a player (the round is live, another attempt may work) and unhelpful to the developer
|
|
741
|
+
* running the gate — so the raw code travels alongside as `BuyResult.refuse`.
|
|
742
|
+
*/
|
|
695
743
|
function claimFailure(refuse: string): BuyFailure {
|
|
696
744
|
if (refuse === 'claim.nothing_earned' || refuse === 'claim.nothing_available') return 'nothing-to-spend';
|
|
697
745
|
if (refuse === 'claim.not_open_yet' || refuse === 'claim.window_closed') return 'window-closed';
|