@rydr/game-sdk 3.14.0 → 3.15.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.
@@ -9,5 +9,5 @@
9
9
  export declare const RYDR_PROTOCOL_VERSION: 16;
10
10
  /** Semver of this SDK build. Sent in the handshake for telemetry/debugging.
11
11
  * (Bumped to 2.0.0 by `npm version major` on release — see CHANGELOG [Unreleased].) */
12
- export declare const RYDR_SDK_VERSION = "3.14.0";
12
+ export declare const RYDR_SDK_VERSION = "3.15.0";
13
13
  //# sourceMappingURL=version.d.ts.map
@@ -52,5 +52,5 @@
52
52
  export const RYDR_PROTOCOL_VERSION = 16;
53
53
  /** Semver of this SDK build. Sent in the handshake for telemetry/debugging.
54
54
  * (Bumped to 2.0.0 by `npm version major` on release — see CHANGELOG [Unreleased].) */
55
- export const RYDR_SDK_VERSION = "3.14.0";
55
+ export const RYDR_SDK_VERSION = "3.15.0";
56
56
  //# sourceMappingURL=version.js.map
@@ -17,6 +17,7 @@
17
17
  */
18
18
  import type { GameDoc } from "../protocol/gamedata.js";
19
19
  import { type CueCatalog, type CueBindings } from "../sounds/soundboard.js";
20
+ import type { MusicBed } from "../sounds/music-director.js";
20
21
  /** The session surface the editor needs — a `PlatformSession` satisfies it. */
