@caperjs/core 0.2.0 → 0.2.2

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 (38) hide show
  1. package/build/defaults.mjs +23 -0
  2. package/build/index.mjs +16 -1
  3. package/build/internal/discovery.mjs +7 -6
  4. package/build/internal/paths.mjs +26 -0
  5. package/build/plugins/pwa.mjs +114 -8
  6. package/lib/{CaptionsPlugin-DKhbmJvH.js → CaptionsPlugin-DeGyPecB.js} +2 -2
  7. package/lib/{CaptionsPlugin-DKhbmJvH.js.map → CaptionsPlugin-DeGyPecB.js.map} +1 -1
  8. package/lib/{DataAdapter-BZFTkFQ4.js → DataAdapter-DeI2kIxC.js} +2 -2
  9. package/lib/{DataAdapter-BZFTkFQ4.js.map → DataAdapter-DeI2kIxC.js.map} +1 -1
  10. package/lib/{DebugRenderer-C7X-nlXE.js → DebugRenderer-wjV0tMwL.js} +2 -2
  11. package/lib/{DebugRenderer-C7X-nlXE.js.map → DebugRenderer-wjV0tMwL.js.map} +1 -1
  12. package/lib/{DevToolsPlugin-P-atJ-5U.js → DevToolsPlugin-D4iWQwkO.js} +2 -2
  13. package/lib/{DevToolsPlugin-P-atJ-5U.js.map → DevToolsPlugin-D4iWQwkO.js.map} +1 -1
  14. package/lib/{GSAPPlugin-CeH9275z.js → GSAPPlugin-DQTyIwcC.js} +2 -2
  15. package/lib/{GSAPPlugin-CeH9275z.js.map → GSAPPlugin-DQTyIwcC.js.map} +1 -1
  16. package/lib/{LayoutPlugin-iZ3k6RsK.js → LayoutPlugin-vR_h-BaG.js} +4 -4
  17. package/lib/{LayoutPlugin-iZ3k6RsK.js.map → LayoutPlugin-vR_h-BaG.js.map} +1 -1
  18. package/lib/{SpinePlugin-BWiavCpO.js → SpinePlugin-DJ-PpxFj.js} +2 -2
  19. package/lib/{SpinePlugin-BWiavCpO.js.map → SpinePlugin-DJ-PpxFj.js.map} +1 -1
  20. package/lib/{StatsPlugin-CBpzDJL0.js → StatsPlugin-BYNnKYOm.js} +2 -2
  21. package/lib/{StatsPlugin-CBpzDJL0.js.map → StatsPlugin-BYNnKYOm.js.map} +1 -1
  22. package/lib/{VoiceOverPlugin-YaiKJtJ6.js → VoiceOverPlugin-BLSbq3DU.js} +2 -2
  23. package/lib/{VoiceOverPlugin-YaiKJtJ6.js.map → VoiceOverPlugin-BLSbq3DU.js.map} +1 -1
  24. package/lib/caper.mjs +3 -3
  25. package/lib/caper.mjs.map +1 -1
  26. package/lib/core/Application.d.ts +30 -1
  27. package/lib/core/Application.d.ts.map +1 -1
  28. package/lib/core/create.d.ts +28 -1
  29. package/lib/core/create.d.ts.map +1 -1
  30. package/lib/core/index.d.ts +1 -1
  31. package/lib/core/index.d.ts.map +1 -1
  32. package/lib/{registries-qQmLeN0b.js → registries-aN0y0Xha.js} +26 -11
  33. package/lib/{registries-qQmLeN0b.js.map → registries-aN0y0Xha.js.map} +1 -1
  34. package/package.json +1 -1
  35. package/src/core/Application.ts +51 -0
  36. package/src/core/create.ts +30 -1
  37. package/src/core/index.ts +1 -1
  38. package/src/version.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import { gsap } from 'gsap';
