@diffenderfer-games/hub 2.0.0-next.5 → 2.0.0-next.6

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 (170) hide show
  1. package/CHANGELOG.md +54 -19
  2. package/README.md +3 -6
  3. package/dist/auto.d.ts +5 -5
  4. package/dist/auto.js +2 -2
  5. package/dist/avatar-pixi.d.ts +147 -0
  6. package/dist/avatar-pixi.d.ts.map +1 -0
  7. package/dist/avatar-pixi.js +280 -0
  8. package/dist/avatar-pixi.js.map +1 -0
  9. package/dist/avatar-svg.d.ts +4 -0
  10. package/dist/avatar-svg.js +5 -0
  11. package/dist/avatar-three.d.ts +69 -0
  12. package/dist/avatar-three.d.ts.map +1 -0
  13. package/dist/avatar-three.js +49 -0
  14. package/dist/avatar-three.js.map +1 -0
  15. package/dist/avatar.d.ts +7 -0
  16. package/dist/avatar.js +487 -0
  17. package/dist/avatar.js.map +1 -0
  18. package/dist/daily.d.ts +2 -2
  19. package/dist/doctor/cli.mjs +1 -1
  20. package/dist/index.d.ts +5 -5
  21. package/dist/index.js +2 -2
  22. package/dist/input.d.ts +2 -2
  23. package/dist/shared/animator.d.ts +104 -0
  24. package/dist/shared/animator.d.ts.map +1 -0
  25. package/dist/shared/art.js +1804 -0
  26. package/dist/shared/art.js.map +1 -0
  27. package/dist/shared/atlas.d.ts +134 -0
  28. package/dist/shared/atlas.d.ts.map +1 -0
  29. package/dist/shared/avatar.d.ts +117 -0
  30. package/dist/shared/avatar.d.ts.map +1 -0
  31. package/dist/shared/bridge.js +13 -5
  32. package/dist/shared/bridge.js.map +1 -1
  33. package/dist/shared/client-version.gen.js +1 -1
  34. package/dist/shared/daily.d.ts +129 -18
  35. package/dist/shared/daily.d.ts.map +1 -1
  36. package/dist/shared/daily.js +120 -26
  37. package/dist/shared/daily.js.map +1 -1
  38. package/dist/shared/defineProperty.js +39 -0
  39. package/dist/shared/describe.d.ts +32 -0
  40. package/dist/shared/describe.d.ts.map +1 -0
  41. package/dist/shared/describe.js +101 -0
  42. package/dist/shared/describe.js.map +1 -0
  43. package/dist/shared/globals.js +1 -39
  44. package/dist/shared/globals.js.map +1 -1
  45. package/dist/shared/index.d.ts +503 -14
  46. package/dist/shared/index.d.ts.map +1 -1
  47. package/dist/shared/input.d.ts +31 -13
  48. package/dist/shared/input.d.ts.map +1 -1
  49. package/dist/shared/input.js +40 -2
  50. package/dist/shared/input.js.map +1 -1
  51. package/dist/shared/json-guards.js +48 -0
  52. package/dist/shared/json-guards.js.map +1 -0
  53. package/dist/shared/live-canvas.js +62 -0
  54. package/dist/shared/live-canvas.js.map +1 -0
  55. package/dist/shared/mp.js +1 -1
  56. package/dist/shared/overlays.js +800 -0
  57. package/dist/shared/overlays.js.map +1 -0
  58. package/dist/shared/page-stack.js +2 -1
  59. package/dist/shared/page-stack.js.map +1 -1
  60. package/dist/shared/pose-key.js +249 -0
  61. package/dist/shared/pose-key.js.map +1 -0
  62. package/dist/shared/race.js +1 -1
  63. package/dist/shared/rooms.js +1 -1
  64. package/dist/shared/scene.d.ts +90 -0
  65. package/dist/shared/scene.d.ts.map +1 -0
  66. package/dist/shared/social.d.ts +55 -4
  67. package/dist/shared/social.d.ts.map +1 -1
  68. package/dist/shared/src.js +2020 -144
  69. package/dist/shared/src.js.map +1 -1
  70. package/dist/shared/svg-markup.js +1860 -0
  71. package/dist/shared/svg-markup.js.map +1 -0
  72. package/dist/shared/svg.js +27 -0
  73. package/dist/shared/svg.js.map +1 -0
  74. package/dist/shared/types.d.ts +166 -0
  75. package/dist/shared/types.d.ts.map +1 -0
  76. package/dist/social.d.ts +2 -2
  77. package/dist/social.js +2 -2
  78. package/dist/turns.d.ts +39 -0
  79. package/dist/turns.d.ts.map +1 -0
  80. package/dist/turns.js +117 -0
  81. package/dist/turns.js.map +1 -0
  82. package/package.json +33 -3
  83. package/src/avatar/adapters/pixi-avatar.ts +73 -0
  84. package/src/avatar/adapters/pixi-crowd.ts +302 -0
  85. package/src/avatar/adapters/pixi-types.ts +84 -0
  86. package/src/avatar/adapters/three.ts +126 -0
  87. package/src/avatar/animator/animator.ts +285 -0
  88. package/src/avatar/animator/reactions.ts +44 -0
  89. package/src/avatar/animator/schedule.ts +73 -0
  90. package/src/avatar/art/beard.ts +49 -0
  91. package/src/avatar/art/glasses.ts +9 -0
  92. package/src/avatar/art/hair.ts +254 -0
  93. package/src/avatar/art/headwear.ts +75 -0
  94. package/src/avatar/art/index.ts +21 -0
  95. package/src/avatar/art/shape.ts +68 -0
  96. package/src/avatar/art-store.ts +36 -0
  97. package/src/avatar/atlas.ts +236 -0
  98. package/src/avatar/catalog-view.ts +14 -0
  99. package/src/avatar/colour.ts +109 -0
  100. package/src/avatar/describe.ts +76 -0
  101. package/src/avatar/face.ts +187 -0
  102. package/src/avatar/geom.ts +168 -0
  103. package/src/avatar/layout.ts +47 -0
  104. package/src/avatar/look-like.ts +52 -0
  105. package/src/avatar/outputs/bitmap.ts +75 -0
  106. package/src/avatar/outputs/canvas-paint.ts +177 -0
  107. package/src/avatar/outputs/canvas.ts +62 -0
  108. package/src/avatar/outputs/custom-element.ts +140 -0
  109. package/src/avatar/outputs/element.ts +58 -0
  110. package/src/avatar/outputs/live-canvas.ts +57 -0
  111. package/src/avatar/outputs/overlay-svg.ts +22 -0
  112. package/src/avatar/outputs/pose-key.ts +30 -0
  113. package/src/avatar/outputs/svg-markup.ts +113 -0
  114. package/src/avatar/outputs/svg.ts +41 -0
  115. package/src/avatar/overlays.ts +128 -0
  116. package/src/avatar/render/body.ts +116 -0
  117. package/src/avatar/render/colours.ts +81 -0
  118. package/src/avatar/render/compose.ts +258 -0
  119. package/src/avatar/render/context.ts +117 -0
  120. package/src/avatar/render/eyes.ts +78 -0
  121. package/src/avatar/render/eyewear.ts +56 -0
  122. package/src/avatar/render/frame.ts +60 -0
  123. package/src/avatar/render/head.ts +81 -0
  124. package/src/avatar/render/mouth.ts +86 -0
  125. package/src/avatar/render/props.ts +91 -0
  126. package/src/avatar/render/types.ts +84 -0
  127. package/src/avatar/scene.ts +119 -0
  128. package/src/avatar-pixi.ts +20 -0
  129. package/src/avatar-svg.ts +21 -0
  130. package/src/avatar-three.ts +18 -0
  131. package/src/avatar.ts +62 -0
  132. package/src/core/avatar/avatar-cache.ts +95 -0
  133. package/src/core/avatar/avatar-ref.ts +34 -0
  134. package/src/core/avatar/avatar-types.ts +43 -0
  135. package/src/core/avatar/hub-avatar.ts +308 -0
  136. package/src/core/connection.ts +8 -0
  137. package/src/core/errors.ts +7 -1
  138. package/src/core/hub-progress.ts +269 -238
  139. package/src/core/hub.ts +174 -6
  140. package/src/core/offline/hub-kinds/avatar-kind.ts +42 -0
  141. package/src/core/offline/hub-kinds/index.ts +9 -0
  142. package/src/core/offline/hub-kinds/saved-kind.ts +93 -0
  143. package/src/core/page-account.ts +121 -0
  144. package/src/core/rest/routes.gen.ts +31 -1
  145. package/src/core/resume/hub-resume.ts +39 -5
  146. package/src/core/resume/resume-types.ts +2 -2
  147. package/src/core/saved/daily-saves.ts +196 -0
  148. package/src/core/saved/daily-seed.ts +16 -0
  149. package/src/core/saved/hub-saved.ts +221 -0
  150. package/src/core/saved/local-saved.ts +122 -0
  151. package/src/core/saved/saved-list.ts +129 -0
  152. package/src/core/saved/saved-open.ts +104 -0
  153. package/src/core/saved/saved-order.ts +49 -0
  154. package/src/core/saved/saved-types.ts +24 -0
  155. package/src/core/turns/hub-turns.ts +140 -0
  156. package/src/core/turns/turn-game.ts +388 -0
  157. package/src/core/version/client-version.gen.ts +2 -2
  158. package/src/daily/daily-system.ts +112 -13
  159. package/src/daily/page-daily.ts +2 -2
  160. package/src/daily/types.ts +46 -9
  161. package/src/doctor/hub-version-fetch.ts +43 -43
  162. package/src/index.ts +10 -1
  163. package/src/input/input-system.ts +10 -1
  164. package/src/input/navigator.ts +11 -0
  165. package/src/input.ts +1 -0
  166. package/src/overlay/overlay.ts +25 -1
  167. package/src/realtime/runtime-api.ts +14 -3
  168. package/src/social.ts +1 -0
  169. package/src/turns-kit/check-rules.ts +182 -0
  170. package/src/turns.ts +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-markup.js","names":["mix","brow","mouth","mix"],"sources":["../../src/avatar/look-like.ts","../../src/avatar/colour.ts","../../src/avatar/scene.ts","../../src/avatar/render/frame.ts","../../src/avatar/art-store.ts","../../src/avatar/face.ts","../../src/avatar/geom.ts","../../src/avatar/render/colours.ts","../../src/avatar/render/context.ts","../../src/avatar/render/body.ts","../../src/avatar/render/eyewear.ts","../../src/avatar/render/eyes.ts","../../src/avatar/render/head.ts","../../src/avatar/render/mouth.ts","../../src/avatar/render/props.ts","../../src/avatar/render/compose.ts","../../src/avatar/outputs/svg-markup.ts"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { P as toLook, S as pixelSize, a as composeAvatar, b as frameOf, c as n, n as escapeXml, r as sceneToSvg, x as framed, y as FRAMES } from "./svg-markup.js";