21
22
  export interface SoundboardEditorSession {
22
23
  readonly identity: {
@@ -25,6 +26,15 @@ export interface SoundboardEditorSession {
25
26
  getContent(collection: string, id: string): Promise<GameDoc | null>;
26
27
  saveContent(collection: string, id: string, value: unknown): Promise<void>;
27
28
  }
29
+ /** A music state exposed for bed binding — one row in the editor's Music section. `id` matches a key
30
+ * in the game's `MusicDirector` `beds` map. */
31
+ export interface MusicStateDef {
32
+ id: string;
33
+ /** Row label (defaults to `id`). */
34
+ label?: string;
35
+ /** What plays during / when this state is active. */
36
+ description?: string;
37
+ }
28
38
  export interface SoundboardEditorOptions {
29
39
  session: SoundboardEditorSession;
30
40
  /** The game's own cues, merged over {@link STANDARD_CUES} (same shape as `createSoundboard`). */
@@ -32,6 +42,10 @@ export interface SoundboardEditorOptions {
32
42
  /** The game's CODE default bindings, merged over {@link STANDARD_BINDINGS}; shown as each cue's
33
43
  * fallback and used as the effective binding when a cue has no saved override. */
34
44
  defaults?: CueBindings;
45
+ /** The game's music states to expose for bed binding (one row each). Omit for no Music section. */
46
+ musicStates?: MusicStateDef[];
47
+ /** The game's CODE default beds per state; shown as each state's inherited fallback. */
48
+ musicDefaults?: Record<string, MusicBed>;
35
49
  /** Library manifest to browse/preview. Defaults to {@link DEFAULT_SOUND_LIBRARY_URL}. */
36
50
  manifestUrl?: string;
37
51
  /** Optional link to the full admin Sound Gallery (to author new sounds). */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/soundboard-editor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAML,KAAK,UAAU,EACf,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,iGAAiG;IACjG,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;uFACmF;IACnF,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,IAAI,CAAC;CACjB;AA6CD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,CA2NxG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/soundboard-editor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAML,KAAK,UAAU,EACf,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,+EAA+E;AAC/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED;gDACgD;AAChD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,iGAAiG;IACjG,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;uFACmF;IACnF,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,mGAAmG;IACnG,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,IAAI,CAAC;CACjB;AAiDD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,CAwXxG"}
@@ -31,6 +31,10 @@ const CSS = `
31
31
  .rydr-sbe-resolved .silent{color:#8b93a7}
32
32
  .rydr-sbe-play{min-width:96px;display:flex;justify-content:flex-end}
33
33
  .rydr-sbe-empty{padding:24px 4px;color:#8b93a7}
34
+ .rydr-sbe-tracks{display:flex;flex-direction:column;gap:6px;margin-top:2px}
35
+ .rydr-sbe-track{display:flex;gap:6px}
36
+ .rydr-sbe-track select{flex:1;background:#0d0f14;border:1px solid #2a3242;border-radius:8px;color:#e7e9ee;padding:6px 8px;font:inherit}
37
+ .rydr-sbe-track .rydr-sbe-btn,.rydr-sbe-tracks>.rydr-sbe-btn{padding:4px 10px;align-self:flex-start}
34
38
  `;
35
39
  function injectCss() {
36
40
  const id = "rydr-sbe-css";
@@ -47,9 +51,14 @@ export function mountSoundboardEditor(root, opts) {
47
51
  const isAdmin = !!session.identity.isAdmin;
48
52
  const catalog = { ...STANDARD_CUES, ...opts.cues };
49
53
  const defaults = { ...STANDARD_BINDINGS, ...opts.defaults };
50
- // Working override set: only cues the admin has explicitly set. Empty string = explicitly silent.
54
+ const musicStates = opts.musicStates ?? [];
55
+ const musicDefaults = { ...opts.musicDefaults };
56
+ // Working override sets: only entries the admin has explicitly set. Empty string = explicitly
57
+ // silent (cues); for music a `null` value is silent and absence = inherit the code default.
51
58
  let working = {};
52
- let saved = "{}"; // JSON snapshot for dirty detection
59
+ let workingMusic = {};
60
+ const snapshot = () => JSON.stringify({ b: working, m: workingMusic });
61
+ let saved = snapshot(); // JSON snapshot for dirty detection
53
62
  const bank = createSoundBank({ manifestUrl: opts.manifestUrl ?? DEFAULT_SOUND_LIBRARY_URL });
54
63
  let assets = [];
55
64
  const known = new Set(); // published keys
@@ -58,7 +67,7 @@ export function mountSoundboardEditor(root, opts) {
58
67
  // ── Header ──────────────────────────────────────────────────────────────────
59
68
  const head = document.createElement("div");
60
69
  head.className = "rydr-sbe-head";
61
- head.innerHTML = `<h1>Sound cues</h1><span class="sub">Bind each game event to a library sound</span>`;
70
+ head.innerHTML = `<h1>Sound cues &amp; music</h1><span class="sub">Bind game events and background-music beds to library sounds</span>`;
62
71
  const actions = document.createElement("div");
63
72
  actions.className = "rydr-sbe-actions";
64
73
  const dirtyEl = document.createElement("span");
@@ -79,7 +88,7 @@ export function mountSoundboardEditor(root, opts) {
79
88
  const body = document.createElement("div");
80
89
  body.className = "rydr-sbe-body";
81
90
  root.append(head, body);
82
- const isDirty = () => JSON.stringify(working) !== saved;
91
+ const isDirty = () => snapshot() !== saved;
83
92
  function refreshDirty() {
84
93
  const dirty = isDirty();
85
94
  dirtyEl.textContent = dirty ? "Unsaved changes" : "";
@@ -132,8 +141,144 @@ export function mountSoundboardEditor(root, opts) {
132
141
  for (const id of ids)
133
142
  body.appendChild(cueRow(id, cat, soundsByCat));
134
143
  }
144
+ // ── Music beds: one row per game music-state (background/menu music) ──────────
145
+ if (musicStates.length) {
146
+ const h = document.createElement("div");
147
+ h.className = "rydr-sbe-cat";
148
+ h.textContent = "music beds";
149
+ body.appendChild(h);
150
+ const musicSounds = (soundsByCat.get("music") ?? []).slice().sort((a, b) => a.key.localeCompare(b.key));
151
+ for (const def of musicStates)
152
+ body.appendChild(musicRow(def, musicSounds));
153
+ }
135
154
  refreshDirty();
136
155
  }
156
+ /** Normalize a bed to its ordered key list ([] = silent). */
157
+ const bedKeys = (b) => (b == null ? [] : Array.isArray(b) ? b : [b]);
158
+ /** The bed a state currently resolves to: explicit override, else code default. */
159
+ function resolvedBed(id) {
160
+ const has = Object.prototype.hasOwnProperty.call(workingMusic, id);
161
+ return has ? (workingMusic[id] ?? null) : (musicDefaults[id] ?? null);
162
+ }
163
+ function musicRow(def, musicSounds) {
164
+ const id = def.id;
165
+ const row = document.createElement("div");
166
+ row.className = "rydr-sbe-row";
167
+ const cell = document.createElement("div");
168
+ cell.className = "rydr-sbe-cue";
169
+ cell.innerHTML = `<span class="id">${def.label ?? id}</span><small>${def.description ?? ""}</small>`;
170
+ const pick = document.createElement("div");
171
+ pick.className = "rydr-sbe-pick";
172
+ // Mode: inherit the code default / explicit silence / custom track(s) (2+ = rotation).
173
+ const hasOverride = Object.prototype.hasOwnProperty.call(workingMusic, id);
174
+ let mode = !hasOverride
175
+ ? "inherit"
176
+ : workingMusic[id] == null
177
+ ? "silent"
178
+ : "custom";
179
+ let custom = mode === "custom" ? bedKeys(workingMusic[id]) : [];
180
+ const modeSel = document.createElement("select");
181
+ modeSel.disabled = !isAdmin;
182
+ const defBed = musicDefaults[id] ?? null;
183
+ const defText = bedKeys(defBed).length ? bedKeys(defBed).join(" → ") : "(silent)";
184
+ modeSel.append(new Option(`Inherit default · ${defText}`, "inherit"), new Option("— Silent —", "silent"), new Option("Custom track(s)…", "custom"));
185
+ modeSel.value = mode;
186
+ const tracks = document.createElement("div");
187
+ tracks.className = "rydr-sbe-tracks";
188
+ const resolved = document.createElement("div");
189
+ resolved.className = "rydr-sbe-resolved";
190
+ const playCell = document.createElement("div");
191
+ playCell.className = "rydr-sbe-play";
192
+ const playBtn = document.createElement("button");
193
+ playBtn.className = "rydr-sbe-btn";
194
+ playBtn.textContent = "▶ Preview";
195
+ playCell.appendChild(playBtn);
196
+ const paint = () => {
197
+ const keys = bedKeys(resolvedBed(id));
198
+ if (!keys.length)
199
+ resolved.innerHTML = `<span class="silent">silent</span>`;
200
+ else {
201
+ const parts = keys.map((k) => known.has(k) ? `<span class="ok">${k}</span>` : `<span class="missing">${k} — not published</span>`);
202
+ resolved.innerHTML = (keys.length > 1 ? "rotates " : "plays ") + parts.join(" → ");
203
+ }
204
+ const first = keys[0];
205
+ playBtn.disabled = !first || !known.has(first);
206
+ };
207
+ /** Push the current mode/custom UI state into workingMusic, then repaint + refresh dirty. */
208
+ const commit = () => {
209
+ if (mode === "inherit")
210
+ delete workingMusic[id];
211
+ else if (mode === "silent")
212
+ workingMusic[id] = null;
213
+ else {
214
+ const keys = custom.filter(Boolean);
215
+ workingMusic[id] = keys.length === 0 ? null : keys.length === 1 ? keys[0] : keys;
216
+ }
217
+ paint();
218
+ refreshDirty();
219
+ };
220
+ const buildTracks = () => {
221
+ tracks.innerHTML = "";
222
+ tracks.style.display = mode === "custom" ? "flex" : "none";
223
+ if (mode !== "custom")
224
+ return;
225
+ custom.forEach((key, i) => {
226
+ const t = document.createElement("div");
227
+ t.className = "rydr-sbe-track";
228
+ const sel = document.createElement("select");
229
+ sel.disabled = !isAdmin;
230
+ sel.append(new Option("— pick a track —", ""));
231
+ for (const a of musicSounds)
232
+ sel.append(new Option(a.key, a.key));
233
+ sel.value = key;
234
+ sel.addEventListener("change", () => {
235
+ custom[i] = sel.value;
236
+ commit();
237
+ });
238
+ const rm = document.createElement("button");
239
+ rm.className = "rydr-sbe-btn ghost";
240
+ rm.textContent = "✕";
241
+ rm.disabled = !isAdmin;
242
+ rm.addEventListener("click", () => {
243
+ custom.splice(i, 1);
244
+ buildTracks();
245
+ commit();
246
+ });
247
+ t.append(sel, rm);
248
+ tracks.appendChild(t);
249
+ });
250
+ const add = document.createElement("button");
251
+ add.className = "rydr-sbe-btn ghost";
252
+ add.textContent = "+ add track";
253
+ add.disabled = !isAdmin;
254
+ add.addEventListener("click", () => {
255
+ custom.push("");
256
+ buildTracks();
257
+ commit();
258
+ });
259
+ tracks.appendChild(add);
260
+ };
261
+ modeSel.addEventListener("change", () => {
262
+ mode = modeSel.value;
263
+ // Seed custom from whatever currently resolves, so switching to Custom starts from today's bed.
264
+ if (mode === "custom" && !custom.length)
265
+ custom = bedKeys(resolvedBed(id)).slice() || [""];
266
+ buildTracks();
267
+ commit();
268
+ });
269
+ playBtn.addEventListener("click", () => {
270
+ const k = bedKeys(resolvedBed(id))[0];
271
+ if (!k)
272
+ return;
273
+ stopAll();
274
+ bank.play(k, { loop: false }); // one listen, not the looping bed
275
+ });
276
+ buildTracks();
277
+ paint();
278
+ pick.append(modeSel, tracks, resolved);
279
+ row.append(cell, pick, playCell);
280
+ return row;
281
+ }
137
282
  function cueRow(cueId, cueCat, soundsByCat) {
138
283
  const def = catalog[cueId];
139
284
  const row = document.createElement("div");
@@ -207,10 +352,12 @@ export function mountSoundboardEditor(root, opts) {
207
352
  saveBtn.disabled = true;
208
353
  saveBtn.textContent = "Saving…";
209
354
  const doc = { bindings: { ...working } };
355
+ if (Object.keys(workingMusic).length)
356
+ doc.music = { ...workingMusic };
210
357
  void session
211
358
  .saveContent(SOUNDBOARD_COLLECTION, SOUNDBOARD_BINDINGS_ID, doc)
212
359
  .then(() => {
213
- saved = JSON.stringify(working);
360
+ saved = snapshot();
214
361
  })
215
362
  .catch(() => {
216
363
  /* leave dirty; the shell surfaces the failure */
@@ -234,11 +381,13 @@ export function mountSoundboardEditor(root, opts) {
234
381
  const doc = await session.getContent(SOUNDBOARD_COLLECTION, SOUNDBOARD_BINDINGS_ID);
235
382
  const data = doc?.data;
236
383
  working = { ...(data?.bindings ?? {}) };
384
+ workingMusic = { ...(data?.music ?? {}) };
237
385
  }
238
386
  catch {
239
387
  working = {};
388
+ workingMusic = {};
240
389
  }
241
- saved = JSON.stringify(working);
390
+ saved = snapshot();
242
391
  renderRows();
243
392
  })();
244
393
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/soundboard-editor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/soundboard-editor/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export { createSoundBank } from "./sound-bank.js";
19
19
  export type { SoundBank, SoundBankOptions, PlayOptions, PlayHandle } from "./sound-bank.js";
20
20
  export { createSoundboard, STANDARD_CUES, STANDARD_BINDINGS, DEFAULT_SOUND_LIBRARY_URL, SOUNDBOARD_COLLECTION, SOUNDBOARD_BINDINGS_ID, } from "./soundboard.js";
21
21
  export type { Soundboard, SoundboardOptions, SoundboardDoc, CueDef, CueCatalog, CueBindings, } from "./soundboard.js";
22
+ export { createMusicDirector } from "./music-director.js";
23
+ export type { MusicDirector, MusicDirectorOptions, MusicBed } from "./music-director.js";
22
24
  export { decodeAudio, computePeaks, peakDb, cropBuffer, encodeWav, encodeMp3 } from "./audio-utils.js";
23
25
  export { SOUND_CATEGORIES } from "./types.js";
24
26
  export type { SoundAsset, SoundClip, SoundCategory, SoundVariation, SoundLoudness, SoundLicense, SoundFolder, SoundLibraryManifest, } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sounds/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sounds/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -17,6 +17,7 @@
17
17
  */
18
18
  export { createSoundBank } from "./sound-bank.js";
19
19
  export { createSoundboard, STANDARD_CUES, STANDARD_BINDINGS, DEFAULT_SOUND_LIBRARY_URL, SOUNDBOARD_COLLECTION, SOUNDBOARD_BINDINGS_ID, } from "./soundboard.js";
20
+ export { createMusicDirector } from "./music-director.js";
20
21
  export { decodeAudio, computePeaks, peakDb, cropBuffer, encodeWav, encodeMp3 } from "./audio-utils.js";
21
22
  export { SOUND_CATEGORIES } from "./types.js";
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sounds/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sounds/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * `MusicDirector` — the game-facing **background-music arrangement** layer over {@link SoundBank}.
3
+ *
4
+ * A game's screens map to a small set of coarse, game-declared **states** (`"menu"`, `"results"`,
5
+ * `"gameplay"`, …); this director maps each state to a **bed** — a single looping key, an ordered
6
+ * rotation of keys, or silence — and drives the shared bank's `music` bus. It is the music sibling of
7
+ * {@link createSoundboard}'s cue layer, and the same code-owns-structure / data-owns-binding split:
8
+ * the game declares the *states* + their code-default beds (structure), while *which track* each state
9
+ * plays can be overridden from a persisted doc via {@link MusicDirector.setBeds} (binding) — edited in
10
+ * the soundboard editor, applied at runtime with no redeploy.
11
+ *
12
+ * The director owns no `AudioContext` and creates no bank; it is handed the game's one shared bank so
13
+ * there is exactly one mixer/limiter/master. A charted/gameplay track that the game clocks itself
14
+ * should NOT route through here — map that state to `null` (silence) and let the game own its audio.
15
+ *
16
+ * Fail-silent by construction: an unpublished/absent bed key makes `bank.play()` return `null`, so the
17
+ * game is simply quiet until the asset is published in the shared library (no redeploy).
18
+ */
19
+ import type { SoundBank } from "./sound-bank.js";
20
+ /** A music bed: one looping key, an ordered rotation of keys, or null (silence). */
21
+ export type MusicBed = string | string[] | null;
22
+ export interface MusicDirectorOptions {
23
+ /** The game's one shared bank (from `createSoundboard(...).bank` or `createSoundBank`). */
24
+ bank: SoundBank;
25
+ /** Code-default bed per state. Its keys define the valid states and the fallback used when a state
26
+ * has no saved override. Values are full library keys (namespace them in the game if needed). */
27
+ beds: Record<string, MusicBed>;
28
+ /** dB the `music` bus drops by while a foreground clip is up (see {@link MusicDirector.suppress}).
29
+ * Default 18. */
30
+ suppressDb?: number;
31
+ }
32
+ export interface MusicDirector {
33
+ /** Set the active state → play the mapped bed (or none). Idempotent: re-entering a state whose bed
34
+ * resolves to the same track(s) is a no-op (does NOT restart the track). */
35
+ enter(state: string): void;
36
+ /** Transiently duck/quiet the current bed for a foreground clip (e.g. a song preview).
37
+ * Reference-counted: N suppress() calls need N release() calls before the bed returns. */
38
+ suppress(): void;
39
+ /** Undo one suppress(). */
40
+ release(): void;
41
+ /** Player setting: enable/disable the music bed. */
42
+ setEnabled(on: boolean): void;
43
+ /** Merge per-state bed overrides (e.g. an admin's saved doc) over the code defaults, then re-resolve
44
+ * the current state so a change to the live bed takes effect immediately. A `null` value silences
45
+ * that state; a state absent from `map` keeps its current bed. */
46
+ setBeds(overrides: Record<string, MusicBed>): void;
47
+ /** Re-apply the current bed after the first user gesture unlocks audio (or the manifest loads).
48
+ * Idempotent. */
49
+ unlock(): void;
50
+ dispose(): void;
51
+ }
52
+ export declare function createMusicDirector(opts: MusicDirectorOptions): MusicDirector;
53
+ //# sourceMappingURL=music-director.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"music-director.d.ts","sourceRoot":"","sources":["../../src/sounds/music-director.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,oFAAoF;AACpF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,2FAA2F;IAC3F,IAAI,EAAE,SAAS,CAAC;IAChB;sGACkG;IAClG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B;sBACkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B;iFAC6E;IAC7E,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;+FAC2F;IAC3F,QAAQ,IAAI,IAAI,CAAC;IACjB,2BAA2B;IAC3B,OAAO,IAAI,IAAI,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B;;uEAEmE;IACnE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACnD;sBACkB;IAClB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAmD7E"}
@@ -0,0 +1,53 @@
1
+ export function createMusicDirector(opts) {
2
+ const { bank } = opts;
3
+ const suppressDb = opts.suppressDb ?? 18;
4
+ let beds = { ...opts.beds };
5
+ // Start on the first declared state; the game's router calls enter() on first mount anyway, so this
6
+ // only matters for the (silent) window before that.
7
+ let state = Object.keys(beds)[0] ?? "";
8
+ let enabled = true;
9
+ let suppressCount = 0;
10
+ let gen = 0; // bumped on every bed change; a stale rotation's onEnded bails against it
11
+ let sig = ""; // signature of the current bed, so enter() can no-op when unchanged
12
+ let handle = null;
13
+ const bedFor = () => (enabled ? (beds[state] ?? null) : null);
14
+ const sigOf = (b) => (Array.isArray(b) ? b.join(",") : b ?? "");
15
+ function stopBed() {
16
+ gen++; // invalidate any pending rotation advance
17
+ handle?.stop();
18
+ handle = null;
19
+ }
20
+ function playFrom(keys, i, myGen) {
21
+ const rotate = keys.length > 1; // rotation plays once + advances; single track loops
22
+ handle = bank.play(keys[i % keys.length], {
23
+ loop: !rotate,
24
+ onEnded: rotate ? () => { if (myGen === gen)
25
+ playFrom(keys, i + 1, myGen); } : undefined,
26
+ }); // null if unpublished/blocked — fine
27
+ }
28
+ function applyBed() {
29
+ const bed = bedFor();
30
+ const next = sigOf(bed);
31
+ if (next === sig)
32
+ return; // already correct — do NOT restart
33
+ stopBed();
34
+ sig = next;
35
+ if (!bed)
36
+ return;
37
+ playFrom(Array.isArray(bed) ? bed : [bed], 0, gen);
38
+ if (suppressCount > 0)
39
+ bank.duck("music", suppressDb, 0); // stay quiet if a preview is up
40
+ }
41
+ return {
42
+ enter(nextState) { state = nextState; applyBed(); },
43
+ suppress() { if (suppressCount++ === 0)
44
+ bank.duck("music", suppressDb); },
45
+ release() { if (suppressCount > 0 && --suppressCount === 0)
46
+ bank.unduck("music"); },
47
+ setEnabled(on) { enabled = on; applyBed(); },
48
+ setBeds(overrides) { beds = { ...beds, ...overrides }; sig = ""; applyBed(); },
49
+ unlock() { sig = ""; applyBed(); }, // force a replay: a pre-gesture / pre-load play() was silent
50
+ dispose() { stopBed(); },
51
+ };
52
+ }
53
+ //# sourceMappingURL=music-director.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"music-director.js","sourceRoot":"","sources":["../../src/sounds/music-director.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@
30
30
  */
31
31
  import { type SoundBank, type PlayHandle, type PlayOptions } from "./sound-bank.js";
32
32
  import type { SoundCategory, SoundLibraryManifest } from "./types.js";
33
+ import type { MusicBed } from "./music-director.js";
33
34
  /** The published, platform-wide sound library (R2 `sounds/library.json`). Same host as the TTS cache.
34
35
  * A game may pass its own `manifestUrl`, but every game shares this one library by default. */
35
36
  export declare const DEFAULT_SOUND_LIBRARY_URL = "https://pub-3e9a1541a2e9454596e0f4148c48adef.r2.dev/sounds/library.json";
@@ -75,6 +76,10 @@ export declare const SOUNDBOARD_BINDINGS_ID = "bindings";
75
76
  /** Shape of the persisted bindings doc's `data`. */
76
77
  export interface SoundboardDoc {
77
78
  bindings: CueBindings;
79
+ /** Per-state music-bed overrides, layered over the game's code-default beds (see
80
+ * {@link MusicDirector.setBeds}). Keys are the game's own music-state ids; values are library
81
+ * keys / rotations / null (silent). Absent = every state stays on its code default. */
82
+ music?: Record<string, MusicBed>;
78
83
  }
79
84
  export interface SoundboardOptions {
80
85
  /** Published library URL. Defaults to {@link DEFAULT_SOUND_LIBRARY_URL}. */
@@ -1 +1 @@
1
- {"version":3,"file":"soundboard.d.ts","sourceRoot":"","sources":["../../src/sounds/soundboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEtE;gGACgG;AAChG,eAAO,MAAM,yBAAyB,4EACqC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,yFAAyF;IACzF,QAAQ,EAAE,aAAa,CAAC;IACxB,sGAAsG;IACtG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,2BAA2B;AAC3B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChD,sGAAsG;AACtG,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,UAS3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAS/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,gFAAgF;IAChF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,qGAAqG;IACrG,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;IACvD,sCAAsC;IACtC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mFAAmF;IACnF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oFAAoF;IACpF,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,qGAAqG;IACrG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACpD;mFAC+E;IAC/E,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,0BAA0B;IAC1B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAmFzE"}
1
+ {"version":3,"file":"soundboard.d.ts","sourceRoot":"","sources":["../../src/sounds/soundboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"soundboard.js","sourceRoot":"","sources":["../../src/sounds/soundboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"soundboard.js","sourceRoot":"","sources":["../../src/sounds/soundboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,eAAe,EAAqD,MAAM,iBAAiB,CAAC;AAIrG;gGACgG;AAChG,MAAM,CAAC,MAAM,yBAAyB,GACpC,yEAAyE,CAAC;AAuB5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAChG,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE;IAClF,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACtE,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC3F,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC9E,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACnF,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,wBAAwB,EAAE;IACvF,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,yBAAyB,EAAE;CACzF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,iBAAiB;IAChC,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,cAAc;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAClD,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAsDjD,MAAM,UAAU,gBAAgB,CAAC,OAA0B,EAAE;IAC3D,MAAM,OAAO,GAAe,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAgB,EAAE,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,yBAAyB;QAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,gFAAgF;IAChF,SAAS,SAAS;QAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,GAAG;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO;QACP,QAAQ;QACR,IAAI;QAEJ,KAAK,CAAC,IAAI;YACR,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,yFAAyF;YACzF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,GAAG,CAAC,EAAU,EAAE,IAAiB,EAAE;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;YAExD,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YAC/B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChF,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;oBAAE,OAAO,IAAI,CAAC;gBAC/D,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,EAAU;YACb,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,UAAU,CAAC,KAAa,EAAE,GAAkB;YAC1C,IAAI,GAAG;gBAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;;gBAC1B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,WAAW,CAAC,GAAgB;YAC1B,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,GAAG;oBAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;;oBACvB,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,eAAe,CAAC,EAAU;YACxB,QAAQ,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,WAAW,CAAC,EAAU;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,EAAW;YACd,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO;YACL,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rydr/game-sdk",
3
- "version": "3.14.0",
3
+ "version": "3.15.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/bdefrenne/rydr-game-sdk.git"