@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
@@ -1 +1 @@
1
- {"version":3,"file":"daily.d.ts","names":[],"sources":["../../src/daily/types.ts","../../src/daily/daily-system.ts","../../src/daily/page-daily.ts"],"mappings":";;;;KAQK,cAAc,0BAA0B,kBAAkB,qBAAqB,gBAAgB;;KAGxF,cAAc;;KAGd,WAAW;;KAGX,kBAAkB;;KAGlB,qBAAqB;;KAGrB,wBAAwB;;UAGnB;;EAEf;;EAEA;;EAEA;;EAEA;;;UAIe;;EAEf,OAAO,WAAW;;;KAIR,sBAAsB,eAAe;;UAGhC;;WAEN;;EAET,UAAU,QAAQ;;EAElB,OAAO,QAAQ;;EAEf,MAAM,cAAc,QAAQ;;EAE5B,SAAS,aAAa,eAAe,MAAM,sBAAsB,QAAQ;;EAEzE,KAAK,cAAc,QAAQ;;;KAIjB;EACN;EAAa;EAAc;;EAC3B;EAAa;EAAe;EAAqB,MAAM;;EACvD;EAAa;EAAc,MAAM;;EACjC;EAAa;;;;;cCnDN;;cA0BA;;;;;;;;;EASX,QAAQ;mBACS;UACT;UACA;UACA;EAEI,YAAA,MAAM;;MAiBd;;;;;;EASJ,OAAO,YAAY;;;;;;;EAeb,aAAa,cAAc;;;;;;;;;EA0B3B,SAAS,OAAM,sBAA2B,QAAQ;;UAsBhD;;;;;;EAiBR;;EAKA,UAAU,QAAQ;;EAKlB,OAAO,QAAQ;;;;;cClKJ;;iBAIG,cAAc,qBAAqB,aAAa;;;;;;iBAWhD,SAAS,MAAM,YAAY"}
1
+ {"version":3,"file":"daily.d.ts","names":["SavedKind"],"sources":["../../src/core/saved/saved-open.ts","../../src/core/saved/saved-types.ts","../../src/core/game-data.ts","../../src/daily/types.ts","../../src/daily/daily-system.ts","../../src/daily/page-daily.ts"],"mappings":";;;;cAoBa;;cAGA;;cAGA;;cAGA;;UAMI;WACN;WACA,MAAM;;;iBAWD,aAAa,MAAM,KAAK;;;;;;;;UClCvB,mBAAmB,KAAK;WAC9B;;WAEA;;;UAIM;WACN,iBAAiBA;;;;;KCXhB;;;;KCDP,cAAc,0BAA0B,kBAAkB,qBAAqB,gBAAgB;;KAGxF,cAAc;;KAGd,WAAW;;KAGX,kBAAkB;;KAGlB,qBAAqB;;KAGrB,wBAAwB;;UAGnB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;EAMA,OAAO;;EAEP;;EAEA;;;UAIe;;EAEf,OAAO,WAAW;;;KAIR,sBAAsB,eAAe;;UAGhC;;WAEN,OAAO;;WAEP;aAAqB;aAAwB;;WAC7C;;WAEA;;;UAIM;;WAEN;;EAET,UAAU,QAAQ;;EAElB,OAAO,QAAQ;;EAEf,MAAM,cAAc,QAAQ;;EAE5B,OAAO,qBAAqB,QAAQ;;EAEpC,SAAS,aAAa,eAAe,MAAM,sBAAsB,QAAQ;;EAEzE,KAAK,WAAW,gBAAgB,OAAO;;EAEvC,SAAS;;EAET,QAAQ,WAAW,iBAAiB;;EAEpC,cAAc,QAAQ;;EAEtB,KAAK,cAAc,QAAQ;;;KAIjB;EACN;EAAa;EAAc;EAA2B;;EACtD;EAAa;EAAe;EAAqB,MAAM;;EACvD;EAAa;EAAc,MAAM;;EACjC;EAAa;;EACb;EAAa;;EACb;EAAa;;;;;cCvFN;;cAkCA;;;;;;;;;;EAUX,QAAQ;mBACS;UACT;UACA;UACA;;UAEA;UACA;EAEI,YAAA,MAAM;;MAiBd;;;;;;EASJ,OAAO,YAAY;;;;;;;EAmBb,aAAa,cAAc;;;;;;;EA2B3B,OAAO,qBAAqB;;UAmB1B;;;;;;;;EAgBR,KAAK,OAAO;;EASZ,cAAc,QAAQ;;;;;;EAShB,WAAW;;;;;;;;;EAoBX,SAAS,OAAM,sBAA2B,QAAQ;;UAsBhD;;;;;;;;;EAoBR;;EAUA,UAAU,QAAQ;;EAKlB,OAAO,QAAQ;;;;;cCrQJ;;iBAIG,cAAc,qBAAqB,aAAa;;;;;;iBAWhD,SAAS,MAAM,YAAY"}
@@ -1,4 +1,5 @@
1
- import { i as hasMethods, n as claimSingleton, o as readField, r as _defineProperty } from "./globals.js";
1
+ import { a as readField, n as claimSingleton, r as hasMethods } from "./globals.js";
2
+ import { t as _defineProperty } from "./defineProperty.js";
2
3
  import "./client-version.gen.js";
