@rydr/game-sdk 10.0.0 → 11.1.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 (89) hide show
  1. package/README.md +42 -6
  2. package/dist/client/PlatformClient.d.ts +33 -0
  3. package/dist/client/PlatformClient.d.ts.map +1 -1
  4. package/dist/client/PlatformClient.js +65 -15
  5. package/dist/client/PlatformClient.js.map +1 -1
  6. package/dist/client/captureEncoder.d.ts +50 -0
  7. package/dist/client/captureEncoder.d.ts.map +1 -0
  8. package/dist/client/captureEncoder.js +247 -0
  9. package/dist/client/captureEncoder.js.map +1 -0
  10. package/dist/host/PlatformHost.d.ts +17 -0
  11. package/dist/host/PlatformHost.d.ts.map +1 -1
  12. package/dist/host/PlatformHost.js +26 -1
  13. package/dist/host/PlatformHost.js.map +1 -1
  14. package/dist/protocol/buttons.d.ts +7 -51
  15. package/dist/protocol/buttons.d.ts.map +1 -1
  16. package/dist/protocol/buttons.js +0 -72
  17. package/dist/protocol/buttons.js.map +1 -1
  18. package/dist/protocol/glyphs.d.ts +2 -2
  19. package/dist/protocol/glyphs.d.ts.map +1 -1
  20. package/dist/protocol/glyphs.js +25 -14
  21. package/dist/protocol/glyphs.js.map +1 -1
  22. package/dist/protocol/guards.d.ts.map +1 -1
  23. package/dist/protocol/guards.js +1 -0
  24. package/dist/protocol/guards.js.map +1 -1
  25. package/dist/protocol/index.d.ts +1 -0
  26. package/dist/protocol/index.d.ts.map +1 -1
  27. package/dist/protocol/index.js +1 -0
  28. package/dist/protocol/index.js.map +1 -1
  29. package/dist/protocol/messages.d.ts +40 -2
  30. package/dist/protocol/messages.d.ts.map +1 -1
  31. package/dist/protocol/screen.d.ts +87 -0
  32. package/dist/protocol/screen.d.ts.map +1 -0
  33. package/dist/protocol/screen.js +36 -0
  34. package/dist/protocol/screen.js.map +1 -0
  35. package/dist/protocol/version.d.ts +2 -2
  36. package/dist/protocol/version.d.ts.map +1 -1
  37. package/dist/protocol/version.js +24 -2
  38. package/dist/protocol/version.js.map +1 -1
  39. package/dist/ui/README.md +11 -13
  40. package/dist/ui/controller/combo-demo.js +1 -1
  41. package/dist/ui/controller/combo-demo.js.map +1 -1
  42. package/dist/ui/controller/control-spotlight.d.ts +5 -5
  43. package/dist/ui/controller/control-spotlight.js +6 -6
  44. package/dist/ui/controller/control-trainer.d.ts +5 -5
  45. package/dist/ui/controller/control-trainer.d.ts.map +1 -1
  46. package/dist/ui/controller/control-trainer.js +4 -4
  47. package/dist/ui/controller/control-trainer.js.map +1 -1
  48. package/dist/ui/controller/controller-map.js +2 -2
  49. package/dist/ui/controller/controller-map.js.map +1 -1
  50. package/dist/ui/controller/controller-pad.d.ts +9 -8
  51. package/dist/ui/controller/controller-pad.d.ts.map +1 -1
  52. package/dist/ui/controller/controller-pad.js +31 -6
  53. package/dist/ui/controller/controller-pad.js.map +1 -1
  54. package/dist/ui/controller/input-chip.d.ts +3 -5
  55. package/dist/ui/controller/input-chip.d.ts.map +1 -1
  56. package/dist/ui/controller/input-chip.js +15 -51
  57. package/dist/ui/controller/input-chip.js.map +1 -1
  58. package/dist/ui/controller/layouts/dualsense.js +6 -6
  59. package/dist/ui/controller/layouts/dualsense.js.map +1 -1
  60. package/dist/ui/controller/layouts/joycon.js +6 -6
  61. package/dist/ui/controller/layouts/joycon.js.map +1 -1
  62. package/dist/ui/controller/layouts/switch-pro.js +6 -6
  63. package/dist/ui/controller/layouts/switch-pro.js.map +1 -1
  64. package/dist/ui/controller/layouts/xbox.js +6 -6
  65. package/dist/ui/controller/layouts/xbox.js.map +1 -1
  66. package/dist/ui/controller/live-presses.d.ts +10 -7
  67. package/dist/ui/controller/live-presses.d.ts.map +1 -1
  68. package/dist/ui/controller/live-presses.js +13 -4
  69. package/dist/ui/controller/live-presses.js.map +1 -1
  70. package/dist/ui/controller/pad-svg.d.ts +10 -11
  71. package/dist/ui/controller/pad-svg.d.ts.map +1 -1
  72. package/dist/ui/controller/pad-svg.js +11 -19
  73. package/dist/ui/controller/pad-svg.js.map +1 -1
  74. package/dist/ui/controller/parts-map.d.ts +8 -9
  75. package/dist/ui/controller/parts-map.d.ts.map +1 -1
  76. package/dist/ui/controller/parts-map.js +14 -30
  77. package/dist/ui/controller/parts-map.js.map +1 -1
  78. package/dist/ui/controller/styles.js +1 -1
  79. package/dist/ui/controller/tokens.d.ts +9 -14
  80. package/dist/ui/controller/tokens.d.ts.map +1 -1
  81. package/dist/ui/controller/tokens.js +1 -1
  82. package/dist/ui/controller/tokens.js.map +1 -1
  83. package/dist/ui/keycap.d.ts +1 -1
  84. package/dist/ui/option-menu.js +1 -1
  85. package/dist/ui/option-menu.js.map +1 -1
  86. package/dist/ui/showcase/index.d.ts.map +1 -1
  87. package/dist/ui/showcase/index.js +19 -21
  88. package/dist/ui/showcase/index.js.map +1 -1
  89. package/package.json +1 -1