2
- import { AppConfig, IApplication, IApplicationOptions, ICaperAutomation, ICoreFunctions, ICoreSignals, PauseConfig } from '.';
2
+ import { AppConfig, CaperPWA, IApplication, IApplicationOptions, ICaperAutomation, ICoreFunctions, ICoreSignals, PauseConfig } from '.';
3
3
  import { ActionSignal, AppScenes, IAssetsPlugin, IAudioManagerPlugin, IBreakpointPlugin, IControls, IFocusManagerPlugin, Ii18nPlugin, IInputPlugin, IKeyboardPlugin, IPlugin, IPopupManagerPlugin, IResizerPlugin, ISceneManagerPlugin, IWebEventsPlugin, LoadSceneConfig } from '../plugins';
4
4
  import { AssetsManifest, DestroyOptions, RendererDestroyOptions, Container as PIXIContainer, Application as PIXIPApplication, Point } from 'pixi.js';
5
5
  import { IDataAdapter } from '../plugins/DataAdapter';
@@ -44,6 +44,24 @@ export declare class Application extends PIXIPApplication implements IApplicatio
44
44
  phase: "initialize" | "postInitialize";
45
45
  error: unknown;
46
46
  }) => void>;
47
+ /**
48
+ * Emitted when the browser offers its PWA install prompt, so a game can show its
49
+ * own in-pixi install UI.
50
+ *
51
+ * The browser usually fires this before the first scene exists, and signals do not
52
+ * replay — so UI that offers an install button must ALSO check `app.pwa?.canInstall`
53
+ * when it mounts. And `app.pwa.promptInstall()` only works from inside a user
54
+ * gesture, i.e. a button's click/tap handler, never a timer or a game event.
55
+ */
56
+ onPwaInstallAvailable: Signal<() => void>;
57
+ /**
58
+ * Emitted when a new build is waiting to take over. Call `app.pwa.applyUpdate()`
59
+ * to activate it — the page reloads once the new worker takes control.
60
+ *
61
+ * Use `pwa: { update: 'manual' }` in the vite preset to suppress caper's default
62
+ * DOM banner and present this in-game instead.
63
+ */
64
+ onPwaUpdateAvailable: Signal<() => void>;
47
65
  readonly _plugins: Map<string, IPlugin>;
48
66
  protected _assetManager: IAssetsPlugin;
49
67
  protected _lookup: ILookupPlugin;
@@ -65,6 +83,11 @@ export declare class Application extends PIXIPApplication implements IApplicatio
65
83
  protected _fullScreenElement: HTMLElement | Window | null;
66
84
  get make(): typeof defaultFactoryMethods;
67
85
  get env(): Record<string, string>;
86
+ /**
87
+ * The `Caper.pwa` facade, or undefined when the app was built without the vite
88
+ * preset's `pwa` option. See {@link CaperPWA} for the install/update timing rules.
89
+ */
90
+ get pwa(): CaperPWA | undefined;
68
91
  get debugContainer(): PIXIContainer;
69
92
  protected _paused: boolean;
70
93
  protected _pauseConfig: Partial<PauseConfig>;
@@ -174,6 +197,12 @@ export declare class Application extends PIXIPApplication implements IApplicatio
174
197
  * NOT need to call `super` from their own `postInitialize` override to get wired up.
175
198
  */
176
199
  _postInitialize(): Promise<void>;