2
+ //#region src/avatar/outputs/svg.ts
3
+ let calls = 0;
4
+ /** The id prefix for one render: the caller's `idPrefix` as given (deterministic), else a fresh one per call. */
5
+ function nextPrefix(opts) {
6
+ if (opts.idPrefix !== void 0) return opts.idPrefix.replace(/[^a-zA-Z0-9_-]/g, "");
7
+ calls += 1;
8
+ return `dga${calls.toString(36)}-`;
9
+ }
10
+ /** The `<svg>` for an already composed avatar. */
11
+ function svgFromComposed(composed, look, opts) {
12
+ const [left, top, w, h] = FRAMES[frameOf(opts)];
13
+ const { width, height } = pixelSize(opts);
14
+ const { body, defs } = sceneToSvg(framed(composed.nodes, look, opts), nextPrefix(opts));
15
+ const a11y = opts.title ? ` role="img" aria-label="${escapeXml(opts.title)}"` : " aria-hidden=\"true\"";
16
+ const title = opts.title ? `<title>${escapeXml(opts.title)}</title>` : "";
17
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${String(left)} ${String(top)} ${String(w)} ${String(h)}" width="${n(width)}" height="${n(height)}"${a11y}>${title}${defs ? `<defs>${defs}</defs>` : ""}${body}</svg>`;
18
+ }
19
+ /** An avatar as SVG markup. */
20
+ function renderSvg(like, opts = {}) {
21
+ const look = toLook(like);
22
+ return svgFromComposed(composeAvatar(look, opts), look, opts);
23
+ }
24
+ //#endregion
25
+ export { renderSvg as n, nextPrefix as t };
26
+
27
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.js","names":[],"sources":["../../src/avatar/outputs/svg.ts"],"mappings":";;AAcA,IAAI,QAAQ;;AAGZ,SAAgB,WAAW,MAA6B;CACtD,IAAI,KAAK,aAAa,KAAA,GACpB,OAAO,KAAK,SAAS,QAAQ,mBAAmB,EAAE;CAEpD,SAAS;CACT,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE;AAClC;;AAGA,SAAgB,gBAAgB,UAAoB,MAAyB,MAA6B;CACxG,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,OAAO,QAAQ,IAAI;CAC7C,MAAM,EAAE,OAAO,WAAW,UAAU,IAAI;CACxC,MAAM,EAAE,MAAM,SAAS,WAAW,OAAO,SAAS,OAAO,MAAM,IAAI,GAAG,WAAW,IAAI,CAAC;CACtF,MAAM,OAAO,KAAK,QAAQ,2BAA2B,UAAU,KAAK,KAAK,EAAE,KAAK;CAChF,MAAM,QAAQ,KAAK,QAAQ,UAAU,UAAU,KAAK,KAAK,EAAE,YAAY;CACvE,OAAO,oDAAoD,OAAO,IAAI,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,KAAK,GAC5J,QAAQ,OAAO,SAAS,KAAK,WAAW,KAAK,KAAK;AAC3D;;AAGA,SAAgB,UAAU,MAAgB,OAAsB,CAAC,GAAW;CAC1E,MAAM,OAAO,OAAO,IAAI;CACxB,OAAO,gBAAgB,cAAc,MAAM,IAAI,GAAG,MAAM,IAAI;AAC9D"}
@@ -0,0 +1,166 @@
1
+ import { AvatarLook } from "@diffenderfer-games/hub-contract/avatar";
2
+ //#region src/avatar/face.d.ts
3
+ /**
4
+ * Expressions are parameter sets, not drawings (avatars.md §3.5), so they
5
+ * mix freely with look direction, blinking and talking. Every field is a
6
+ * number (except the FX list), so any two expressions tween.
7
+ */
8
+ /** One brow: vertical offset, tilt (+ lowers the inner end) and arch. */
9
+ interface BrowParams {
10
+ readonly dy: number;
11
+ readonly tilt: number;
12
+ readonly arch: number;
13
+ }
14
+ /** The mouth morph: every expression uses the same structure. */
15
+ interface MouthParams {
16
+ /** Corner-to-corner width. */
17
+ readonly w: number;
18
+ /** Left corner raise (+ up). */
19
+ readonly sL: number;
20
+ /** Right corner raise. */
21
+ readonly sR: number;
22
+ /** 0 closed … ~16 wide open. */
23
+ readonly open: number;
24
+ /** 0 … 1, pulls the lips into an "o". */
25
+ readonly round: number;
26
+ /** 0 … 1, the top-teeth band. */
27
+ readonly teeth: number;
28
+ /** 0 … 1. */
29
+ readonly tongue: number;
30
+ /** Sideways shift (a smirk). */
31
+ readonly dx: number;
32
+ }
33
+ /** Small FX glyphs drawn beside the head. */
34
+ type FaceExtra = 'sweat' | 'tear' | 'sparkle' | 'anger' | 'question' | 'zzz';
35
+ /** A face: brows, lids, pupils, mouth, cheeks, head tilt and squash. */
36
+ interface FaceParams {
37
+ readonly browL: BrowParams;
38
+ readonly browR: BrowParams;
39
+ /** Upper lid, 0 open … 1 closed. */
40
+ readonly lidL: number;
41
+ readonly lidR: number;
42
+ /** Lower lid (a smile squint), 0 … 1. */
43
+ readonly lowL: number;
44
+ readonly lowR: number;
45
+ /** + lowers the inner corners (a cross look). */
46
+ readonly lidTilt: number;
47
+ /** When closed: +1 a happy ^, −1 a calm ∪. */
48
+ readonly closedCurveL: number;
49
+ readonly closedCurveR: number;
50
+ /** Pupil scale, 0.7 … 1.3. */
51
+ readonly pupil: number;
52
+ readonly mouth: MouthParams;
53
+ /** Blush, 0 … 1. */
54
+ readonly cheeks: number;
55
+ /** Degrees, −12 … 12. */
56
+ readonly headTilt: number;
57
+ /** −0.08 … 0.08 (stretch on surprise). */
58
+ readonly squash: number;
59
+ readonly extras: readonly FaceExtra[];
60
+ }
61
+ /** The launch set of 16 expressions (§3.5). Kid-friendly: angry and shocked stay cartoon-cute, cry is one tear. */
62
+ declare const EXPRESSIONS: {
63
+ neutral: FaceParams;
64
+ happy: FaceParams;
65
+ laugh: FaceParams;
66
+ grin: FaceParams;
67
+ sad: FaceParams;
68
+ cry: FaceParams;
69
+ surprised: FaceParams;
70
+ shocked: FaceParams;
71
+ angry: FaceParams;
72
+ grumpy: FaceParams;
73
+ thinking: FaceParams;
74
+ wink: FaceParams;
75
+ smug: FaceParams;
76
+ worried: FaceParams;
77
+ sleepy: FaceParams;
78
+ determined: FaceParams;
79
+ };
80
+ /** A named expression. */
81
+ type Expression = keyof typeof EXPRESSIONS;
82
+ /** Every expression name, in the launch order. */
83
+ declare const EXPRESSION_NAMES: readonly Expression[];
84
+ /** True for a known expression name. */
85
+ declare function isExpression(name: string): name is Expression;
86
+ /** Blends two expressions: `mix('happy', 'surprised', 0.4)`. */
87
+ declare function mix(a: Expression | FaceParams, b: Expression | FaceParams, t: number): FaceParams;
88
+ /** The face for a quick-chat emote (`e:😂` or the bare emoji), or `null`. */
89
+ declare function expressionFromEmote(emoteId: string): Expression | null;
90
+ //#endregion
91
+ //#region src/avatar/render/types.d.ts
92
+ /** Eight facings: `S` faces the viewer; `W`, `SW` and `NW` mirror `E`, `SE` and `NE`. */
93
+ type Facing = 'S' | 'SE' | 'E' | 'NE' | 'N' | 'NW' | 'W' | 'SW';
94
+ /** The 4-direction aliases. */
95
+ type View = 'front' | 'back' | 'left' | 'right';
96
+ /** Body poses on the blob; a future limbed body re-implements the same names. */
97
+ type BodyPose = 'idle' | 'walk' | 'run' | 'sit' | 'play' | 'wave' | 'cheer' | 'jump' | 'dance' | 'away';
98
+ /** Runtime status props (never stored in the look). */
99
+ type StatusProp = 'goggles' | 'headset' | 'cards' | 'controller' | 'trophy' | 'crown' | 'book';
100
+ /** How much of the character a frame shows. */
101
+ type Frame = 'head' | 'bust' | 'full';
102
+ /** A point in rig units. */
103
+ interface Point {
104
+ readonly x: number;
105
+ readonly y: number;
106
+ }
107
+ /** Where the eyes look: x right, y down, each in [−1, 1]. */
108
+ type LookDir = Point;
109
+ /**
110
+ * Everything that moves: the face (an expression or raw parameters), gaze,
111
+ * blink, talk, the body pose and the status prop. The animator produces one
112
+ * per frame; a still render takes a partial one.
113
+ */
114
+ interface Pose {
115
+ readonly expression?: Expression;
116
+ /** Raw face parameters (wins over `expression`). */
117
+ readonly face?: FaceParams;
118
+ readonly look?: LookDir;
119
+ /** Extra lid closure, 0 … 1 (a blink). */
120
+ readonly blink?: number;
121
+ /** Extra mouth opening, 0 … 1 (talking). */
122
+ readonly talk?: number;
123
+ readonly body?: BodyPose;
124
+ /** Walk, dance or jump cycle phase, 0 … 1. */
125
+ readonly phase?: number;
126
+ readonly status?: StatusProp | null;
127
+ /** Reaction offset of the head, rig units. */
128
+ readonly bob?: Point;
129
+ /** Reaction tilt added to the head, degrees. */
130
+ readonly tilt?: number;
131
+ /** Reaction squash added to the head. */
132
+ readonly squash?: number;
133
+ }
134
+ /** Render options shared by every output. */
135
+ interface RenderOptions {
136
+ /** Output px of the frame's longer edge (default 48). */
137
+ readonly size?: number;
138
+ /** `head` badge (default), `bust` or `full` character. */
139
+ readonly frame?: Frame;
140
+ /** `badge` = the site's rounded panel and ring (the default for `head`); `none`; or a `#rrggbb`. */
141
+ readonly background?: 'badge' | 'none' | `#${string}`;
142
+ readonly facing?: Facing;
143
+ readonly view?: View;
144
+ readonly pose?: Pose;
145
+ /** The accessible name ("Sam's avatar"); omitted, the avatar is decorative. */
146
+ readonly title?: string;
147
+ /** A prefix for SVG ids when inlining many. */
148
+ readonly idPrefix?: string;
149
+ /** A soft light rim for dark scenes (the world; on by default in the atlas). */
150
+ readonly rim?: boolean;
151
+ /** The ground shadow (default: on for `full`). */
152
+ readonly shadow?: boolean;
153
+ /** Draws a stool under `sit` and `play` (pose sheets and previews). */
154
+ readonly stool?: boolean;
155
+ }
156
+ /** Anything a render accepts: a look, an `AV1…` code, or an object carrying a code. */
157
+ type LookLike = AvatarLook | string | {
158
+ readonly code: string;
159
+ } | {
160
+ readonly look: AvatarLook;
161
+ } | null | undefined;
162
+ /** Named rig anchors (feet origin, y down), for name plates, bubbles, props and the world. */
163
+ type Anchor = 'feet' | 'body' | 'neck' | 'head' | 'eyeLine' | 'mouth' | 'hatTop' | 'nameplate' | 'bubble' | 'seat' | 'prop' | 'shadow' | 'handL' | 'handR' | 'pod';
164
+ //#endregion
165
+ export { FaceParams as _, LookDir as a, isExpression as b, Pose as c, View as d, BrowParams as f, FaceExtra as g, Expression as h, Frame as i, RenderOptions as l, EXPRESSION_NAMES as m, BodyPose as n, LookLike as o, EXPRESSIONS as p, Facing as r, Point as s, Anchor as t, StatusProp as u, MouthParams as v, mix as x, expressionFromEmote as y };
166
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/avatar/face.ts","../../src/avatar/render/types.ts"],"mappings":";;;;;;;;UAOiB;WACN;WACA;WACA;;;UAIM;;WAEN;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;;KAIC;;UAGK;WACN,OAAO;WACP,OAAO;;WAEP;WACA;;WAEA;WACA;;WAEA;;WAEA;WACA;;WAEA;WACA,OAAO;;WAEP;;WAEA;;WAEA;WACA,iBAAiB;;;cAcf;;;;;;;;;;;;;;;;;;;KAiED,0BAA0B;;cAGzB,2BAA2B;;iBAMxB,aAAa,eAAe,QAAQ;;iBAiBpC,IAAI,GAAG,aAAa,YAAY,GAAG,aAAa,YAAY,YAAY;;iBAmBxE,oBAAoB,kBAAkB;;;;KCnL1C;;KAGA;;KAGA;;KAGA;;KAGA;;UAGK;WACN;WACA;;;KAIC,UAAU;;;;;;UAOL;WACN,aAAa;;WAEb,OAAO;WACP,OAAO;;WAEP;;WAEA;WACA,OAAO;;WAEP;WACA,SAAS;;WAET,MAAM;;WAEN;;WAEA;;;UAIM;;WAEN;;WAEA,QAAQ;;WAER;WACA,SAAS;WACT,OAAO;WACP,OAAO;;WAEP;;WAEA;;WAEA;;WAEA;;WAEA;;;KAIC,WAAW;WAAiC;;WAA4B,MAAM;;;KAG9E"}
package/dist/social.d.ts CHANGED
@@ -2,5 +2,5 @@ import { a as RaceRecordPlayer, c as RealtimeErrorShape, d as RoomSeat, f as Roo
2
2
  import { a as InviteResult, i as InviteOptions, n as HubMpApi, o as JoinInfoEvent, r as InviteLinkMethods, t as BusyOptions } from "./shared/multiplayer-types.js";
3
3
  import { a as RoomEvents, c as RoomSelf, d as RoomStateOptions, i as RoomCreateOptions, l as RoomSendOptions, n as HubRoomsApi, o as RoomListOptions, r as JoinOptions, s as RoomReclaimMethods, t as HubRoom, u as RoomState } from "./shared/room-types.js";
4
4
  import { a as RaceHistoryQuery, c as RaceRuntimeApi, i as RaceEvents, l as RaceStart, n as RaceCreateOptions, o as RaceHistoryViewOptions, r as RaceDefinition, s as RaceHudPlace, t as HubRaceApi } from "./shared/race-types.js";
5
- import { $ as HubNotifyApi, A as RacerState, B as SuggestionStatus, C as RaceRecord, D as RaceStats, E as RaceState, F as ReportReason, G as REALTIME_READY_EVENT, H as isRealtimeApi, I as RoomInfo, J as RealtimeHubLink, K as REALTIME_SINGLETON_API, L as SocialConfig, M as Relation, N as ReportInput, O as Racer, P as ReportKind, Q as socialForwarder, R as SocialMe, S as RaceParams, T as RaceStatValue, U as REALTIME_FAILED_EVENT, V as findRealtimeApi, W as REALTIME_FEATURE_VERSION, X as notifyForwarder, Y as linkRealtimeToHub, Z as presenceForwarder, _ as PlayerLite, a as ErrorBody, at as SocialCounts, b as PresenceKind, c as JoinInfo, d as Message, et as HubPresenceApi, f as MessagesPage, g as PlayerCard, h as Party, i as Counts, it as PlayerRef, j as RecentPlayer, k as RacerResult, l as Launch, m as NotifyPrefs, n as ChatMode, nt as OpenInviteOptions, o as FriendEntry, ot as SocialEvents, p as NotifyChange, q as RealtimeApi, r as Conversation, rt as PlayOnlineMethods, s as Invite, t as Audience, tt as HubSocialApi, u as LaunchTicket, v as Presence, w as RaceResult, x as RaceOutcome, y as PresenceInput, z as Suggestion } from "./shared/social.js";
6
- export { type Audience, type BusyOptions, type ChatMode, type Conversation, type Counts, type ErrorBody, type FriendEntry, type HubMpApi, type HubNotifyApi, type HubPresenceApi, type HubRaceApi, type HubRoom, type HubRoomsApi, type HubSocialApi, type Invite, type InviteCreated, type InviteLink, type InviteLinkMethods, type InviteOptions, type InviteResult, type JoinInfo, type JoinInfoEvent, type JoinOptions, type Launch, type LaunchTicket, type Message, type MessagesPage, type Notice, type NotifyChange, type NotifyPrefs, type OpenInviteOptions, type Party, type PlayOnlineMethods, type PlayerCard, type PlayerLite, type PlayerRef, type Presence, type PresenceInput, type PresenceKind, REALTIME_FAILED_EVENT, REALTIME_FEATURE_VERSION, REALTIME_READY_EVENT, REALTIME_SINGLETON_API, type RaceCreateOptions, type RaceDefinition, type RaceEvents, type RaceHistory, type RaceHistoryQuery, type RaceHistoryViewOptions, type RaceHudPlace, type RaceOutcome, type RaceParams, type RaceRecord, type RaceRecordPlayer, type RaceResult, type RaceResultPlayer, type RaceRuntimeApi, type RaceStart, type RaceStatValue, type RaceState, type RaceStats, type RaceStatusEvent, type Racer, type RacerResult, type RacerState, type RealtimeApi, type RealtimeErrorShape, type RealtimeHubLink, type RecentPlayer, type Relation, type ReportInput, type ReportKind, type ReportReason, type RoomChatLine, type RoomCreateOptions, type RoomEvents, type RoomInfo, type RoomListOptions, type RoomMessage, type RoomReclaimMethods, type RoomSeat, type RoomSeatChange, type RoomSelf, type RoomSendOptions, type RoomState, type RoomStateChange, type RoomStateOptions, type SchemaOutput, type ServerEvents, type Snapshot, type SocialConfig, type SocialCounts, type SocialEvents, type SocialMe, type Suggestion, type SuggestionStatus, findRealtimeApi, isRealtimeApi, linkRealtimeToHub, notifyForwarder as notify, presenceForwarder as presence, socialForwarder as social };
5
+ import { A as RacerState, B as SuggestionStatus, C as RaceRecord, D as RaceStats, E as RaceState, F as ReportReason, G as REALTIME_READY_EVENT, H as isRealtimeApi, I as RoomInfo, J as SESSION_EVENT, K as REALTIME_SINGLETON_API, L as SocialConfig, M as Relation, N as ReportInput, O as Racer, P as ReportKind, R as SocialMe, S as RaceParams, T as RaceStatValue, U as REALTIME_FAILED_EVENT, V as findRealtimeApi, W as REALTIME_FEATURE_VERSION, _ as PlayerLite, a as ErrorBody, at as HubNotifyApi, b as PresenceKind, c as JoinInfo, ct as OpenInviteOptions, d as Message, dt as SocialCounts, et as RealtimeHubLink, f as MessagesPage, ft as SocialEvents, g as PlayerCard, h as Party, i as Counts, it as socialForwarder, j as RecentPlayer, k as RacerResult, l as Launch, lt as PlayOnlineMethods, m as NotifyPrefs, n as ChatMode, nt as notifyForwarder, o as FriendEntry, ot as HubPresenceApi, p as NotifyChange, q as RealtimeApi, r as Conversation, rt as presenceForwarder, s as Invite, st as HubSocialApi, t as Audience, tt as linkRealtimeToHub, u as LaunchTicket, ut as PlayerRef, v as Presence, w as RaceResult, x as RaceOutcome, y as PresenceInput, z as Suggestion } from "./shared/social.js";
6
+ export { type Audience, type BusyOptions, type ChatMode, type Conversation, type Counts, type ErrorBody, type FriendEntry, type HubMpApi, type HubNotifyApi, type HubPresenceApi, type HubRaceApi, type HubRoom, type HubRoomsApi, type HubSocialApi, type Invite, type InviteCreated, type InviteLink, type InviteLinkMethods, type InviteOptions, type InviteResult, type JoinInfo, type JoinInfoEvent, type JoinOptions, type Launch, type LaunchTicket, type Message, type MessagesPage, type Notice, type NotifyChange, type NotifyPrefs, type OpenInviteOptions, type Party, type PlayOnlineMethods, type PlayerCard, type PlayerLite, type PlayerRef, type Presence, type PresenceInput, type PresenceKind, REALTIME_FAILED_EVENT, REALTIME_FEATURE_VERSION, REALTIME_READY_EVENT, REALTIME_SINGLETON_API, type RaceCreateOptions, type RaceDefinition, type RaceEvents, type RaceHistory, type RaceHistoryQuery, type RaceHistoryViewOptions, type RaceHudPlace, type RaceOutcome, type RaceParams, type RaceRecord, type RaceRecordPlayer, type RaceResult, type RaceResultPlayer, type RaceRuntimeApi, type RaceStart, type RaceStatValue, type RaceState, type RaceStats, type RaceStatusEvent, type Racer, type RacerResult, type RacerState, type RealtimeApi, type RealtimeErrorShape, type RealtimeHubLink, type RecentPlayer, type Relation, type ReportInput, type ReportKind, type ReportReason, type RoomChatLine, type RoomCreateOptions, type RoomEvents, type RoomInfo, type RoomListOptions, type RoomMessage, type RoomReclaimMethods, type RoomSeat, type RoomSeatChange, type RoomSelf, type RoomSendOptions, type RoomState, type RoomStateChange, type RoomStateOptions, SESSION_EVENT, type SchemaOutput, type ServerEvents, type Snapshot, type SocialConfig, type SocialCounts, type SocialEvents, type SocialMe, type Suggestion, type SuggestionStatus, findRealtimeApi, isRealtimeApi, linkRealtimeToHub, notifyForwarder as notify, presenceForwarder as presence, socialForwarder as social };
package/dist/social.js CHANGED
@@ -1,3 +1,3 @@
1
- import { a as isRealtimeApi, c as REALTIME_FEATURE_VERSION, f as linkRealtimeToHub, i as findRealtimeApi, l as REALTIME_READY_EVENT, s as REALTIME_FAILED_EVENT, u as REALTIME_SINGLETON_API } from "./shared/bridge.js";
1
+ import { a as isRealtimeApi, c as REALTIME_FEATURE_VERSION, d as SESSION_EVENT, i as findRealtimeApi, l as REALTIME_READY_EVENT, p as linkRealtimeToHub, s as REALTIME_FAILED_EVENT, u as REALTIME_SINGLETON_API } from "./shared/bridge.js";
2
2
  import { n as presenceForwarder, r as socialForwarder, t as notifyForwarder } from "./shared/social.js";
3
- export { REALTIME_FAILED_EVENT, REALTIME_FEATURE_VERSION, REALTIME_READY_EVENT, REALTIME_SINGLETON_API, findRealtimeApi, isRealtimeApi, linkRealtimeToHub, notifyForwarder as notify, presenceForwarder as presence, socialForwarder as social };
3
+ export { REALTIME_FAILED_EVENT, REALTIME_FEATURE_VERSION, REALTIME_READY_EVENT, REALTIME_SINGLETON_API, SESSION_EVENT, findRealtimeApi, isRealtimeApi, linkRealtimeToHub, notifyForwarder as notify, presenceForwarder as presence, socialForwarder as social };
@@ -0,0 +1,39 @@
1
+ import { TurnApplyResult, TurnOutcome, TurnProgress, TurnRng, TurnRng as TurnRng$1, TurnRngState, TurnRules, TurnRules as TurnRules$1, TurnSetupContext, createTurnRng, defineTurnRules, turnRngStateFromSeed } from "@diffenderfer-games/hub-contract";
2
+ //#region src/turns-kit/check-rules.d.ts
3
+ /** How to check a rules module. */
4
+ interface TurnRulesCheckOptions<State, Move, Options = never> {
5
+ /** Seat counts to play (default: 2). */
6
+ readonly seats?: readonly number[];
7
+ /** Games per seat count (default: 25). */
8
+ readonly games?: number;
9
+ /** A game that runs longer than this many moves fails (default: 2000). */
10
+ readonly maxMoves?: number;
11
+ /** Options and mode to set games up with. */
12
+ readonly setupOptions?: Options;
13
+ readonly mode?: string | null;
14
+ /** A legal move for `seat` (default: the rules' own `autoMove`). At least one of the two is needed. */
15
+ readonly randomMove?: (state: State, seat: number, rng: TurnRng$1) => Move;
16
+ /**
17
+ * Put `marker` somewhere only `seat` may see (a card in their hand, their
18
+ * secret goal) and return the state; the kit then checks no other seat's
19
+ * view or events ever contain it. Leave it out for a game with no hidden
20
+ * information.
21
+ */
22
+ readonly plant?: (state: State, seat: number, marker: string) => State;
23
+ /** States saved by older rules versions, which `migrate` must bring up to date. */
24
+ readonly fixtures?: readonly {
25
+ readonly version: number;
26
+ readonly state: unknown;
27
+ }[];
28
+ }
29
+ /** What the kit played. */
30
+ interface TurnRulesReport {
31
+ readonly games: number;
32
+ readonly moves: number;
33
+ readonly longestGame: number;
34
+ }
35
+ /** Check a rules module (see the file comment); throws on the first failure. */
36
+ export declare function checkTurnRules<State, Move, View, Event, Options>(rules: TurnRules$1<State, Move, View, Event, Options>, options?: TurnRulesCheckOptions<State, Move, Options>): TurnRulesReport;
37
+ //#endregion
38
+ export { type TurnApplyResult, type TurnOutcome, type TurnProgress, type TurnRng, type TurnRngState, type TurnRules, type TurnRulesCheckOptions, type TurnRulesReport, type TurnSetupContext, createTurnRng, defineTurnRules, turnRngStateFromSeed };
39
+ //# sourceMappingURL=turns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turns.d.ts","names":["TurnRng","TurnRules"],"sources":["../src/turns-kit/check-rules.ts"],"mappings":";;;UAyBiB,sBAAsB,OAAO,MAAM;;WAEzC;;WAEA;;WAEA;;WAEA,eAAe;WACf;;WAEA,cAAc,OAAO,OAAO,cAAc,KAAKA,cAAY;;;;;;;WAO3D,SAAS,OAAO,OAAO,cAAc,mBAAmB;;WAGxD;aAA+B;aAA0B;;;;UAInD;WACN;WACA;WACA;;;wBAgGK,eAAe,OAAO,MAAM,MAAM,OAAO,SACvD,OAAOC,YAAU,OAAO,MAAM,MAAM,OAAO,UAAU,UAAS,sBAAsB,OAAO,MAAM,WAChG"}
package/dist/turns.js ADDED
@@ -0,0 +1,117 @@
1
+ import { c as parseJsonText } from "./shared/json-guards.js";
2
+ import { createTurnRng, createTurnRng as createTurnRng$1, defineTurnRules, turnRngStateFromSeed, turnRngStateFromSeed as turnRngStateFromSeed$1 } from "@diffenderfer-games/hub-contract";
3
+ //#region src/turns-kit/check-rules.ts
4
+ /**
5
+ * The rules conformance kit (docs/multiplayer.md "Turn games: testing"):
6
+ * `checkTurnRules(rules, options)` plays many seeded games through a rules
7
+ * module the way the hub does and throws on the first broken promise:
8
+ *
9
+ * - every game reaches an outcome within `maxMoves`, and `toAct` is never
10
+ * empty before it;
11
+ * - the state survives a JSON round trip after every move, and the same seed
12
+ * plays the same game (no `Math.random`, no hidden globals);
13
+ * - `autoMove` (when the rules have it) is always legal;
14
+ * - no seat's `view` or `eventView` shows another seat's secrets: markers
15
+ * planted with `options.plant` never appear in anyone else's view;
16
+ * - stored fixtures from older versions `migrate` to a state that views;
17
+ * - views, events and moves stay within the hub's size caps.
18
+ *
19
+ * It needs no hub: run it in a game's own unit tests (vitest, node:test).
20
+ */
21
+ /** The hub's caps. */
22
+ const STATE_MAX_BYTES = 65536;
23
+ const MOVE_MAX_BYTES = 2048;
24
+ /** The UTF-8 bytes of a JSON text. */
25
+ function bytesOf(json) {
26
+ return new TextEncoder().encode(json).length;
27
+ }
28
+ /** Throw a kit failure. */
29
+ function fail(message) {
30
+ throw new Error(`checkTurnRules: ${message}`);
31
+ }
32
+ /** A JSON copy (what the hub stores and reads back). */
33
+ function roundTrip(value) {
34
+ const copy = parseJsonText(JSON.stringify(value));
35
+ if (copy === null && value !== null) fail("a state or move is not JSON");
36
+ return isGamesOwn(copy, value) ? copy : fail("a state or move is not JSON");
37
+ }
38
+ /** Always true: JSON a game's rules made is read back as the game's own type (the game vouches for it, as `toGameData` does). */
39
+ function isGamesOwn(_value, _like) {
40
+ return true;
41
+ }
42
+ /** A move for `seat`: the check's own chooser, else the rules' autoMove. */
43
+ function pickMove(rules, options, state, seat, rng) {
44
+ if (options.randomMove !== void 0) return options.randomMove(state, seat, rng);
45
+ if (rules.autoMove === void 0) return fail("the rules have no autoMove: pass options.randomMove");
46
+ return rules.autoMove(state, seat, rng);
47
+ }
48
+ /** Play one seeded game; answers its moves and a trace for the determinism check. */
49
+ function playGame(rules, seats, seed, options) {
50
+ const rng = createTurnRng$1(turnRngStateFromSeed$1(seed));
51
+ const marker = `MARKER-${String(seed)}-`;
52
+ let state = rules.setup({
53
+ seats,
54
+ options: options.setupOptions ?? null,
55
+ mode: options.mode ?? null,
56
+ rng
57
+ });
58
+ if (options.plant !== void 0) for (let seat = 0; seat < seats; seat++) state = options.plant(state, seat, `${marker}${String(seat)}`);
59
+ const maxMoves = options.maxMoves ?? 2e3;
60
+ const trace = [];
61
+ const checkViews = (events) => {
62
+ for (let viewer = 0; viewer < seats; viewer++) {
63
+ const seen = JSON.stringify(rules.view(state, viewer)) + JSON.stringify(events.map((event) => rules.eventView?.(event, viewer) ?? null));
64
+ for (let owner = 0; owner < seats; owner++) if (owner !== viewer && options.plant !== void 0 && seen.includes(`${marker}${String(owner)}`)) fail(`seat ${String(viewer)} can see seat ${String(owner)}'s secret (seed ${String(seed)})`);
65
+ }
66
+ if (options.plant !== void 0 && JSON.stringify(rules.view(state, null)).includes(marker)) fail(`the public view shows a seat's secret (seed ${String(seed)})`);
67
+ };
68
+ checkViews([]);
69
+ for (let moves = 0; moves < maxMoves; moves++) {
70
+ if (rules.outcome(state) !== null) return {
71
+ moves,
72
+ trace: trace.join("|")
73
+ };
74
+ const seat = rules.toAct(state)[0];
75
+ if (seat === void 0) fail(`toAct is empty but there is no outcome yet (seed ${String(seed)}, move ${String(moves)})`);
76
+ const move = pickMove(rules, options, state, seat, rng);
77
+ if (bytesOf(JSON.stringify(move)) > MOVE_MAX_BYTES) fail(`a move is over ${String(MOVE_MAX_BYTES)} bytes`);
78
+ const result = rules.apply(roundTrip(state), seat, roundTrip(move), rng);
79
+ if ("error" in result) fail(`${options.randomMove === void 0 ? "autoMove" : "randomMove"} made an illegal move for seat ${String(seat)}: ${result.error} (seed ${String(seed)}, move ${String(moves)})`);
80
+ state = roundTrip(result.state);
81
+ if (bytesOf(JSON.stringify(state)) > STATE_MAX_BYTES) fail(`the state is over ${String(STATE_MAX_BYTES)} bytes`);
82
+ checkViews(result.events ?? []);
83
+ rules.progress(state, seat);
84
+ trace.push(JSON.stringify(move));
85
+ }
86
+ return fail(`a game did not end within ${String(maxMoves)} moves (seed ${String(seed)})`);
87
+ }
88
+ /** Check a rules module (see the file comment); throws on the first failure. */
89
+ function checkTurnRules(rules, options = {}) {
90
+ if (!Number.isInteger(rules.version) || rules.version < 0) fail("rules.version must be a whole number");
91
+ let games = 0;
92
+ let moves = 0;
93
+ let longestGame = 0;
94
+ for (const seats of options.seats ?? [2]) for (let game = 0; game < (options.games ?? 25); game++) {
95
+ const seed = seats * 100003 + game;
96
+ const played = playGame(rules, seats, seed, options);
97
+ if (playGame(rules, seats, seed, options).trace !== played.trace) fail(`the same seed played a different game (seed ${String(seed)}): use the rng you are given, never Math.random`);
98
+ games += 1;
99
+ moves += played.moves;
100
+ longestGame = Math.max(longestGame, played.moves);
101
+ }
102
+ for (const fixture of options.fixtures ?? []) if (fixture.version < rules.version) {
103
+ if (rules.migrate === void 0) fail(`a version ${String(fixture.version)} fixture needs rules.migrate`);
104
+ const migrated = rules.migrate(roundTrip(fixture.state), fixture.version);
105
+ rules.view(migrated, null);
106
+ rules.toAct(migrated);
107
+ }
108
+ return {
109
+ games,
110
+ moves,
111
+ longestGame
112
+ };
113
+ }
114
+ //#endregion
115
+ export { checkTurnRules, createTurnRng, defineTurnRules, turnRngStateFromSeed };
116
+
117
+ //# sourceMappingURL=turns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turns.js","names":["createTurnRng","turnRngStateFromSeed"],"sources":["../src/turns-kit/check-rules.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diffenderfer-games/hub",
3
- "version": "2.0.0-next.5",
3
+ "version": "2.0.0-next.6",
4
4
  "description": "The diffenderfer.games hub client for games: accounts, saves, stats, leaderboards, inventory, daily challenges, the input system and the social/multiplayer forwarders, typed from the hub contract.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -11,7 +11,7 @@
11
11
  "repository": {
12
12
  "type": "git",
13
13
  "url": "git+https://github.com/diffenderfer-games/diffenderfer-games.git",
14
- "directory": "next/packages/public/hub"
14
+ "directory": "packages/public/hub"
15
15
  },
16
16
  "engines": {
17
17
  "node": ">=20"
@@ -59,11 +59,36 @@
59
59
  "types": "./dist/rooms.d.ts",
60
60
  "default": "./dist/rooms.js"
61
61
  },
62
+ "./turns": {
63
+ "source": "./src/turns.ts",
64
+ "types": "./dist/turns.d.ts",
65
+ "default": "./dist/turns.js"
66
+ },
62
67
  "./types": {
63
68
  "source": "./src/types.ts",
64
69
  "types": "./dist/types.d.ts",
65
70
  "default": "./dist/types.js"
66
71
  },
72
+ "./avatar": {
73
+ "source": "./src/avatar.ts",
74
+ "types": "./dist/avatar.d.ts",
75
+ "default": "./dist/avatar.js"
76
+ },
77
+ "./avatar/pixi": {
78
+ "source": "./src/avatar-pixi.ts",
79
+ "types": "./dist/avatar-pixi.d.ts",
80
+ "default": "./dist/avatar-pixi.js"
81
+ },
82
+ "./avatar/three": {
83
+ "source": "./src/avatar-three.ts",
84
+ "types": "./dist/avatar-three.d.ts",
85
+ "default": "./dist/avatar-three.js"
86
+ },
87
+ "./avatar/svg": {
88
+ "source": "./src/avatar-svg.ts",
89
+ "types": "./dist/avatar-svg.d.ts",
90
+ "default": "./dist/avatar-svg.js"
91
+ },
67
92
  "./auto": {
68
93
  "source": "./src/auto.ts",
69
94
  "types": "./dist/auto.d.ts",
@@ -81,9 +106,14 @@
81
106
  },
82
107
  "dependencies": {
83
108
  "@ayepi/core": "0.4.1",
84
- "@diffenderfer-games/hub-contract": "2.0.0-next.5"
109
+ "@diffenderfer-games/hub-contract": "2.0.0-next.6"
85
110
  },
86
111
  "publishConfig": {
87
112
  "access": "public"
113
+ },
114
+ "devDependencies": {
115
+ "@types/three": "0.186.0",
116
+ "pixi.js": "8.19.0",
117
+ "three": "0.186.1"
88
118
  }
89
119
  }