@@ -21,12 +21,10 @@
21
21
  * Delete) is the correct desktop UX. *Gameplay never listens to the keyboard directly.*
22
22
  * ──────────────────────────────────────────────────────────────────────────────────────────────
23
23
  *
24
- * - **Directions** — `UP`/`DOWN`/`LEFT`/`RIGHT`: the LEFT stick once it deflects past the platform's
25
- * deadzone, the arrow keys, and the phone's D-pad. One name per direction whichever produced it — a
26
- * held direction stays held until *every* source lets go — so a game that only needs "move" reads
27
- * these four and works on every device. **Not a gamepad's physical D-pad** (protocol 44): on RYDR
28
- * that is the rider's trainer control (UP/DOWN resistance, LEFT/RIGHT the trainer mode), owned by the
29
- * shell everywhere, and never delivered to a game. Menus therefore navigate with the stick.
24
+ * - **Directions** — `UP`/`DOWN`/`LEFT`/`RIGHT`: the D-pad / arrow keys, **and** the LEFT stick once it
25
+ * deflects past the platform's deadzone. One name per direction whichever produced it — a held
26
+ * direction stays held until *every* source lets go — so a game that only needs "move" reads these
27
+ * four and works on every device.
30
28
  * - **Right-stick directions** — `RUP`/`RDOWN`/`RLEFT`/`RRIGHT`: the same four edges for the RIGHT stick,
31
29
  * fired once it deflects past the platform's deadzone. Kept separate from the D-pad's so a dual-stick
32
30
  * game can tell *move* (`LEFT`/`RIGHT`…) from *aim* (`RLEFT`/`RRIGHT`…) without touching the analog
@@ -51,17 +49,6 @@
51
49
  * They are plain **clicks** — the hardware has no analog trigger travel, so there is no trigger
52
50
  * {@link AxisName}; `isDown("LT")` / `onButton` is the only way to read them. Not every controller
53
51
  * exposes them, so never gate a required flow behind `LT`/`RT` alone.