200
+ /**
201
+ * Republishes the `Caper.pwa` callbacks as app signals. The existing handlers are
202
+ * wrapped rather than replaced — clobbering them would cost `update: 'prompt'` its
203
+ * default banner, and an app that assigned an early handler its handler.
204
+ */
205
+ private _connectPwaSignals;
177
206
  /**
178
207
  * User-overridable post-initialization hook, invoked after all framework wiring is
179
208
  * complete. Override to perform app setup that depends on a fully initialized
@@ -1 +1 @@
1
- {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../src/core/Application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../src/core/Application.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,40 @@ import { ICaperAutomation } from './globals';
5
5
  import { IApplication } from './interfaces';
6
6
  import { AppConfig } from './types';
7
7
  type App = AppTypeOverrides['App'];
8
- interface CaperPWA {
8
+ /**
9
+ * The `Caper.pwa` facade installed by the vite preset's runtime snippet. Reachable
10
+ * from game code as `app.pwa`, which is `undefined` when the app was built without
11
+ * the `pwa` option.
12
+ *
13
+ * Two timing rules matter:
14
+ *
15
+ * - `beforeinstallprompt` often fires before any scene exists, and signals do not
16
+ * replay. UI that offers an install button must check `app.pwa?.canInstall` when
17
+ * it mounts AND connect to `app.onPwaInstallAvailable` for the later case.
18
+ * - Browsers only honour {@link CaperPWA.promptInstall} from inside a user gesture.
19
+ * Call it from a click/tap handler — an overlay with an Install button. Calling it
20
+ * from a timer, a scene transition, or a game-over event is silently ignored.
21
+ */
22
+ export interface CaperPWA {
9
23
  readonly info: any;
10
24
  register: () => void;
11
25
  onRegisteredSW: (swScriptUrl: string) => void;
12
26
  offlineReady: () => void;
27
+ /** Called when a new build is waiting. Defaults to caper's update banner; assign to replace it. */
13
28
  onNeedRefresh?: () => void;
14
29
  onRegisterError?: (error: any) => void;
30
+ /** True once a new build is waiting to take over. */
31
+ updateAvailable: boolean;
32
+ /** Activate the waiting worker; the page reloads once it takes control. */
33
+ applyUpdate: () => void;
34
+ /** True once the browser has offered an install prompt to stash. */
35
+ canInstall: boolean;
36
+ /** Called when the browser offers the install prompt. */
37
+ onCanInstall?: () => void;
38
+ /** Called after the app is installed. */
39
+ onInstalled?: () => void;
40
+ /** Show the stashed install prompt. Resolves null when there is nothing to show. */
41
+ promptInstall: () => Promise<'accepted' | 'dismissed' | null>;
15
42
  }
16
43
  interface CaperGlobal {
17
44
  APP_NAME: string;
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/core/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAItE,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,KAAK,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEnC,UAAU,QAAQ;IAChB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACxC;AACD,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;IAEvC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;IAE3B,GAAG,EAAE,QAAQ,CAAC;IAGd,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,KAAK,EAAE,WAAW,CAAC;IACzB,MAAM,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,UAAU,MAAM;QACd,KAAK,EAAE,WAAW,CAAC;KACpB;CACF;AAED,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,kBAKzC;AAED,wBAAsB,aAAa,qBAUlC;AAgDD,wBAAsB,MAAM,CAC1B,MAAM,GAAE,OAAO,CAAC,SAAS,CAA8B,EACvD,UAAU,GAAE,MAAM,GAAG,MAAM,GAAG,WAAuC,EACrE,KAAK,GAAE,OAAc,GACpB,OAAO,CAAC,GAAG,CAAC,CAkEd"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/core/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAItE,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,KAAK,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mGAAmG;IACnG,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAEvC,qDAAqD;IACrD,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,oFAAoF;IACpF,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC;CAC/D;AACD,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;IAEvC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;IAE3B,GAAG,EAAE,QAAQ,CAAC;IAGd,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,KAAK,EAAE,WAAW,CAAC;IACzB,MAAM,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,UAAU,MAAM;QACd,KAAK,EAAE,WAAW,CAAC;KACpB;CACF;AAED,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,kBAKzC;AAED,wBAAsB,aAAa,qBAUlC;AAgDD,wBAAsB,MAAM,CAC1B,MAAM,GAAE,OAAO,CAAC,SAAS,CAA8B,EACvD,UAAU,GAAE,MAAM,GAAG,MAAM,GAAG,WAAuC,EACrE,KAAK,GAAE,OAAc,GACpB,OAAO,CAAC,GAAG,CAAC,CAkEd"}
@@ -1,5 +1,5 @@
1
1
  export * from './config';
2
- export { create, createContainer } from './create';
2
+ export { create, createContainer, type CaperPWA } from './create';
3
3
  export * from './globals';
4
4
  export * from './interfaces';
5
5
  export * from './registries';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