3
4
  //#region src/daily/daily-system.ts
4
5
  /**
@@ -28,6 +29,19 @@ function readDeepLinkDay() {
28
29
  function messageOf(error) {
29
30
  return error instanceof Error ? error.message : String(error);
30
31
  }
32
+ /** The challenge a start or resume answered. */
33
+ function challengeOf(started) {
34
+ return {
35
+ day: started.day,
36
+ seed: started.seed,
37
+ token: started.token,
38
+ alreadyCompleted: started.alreadyCompleted,
39
+ instanceId: started.instanceId,
40
+ saved: started.saved,
41
+ savedVersion: started.savedVersion,
42
+ resumed: started.resumed
43
+ };
44
+ }
31
45
  /** Daily challenges (`hub.daily`). */
32
46
  var DailySystem = class {
33
47
  constructor(host) {
@@ -36,10 +50,11 @@ var DailySystem = class {
36
50
  /**
37
51
  * The challenge in progress: set when a day starts; cleared the moment the
38
52
  * game calls `complete` (whatever the hub answers, and before it answers)
39
- * or `cancel`. A game's win handler checks it:
53
+ * or `cancel` (or `discard`). A game's win handler checks it:
40
54
  * `if (hub.daily.active) hub.daily.complete(…)`. While it is set the page
41
- * is in a daily run, so `hub.resume.save` saves nothing: a game whose
42
- * player leaves a daily unfinished must call `cancel()`.
55
+ * is in a daily run, so `hub.resume.save` saves to the day instead of the
56
+ * game's run: a game whose player leaves a daily unfinished must call
57
+ * `cancel()`.
43
58
  */
44
59
  "active",
45
60
  null
@@ -47,6 +62,8 @@ var DailySystem = class {
47
62
  _defineProperty(this, "host", void 0);
48
63
  _defineProperty(this, "play", null);
49
64
  _defineProperty(this, "pendingDay", null);
65
+ _defineProperty(this, "pendingInstance", null);
66
+ _defineProperty(this, "inFlight", null);
50
67
  _defineProperty(this, "isRelaying", false);
51
68
  this.host = host;
52
69
  if (typeof window !== "undefined") window.addEventListener(DAILY_START_EVENT, (event) => {
@@ -67,8 +84,11 @@ var DailySystem = class {
67
84
  define(definition) {
68
85
  this.play = definition.play;
69
86
  const day = readDeepLinkDay() ?? this.pendingDay;
87
+ const instanceId = this.pendingInstance;
70
88
  this.pendingDay = null;
89
+ this.pendingInstance = null;
71
90
  if (day !== null) this.startAndPlay(day);
91
+ else if (instanceId !== null) this.resume(instanceId);
72
92
  }
73
93
  /**
74
94
  * Fetch the signed token for `day`, make it active and call the game's
@@ -83,28 +103,91 @@ var DailySystem = class {
83
103
  this.relayStart(day);
84
104
  return;
85
105
  }
106
+ const starting = (async () => {
107
+ try {
108
+ this.begin(play, challengeOf(await this.host.start(day)));
109
+ } catch (error) {
110
+ this.host.emit("hub:daily-error", {
111
+ day,
112
+ error: messageOf(error)
113
+ });
114
+ }
115
+ })();
116
+ this.inFlight = starting;
117
+ await starting;
118
+ if (this.inFlight === starting) this.inFlight = null;
119
+ }
120
+ /**
121
+ * Pick up a day in progress by its saved game's id (from `hub.saved`):
122
+ * a fresh token, then the game's `play` with `challenge.saved`. Finishing
123
+ * it any time later gives that day's credit. A no-op while that day is
124
+ * already being played.
125
+ */
126
+ async resume(instanceId) {
127
+ await this.inFlight;
128
+ if (this.active?.instanceId === instanceId) return;
129
+ const play = this.play;
130
+ if (play === null) {
131
+ this.pendingInstance = instanceId;
132
+ return;
133
+ }
86
134
  try {
87
- const started = await this.host.start(day);
88
- const challenge = {
89
- day: started.day,
90
- seed: started.seed,
91
- token: started.token,
92
- alreadyCompleted: started.alreadyCompleted
93
- };
94
- this.active = challenge;
95
- this.host.emit("hub:daily-started", {
96
- day: started.day,
97
- seed: started.seed,
98
- alreadyCompleted: started.alreadyCompleted
99
- });
100
- play({ ...challenge });
135
+ this.begin(play, challengeOf(await this.host.resume(instanceId)));
101
136
  } catch (error) {
102
137
  this.host.emit("hub:daily-error", {
103
- day,
138
+ day: "",
104
139
  error: messageOf(error)
105
140
  });
106
141
  }
107
142
  }
143
+ /** Make `challenge` the active day and hand it to the game. */
144
+ begin(play, challenge) {
145
+ this.active = challenge;
146
+ this.host.emit("hub:daily-started", {
147
+ day: challenge.day,
148
+ seed: challenge.seed,
149
+ alreadyCompleted: challenge.alreadyCompleted === true,
150
+ resumed: challenge.resumed === true
151
+ });
152
+ if (challenge.resumed === true) this.host.emit("hub:daily-resumed", {
153
+ day: challenge.day,
154
+ seed: challenge.seed,
155
+ alreadyCompleted: false,
156
+ resumed: true
157
+ });
158
+ play({ ...challenge });
159
+ }
160
+ /**
161
+ * Save the active day's state, so it can be picked up later (a reload,
162
+ * another device, next week) and still give that day's credit. Kept on
163
+ * the device at once and sent after a short quiet spell (works offline).
164
+ * `hub.resume.save` during a daily lands here too. Returns `false` with
165
+ * no daily active, or for a replay of a completed day (nothing to save).
166
+ */
167
+ save(input) {
168
+ const challenge = this.active;
169
+ if (challenge === null || challenge.instanceId === null) return false;
170
+ return this.host.save(challenge, input);
171
+ }
172
+ /** This game's days in progress (the calendar marks them, the game can list them). */
173
+ inProgress() {
174
+ return this.host.inProgress();
175
+ }
176
+ /**
177
+ * Give up the active day: its progress is discarded and nothing is
178
+ * recorded. The day can be started again fresh while it is in the 30-day
179
+ * window. (The hub's lists ask the player first; a game asks for itself.)
180
+ */
181
+ async discard() {
182
+ const challenge = this.active;
183
+ if (challenge === null) return;
184
+ this.active = null;
185
+ if (challenge.instanceId !== null) await this.host.discard(challenge);
186
+ this.host.emit("hub:daily-discarded", {
187
+ day: challenge.day,
188
+ discarded: true
189
+ });
190
+ }
108
191
  /**
109
192
  * Record completion of the active challenge with optional metadata.
110
193
  * Resolves with the new completion count and rank, or `null` when no
@@ -153,12 +236,23 @@ var DailySystem = class {
153
236
  }
154
237
  }
155
238
  /**
156
- * Abandon the active challenge without recording it: the player quit, or
157
- * left the daily for normal play (another level, a new game). Until then
158
- * the page counts as in a daily run and `hub.resume.save` saves nothing.
239
+ * Pause the active day: the player left it unfinished (quit, picked
240
+ * another level, started a normal game). Nothing is recorded, and the day
241
+ * stays in progress in "Your games" and the calendar, to finish later
242
+ * (its last save is sent now). Until then the page counts as in a daily,
243
+ * so `hub.resume.save` saves to the day: call `cancel()` on every path
244
+ * that leaves a daily without `complete`. To give a day up, `discard()`.
159
245
  */
160
246
  cancel() {
247
+ const challenge = this.active;
161
248
  this.active = null;
249
+ if (challenge !== null) {
250
+ this.host.flush().catch(() => void 0);
251
+ this.host.emit("hub:daily-paused", {
252
+ day: challenge.day,
253
+ paused: true
254
+ });
255
+ }
162
256
  }
163
257
  /** This game's window and the player's completions. */
164
258
  status() {
@@ -175,8 +269,8 @@ var DailySystem = class {
175
269
  * The page's one daily-challenge system (plan §4.4): the first bundle to
176
270
  * create it wins, so the menu starts days on the instance the game defined.
177
271
  */
178
- /** The cross-bundle shape number of the `daily` singleton. Bump only on an incompatible change. */
179
- const DAILY_SINGLETON_API = 1;
272
+ /** The cross-bundle shape number of the `daily` singleton (2 added save, resume, discard and inProgress). Bump only on an incompatible change. */
273
+ const DAILY_SINGLETON_API = 2;
180
274
  /** Whether `candidate` is some bundle's daily system (v1 copies included). */
181
275
  function isDailySystem(candidate) {
182
276
  return hasMethods(candidate, [
@@ -197,8 +291,8 @@ let claimedDaily = null;
197
291
  function getDaily(host) {
198
292
  claimedDaily ?? (claimedDaily = claimSingleton({
199
293
  name: "daily",
200
- version: "2.0.0-next.5",
201
- api: 1,
294
+ version: "2.0.0-next.6",
295
+ api: 2,
202
296
  create: () => new DailySystem(host),
203
297
  isInstance: isDailySystem
204
298
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"daily.js","names":[],"sources":["../../src/daily/daily-system.ts","../../src/daily/page-daily.ts"],"mappings":"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"}
1
+ {"version":3,"file":"daily.js","names":[],"sources":["../../src/daily/daily-system.ts","../../src/daily/page-daily.ts"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
2
+ function _typeof(o) {
3
+ "@babel/helpers - typeof";
4
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
5
+ return typeof o;
6
+ } : function(o) {
7
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
8
+ }, _typeof(o);
9
+ }
10
+ //#endregion
11
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
12
+ function toPrimitive(t, r) {
13
+ if ("object" != _typeof(t) || !t) return t;
14
+ var e = t[Symbol.toPrimitive];
15
+ if (void 0 !== e) {
16
+ var i = e.call(t, r || "default");
17
+ if ("object" != _typeof(i)) return i;
18
+ throw new TypeError("@@toPrimitive must return a primitive value.");
19
+ }
20
+ return ("string" === r ? String : Number)(t);
21
+ }
22
+ //#endregion
23
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
24
+ function toPropertyKey(t) {
25
+ var i = toPrimitive(t, "string");
26
+ return "symbol" == _typeof(i) ? i : i + "";
27
+ }
28
+ //#endregion
29
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
30
+ function _defineProperty(e, r, t) {
31
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
32
+ value: t,
33
+ enumerable: !0,
34
+ configurable: !0,
35
+ writable: !0
36
+ }) : e[r] = t, e;
37
+ }
38
+ //#endregion
39
+ export { _defineProperty as t };
@@ -0,0 +1,32 @@
1
+ import { l as RenderOptions, o as LookLike, s as Point, t as Anchor } from "./types.js";
2
+ import { t as SceneNode } from "./scene.js";
3
+ import { AvatarLook } from "@diffenderfer-games/hub-contract/avatar";
4
+ //#region src/avatar/render/compose.d.ts
5
+ /** The head centre's height above the feet. */
6
+ declare const HEAD_Y = -96;
7
+ /** A composed avatar: scene nodes in rig space and its anchors. */
8
+ interface Composed {
9
+ readonly nodes: readonly SceneNode[];
10
+ readonly anchors: Readonly<Record<Anchor, Point>>;
11
+ }
12
+ /** Composes a look (or `null` for the silhouette) with a pose. */
13
+ declare function composeAvatar(look: AvatarLook | null, opts?: RenderOptions): Composed;
14
+ //#endregion
15
+ //#region src/avatar/outputs/svg.d.ts
16
+ /** An avatar as SVG markup. */
17
+ declare function renderSvg(like: LookLike, opts?: RenderOptions): string;
18
+ //#endregion
19
+ //#region src/avatar/art-store.d.ts
20
+ /** Loads the art chunk (once). Resolves when rendering is synchronous. */
21
+ declare function ready(): Promise<void>;
22
+ /** Calls `fn` once the art has loaded (now, when it already has). */
23
+ declare function onArtReady(fn: () => void): void;
24
+ //#endregion
25
+ //#region src/avatar/describe.d.ts
26
+ /** Alt text for any {@link LookLike} (`''` for none). */
27
+ declare function describe(like: LookLike): string;
28
+ /** A person emoji with the nearest of the five skin tones and a hair hint where Unicode has one: `🧑🏽‍🦱`. */
29
+ declare function avatarEmoji(like: LookLike): string;
30
+ //#endregion
31
+ export { renderSvg as a, composeAvatar as c, ready as i, describe as n, Composed as o, onArtReady as r, HEAD_Y as s, avatarEmoji as t };
32
+ //# sourceMappingURL=describe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe.d.ts","names":[],"sources":["../../src/avatar/render/compose.ts","../../src/avatar/outputs/svg.ts","../../src/avatar/art-store.ts","../../src/avatar/describe.ts"],"mappings":";;;;;cAuBa;;UASI;WACN,gBAAgB;WAChB,SAAS,SAAS,OAAO,QAAQ;;;iBAiL5B,cAAc,MAAM,mBAAmB,OAAM,gBAAqB;;;;iBC9KlE,UAAU,MAAM,UAAU,OAAM;;;;iBCpBhC,SAAS;;iBAYT,WAAW;;;;iBC4BX,SAAS,MAAM;;iBASf,YAAY,MAAM"}
@@ -0,0 +1,101 @@
1
+ import { M as lightness, P as toLook } from "./svg-markup.js";
2
+ import { findPreset, partName, resolveColour } from "@diffenderfer-games/hub-contract/avatar";
3
+ //#region src/avatar/describe.ts
4
+ /**
5
+ * Plain-text forms of a look: `describe()` for alt text where the avatar is
6
+ * the content (the designer preview), and `avatarEmoji()` for plain-text
7
+ * places (push titles, the console). Never gendered (§10).
8
+ */
9
+ /** Hair phrases; `{c}` is the colour word. */
10
+ const HAIR_WORDS = {
11
+ bald: "no hair",
12
+ buzz: "a {c} buzz cut",
13
+ crop: "short {c} hair",
14
+ swoop: "short swept {c} hair",
15
+ spiky: "spiky {c} hair",
16
+ curly: "short curly {c} hair",
17
+ coily: "short coily {c} hair",
18
+ afro: "a {c} afro",
19
+ bob: "a {c} bob",
20
+ long: "long {c} hair",
21
+ ponytail: "a {c} ponytail",
22
+ bun: "a {c} bun",
23
+ puffs: "two {c} puffs",
24
+ mohawk: "a {c} mohawk",
25
+ locs: "{c} locs",
26
+ braids: "{c} braids"
27
+ };
28
+ const BEARD_WORDS = {
29
+ stubble: "stubble",
30
+ moustache: "a moustache",
31
+ handlebar: "a handlebar moustache",
32
+ goatee: "a goatee",
33
+ chinstrap: "a chinstrap beard",
34
+ short: "a short beard",
35
+ full: "a beard",
36
+ long: "a long beard"
37
+ };
38
+ const EXTRA_WORDS = {
39
+ "glasses.round": "round glasses",
40
+ "glasses.square": "square glasses",
41
+ "headwear.hijab": "a hijab",
42
+ "headwear.headwrap": "a headwrap",
43
+ "headwear.beanie": "a beanie",
44
+ "headwear.cap": "a cap",
45
+ "face.freckles": "freckles",
46
+ "face.rosy": "rosy cheeks",
47
+ "ears.studs": "earrings",
48
+ "ears.hoops": "hoop earrings"
49
+ };
50
+ /** A colour word: the preset's name (`p:hair-dark-blond` → "dark blond"), else "light" or "dark". */
51
+ function colourWord(colour, prefix) {
52
+ if (findPreset(colour) && colour.startsWith(`p:${prefix}-`)) return colour.slice(prefix.length + 3).replace(/-/g, " ");
53
+ return lightness(resolveColour(colour)) > .6 ? "light" : "dark";
54
+ }
55
+ /** "Short curly blond hair, green eyes and freckles." */
56
+ function describeLook(look) {
57
+ const isCovered = look.accessories.some((a) => a.id === "headwear.hijab" || a.id === "headwear.headwrap");
58
+ const parts = [];
59
+ if (!isCovered) parts.push((HAIR_WORDS[partName(look.hair.style)] ?? "{c} hair").replace("{c}", colourWord(look.hair.colour, "hair")));
60
+ parts.push(`${colourWord(look.eyes.colour, "eye")} eyes`);
61
+ const beard = BEARD_WORDS[partName(look.facialHair.style)];
62
+ if (beard) parts.push(beard);
63
+ for (const accessory of look.accessories) {
64
+ const word = EXTRA_WORDS[accessory.id];
65
+ if (word) parts.push(word);
66
+ }
67
+ const text = parts.length > 1 ? `${parts.slice(0, -1).join(", ")} and ${parts.at(-1) ?? ""}` : parts.join("");
68
+ return `${text.charAt(0).toUpperCase()}${text.slice(1)}.`;
69
+ }
70
+ /** Alt text for any {@link LookLike} (`''` for none). */
71
+ function describe(like) {
72
+ const look = toLook(like);
73
+ return look ? describeLook(look) : "";
74
+ }
75
+ const TONES = [
76
+ "🏻",
77
+ "🏼",
78
+ "🏽",
79
+ "🏾",
80
+ "🏿"
81
+ ];
82
+ const HAIR_HINT = {
83
+ curly: "🦱",
84
+ coily: "🦱",
85
+ afro: "🦱",
86
+ bald: "🦲",
87
+ buzz: "🦲"
88
+ };
89
+ /** A person emoji with the nearest of the five skin tones and a hair hint where Unicode has one: `🧑🏽‍🦱`. */
90
+ function avatarEmoji(like) {
91
+ const look = toLook(like);
92
+ if (!look) return "👤";
93
+ const l = lightness(resolveColour(look.skin));
94
+ const tone = TONES[Math.max(0, Math.min(4, Math.round((.86 - l) / .09)))] ?? "";
95
+ const hint = HAIR_HINT[partName(look.hair.style)];
96
+ return `\u{1F9D1}${tone}${hint ? `‍${hint}` : ""}`;
97
+ }
98
+ //#endregion
99
+ export { describe as n, avatarEmoji as t };
100
+
101
+ //# sourceMappingURL=describe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe.js","names":[],"sources":["../../src/avatar/describe.ts"],"mappings":";;;;;;;;;AAWA,MAAM,aAA+C;CACnD,MAAM;CAAW,MAAM;CAAkB,MAAM;CAAkB,OAAO;CAAwB,OAAO;CACvG,OAAO;CAAwB,OAAO;CAAwB,MAAM;CAAc,KAAK;CAAa,MAAM;CAC1G,UAAU;CAAkB,KAAK;CAAa,OAAO;CAAiB,QAAQ;CAAgB,MAAM;CAAY,QAAQ;AAC1H;AACA,MAAM,cAAgD;CACpD,SAAS;CAAW,WAAW;CAAe,WAAW;CAAyB,QAAQ;CAC1F,WAAW;CAAqB,OAAO;CAAiB,MAAM;CAAW,MAAM;AACjF;AACA,MAAM,cAAgD;CACpD,iBAAiB;CAAiB,kBAAkB;CAAkB,kBAAkB;CACxF,qBAAqB;CAAc,mBAAmB;CAAY,gBAAgB;CAClF,iBAAiB;CAAY,aAAa;CAAe,cAAc;CAAY,cAAc;AACnG;;AAGA,SAAS,WAAW,QAAoB,QAAgC;CACtE,IAAI,WAAW,MAAM,KAAK,OAAO,WAAW,KAAK,OAAO,EAAE,GACxD,OAAO,OAAO,MAAM,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,MAAM,GAAG;CAE1D,OAAO,UAAU,cAAc,MAAM,CAAC,IAAI,KAAM,UAAU;AAC5D;;AAGA,SAAgB,aAAa,MAA0B;CACrD,MAAM,YAAY,KAAK,YAAY,MAAM,MAAM,EAAE,OAAO,oBAAoB,EAAE,OAAO,mBAAmB;CACxG,MAAM,QAAkB,CAAC;CACzB,IAAI,CAAC,WACH,MAAM,MAAM,WAAW,SAAS,KAAK,KAAK,KAAK,MAAM,WAAA,CAAY,QAAQ,OAAO,WAAW,KAAK,KAAK,QAAQ,MAAM,CAAC,CAAC;CAEvH,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,QAAQ,KAAK,EAAE,MAAM;CACxD,MAAM,QAAQ,YAAY,SAAS,KAAK,WAAW,KAAK;CACxD,IAAI,OACF,MAAM,KAAK,KAAK;CAElB,KAAK,MAAM,aAAa,KAAK,aAAa;EACxC,MAAM,OAAO,YAAY,UAAU;EACnC,IAAI,MACF,MAAM,KAAK,IAAI;CAEnB;CACA,MAAM,OAAO,MAAM,SAAS,IAAI,GAAG,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,MAAM,GAAG,EAAE,KAAK,OAAO,MAAM,KAAK,EAAE;CAC5G,OAAO,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,MAAM,CAAC,EAAE;AACzD;;AAGA,SAAgB,SAAS,MAAwB;CAC/C,MAAM,OAAO,OAAO,IAAI;CACxB,OAAO,OAAO,aAAa,IAAI,IAAI;AACrC;AAEA,MAAM,QAAQ;CAAC;CAAa;CAAa;CAAa;CAAa;AAAW;AAC9E,MAAM,YAA8C;CAAE,OAAO;CAAa,OAAO;CAAa,MAAM;CAAa,MAAM;CAAa,MAAM;AAAY;;AAGtJ,SAAgB,YAAY,MAAwB;CAClD,MAAM,OAAO,OAAO,IAAI;CACxB,IAAI,CAAC,MACH,OAAO;CAET,MAAM,IAAI,UAAU,cAAc,KAAK,IAAI,CAAC;CAC5C,MAAM,OAAO,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO,MAAO,KAAK,GAAI,CAAC,CAAC,MAAM;CAC/E,MAAM,OAAO,UAAU,SAAS,KAAK,KAAK,KAAK;CAC/C,OAAO,YAAY,OAAO,OAAO,IAAI,SAAS;AAChD"}
@@ -12,44 +12,6 @@ function hasMethods(candidate, names) {
12
12
  function readField(candidate, key) {
13
13
  return isObject(candidate) ? Reflect.get(candidate, key) : void 0;
14
14
  }
15
- //#endregion
16
- //#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
17
- function _typeof(o) {
18
- "@babel/helpers - typeof";
19
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
20
- return typeof o;
21
- } : function(o) {
22
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
23
- }, _typeof(o);
24
- }
25
- //#endregion
26
- //#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
27
- function toPrimitive(t, r) {
28
- if ("object" != _typeof(t) || !t) return t;
29
- var e = t[Symbol.toPrimitive];
30
- if (void 0 !== e) {
31
- var i = e.call(t, r || "default");
32
- if ("object" != _typeof(i)) return i;
33
- throw new TypeError("@@toPrimitive must return a primitive value.");
34
- }
35
- return ("string" === r ? String : Number)(t);
36
- }
37
- //#endregion
38
- //#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
39
- function toPropertyKey(t) {
40
- var i = toPrimitive(t, "string");
41
- return "symbol" == _typeof(i) ? i : i + "";
42
- }
43
- //#endregion
44
- //#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
45
- function _defineProperty(e, r, t) {
46
- return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
47
- value: t,
48
- enumerable: !0,
49
- configurable: !0,
50
- writable: !0
51
- }) : e[r] = t, e;
52
- }
53
15
  /** The v1 window names, kept as aliases. */
54
16
  const LEGACY_GLOBAL_NAMES = {
55
17
  input: "__HUB_INPUT__",
@@ -97,6 +59,6 @@ function claimSingleton(claim) {
97
59
  return instance;
98
60
  }
99
61
  //#endregion
100
- export { isObject as a, hasMethods as i, claimSingleton as n, readField as o, _defineProperty as r, LEGACY_GLOBAL_NAMES as t };
62
+ export { readField as a, isObject as i, claimSingleton as n, hasMethods as r, LEGACY_GLOBAL_NAMES as t };
101
63
 
102
64
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","names":[],"sources":["../../src/realtime/cross-bundle.ts","../../src/globals.ts"],"mappings":";;AAWA,SAAgB,SAAS,WAAyC;CAChE,OAAO,OAAO,cAAc,YAAY,cAAc;AACxD;;AAIA,SAAgB,WAAgC,WAAoB,OAA8D;CAChI,IAAI,CAAC,SAAS,SAAS,GACrB,OAAO;CAET,OAAO,MAAM,OAAO,SAAS,QAAQ,aAAa,OAAO,QAAQ,IAAI,WAAW,IAAI,MAAM,UAAU;AACtG;;AAIA,SAAgB,UAAU,WAAoB,KAAsB;CAClE,OAAO,SAAS,SAAS,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,KAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQA,MAAa,sBAAsB;CAAE,OAAO;CAAiB,OAAO;CAAiB,IAAI;AAAa;AAkCtG,MAAM,mCAAmB,IAAI,IAAmB;;AAGhD,SAAS,WAAW,MAAiD;CACnE,IAAI,SAAS,KAAA,GACX;CAEF,KAAK,WAAL,KAAK,SAAW,CAAC;CACjB,OAAO,KAAK;AACd;;AAGA,SAAgB,eAAkB,OAA6B;CAC7D,MAAM,OAAO,OAAO,WAAW,cAAc,KAAA,IAAY;CACzD,MAAM,WAAW,WAAW,IAAI;CAChC,IAAI,SAAS,KAAA,KAAa,aAAa,KAAA,GACrC,OAAO,MAAM,OAAO;CAEtB,MAAM,aAAa,SAAS,MAAM;CAClC,IAAI,eAAe,KAAA,KAAa,MAAM,WAAW,WAAW,QAAQ,GAAG;EACrE,IAAI,WAAW,QAAQ,MAAM,KAC3B,OAAO,WAAW;EAEpB,IAAI,CAAC,iBAAiB,IAAI,MAAM,IAAI,GAAG;GACrC,iBAAiB,IAAI,MAAM,IAAI;GAE/B,QAAQ,KAAK,+CAA+C,MAAM,KAAK,MAAM,WAAW,QAAQ,OAAO,OAAO,WAAW,GAAG,EAAE,KAAK,MAAM,QAAQ,OAAO,OAAO,MAAM,GAAG,EAAE,2CAA2C;EACvN;EACA,IAAI,MAAM,aAAa,UAAU,MAAM,MACrC,OAAO,MAAM,OAAO;CAExB,OAAO;EACL,MAAM,SAAS,KAAK,oBAAoB,MAAM;EAC9C,IAAI,eAAe,KAAA,KAAa,MAAM,WAAW,MAAM,GAAG;GAGxD,SAAS,MAAM,QAAQ;IAAE,SAAA;IAA4B,KAAK,MAAM;IAAK,UAAU;GAAO;GACtF,OAAO;EACT;CACF;CACA,MAAM,WAAW,MAAM,OAAO;CAC9B,SAAS,MAAM,QAAQ;EAAE,SAAS,MAAM;EAAS,KAAK,MAAM;EAAK;CAAS;CAC1E,KAAK,oBAAoB,MAAM,SAAS;CACxC,OAAO;AACT"}
1
+ {"version":3,"file":"globals.js","names":[],"sources":["../../src/realtime/cross-bundle.ts","../../src/globals.ts"],"mappings":";;AAWA,SAAgB,SAAS,WAAyC;CAChE,OAAO,OAAO,cAAc,YAAY,cAAc;AACxD;;AAIA,SAAgB,WAAgC,WAAoB,OAA8D;CAChI,IAAI,CAAC,SAAS,SAAS,GACrB,OAAO;CAET,OAAO,MAAM,OAAO,SAAS,QAAQ,aAAa,OAAO,QAAQ,IAAI,WAAW,IAAI,MAAM,UAAU;AACtG;;AAIA,SAAgB,UAAU,WAAoB,KAAsB;CAClE,OAAO,SAAS,SAAS,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,KAAA;AAC7D;;ACQA,MAAa,sBAAsB;CAAE,OAAO;CAAiB,OAAO;CAAiB,IAAI;AAAa;AAkCtG,MAAM,mCAAmB,IAAI,IAAmB;;AAGhD,SAAS,WAAW,MAAiD;CACnE,IAAI,SAAS,KAAA,GACX;CAEF,KAAK,WAAL,KAAK,SAAW,CAAC;CACjB,OAAO,KAAK;AACd;;AAGA,SAAgB,eAAkB,OAA6B;CAC7D,MAAM,OAAO,OAAO,WAAW,cAAc,KAAA,IAAY;CACzD,MAAM,WAAW,WAAW,IAAI;CAChC,IAAI,SAAS,KAAA,KAAa,aAAa,KAAA,GACrC,OAAO,MAAM,OAAO;CAEtB,MAAM,aAAa,SAAS,MAAM;CAClC,IAAI,eAAe,KAAA,KAAa,MAAM,WAAW,WAAW,QAAQ,GAAG;EACrE,IAAI,WAAW,QAAQ,MAAM,KAC3B,OAAO,WAAW;EAEpB,IAAI,CAAC,iBAAiB,IAAI,MAAM,IAAI,GAAG;GACrC,iBAAiB,IAAI,MAAM,IAAI;GAE/B,QAAQ,KAAK,+CAA+C,MAAM,KAAK,MAAM,WAAW,QAAQ,OAAO,OAAO,WAAW,GAAG,EAAE,KAAK,MAAM,QAAQ,OAAO,OAAO,MAAM,GAAG,EAAE,2CAA2C;EACvN;EACA,IAAI,MAAM,aAAa,UAAU,MAAM,MACrC,OAAO,MAAM,OAAO;CAExB,OAAO;EACL,MAAM,SAAS,KAAK,oBAAoB,MAAM;EAC9C,IAAI,eAAe,KAAA,KAAa,MAAM,WAAW,MAAM,GAAG;GAGxD,SAAS,MAAM,QAAQ;IAAE,SAAA;IAA4B,KAAK,MAAM;IAAK,UAAU;GAAO;GACtF,OAAO;EACT;CACF;CACA,MAAM,WAAW,MAAM,OAAO;CAC9B,SAAS,MAAM,QAAQ;EAAE,SAAS,MAAM;EAAS,KAAK,MAAM;EAAK;CAAS;CAC1E,KAAK,oBAAoB,MAAM,SAAS;CACxC,OAAO;AACT"}