54
- * - **Bumpers** — `LB`/`RB`, the UPPER shoulders (L1/R1). Game input since protocol 44, when the
55
- * rider's resistance moved to the D-pad; before that the shell kept them. Same rules as the
56
- * triggers: no built-in meaning, and not every device has them (the phone doesn't).
57
- * - **Either shoulder** — `LEFTANY`/`RIGHTANY` (protocol 44): `LEFTANY` is "`LB` or `LT`", `RIGHTANY`
58
- * is "`RB` or `RT`". Bind an action to it when the rider should not have to care which of the two
59
- * they pull — brake, boost, previous/next tab, which is most of the time. It goes down when the
60
- * FIRST of the pair goes down and up when the LAST comes up, so holding both is still one press and
61
- * one release, never two. The SDK client derives it from the two real buttons (the shell never sends
62
- * it), so it works on every device that has either one, the phone's single trigger and the keyboard's
63
- * `a`/`e` included. You still receive the underlying `LB`/`LT` edges as well; listen to one or the
64
- * other, not both. See {@link BUTTON_GROUPS}.
65
52
  * - **Stick presses** — `LSTICK_PRESS`/`RSTICK_PRESS`, emitted when a joystick is clicked straight down.
66
53
  * Like the triggers they carry no built-in meaning (crouch, recentre the camera, sprint) and most
67
54
  * controllers can't produce them at all, so use them only as a shortcut for something already
@@ -73,43 +60,12 @@
73
60
  *
74
61
  * Devices with fewer than four face buttons (e.g. a phone) expose at least the
75
62
  * `DIAMOND_DOWN`/`DIAMOND_RIGHT` confirm/back pair — don't require `DIAMOND_UP`/`DIAMOND_LEFT`,
76
- * `LT`/`RT`, `LB`/`RB`, the right-stick `R*` directions, a stick press, or `OPTIONS` for a flow that must
77
- * work on every input (`LEFTANY`/`RIGHTANY` reach more devices than any one shoulder, but still not all).
63
+ * `LT`/`RT`, the right-stick `R*` directions, a stick press, or `OPTIONS` for a flow that must work on
64
+ * every input.
78
65
  */
79
- export type ButtonName = "UP" | "DOWN" | "LEFT" | "RIGHT" | "RUP" | "RDOWN" | "RLEFT" | "RRIGHT" | "DIAMOND_UP" | "DIAMOND_DOWN" | "DIAMOND_LEFT" | "DIAMOND_RIGHT" | "LT" | "RT" | "LB" | "RB" | "LEFTANY" | "RIGHTANY" | "LSTICK_PRESS" | "RSTICK_PRESS" | "OPTIONS";
66
+ export type ButtonName = "UP" | "DOWN" | "LEFT" | "RIGHT" | "RUP" | "RDOWN" | "RLEFT" | "RRIGHT" | "DIAMOND_UP" | "DIAMOND_DOWN" | "DIAMOND_LEFT" | "DIAMOND_RIGHT" | "LT" | "RT" | "LSTICK_PRESS" | "RSTICK_PRESS" | "OPTIONS";
80
67
  /** Press = "down", release = "up". A held button emits one of each. */
81
68
  export type ButtonEdge = "down" | "up";
82
- /**
83
- * The grouped buttons and the real buttons each one stands for (protocol 44): `LEFTANY` is held while
84
- * `LB` OR `LT` is, `RIGHTANY` while `RB` OR `RT` is. See {@link ButtonName}.
85
- */
86
- export declare const BUTTON_GROUPS: Readonly<Record<"LEFTANY" | "RIGHTANY", readonly ButtonName[]>>;
87
- /** Is `name` one of the grouped buttons (derived, never sent over the wire)? */
88
- export declare function isGroupButton(name: ButtonName): name is "LEFTANY" | "RIGHTANY";
89
- /** One edge a {@link createButtonGrouper} wants delivered, in the same shape as the edge that caused it. */
90
- export interface GroupedEdge {
91
- name: "LEFTANY" | "RIGHTANY";
92
- edge: ButtonEdge;
93
- repeat: boolean;
94
- }
95
- /**
96
- * Turns the edges of the REAL buttons into the edges of their {@link BUTTON_GROUPS}.
97
- *
98
- * Feed it every edge AFTER your own duplicate filtering (it trusts that a `down` is a new press or a
99
- * flagged repeat, and an `up` releases something held). It returns the grouped edges to deliver, which
100
- * is usually none:
101
- *
102
- * - the FIRST member down → the group's `down`; a second member joining adds nothing;
103
- * - the LAST member up → the group's `up`; one of two letting go adds nothing;
104
- * - a `repeat` re-emit passes through only from the member that OPENED the group, so holding both
105
- * bumper and trigger does not auto-repeat twice as fast.
106
- *
107
- * One instance per input stream. `reset()` forgets everything (a held-state wipe).
108
- */
109
- export declare function createButtonGrouper(): {
110
- feed(name: ButtonName, edge: ButtonEdge, repeat?: boolean): GroupedEdge[];
111
- reset(): void;
112
- };
113
69
  /**
114
70
  * Canonical, source-agnostic controller **AXES** — the analog counterpart to {@link ButtonName}.
115
71
  *
@@ -1 +1 @@
1
- {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,MAAM,MAAM,UAAU,GAGlB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GAGP,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GAIR,YAAY,GACZ,cAAc,GACd,cAAc,GACd,eAAe,GAEf,IAAI,GACJ,IAAI,GAEJ,IAAI,GACJ,IAAI,GAEJ,SAAS,GACT,UAAU,GAEV,cAAc,GACd,cAAc,GAGd,SAAS,CAAC;AAEd,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC,CAGzF,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,SAAS,GAAG,UAAU,CAE9E;AAED,4GAA4G;AAC5G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC;IAC1E,KAAK,IAAI,IAAI,CAAC;CACf,CAuCA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,QAAQ,GAEhB,IAAI,GACJ,IAAI,GAEJ,IAAI,GACJ,IAAI,CAAC;AAET;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA4B9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAOlF;AAED,uFAAuF;AACvF,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAA6B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAOtE,CAAC"}
1
+ {"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,UAAU,GAElB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GAGP,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GAIR,YAAY,GACZ,cAAc,GACd,cAAc,GACd,eAAe,GAEf,IAAI,GACJ,IAAI,GAEJ,cAAc,GACd,cAAc,GAGd,SAAS,CAAC;AAEd,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,QAAQ,GAEhB,IAAI,GACJ,IAAI,GAEJ,IAAI,GACJ,IAAI,CAAC;AAET;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA4B9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAOlF;AAED,uFAAuF;AACvF,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAA6B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAOtE,CAAC"}
@@ -1,75 +1,3 @@
1
- /**
2
- * The grouped buttons and the real buttons each one stands for (protocol 44): `LEFTANY` is held while
3
- * `LB` OR `LT` is, `RIGHTANY` while `RB` OR `RT` is. See {@link ButtonName}.
4
- */
5
- export const BUTTON_GROUPS = {
6
- LEFTANY: ["LB", "LT"],
7
- RIGHTANY: ["RB", "RT"],
8
- };
9
- /** Is `name` one of the grouped buttons (derived, never sent over the wire)? */
10
- export function isGroupButton(name) {
11
- return name === "LEFTANY" || name === "RIGHTANY";
12
- }
13
- /**
14
- * Turns the edges of the REAL buttons into the edges of their {@link BUTTON_GROUPS}.
15
- *
16
- * Feed it every edge AFTER your own duplicate filtering (it trusts that a `down` is a new press or a
17
- * flagged repeat, and an `up` releases something held). It returns the grouped edges to deliver, which
18
- * is usually none:
19
- *
20
- * - the FIRST member down → the group's `down`; a second member joining adds nothing;
21
- * - the LAST member up → the group's `up`; one of two letting go adds nothing;
22
- * - a `repeat` re-emit passes through only from the member that OPENED the group, so holding both
23
- * bumper and trigger does not auto-repeat twice as fast.
24
- *
25
- * One instance per input stream. `reset()` forgets everything (a held-state wipe).
26
- */
27
- export function createButtonGrouper() {
28
- const held = new Map();
29
- const opener = new Map();
30
- return {
31
- feed(name, edge, repeat = false) {
32
- const out = [];
33
- for (const group of ["LEFTANY", "RIGHTANY"]) {
34
- if (!BUTTON_GROUPS[group].includes(name))
35
- continue;
36
- let members = held.get(group);
37
- if (!members)
38
- held.set(group, (members = new Set()));
39
- if (edge === "down") {
40
- if (repeat) {
41
- if (opener.get(group) === name)
42
- out.push({ name: group, edge: "down", repeat: true });
43
- continue;
44
- }
45
- const wasEmpty = members.size === 0;
46
- members.add(name);
47
- if (wasEmpty) {
48
- opener.set(group, name);
49
- out.push({ name: group, edge: "down", repeat: false });
50
- }
51
- }
52
- else {
53
- if (!members.delete(name))
54
- continue;
55
- if (members.size === 0) {
56
- opener.delete(group);
57
- out.push({ name: group, edge: "up", repeat: false });
58
- }
59
- else if (opener.get(group) === name) {
60
- // The opener let go while the other is still held: the survivor carries the repeat now.
61
- opener.set(group, [...members][0]);
62
- }
63
- }
64
- }
65
- return out;
66
- },
67
- reset() {
68
- held.clear();
69
- opener.clear();
70
- },
71
- };
72
- }
73
1
  /**
74
2
  * Keyboard → canonical button map for desktop play.
75
3
  *
@@ -1 +1 @@
1
- {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../src/protocol/buttons.ts"],"names":[],"mappings":"AAyJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,OAAO;IACnB,oEAAoE;IACpE,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,eAAe;IAC1B,qFAAqF;IACrF,gCAAgC;IAChC,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,cAAc;IACjB,6DAA6D;IAC7D,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,0FAA0F;IAC1F,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;CACb,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,IAA6B;IACxE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAyC;IACzE,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACxB,CAAC"}
@@ -47,8 +47,8 @@ export declare function isDiamondButton(name: ButtonName): boolean;
47
47
  /**
48
48
  * The label printed on an upper shoulder button for `set` — `("playstation", "left")` → `"L1"`.
49
49
  *
50
- * The same answer as `buttonLabel(set, "LB" | "RB")`, kept for callers written before protocol 44,
51
- * when the upper shoulders were the shell's resistance and had no {@link ButtonName}.
50
+ * Use it when naming the rider's resistance controls. Like {@link buttonLabel}, this is the only place
51
+ * allowed to know these strings; never hard-code `"L1"` in a prompt.
52
52
  */
53
53
  export declare function bumperLabel(set: GlyphSet, side: "left" | "right"): string;
54
54
  //# sourceMappingURL=glyphs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AAErE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,QAAiB,CAAC;AAkElD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAGnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAEzE"}
1
+ {"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AAErE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,QAAiB,CAAC;AA4DlD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAGnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEzD;AAoBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAEzE"}
@@ -32,18 +32,12 @@ const FACE = {
32
32
  nintendo: /* */ { DIAMOND_DOWN: "B", DIAMOND_RIGHT: "A", DIAMOND_LEFT: "Y", DIAMOND_UP: "X" },
33
33
  zwift: /* */ { DIAMOND_DOWN: "B", DIAMOND_RIGHT: "A", DIAMOND_LEFT: "Z", DIAMOND_UP: "Y" },
34
34
  };
35
- /**
36
- * Shoulders and stick clicks. Directions are omitted — they are the same arrows everywhere.
37
- *
38
- * `LEFTANY` / `RIGHTANY` (either shoulder on that side, protocol 44) print both names, so a prompt
39
- * tells the rider they may pull either one.
40
- */
35
+ /** Shoulders and stick clicks. Directions are omitted — they are the same arrows everywhere. */
41
36
  const SHOULDERS = {
42
- xbox: { LB: "LB", RB: "RB", LT: "LT", RT: "RT", LEFTANY: "LB/LT", RIGHTANY: "RB/RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
43
- playstation: { LB: "L1", RB: "R1", LT: "L2", RT: "R2", LEFTANY: "L1/L2", RIGHTANY: "R1/R2", LSTICK_PRESS: "L3", RSTICK_PRESS: "R3" },
44
- nintendo: { LB: "L", RB: "R", LT: "ZL", RT: "ZR", LEFTANY: "L/ZL", RIGHTANY: "R/ZR", LSTICK_PRESS: "L", RSTICK_PRESS: "R" },
45
- // Zwift Play has no bumpers to deliver (its paddles stay the shell's shift), so the Xbox wording.
46
- zwift: { LB: "LB", RB: "RB", LT: "LT", RT: "RT", LEFTANY: "LB/LT", RIGHTANY: "RB/RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
37
+ xbox: { LT: "LT", RT: "RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
38
+ playstation: { LT: "L2", RT: "R2", LSTICK_PRESS: "L3", RSTICK_PRESS: "R3" },
39
+ nintendo: { LT: "ZL", RT: "ZR", LSTICK_PRESS: "L", RSTICK_PRESS: "R" },
40
+ zwift: { LT: "LT", RT: "RT", LSTICK_PRESS: "LS", RSTICK_PRESS: "RS" },
47
41
  };
48
42
  /**
49
43
  * The small SYSTEM button — `OPTIONS`, the game's own menu button (never the platform's overlay, which
@@ -99,13 +93,30 @@ export function buttonLabel(set, name) {
99
93
  export function isDiamondButton(name) {
100
94
  return name in FACE[DEFAULT_GLYPH_SET];
101
95
  }
96
+ /**
97
+ * The UPPER shoulder buttons — the ones that are NOT game input.
98
+ *
99
+ * They deliberately have no {@link ButtonName}: on this platform the upper shoulders are the rider's
100
+ * trainer resistance − / + and are handled by the shell, never delivered to a game (see the shell-owned
101
+ * keys in `protocol/buttons.ts`). They still need lettering, though, because the shell has to *name*
102
+ * them when teaching a rider where they are — and because the controller drawing prints them.
103
+ *
104
+ * Separate from {@link SHOULDERS}, which covers the lower triggers a game DOES receive (`LT`/`RT`).
105
+ */
106
+ const BUMPERS = {
107
+ xbox: { left: "LB", right: "RB" },
108
+ playstation: { left: "L1", right: "R1" },
109
+ nintendo: { left: "L", right: "R" },
110
+ // Zwift Play has no lettering on its paddles at all, so say what they DO.
111
+ zwift: { left: "−", right: "+" },
112
+ };
102
113
  /**
103
114
  * The label printed on an upper shoulder button for `set` — `("playstation", "left")` → `"L1"`.
104
115
  *
105
- * The same answer as `buttonLabel(set, "LB" | "RB")`, kept for callers written before protocol 44,
106
- * when the upper shoulders were the shell's resistance and had no {@link ButtonName}.
116
+ * Use it when naming the rider's resistance controls. Like {@link buttonLabel}, this is the only place
117
+ * allowed to know these strings; never hard-code `"L1"` in a prompt.
107
118
  */
108
119
  export function bumperLabel(set, side) {
109
- return buttonLabel(set, side === "left" ? "LB" : "RB");
120
+ return (BUMPERS[set] ?? BUMPERS[DEFAULT_GLYPH_SET])[side];
110
121
  }
111
122
  //# sourceMappingURL=glyphs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glyphs.js","sourceRoot":"","sources":["../../src/protocol/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAa,MAAM,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,IAAI,GAAiE;IACzE,2DAA2D;IAC3D,IAAI,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE;IAChG,WAAW,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE;IAChG,QAAQ,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE;IAChG,KAAK,EAAE,WAAW,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE;CACjG,CAAC;AAEF,gGAAgG;AAChG,MAAM,SAAS,GAAiE;IAC9E,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;IACpE,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;IAC3E,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;IACtE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;CACtE,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,GAAiE;IAC3E,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;IACzB,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IACnC,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;IAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;CAC3B,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,GAAqC;IACnD,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,GAAa,EAAE,IAAgB;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACnD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC9C,OAAO,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,GAA2E;IACtF,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IACjC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IACnC,0EAA0E;IAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;CACjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAa,EAAE,IAAsB;IAC/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/protocol/guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAmEvB,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/protocol/guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAoEvB,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,qBAAqB,CAE9E"}
@@ -44,6 +44,7 @@ const PLATFORM_TO_GAME = {
44
44
  "rydr/asset.uploadUrlResult": true,
45
45
  "rydr/voiceover.generateResult": true,
46
46
  "rydr/media.uploadUrlResult": true,
47
+ "rydr/screen.captureResult": true,
47
48
  "rydr/replay.result": true,
48
49
  "rydr/run.result": true,
49
50
  "rydr/run.startResult": true,
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/protocol/guards.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAgD;IACpE,cAAc,EAAE,IAAI;IACpB,qBAAqB,EAAE,IAAI;IAC3B,0BAA0B,EAAE,IAAI;IAChC,2BAA2B,EAAE,IAAI;IACjC,kCAAkC,EAAE,IAAI;IACxC,6BAA6B,EAAE,IAAI;IACnC,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,sBAAsB,EAAE,IAAI;IAC5B,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,qBAAqB,EAAE,IAAI;IAC3B,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;IAC5B,uBAAuB,EAAE,IAAI;IAC7B,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,IAAI;IACjB,8BAA8B,EAAE,IAAI;IACpC,kCAAkC,EAAE,IAAI;IACxC,0BAA0B,EAAE,IAAI;IAChC,sBAAsB,EAAE,IAAI;IAC5B,4BAA4B,EAAE,IAAI;IAClC,+BAA+B,EAAE,IAAI;IACrC,4BAA4B,EAAE,IAAI;IAClC,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI;IAC7B,sBAAsB,EAAE,IAAI;IAC5B,2BAA2B,EAAE,IAAI;IACjC,0BAA0B,EAAE,IAAI;IAChC,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,IAAI;IAC3B,iBAAiB,EAAE,IAAI;CACxB,CAAC;AACF,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE3F,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,CAAU;IACtC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAuC,CAAC;IAClD,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB,CAAC,CAAU;IAChD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB,CAAC,CAAU;IAChD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/protocol/guards.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAgD;IACpE,cAAc,EAAE,IAAI;IACpB,qBAAqB,EAAE,IAAI;IAC3B,0BAA0B,EAAE,IAAI;IAChC,2BAA2B,EAAE,IAAI;IACjC,kCAAkC,EAAE,IAAI;IACxC,6BAA6B,EAAE,IAAI;IACnC,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,sBAAsB,EAAE,IAAI;IAC5B,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,qBAAqB,EAAE,IAAI;IAC3B,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;IAC5B,uBAAuB,EAAE,IAAI;IAC7B,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,IAAI;IACjB,8BAA8B,EAAE,IAAI;IACpC,kCAAkC,EAAE,IAAI;IACxC,0BAA0B,EAAE,IAAI;IAChC,sBAAsB,EAAE,IAAI;IAC5B,4BAA4B,EAAE,IAAI;IAClC,+BAA+B,EAAE,IAAI;IACrC,4BAA4B,EAAE,IAAI;IAClC,2BAA2B,EAAE,IAAI;IACjC,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI;IAC7B,sBAAsB,EAAE,IAAI;IAC5B,2BAA2B,EAAE,IAAI;IACjC,0BAA0B,EAAE,IAAI;IAChC,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,IAAI;IAC3B,iBAAiB,EAAE,IAAI;CACxB,CAAC;AACF,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE3F,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,CAAU;IACtC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAuC,CAAC;IAClD,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB,CAAC,CAAU;IAChD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB,CAAC,CAAU;IAChD,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC"}
@@ -16,6 +16,7 @@ export * from "./room.js";
16
16
  export * from "./stages.js";
17
17
  export * from "./rideHud.js";
18
18
  export * from "./gameMenu.js";
19
+ export * from "./screen.js";
19
20
  export * from "./messages.js";
20
21
  export * from "./guards.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -16,6 +16,7 @@ export * from "./room.js";
16
16
  export * from "./stages.js";
17
17
  export * from "./rideHud.js";
18
18
  export * from "./gameMenu.js";
19
+ export * from "./screen.js";
19
20
  export * from "./messages.js";
20
21
  export * from "./guards.js";
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -25,6 +25,7 @@ import type { RoomMember, RoomCloseReason } from "./room.js";
25
25
  import type { GameMenuSnapshot } from "./gameMenu.js";
26
26
  import type { StageSpec, StageReport } from "./stages.js";
27
27
  import type { RideHudArea, RideHudView } from "./rideHud.js";
28
+ import type { ScreenCaptureResult } from "./screen.js";
28
29
  /** Marker present on every SDK message. */
29
30
  interface RydrTagged {
30
31
  readonly rydr: true;
@@ -319,6 +320,13 @@ export interface MediaUploadUrlMessage extends RydrTagged {
319
320
  kind: "image" | "video";
320
321
  filename: string;
321
322
  contentType?: string;
323
+ /**
324
+ * Refuse rather than mint when nothing is recording (PLAT-1842): the reply then carries
325
+ * `reason: "no-activity"` and no URL, so nothing is uploaded that no activity points to. Sent by
326
+ * `captureScreen`'s game-side fallback; `captureMoment`/`captureClip` don't, and behave as before.
327
+ * Older hosts ignore it.
328
+ */
329
+ requireActivity?: boolean;
322
330
  }
323
331
  /**
324
332
  * Ask the shell to synthesise voice-over for one line and return a cached MP3 URL. The game can't
@@ -355,6 +363,18 @@ export interface MediaSavedMessage extends RydrTagged {
355
363
  /** Clip length in ms (videos only). */
356
364
  durationMs?: number;
357
365
  }
366
+ /**
367
+ * Ask the shell to take a screenshot of the game, now (PLAT-1842). Sent only to a host whose
368
+ * `welcome` said `screenCapture`; the SDK answers locally otherwise. The shell grabs the frame,
369
+ * replies, and attaches the shot to the current activity in the background. Reply:
370
+ * {@link ScreenCaptureResultMessage}.
371
+ */
372
+ export interface ScreenCaptureMessage extends RydrTagged {
373
+ type: "rydr/screen.capture";
374
+ nonce: number;
375
+ /** Caption for the moment. The host trims it and cuts it to `MAX_CAPTURE_LABEL`. */
376
+ label?: string;
377
+ }
358
378
  /**
359
379
  * Save a replay/ghost keyed by `runId`: the `blob` is the game's compressed frame time-series
360
380
  * (base64; opaque at this layer — the SDK encodes a `ReplayFrame[]` into it), and `meta` is the
@@ -467,7 +487,7 @@ export interface RoomScheduleEventMessage extends RydrTagged {
467
487
  at?: number;
468
488
  }
469
489
  import type { TrainingStateMessage, TrainingEffortMessage, TrainingDemandMessage, TrainingListMessage, TrainingListResultMessage, TrainingStartMessage, TrainingStartResultMessage, TrainingPlayOfferingMessage, TrainingPlayOfferingResultMessage, TrainingControlMessage, TrainingControlResultMessage } from "../training/protocol.js";
470
- export type GameToPlatformMessage = TrainingEffortMessage | TrainingDemandMessage | TrainingListMessage | TrainingStartMessage | TrainingPlayOfferingMessage | TrainingControlMessage | HelloMessage | ReadyMessage | LoadProgressMessage | PongMessage | TrainerSetSimulationMessage | TrainerSetTargetPowerMessage | TrainerSetErgModeMessage | OverlaySetModeMessage | OverlayDefineBoxesMessage | OverlayRectsMessage | OverlayDraggingMessage | OverlayMoveBoxMessage | HwSetRateMessage | RouteChangedMessage | SetPowerBarMessage | SetRideHudMessage | SetActivityMessage | ExitRequestMessage | StageReportMessage | RequestHardwareModalMessage | GameErrorMessage | LeaderboardQueryMessage | LeaderboardRankQueryMessage | AdminBoardsMessage | RunSaveMessage | RunStartMessage | HapticsVibrateMessage | TrainerAdjustResistanceMessage | TrainerRequestFeelModeMessage | MenuToggleMessage | MenuRowsMessage | MenuRequestMessage | GameDataGetMessage | GameDataListMessage | GameDataSaveMessage | GameDataDeleteMessage | AssetUploadUrlMessage | VoiceoverGenerateMessage | MediaUploadUrlMessage | MediaSavedMessage | ReplaySaveMessage | ReplayGetMessage | RunGetMessage | WorldListMessage | WorldGetMessage | CharacterListMessage | CharacterGetMessage | RigGetMessage | RoomJoinMessage | RoomLeaveMessage | RoomSendMessage | RoomSetStateMessage | RoomScheduleEventMessage;
490
+ export type GameToPlatformMessage = TrainingEffortMessage | TrainingDemandMessage | TrainingListMessage | TrainingStartMessage | TrainingPlayOfferingMessage | TrainingControlMessage | HelloMessage | ReadyMessage | LoadProgressMessage | PongMessage | TrainerSetSimulationMessage | TrainerSetTargetPowerMessage | TrainerSetErgModeMessage | OverlaySetModeMessage | OverlayDefineBoxesMessage | OverlayRectsMessage | OverlayDraggingMessage | OverlayMoveBoxMessage | HwSetRateMessage | RouteChangedMessage | SetPowerBarMessage | SetRideHudMessage | SetActivityMessage | ExitRequestMessage | StageReportMessage | RequestHardwareModalMessage | GameErrorMessage | LeaderboardQueryMessage | LeaderboardRankQueryMessage | AdminBoardsMessage | RunSaveMessage | RunStartMessage | HapticsVibrateMessage | TrainerAdjustResistanceMessage | TrainerRequestFeelModeMessage | MenuToggleMessage | MenuRowsMessage | MenuRequestMessage | GameDataGetMessage | GameDataListMessage | GameDataSaveMessage | GameDataDeleteMessage | AssetUploadUrlMessage | VoiceoverGenerateMessage | MediaUploadUrlMessage | MediaSavedMessage | ScreenCaptureMessage | ReplaySaveMessage | ReplayGetMessage | RunGetMessage | WorldListMessage | WorldGetMessage | CharacterListMessage | CharacterGetMessage | RigGetMessage | RoomJoinMessage | RoomLeaveMessage | RoomSendMessage | RoomSetStateMessage | RoomScheduleEventMessage;
471
491
  /** Accepts the handshake: grants capabilities and hands over the scoped identity. */
472
492
  export interface WelcomeMessage extends RydrTagged {
473
493
  /** Additive training support; absent on older hosts. */
@@ -493,6 +513,12 @@ export interface WelcomeMessage extends RydrTagged {
493
513
  * on older hosts, which get the game's own overlay exactly as before.
494
514
  */
495
515
  menuRows?: boolean;
516
+ /**
517
+ * Whether the host takes screenshots itself (PLAT-1842), i.e. answers `rydr/screen.capture` by
518
+ * grabbing the game's frame from its own window. Absent on older hosts and on any host that can't,
519
+ * such as a browser tab, where `captureScreen` falls back to the game's own canvas.
520
+ */
521
+ screenCapture?: boolean;
496
522
  type: "rydr/welcome";
497
523
  protocolVersion: number;
498
524
  grantedCapabilities: Capability[];
@@ -790,6 +816,18 @@ export interface MediaUploadUrlResultMessage extends RydrTagged {
790
816
  uploadUrl?: string;
791
817
  url?: string;
792
818
  error?: string;
819
+ /**
820
+ * Why no URL was minted, when the reason is one a game should know (PLAT-1842): `no-activity`
821
+ * means the rider isn't recording, so a highlight would have nowhere to go. Only ever in reply to a
822
+ * request with `requireActivity`. Absent on older hosts.
823
+ */
824
+ reason?: "no-activity";
825
+ }
826
+ /** Reply to {@link ScreenCaptureMessage}. */
827
+ export interface ScreenCaptureResultMessage extends RydrTagged {
828
+ type: "rydr/screen.captureResult";
829
+ nonce: number;
830
+ result: ScreenCaptureResult;
793
831
  }
794
832
  /** Reply to {@link ReplaySaveMessage} / {@link ReplayGetMessage} (matched by `nonce`):
795
833
  * save→`ok`; get→`blob`+`meta` (`null` when not found). `error` set on failure. */
@@ -946,7 +984,7 @@ export interface OverlayLayoutMessage extends RydrTagged {
946
984
  type: "rydr/overlay.layout";
947
985
  placements: Record<string, OverlayBoxPlacement>;
948
986
  }
949
- export type PlatformToGameMessage = TrainingStateMessage | TrainingListResultMessage | TrainingStartResultMessage | TrainingPlayOfferingResultMessage | TrainingControlResultMessage | WelcomeMessage | RejectMessage | PowerMessage | CadenceMessage | HeartRateMessage | SpeedMessage | PowerBufferMessage | InputButtonMessage | InputAxisMessage | AudioSetMasterMessage | IdentityUpdateMessage | RideHudAreaMessage | TrainerStatusMessage | OverlayStateMessage | OverlayLayoutMessage | InputStatusMessage | StagePlayMessage | LifecyclePauseMessage | LifecycleResumeMessage | MenuStateMessage | MenuPickMessage | PingMessage | LeaderboardQueryResultMessage | LeaderboardRankQueryResultMessage | AdminBoardsResultMessage | GameDataResultMessage | AssetUploadUrlResultMessage | VoiceoverGenerateResultMessage | MediaUploadUrlResultMessage | ReplayResultMessage | RunGetResultMessage | RunStartResultMessage | RunSaveResultMessage | WorldListResultMessage | WorldGetResultMessage | CharacterListResultMessage | CharacterGetResultMessage | RigGetResultMessage | RoomOpenedMessage | RoomClosedMessage | RoomPresenceMessage | RoomStateMessage | RoomMessageMessage | RoomTelemetryMessage | RoomEventMessage;
987
+ export type PlatformToGameMessage = TrainingStateMessage | TrainingListResultMessage | TrainingStartResultMessage | TrainingPlayOfferingResultMessage | TrainingControlResultMessage | WelcomeMessage | RejectMessage | PowerMessage | CadenceMessage | HeartRateMessage | SpeedMessage | PowerBufferMessage | InputButtonMessage | InputAxisMessage | AudioSetMasterMessage | IdentityUpdateMessage | RideHudAreaMessage | TrainerStatusMessage | OverlayStateMessage | OverlayLayoutMessage | InputStatusMessage | StagePlayMessage | LifecyclePauseMessage | LifecycleResumeMessage | MenuStateMessage | MenuPickMessage | PingMessage | LeaderboardQueryResultMessage | LeaderboardRankQueryResultMessage | AdminBoardsResultMessage | GameDataResultMessage | AssetUploadUrlResultMessage | VoiceoverGenerateResultMessage | MediaUploadUrlResultMessage | ScreenCaptureResultMessage | ReplayResultMessage | RunGetResultMessage | RunStartResultMessage | RunSaveResultMessage | WorldListResultMessage | WorldGetResultMessage | CharacterListResultMessage | CharacterGetResultMessage | RigGetResultMessage | RoomOpenedMessage | RoomClosedMessage | RoomPresenceMessage | RoomStateMessage | RoomMessageMessage | RoomTelemetryMessage | RoomEventMessage;
950
988
  /** Any message in the protocol. */
951
989
  export type RydrMessage = GameToPlatformMessage | PlatformToGameMessage;
952
990
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/protocol/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/protocol/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Screenshots a game asks for (PLAT-1842).
3
+ *
4
+ * A game knows when a moment is worth keeping — the podium after a five-rider race, an overtake on
5
+ * the line — and the platform knows how to take the picture and where it belongs. So the game only
6
+ * says WHEN, with `session.captureScreen({ label })`, and the shot lands in the Highlights of the
7
+ * rider's current activity, where they can share it.
8
+ *
9
+ * TWO WAYS THE PICTURE GETS TAKEN, and the game does not choose between them.
10
+ *
11
+ * - **By the shell** (`welcome.screenCapture`, today the desktop app). The shell grabs the game's
12
+ * frame from the composited window: the canvas, any HTML drawn over it, and the shell's own
13
+ * overlays — exactly what the rider sees. The read-back and the encode happen outside the game's
14
+ * process, so the game's cost is one `postMessage`. No `preserveDrawingBuffer` needed.
15
+ * - **By the game** (every other host, when the game passes `fallback`). A browser tab cannot read a
16
+ * cross-origin iframe's pixels without prompting the rider, so the SDK snapshots the canvas the
17
+ * game handed it (`createImageBitmap`, a GPU-side copy taken synchronously at the call) and does
18
+ * the downscale, the JPEG encode and the upload on a worker. Only the canvas is in the shot.
19
+ *
20
+ * Best-effort, by design: a game never needs to know a shot was taken, so the call never rejects and
21
+ * a refusal is an ordinary value. Ignore it or log it; don't show an error over it.
22
+ */
23
+ /**
24
+ * Why no screenshot was taken. Stable, never localized. All five exist from the first version that
25
+ * has screenshots, so an exhaustive `switch` over them stays exhaustive.
26
+ *
27
+ * - `unsupported` — this host cannot take one, and the game passed no `fallback`. Answered locally,
28
+ * without asking the shell.
29
+ * - `no-activity` — the rider is playing without recording, so there is no activity to attach the
30
+ * shot to. Nothing is uploaded.
31
+ * - `rate-limited` — too soon after the last one, or this activity already has as many as the shell
32
+ * keeps. Shoot the moments that matter, not every frame.
33
+ * - `obscured` — the shell's own UI (its menu, a prompt) is over the game right now, so a shot would
34
+ * picture that rather than the game.
35
+ * - `failed` — the host tried and something broke; `error` says what. A game-side shot whose canvas
36
+ * had nothing drawn on it (a WebGL buffer read after its frame was shown) is `failed` with an
37
+ * `error` starting "blank frame", and nothing is uploaded.
38
+ */
39
+ export type ScreenCaptureRefusal = "unsupported" | "no-activity" | "rate-limited" | "obscured" | "failed";
40
+ /**
41
+ * What `session.captureScreen` resolved to.
42
+ *
43
+ * `ok` means the frame was TAKEN, not that it has finished uploading: the upload carries on in the
44
+ * background and a shot that fails to upload is dropped quietly. `by` says who took it, which tells
45
+ * the game what is in the picture — `shell` includes HTML over the canvas, `game` is the canvas only.
46
+ *
47
+ * There is deliberately no URL: the stored image's address is the platform's business, and the game
48
+ * has nothing to do with it.
49
+ */
50
+ export type ScreenCaptureResult = {
51
+ ok: true;
52
+ by: "shell" | "game";
53
+ } | {
54
+ ok: false;
55
+ reason: ScreenCaptureRefusal;
56
+ error?: string;
57
+ };
58
+ /** What a game passes to `session.captureScreen(...)`. */
59
+ export interface ScreenCaptureOptions {
60
+ /**
61
+ * A short caption for the moment ("Podium", "Overtake"), shown under the shot in the rider's
62
+ * Highlights. Trimmed and cut to {@link MAX_CAPTURE_LABEL} characters.
63
+ */
64
+ label?: string;
65
+ /**
66
+ * What to picture when the host cannot take the shot itself (`session.canCaptureScreen` is false):
67
+ * the game's canvas, or a `Blob` image the game already made. Without it, such a host answers
68
+ * `unsupported`.
69
+ *
70
+ * The canvas is snapshotted synchronously, at the call. A WebGL canvas reads back blank once its
71
+ * frame has been presented, so the call has to land after a render and before the browser shows
72
+ * it — and then you do not need `preserveDrawingBuffer`. Either call it right after
73
+ * `renderer.render(scene, camera)`, or, from code outside a loop that renders every frame, inside
74
+ * `requestAnimationFrame(...)`: your loop registered its callback for that frame first, so it has
75
+ * drawn by the time yours runs.
76
+ */
77
+ fallback?: HTMLCanvasElement | OffscreenCanvas | Blob;
78
+ }
79
+ /** The longest {@link ScreenCaptureOptions.label} the host keeps. */
80
+ export declare const MAX_CAPTURE_LABEL = 40;
81
+ /**
82
+ * Normalise a label that arrived over the wire: a string, trimmed, cut to {@link MAX_CAPTURE_LABEL};
83
+ * anything else, or an empty string, is no label. The host applies this, since a game's message is
84
+ * untrusted input.
85
+ */
86
+ export declare function cleanCaptureLabel(label: unknown): string | undefined;
87
+ //# sourceMappingURL=screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/protocol/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1G;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,iBAAiB,GAAG,eAAe,GAAG,IAAI,CAAC;CACvD;AAED,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIpE"}