@@ -6672,6 +6672,9 @@ var Ur = {
6672
6672
  get env() {
6673
6673
  return this._env;
6674
6674
  }
6675
+ get pwa() {
6676
+ return globalThis.Caper?.pwa;
6677
+ }
6675
6678
  get debugContainer() {
6676
6679
  return this._debugContainer || (this._debugContainer = new i(), this._debugContainer.label = "DebugOverlay", this._debugContainer.eventMode = "none", this._debugContainer.interactiveChildren = !1, this.stage.addChild(this._debugContainer)), this._debugContainer;
6677
6680
  }
@@ -6695,7 +6698,7 @@ var Ur = {
6695
6698
  this._paused = !this._paused, this._paused ? this.pause(e) : this.resume();
6696
6699
  }
6697
6700
  constructor() {
6698
- super(), this.onPause = new D(), this.onResume = new D(), this.onResize = new D(), this.onPluginError = new D(), this._plugins = /* @__PURE__ */ new Map(), this._isBooting = !0, this._env = {
6701
+ super(), this.onPause = new D(), this.onResume = new D(), this.onResize = new D(), this.onPluginError = new D(), this.onPwaInstallAvailable = new D(), this.onPwaUpdateAvailable = new D(), this._plugins = /* @__PURE__ */ new Map(), this._isBooting = !0, this._env = {
6699
6702
  BASE_URL: "/",
6700
6703
  DEV: !1,
6701
6704
  MODE: "production",
@@ -6899,10 +6902,22 @@ var Ur = {
6899
6902
  error: t
6900
6903
  });
6901
6904
  }
6902
- this.webEvents.onVisibilityChanged.connect((e) => {
6905
+ this._connectPwaSignals(), this.webEvents.onVisibilityChanged.connect((e) => {
6903
6906
  e ? (this.audio.restore(), this.timers.resumeAllTimers()) : (this.audio.suspend(), this.timers.pauseAllTimers());
6904
6907
  }), await this.postInitialize();
6905
6908
  }
6909
+ _connectPwaSignals() {
6910
+ let e = this.pwa;
6911
+ if (!e) return;
6912
+ let t = e.onCanInstall;
6913
+ e.onCanInstall = () => {
6914
+ t?.(), this.onPwaInstallAvailable.emit();
6915
+ };
6916
+ let n = e.onNeedRefresh;
6917
+ e.onNeedRefresh = () => {
6918
+ n?.(), this.onPwaUpdateAvailable.emit();
6919
+ };
6920
+ }
6906
6921
  async postInitialize() {}
6907
6922
  getUnloadedPlugin(e) {
6908
6923
  return this.plugins.find((t) => t.id === e);
@@ -6939,23 +6954,23 @@ var Ur = {
6939
6954
  let { id: t } = e;
6940
6955
  this._appName = t, _ && await this.loadPlugin({
6941
6956
  id: "DevToolsPlugin",
6942
- module: () => import("./DevToolsPlugin-P-atJ-5U.js"),
6957
+ module: () => import("./DevToolsPlugin-D4iWQwkO.js"),
6943
6958
  namedExport: "DevToolsPlugin"
6944
6959
  }), e.useLayout && await this.loadPlugin({
6945
6960
  id: "LayoutPlugin",
6946
- module: () => import("./LayoutPlugin-iZ3k6RsK.js"),
6961
+ module: () => import("./LayoutPlugin-vR_h-BaG.js"),
6947
6962
  namedExport: "LayoutPlugin"
6948
6963
  }), await this.loadPlugin({
6949
6964
  id: "GSAPPlugin",
6950
- module: () => import("./GSAPPlugin-CeH9275z.js"),
6965
+ module: () => import("./GSAPPlugin-DQTyIwcC.js"),
6951
6966
  namedExport: "GSAPPlugin"
6952
6967
  }), e.useSpine && await this.loadPlugin({
6953
6968
  id: "SpinePlugin",
6954
- module: () => import("./SpinePlugin-BWiavCpO.js"),
6969
+ module: () => import("./SpinePlugin-DJ-PpxFj.js"),
6955
6970
  namedExport: "SpinePlugin"
6956
6971
  }), this.config.useStore && (this._store = new Ot(), this._store.initialize(this), await this.loadPlugin({
6957
6972
  id: "data",
6958
- module: () => import("./DataAdapter-BZFTkFQ4.js").then((e) => e.n),
6973
+ module: () => import("./DataAdapter-DeI2kIxC.js").then((e) => e.n),
6959
6974
  namedExport: "DataAdapter",
6960
6975
  options: this.config.data
6961
6976
  }));
@@ -6984,16 +6999,16 @@ var Ur = {
6984
6999
  }
6985
7000
  (this.config.showStats === !0 || _ && this.config.showStats !== !1) && await this.loadPlugin({
6986
7001
  id: "stats",
6987
- module: () => import("./StatsPlugin-CBpzDJL0.js"),
7002
+ module: () => import("./StatsPlugin-BYNnKYOm.js"),
6988
7003
  namedExport: "StatsPlugin"
6989
7004
  }), this.config.useVoiceover && (await this.loadPlugin({
6990
7005
  id: "voiceover",
6991
- module: () => import("./VoiceOverPlugin-YaiKJtJ6.js"),
7006
+ module: () => import("./VoiceOverPlugin-BLSbq3DU.js"),
6992
7007
  namedExport: "VoiceOverPlugin",
6993
7008
  options: this.config.voiceover || void 0
6994
7009
  }), await this.loadPlugin({
6995
7010
  id: "captions",
6996
- module: () => import("./CaptionsPlugin-DKhbmJvH.js"),
7011
+ module: () => import("./CaptionsPlugin-DeGyPecB.js"),
6997
7012
  namedExport: "CaptionsPlugin",
6998
7013
  options: this.config.captions || void 0
6999
7014
  }));
@@ -7033,4 +7048,4 @@ var Ur = {
7033
7048
  //#endregion
7034
7049
  export { A as $, Re as $t, sr as A, dt as At, Gn as B, Qe as Bt, vr as C, _e as Cn, ht as Ct, dr as D, lt as Dt, fr as E, ge as En, it as Et, rr as F, nt as Ft, gn as G, qe as Gt, bn as H, Xe as Ht, er as I, tt as It, Qt as J, We as Jt, an as K, Ke as Kt, Qn as L, et as Lt, ir as M, T as Mt, V as N, at as Nt, ur as O, ut as Ot, B as P, ot as Pt, Xt as Q, Ie as Qt, Jn as R, $e as Rt, br as S, xe as Sn, pt as St, mr as T, me as Tn, rt as Tt, yn as U, Je as Ut, Wn as V, Ze as Vt, vn as W, Ye as Wt, tn as X, Ve as Xt, $t as Y, Ue as Yt, en as Z, Be as Zt, wr as _, Te as _n, Ot as _t, Br as a, Me as an, Ht as at, xr as b, ye as bn, _t as bt, X as c, S as cn, Rt as ct, q as d, Oe as dn, Pt as dt, Le as en, Yt as et, G as f, Ee as fn, Nt as ft, Tr as g, Ce as gn, O as gt, Or as h, g as hn, At as ht, Q as i, je as in, Ut as it, or as j, st as jt, cr as k, ct as kt, J as l, y as ln, It as lt, jr as m, De as mn, jt as mt, Gr as n, x as nn, qt as nt, K as o, Fe as on, Bt as ot, Pr as p, _ as pn, Mt as pt, Zt as q, Ge as qt, $ as r, b as rn, Gt as rt, Ir as s, Pe as sn, zt as st, Kr as t, C as tn, Jt as tt, Y as u, v as un, k as ut, Sr as v, Se as vn, D as vt, gr as w, h as wn, ft as wt, yr as x, be as xn, mt as xt, H as y, ve as yn, Et as yt, qn as z, w as zt };
7035
7050
 
7036
- //# sourceMappingURL=registries-qQmLeN0b.js.map
7051
+ //# sourceMappingURL=registries-aN0y0Xha.js.map