@vizor-vr/player 0.2.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.
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/__tests__/adapter-factory.test.d.ts +2 -0
- package/dist/__tests__/adapter-factory.test.d.ts.map +1 -0
- package/dist/__tests__/analytics-collector.test.d.ts +2 -0
- package/dist/__tests__/analytics-collector.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-manager.test.d.ts +2 -0
- package/dist/__tests__/annotation-manager.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-popup.test.d.ts +2 -0
- package/dist/__tests__/annotation-popup.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-sprite.test.d.ts +2 -0
- package/dist/__tests__/annotation-sprite.test.d.ts.map +1 -0
- package/dist/__tests__/audio-manager.test.d.ts +2 -0
- package/dist/__tests__/audio-manager.test.d.ts.map +1 -0
- package/dist/__tests__/base-element-attrs.test.d.ts +2 -0
- package/dist/__tests__/base-element-attrs.test.d.ts.map +1 -0
- package/dist/__tests__/camera-controller.test.d.ts +2 -0
- package/dist/__tests__/camera-controller.test.d.ts.map +1 -0
- package/dist/__tests__/caption-renderer.test.d.ts +2 -0
- package/dist/__tests__/caption-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/cc-button.test.d.ts +2 -0
- package/dist/__tests__/cc-button.test.d.ts.map +1 -0
- package/dist/__tests__/chat-button.test.d.ts +2 -0
- package/dist/__tests__/chat-button.test.d.ts.map +1 -0
- package/dist/__tests__/chat-panel.test.d.ts +2 -0
- package/dist/__tests__/chat-panel.test.d.ts.map +1 -0
- package/dist/__tests__/cinema-projection.test.d.ts +2 -0
- package/dist/__tests__/cinema-projection.test.d.ts.map +1 -0
- package/dist/__tests__/collab-client.test.d.ts +2 -0
- package/dist/__tests__/collab-client.test.d.ts.map +1 -0
- package/dist/__tests__/compass.test.d.ts +2 -0
- package/dist/__tests__/compass.test.d.ts.map +1 -0
- package/dist/__tests__/controls-overlay.test.d.ts +2 -0
- package/dist/__tests__/controls-overlay.test.d.ts.map +1 -0
- package/dist/__tests__/cubemap-projection.test.d.ts +2 -0
- package/dist/__tests__/cubemap-projection.test.d.ts.map +1 -0
- package/dist/__tests__/dash-adapter.test.d.ts +2 -0
- package/dist/__tests__/dash-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/eac-projection.test.d.ts +2 -0
- package/dist/__tests__/eac-projection.test.d.ts.map +1 -0
- package/dist/__tests__/equirect-projection.test.d.ts +2 -0
- package/dist/__tests__/equirect-projection.test.d.ts.map +1 -0
- package/dist/__tests__/event-emitter.test.d.ts +2 -0
- package/dist/__tests__/event-emitter.test.d.ts.map +1 -0
- package/dist/__tests__/feature-gates-branding.test.d.ts +2 -0
- package/dist/__tests__/feature-gates-branding.test.d.ts.map +1 -0
- package/dist/__tests__/feature-gates.test.d.ts +2 -0
- package/dist/__tests__/feature-gates.test.d.ts.map +1 -0
- package/dist/__tests__/fisheye-projection.test.d.ts +2 -0
- package/dist/__tests__/fisheye-projection.test.d.ts.map +1 -0
- package/dist/__tests__/flat-projection.test.d.ts +2 -0
- package/dist/__tests__/flat-projection.test.d.ts.map +1 -0
- package/dist/__tests__/flat-video-integration.test.d.ts +2 -0
- package/dist/__tests__/flat-video-integration.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-button.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-button.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-cursor-manager.test.d.ts +2 -0
- package/dist/__tests__/gaze-cursor-manager.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-sender.test.d.ts +2 -0
- package/dist/__tests__/gaze-sender.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-tracker.test.d.ts +2 -0
- package/dist/__tests__/gaze-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/hls-adapter.test.d.ts +2 -0
- package/dist/__tests__/hls-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-interaction.test.d.ts +2 -0
- package/dist/__tests__/hotspot-interaction.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-manager.test.d.ts +2 -0
- package/dist/__tests__/hotspot-manager.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-renderer.test.d.ts +2 -0
- package/dist/__tests__/hotspot-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/integrity.test.d.ts +2 -0
- package/dist/__tests__/integrity.test.d.ts.map +1 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts +2 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts.map +1 -0
- package/dist/__tests__/license-checker.test.d.ts +2 -0
- package/dist/__tests__/license-checker.test.d.ts.map +1 -0
- package/dist/__tests__/live-indicator.test.d.ts +2 -0
- package/dist/__tests__/live-indicator.test.d.ts.map +1 -0
- package/dist/__tests__/live.test.d.ts +2 -0
- package/dist/__tests__/live.test.d.ts.map +1 -0
- package/dist/__tests__/master-key.test.d.ts +2 -0
- package/dist/__tests__/master-key.test.d.ts.map +1 -0
- package/dist/__tests__/media-element.test.d.ts +2 -0
- package/dist/__tests__/media-element.test.d.ts.map +1 -0
- package/dist/__tests__/meta-config.test.d.ts +2 -0
- package/dist/__tests__/meta-config.test.d.ts.map +1 -0
- package/dist/__tests__/play-button.test.d.ts +2 -0
- package/dist/__tests__/play-button.test.d.ts.map +1 -0
- package/dist/__tests__/player-exports.test.d.ts +2 -0
- package/dist/__tests__/player-exports.test.d.ts.map +1 -0
- package/dist/__tests__/player-state.test.d.ts +2 -0
- package/dist/__tests__/player-state.test.d.ts.map +1 -0
- package/dist/__tests__/playlist-controls.test.d.ts +2 -0
- package/dist/__tests__/playlist-controls.test.d.ts.map +1 -0
- package/dist/__tests__/playlist-panel.test.d.ts +2 -0
- package/dist/__tests__/playlist-panel.test.d.ts.map +1 -0
- package/dist/__tests__/playlist.test.d.ts +2 -0
- package/dist/__tests__/playlist.test.d.ts.map +1 -0
- package/dist/__tests__/progressive-adapter.test.d.ts +2 -0
- package/dist/__tests__/progressive-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/quality-selector.test.d.ts +2 -0
- package/dist/__tests__/quality-selector.test.d.ts.map +1 -0
- package/dist/__tests__/renderer.test.d.ts +2 -0
- package/dist/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/__tests__/security/license-key-exposure.test.d.ts +2 -0
- package/dist/__tests__/security/license-key-exposure.test.d.ts.map +1 -0
- package/dist/__tests__/security/sanitize-xss.test.d.ts +2 -0
- package/dist/__tests__/security/sanitize-xss.test.d.ts.map +1 -0
- package/dist/__tests__/security/sri-generation.test.d.ts +2 -0
- package/dist/__tests__/security/sri-generation.test.d.ts.map +1 -0
- package/dist/__tests__/security/xss-annotations.test.d.ts +2 -0
- package/dist/__tests__/security/xss-annotations.test.d.ts.map +1 -0
- package/dist/__tests__/security/xss-captions.test.d.ts +2 -0
- package/dist/__tests__/security/xss-captions.test.d.ts.map +1 -0
- package/dist/__tests__/seek-bar.test.d.ts +2 -0
- package/dist/__tests__/seek-bar.test.d.ts.map +1 -0
- package/dist/__tests__/source-manager.test.d.ts +2 -0
- package/dist/__tests__/source-manager.test.d.ts.map +1 -0
- package/dist/__tests__/sprint1-memory-disposal.test.d.ts +10 -0
- package/dist/__tests__/sprint1-memory-disposal.test.d.ts.map +1 -0
- package/dist/__tests__/sprint3-frustum-adaptive.test.d.ts +9 -0
- package/dist/__tests__/sprint3-frustum-adaptive.test.d.ts.map +1 -0
- package/dist/__tests__/sprint5-bundle-memory.test.d.ts +18 -0
- package/dist/__tests__/sprint5-bundle-memory.test.d.ts.map +1 -0
- package/dist/__tests__/voice-button.test.d.ts +2 -0
- package/dist/__tests__/voice-button.test.d.ts.map +1 -0
- package/dist/__tests__/voice-manager.test.d.ts +2 -0
- package/dist/__tests__/voice-manager.test.d.ts.map +1 -0
- package/dist/__tests__/volume-control.test.d.ts +2 -0
- package/dist/__tests__/volume-control.test.d.ts.map +1 -0
- package/dist/__tests__/vr-button.test.d.ts +2 -0
- package/dist/__tests__/vr-button.test.d.ts.map +1 -0
- package/dist/__tests__/vz-cinema-element.test.d.ts +2 -0
- package/dist/__tests__/vz-cinema-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-img-element.test.d.ts +2 -0
- package/dist/__tests__/vz-img-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-playlist-element.test.d.ts +2 -0
- package/dist/__tests__/vz-playlist-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-element.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-img.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-img.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-portal.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-portal.test.d.ts.map +1 -0
- package/dist/__tests__/vz-video-element.test.d.ts +2 -0
- package/dist/__tests__/vz-video-element.test.d.ts.map +1 -0
- package/dist/__tests__/watermark-guard.test.d.ts +2 -0
- package/dist/__tests__/watermark-guard.test.d.ts.map +1 -0
- package/dist/__tests__/watermark.test.d.ts +2 -0
- package/dist/__tests__/watermark.test.d.ts.map +1 -0
- package/dist/__tests__/webvtt-parser.test.d.ts +2 -0
- package/dist/__tests__/webvtt-parser.test.d.ts.map +1 -0
- package/dist/__tests__/xr-controller.test.d.ts +2 -0
- package/dist/__tests__/xr-controller.test.d.ts.map +1 -0
- package/dist/__tests__/xr-manager.test.d.ts +2 -0
- package/dist/__tests__/xr-manager.test.d.ts.map +1 -0
- package/dist/analytics/analytics-collector.d.ts +29 -0
- package/dist/analytics/analytics-collector.d.ts.map +1 -0
- package/dist/analytics/gaze-tracker.d.ts +44 -0
- package/dist/analytics/gaze-tracker.d.ts.map +1 -0
- package/dist/analytics/index.d.ts +32 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/annotations/annotation-manager.d.ts +31 -0
- package/dist/annotations/annotation-manager.d.ts.map +1 -0
- package/dist/annotations/annotation-popup.d.ts +21 -0
- package/dist/annotations/annotation-popup.d.ts.map +1 -0
- package/dist/annotations/annotation-sprite.d.ts +10 -0
- package/dist/annotations/annotation-sprite.d.ts.map +1 -0
- package/dist/annotations/index.d.ts +4 -0
- package/dist/annotations/index.d.ts.map +1 -0
- package/dist/annotations-C0ugfCn4.js +2158 -0
- package/dist/annotations-C0ugfCn4.js.map +1 -0
- package/dist/audio/ambisonic-renderer.d.ts +36 -0
- package/dist/audio/ambisonic-renderer.d.ts.map +1 -0
- package/dist/audio/audio-manager.d.ts +44 -0
- package/dist/audio/audio-manager.d.ts.map +1 -0
- package/dist/captions/caption-renderer.d.ts +57 -0
- package/dist/captions/caption-renderer.d.ts.map +1 -0
- package/dist/captions/index.d.ts +3 -0
- package/dist/captions/index.d.ts.map +1 -0
- package/dist/captions/webvtt-parser.d.ts +31 -0
- package/dist/captions/webvtt-parser.d.ts.map +1 -0
- package/dist/captions-BP0H2E03.js +274 -0
- package/dist/captions-BP0H2E03.js.map +1 -0
- package/dist/collab-BXPomrS0.js +978 -0
- package/dist/collab-BXPomrS0.js.map +1 -0
- package/dist/collaborative/chat-button.d.ts +22 -0
- package/dist/collaborative/chat-button.d.ts.map +1 -0
- package/dist/collaborative/chat-panel.d.ts +46 -0
- package/dist/collaborative/chat-panel.d.ts.map +1 -0
- package/dist/collaborative/collab-client.d.ts +73 -0
- package/dist/collaborative/collab-client.d.ts.map +1 -0
- package/dist/collaborative/gaze-cursor-manager.d.ts +29 -0
- package/dist/collaborative/gaze-cursor-manager.d.ts.map +1 -0
- package/dist/collaborative/gaze-sender.d.ts +29 -0
- package/dist/collaborative/gaze-sender.d.ts.map +1 -0
- package/dist/collaborative/voice-button.d.ts +25 -0
- package/dist/collaborative/voice-button.d.ts.map +1 -0
- package/dist/collaborative/voice-manager.d.ts +45 -0
- package/dist/collaborative/voice-manager.d.ts.map +1 -0
- package/dist/config/format-registry.d.ts +2 -0
- package/dist/config/format-registry.d.ts.map +1 -0
- package/dist/config/meta-config.d.ts +14 -0
- package/dist/config/meta-config.d.ts.map +1 -0
- package/dist/controls/cc-button.d.ts +24 -0
- package/dist/controls/cc-button.d.ts.map +1 -0
- package/dist/controls/compass.d.ts +15 -0
- package/dist/controls/compass.d.ts.map +1 -0
- package/dist/controls/controls-overlay.d.ts +46 -0
- package/dist/controls/controls-overlay.d.ts.map +1 -0
- package/dist/controls/fullscreen-button.d.ts +16 -0
- package/dist/controls/fullscreen-button.d.ts.map +1 -0
- package/dist/controls/icons.d.ts +23 -0
- package/dist/controls/icons.d.ts.map +1 -0
- package/dist/controls/keyboard-shortcuts.d.ts +21 -0
- package/dist/controls/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/controls/live-indicator.d.ts +17 -0
- package/dist/controls/live-indicator.d.ts.map +1 -0
- package/dist/controls/play-button.d.ts +14 -0
- package/dist/controls/play-button.d.ts.map +1 -0
- package/dist/controls/playlist-controls.d.ts +18 -0
- package/dist/controls/playlist-controls.d.ts.map +1 -0
- package/dist/controls/playlist-panel.d.ts +27 -0
- package/dist/controls/playlist-panel.d.ts.map +1 -0
- package/dist/controls/quality-menu.d.ts +17 -0
- package/dist/controls/quality-menu.d.ts.map +1 -0
- package/dist/controls/seek-bar.d.ts +23 -0
- package/dist/controls/seek-bar.d.ts.map +1 -0
- package/dist/controls/volume-control.d.ts +14 -0
- package/dist/controls/volume-control.d.ts.map +1 -0
- package/dist/controls/vr-button.d.ts +14 -0
- package/dist/controls/vr-button.d.ts.map +1 -0
- package/dist/core/base-element.d.ts +53 -0
- package/dist/core/base-element.d.ts.map +1 -0
- package/dist/core/event-emitter.d.ts +23 -0
- package/dist/core/event-emitter.d.ts.map +1 -0
- package/dist/core/html-element.d.ts +13 -0
- package/dist/core/html-element.d.ts.map +1 -0
- package/dist/core/media-element.d.ts +86 -0
- package/dist/core/media-element.d.ts.map +1 -0
- package/dist/core/player-state.d.ts +63 -0
- package/dist/core/player-state.d.ts.map +1 -0
- package/dist/dash-adapter-tid9ZyhO.js +75 -0
- package/dist/dash-adapter-tid9ZyhO.js.map +1 -0
- package/dist/elements/vz-annotation.d.ts +26 -0
- package/dist/elements/vz-annotation.d.ts.map +1 -0
- package/dist/elements/vz-cinema.d.ts +28 -0
- package/dist/elements/vz-cinema.d.ts.map +1 -0
- package/dist/elements/vz-img.d.ts +27 -0
- package/dist/elements/vz-img.d.ts.map +1 -0
- package/dist/elements/vz-live.d.ts +36 -0
- package/dist/elements/vz-live.d.ts.map +1 -0
- package/dist/elements/vz-playlist.d.ts +74 -0
- package/dist/elements/vz-playlist.d.ts.map +1 -0
- package/dist/elements/vz-tour-img.d.ts +21 -0
- package/dist/elements/vz-tour-img.d.ts.map +1 -0
- package/dist/elements/vz-tour-portal.d.ts +19 -0
- package/dist/elements/vz-tour-portal.d.ts.map +1 -0
- package/dist/elements/vz-tour.d.ts +49 -0
- package/dist/elements/vz-tour.d.ts.map +1 -0
- package/dist/elements/vz-video.d.ts +21 -0
- package/dist/elements/vz-video.d.ts.map +1 -0
- package/dist/hls-adapter-BivH46L_.js +97 -0
- package/dist/hls-adapter-BivH46L_.js.map +1 -0
- package/dist/hotspots/hotspot-interaction.d.ts +23 -0
- package/dist/hotspots/hotspot-interaction.d.ts.map +1 -0
- package/dist/hotspots/hotspot-manager.d.ts +18 -0
- package/dist/hotspots/hotspot-manager.d.ts.map +1 -0
- package/dist/hotspots/hotspot-renderer.d.ts +26 -0
- package/dist/hotspots/hotspot-renderer.d.ts.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/license/feature-gates.d.ts +6 -0
- package/dist/license/feature-gates.d.ts.map +1 -0
- package/dist/license/integrity.d.ts +33 -0
- package/dist/license/integrity.d.ts.map +1 -0
- package/dist/license/license-checker.d.ts +18 -0
- package/dist/license/license-checker.d.ts.map +1 -0
- package/dist/license/master-key.d.ts +14 -0
- package/dist/license/master-key.d.ts.map +1 -0
- package/dist/license/watermark-guard.d.ts +24 -0
- package/dist/license/watermark-guard.d.ts.map +1 -0
- package/dist/license/watermark.d.ts +19 -0
- package/dist/license/watermark.d.ts.map +1 -0
- package/dist/register-CwnmiGEs.js +5740 -0
- package/dist/register-CwnmiGEs.js.map +1 -0
- package/dist/register.d.ts +6 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +5 -0
- package/dist/register.js.map +1 -0
- package/dist/renderer/camera-controller.d.ts +75 -0
- package/dist/renderer/camera-controller.d.ts.map +1 -0
- package/dist/renderer/projections/cinema-projection.d.ts +32 -0
- package/dist/renderer/projections/cinema-projection.d.ts.map +1 -0
- package/dist/renderer/projections/cubemap-projection.d.ts +34 -0
- package/dist/renderer/projections/cubemap-projection.d.ts.map +1 -0
- package/dist/renderer/projections/eac-projection.d.ts +35 -0
- package/dist/renderer/projections/eac-projection.d.ts.map +1 -0
- package/dist/renderer/projections/equirect-projection.d.ts +27 -0
- package/dist/renderer/projections/equirect-projection.d.ts.map +1 -0
- package/dist/renderer/projections/fisheye-projection.d.ts +28 -0
- package/dist/renderer/projections/fisheye-projection.d.ts.map +1 -0
- package/dist/renderer/projections/flat-projection.d.ts +32 -0
- package/dist/renderer/projections/flat-projection.d.ts.map +1 -0
- package/dist/renderer/projections/projection.d.ts +18 -0
- package/dist/renderer/projections/projection.d.ts.map +1 -0
- package/dist/renderer/renderer.d.ts +72 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/shaders/eac.glsl.d.ts +12 -0
- package/dist/renderer/shaders/eac.glsl.d.ts.map +1 -0
- package/dist/renderer/shaders/fisheye.glsl.d.ts +22 -0
- package/dist/renderer/shaders/fisheye.glsl.d.ts.map +1 -0
- package/dist/spatial-BeadwNJA.js +146 -0
- package/dist/spatial-BeadwNJA.js.map +1 -0
- package/dist/sri.json +12 -0
- package/dist/streaming/adapter-factory.d.ts +8 -0
- package/dist/streaming/adapter-factory.d.ts.map +1 -0
- package/dist/streaming/dash-adapter.d.ts +21 -0
- package/dist/streaming/dash-adapter.d.ts.map +1 -0
- package/dist/streaming/hls-adapter.d.ts +26 -0
- package/dist/streaming/hls-adapter.d.ts.map +1 -0
- package/dist/streaming/progressive-adapter.d.ts +18 -0
- package/dist/streaming/progressive-adapter.d.ts.map +1 -0
- package/dist/streaming/quality-selector.d.ts +25 -0
- package/dist/streaming/quality-selector.d.ts.map +1 -0
- package/dist/streaming/source-manager.d.ts +46 -0
- package/dist/streaming/source-manager.d.ts.map +1 -0
- package/dist/streaming/types.d.ts +25 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/styles/controls.d.ts +15 -0
- package/dist/styles/controls.d.ts.map +1 -0
- package/dist/three-Bci7aSeI.js +20078 -0
- package/dist/three-Bci7aSeI.js.map +1 -0
- package/dist/utils/fullscreen.d.ts +6 -0
- package/dist/utils/fullscreen.d.ts.map +1 -0
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/vizor.js +113 -0
- package/dist/vizor.js.map +1 -0
- package/dist/xr/xr-controller.d.ts +27 -0
- package/dist/xr/xr-controller.d.ts.map +1 -0
- package/dist/xr/xr-manager.d.ts +43 -0
- package/dist/xr/xr-manager.d.ts.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Cross-browser fullscreen API wrapper */
|
|
2
|
+
export declare function requestFullscreen(element: HTMLElement): Promise<void>;
|
|
3
|
+
export declare function exitFullscreen(): Promise<void>;
|
|
4
|
+
export declare function isFullscreen(): boolean;
|
|
5
|
+
export declare function onFullscreenChange(callback: () => void): () => void;
|
|
6
|
+
//# sourceMappingURL=fullscreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fullscreen.d.ts","sourceRoot":"","sources":["../../src/utils/fullscreen.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrE;AAED,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAS9C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAOnE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitize a URL for safe use in an `href` or `src` attribute.
|
|
3
|
+
*
|
|
4
|
+
* Allows http(s), protocol-relative (`//host`), and relative URLs. Anything
|
|
5
|
+
* with a dangerous scheme (`javascript:`, `data:`, `vbscript:`, etc.) is
|
|
6
|
+
* rejected and the `fallback` is returned instead. Control characters that can
|
|
7
|
+
* be used to smuggle a scheme (e.g. `java\tscript:`) are stripped first.
|
|
8
|
+
*/
|
|
9
|
+
export declare function sanitizeUrl(url: string | undefined | null, fallback?: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Sanitize untrusted annotation HTML with DOMPurify.
|
|
12
|
+
*
|
|
13
|
+
* Used both at the source (`<vz-annotation>` parsing) and the render sink
|
|
14
|
+
* (annotation popup) so the stored content is never an XSS vector regardless of
|
|
15
|
+
* which consumer reads it. `style` is intentionally NOT allowed (avoids
|
|
16
|
+
* CSS-based exfiltration); `onerror`/`onload`/etc. are stripped by DOMPurify.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sanitizeAnnotationHtml(html: string): string;
|
|
19
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,SAAK,GAAG,MAAM,CA0BjF;AAUD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3D"}
|
package/dist/vizor.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { C, a, H, K, P, S, V, b, c, d, e, f, g, h, i, j, k, l, m, X, n, o, p, r, q, s, t, u, v, w, x, y, z, A } from "./register-CwnmiGEs.js";
|
|
2
|
+
import { A as A2 } from "./spatial-BeadwNJA.js";
|
|
3
|
+
import { C as C2, p as p2 } from "./captions-BP0H2E03.js";
|
|
4
|
+
import { A as A3, c as c2, d as d2 } from "./annotations-C0ugfCn4.js";
|
|
5
|
+
import { C as C3, a as a2, b as b2, G, c as c3, V as V2, d as d3 } from "./collab-BXPomrS0.js";
|
|
6
|
+
class QualitySelector {
|
|
7
|
+
adapter = null;
|
|
8
|
+
state;
|
|
9
|
+
constructor(state) {
|
|
10
|
+
this.state = state;
|
|
11
|
+
}
|
|
12
|
+
/** Connect to the current streaming adapter */
|
|
13
|
+
setAdapter(adapter) {
|
|
14
|
+
this.adapter = adapter;
|
|
15
|
+
this.syncState();
|
|
16
|
+
}
|
|
17
|
+
/** Get available quality levels */
|
|
18
|
+
getLevels() {
|
|
19
|
+
return this.adapter?.getQualityLevels() ?? [];
|
|
20
|
+
}
|
|
21
|
+
/** Set quality by index (-1 = auto) */
|
|
22
|
+
setLevel(index) {
|
|
23
|
+
if (!this.adapter) return;
|
|
24
|
+
this.adapter.setQualityLevel(index);
|
|
25
|
+
const levels = this.adapter.getQualityLevels();
|
|
26
|
+
this.state.batch({
|
|
27
|
+
availableQualities: levels,
|
|
28
|
+
currentQuality: index === -1 ? "auto" : levels[index]?.label ?? "auto",
|
|
29
|
+
autoQuality: index === -1
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Whether auto quality (ABR) is active */
|
|
33
|
+
get isAuto() {
|
|
34
|
+
return this.state.get("autoQuality");
|
|
35
|
+
}
|
|
36
|
+
/** Whether the adapter supports quality switching */
|
|
37
|
+
get supportsQuality() {
|
|
38
|
+
return (this.adapter?.supportsABR ?? false) && this.getLevels().length > 1;
|
|
39
|
+
}
|
|
40
|
+
/** Sync state from adapter */
|
|
41
|
+
syncState() {
|
|
42
|
+
if (!this.adapter) return;
|
|
43
|
+
const levels = this.adapter.getQualityLevels();
|
|
44
|
+
if (levels.length > 0) {
|
|
45
|
+
this.state.batch({
|
|
46
|
+
availableQualities: levels,
|
|
47
|
+
currentQuality: "auto",
|
|
48
|
+
autoQuality: true
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function isFeatureEnabled(feature, license) {
|
|
54
|
+
return license.features[feature] === true;
|
|
55
|
+
}
|
|
56
|
+
function getEnabledFeatures(license) {
|
|
57
|
+
return Object.keys(license.features).filter(
|
|
58
|
+
(key) => license.features[key]
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
A3 as AnnotationManager,
|
|
63
|
+
c2 as AnnotationPopup,
|
|
64
|
+
d2 as AnnotationSprite,
|
|
65
|
+
A2 as AudioManager,
|
|
66
|
+
C as CameraController,
|
|
67
|
+
C2 as CaptionRenderer,
|
|
68
|
+
C3 as ChatButton,
|
|
69
|
+
a2 as ChatPanel,
|
|
70
|
+
b2 as CollaborativeClient,
|
|
71
|
+
a as ControlsOverlay,
|
|
72
|
+
G as GazeCursorManager,
|
|
73
|
+
c3 as GazeSender,
|
|
74
|
+
H as HotspotManager,
|
|
75
|
+
K as KeyboardShortcuts,
|
|
76
|
+
P as PlayerState,
|
|
77
|
+
QualitySelector,
|
|
78
|
+
S as SourceManager,
|
|
79
|
+
V2 as VoiceButton,
|
|
80
|
+
d3 as VoiceManager,
|
|
81
|
+
V as VzAnnotationElement,
|
|
82
|
+
b as VzBaseElement,
|
|
83
|
+
c as VzCinemaElement,
|
|
84
|
+
d as VzEventEmitter,
|
|
85
|
+
e as VzImgElement,
|
|
86
|
+
f as VzLiveElement,
|
|
87
|
+
g as VzMediaElement,
|
|
88
|
+
h as VzPlaylistElement,
|
|
89
|
+
i as VzRenderer,
|
|
90
|
+
j as VzTourElement,
|
|
91
|
+
k as VzTourImgElement,
|
|
92
|
+
l as VzTourPortalElement,
|
|
93
|
+
m as VzVideoElement,
|
|
94
|
+
X as XRManager,
|
|
95
|
+
n as checkLicense,
|
|
96
|
+
o as createWatermark,
|
|
97
|
+
getEnabledFeatures,
|
|
98
|
+
p as initAnalytics,
|
|
99
|
+
isFeatureEnabled,
|
|
100
|
+
p2 as parseWebVTT,
|
|
101
|
+
r as registerAll,
|
|
102
|
+
q as registerAnnotation,
|
|
103
|
+
s as registerCinema,
|
|
104
|
+
t as registerImg,
|
|
105
|
+
u as registerLive,
|
|
106
|
+
v as registerPlaylist,
|
|
107
|
+
w as registerTour,
|
|
108
|
+
x as registerTourImg,
|
|
109
|
+
y as registerTourPortal,
|
|
110
|
+
z as registerVideo,
|
|
111
|
+
A as removeWatermark
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=vizor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vizor.js","sources":["../src/streaming/quality-selector.ts","../src/license/feature-gates.ts"],"sourcesContent":["import type { QualityLevel } from '@vizor-vr/shared';\nimport type { PlayerState } from '../core/player-state.js';\nimport type { IStreamingAdapter } from './types.js';\n\n/**\n * Coordinates quality switching between the streaming adapter and PlayerState.\n * Provides a clean API for the quality menu control.\n */\nexport class QualitySelector {\n private adapter: IStreamingAdapter | null = null;\n private state: PlayerState;\n\n constructor(state: PlayerState) {\n this.state = state;\n }\n\n /** Connect to the current streaming adapter */\n setAdapter(adapter: IStreamingAdapter): void {\n this.adapter = adapter;\n this.syncState();\n }\n\n /** Get available quality levels */\n getLevels(): QualityLevel[] {\n return this.adapter?.getQualityLevels() ?? [];\n }\n\n /** Set quality by index (-1 = auto) */\n setLevel(index: number): void {\n if (!this.adapter) return;\n this.adapter.setQualityLevel(index);\n\n const levels = this.adapter.getQualityLevels();\n this.state.batch({\n availableQualities: levels,\n currentQuality: index === -1 ? 'auto' : (levels[index]?.label ?? 'auto'),\n autoQuality: index === -1,\n });\n }\n\n /** Whether auto quality (ABR) is active */\n get isAuto(): boolean {\n return this.state.get('autoQuality');\n }\n\n /** Whether the adapter supports quality switching */\n get supportsQuality(): boolean {\n return (this.adapter?.supportsABR ?? false) && this.getLevels().length > 1;\n }\n\n /** Sync state from adapter */\n private syncState(): void {\n if (!this.adapter) return;\n const levels = this.adapter.getQualityLevels();\n if (levels.length > 0) {\n this.state.batch({\n availableQualities: levels,\n currentQuality: 'auto',\n autoQuality: true,\n });\n }\n }\n}\n","import type { FeatureFlags, LicenseResult } from '@vizor-vr/shared';\n\n/** Check if a specific feature is enabled for the current license */\nexport function isFeatureEnabled(\n feature: keyof FeatureFlags,\n license: LicenseResult,\n): boolean {\n return license.features[feature] === true;\n}\n\n/** Get all enabled feature names for a license */\nexport function getEnabledFeatures(license: LicenseResult): Array<keyof FeatureFlags> {\n return (Object.keys(license.features) as Array<keyof FeatureFlags>).filter(\n (key) => license.features[key],\n );\n}\n"],"names":[],"mappings":";;;;;AAQO,MAAM,gBAAgB;AAAA,EACnB,UAAoC;AAAA,EACpC;AAAA,EAER,YAAY,OAAoB;AAC9B,SAAK,QAAQ;AAAA,EACf;AAAA;AAAA,EAGA,WAAW,SAAkC;AAC3C,SAAK,UAAU;AACf,SAAK,UAAA;AAAA,EACP;AAAA;AAAA,EAGA,YAA4B;AAC1B,WAAO,KAAK,SAAS,iBAAA,KAAsB,CAAA;AAAA,EAC7C;AAAA;AAAA,EAGA,SAAS,OAAqB;AAC5B,QAAI,CAAC,KAAK,QAAS;AACnB,SAAK,QAAQ,gBAAgB,KAAK;AAElC,UAAM,SAAS,KAAK,QAAQ,iBAAA;AAC5B,SAAK,MAAM,MAAM;AAAA,MACf,oBAAoB;AAAA,MACpB,gBAAgB,UAAU,KAAK,SAAU,OAAO,KAAK,GAAG,SAAS;AAAA,MACjE,aAAa,UAAU;AAAA,IAAA,CACxB;AAAA,EACH;AAAA;AAAA,EAGA,IAAI,SAAkB;AACpB,WAAO,KAAK,MAAM,IAAI,aAAa;AAAA,EACrC;AAAA;AAAA,EAGA,IAAI,kBAA2B;AAC7B,YAAQ,KAAK,SAAS,eAAe,UAAU,KAAK,YAAY,SAAS;AAAA,EAC3E;AAAA;AAAA,EAGQ,YAAkB;AACxB,QAAI,CAAC,KAAK,QAAS;AACnB,UAAM,SAAS,KAAK,QAAQ,iBAAA;AAC5B,QAAI,OAAO,SAAS,GAAG;AACrB,WAAK,MAAM,MAAM;AAAA,QACf,oBAAoB;AAAA,QACpB,gBAAgB;AAAA,QAChB,aAAa;AAAA,MAAA,CACd;AAAA,IACH;AAAA,EACF;AACF;AC3DO,SAAS,iBACd,SACA,SACS;AACT,SAAO,QAAQ,SAAS,OAAO,MAAM;AACvC;AAGO,SAAS,mBAAmB,SAAmD;AACpF,SAAQ,OAAO,KAAK,QAAQ,QAAQ,EAAgC;AAAA,IAClE,CAAC,QAAQ,QAAQ,SAAS,GAAG;AAAA,EAAA;AAEjC;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { WebGLRenderer } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Handles VR controller input during WebXR sessions.
|
|
4
|
+
*
|
|
5
|
+
* Listens for `select` events on controllers (trigger press).
|
|
6
|
+
* Default behavior: toggle play/pause. Tours can override via setSelectHandler.
|
|
7
|
+
*
|
|
8
|
+
* Three.js dispatches XR controller events (select, selectstart, selectend,
|
|
9
|
+
* squeeze, etc.) on the Group returned by renderer.xr.getController().
|
|
10
|
+
* These aren't in the typed Object3DEventMap, so we use EventDispatcher directly.
|
|
11
|
+
*/
|
|
12
|
+
export declare class XRControllerInput {
|
|
13
|
+
private renderer;
|
|
14
|
+
private onSelect;
|
|
15
|
+
private cleanups;
|
|
16
|
+
private controller0;
|
|
17
|
+
private controller1;
|
|
18
|
+
constructor(renderer: WebGLRenderer);
|
|
19
|
+
/** Set custom handler for controller select (trigger press) */
|
|
20
|
+
setSelectHandler(handler: () => void): void;
|
|
21
|
+
/** Start listening for controller events */
|
|
22
|
+
attach(): void;
|
|
23
|
+
/** Stop listening for controller events */
|
|
24
|
+
detach(): void;
|
|
25
|
+
dispose(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=xr-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xr-controller.d.ts","sourceRoot":"","sources":["../../src/xr/xr-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAS,MAAM,OAAO,CAAC;AAElD;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAsB;gBAE7B,QAAQ,EAAE,aAAa;IAInC,+DAA+D;IAC/D,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAI3C,4CAA4C;IAC5C,MAAM,IAAI,IAAI;IAyBd,2CAA2C;IAC3C,MAAM,IAAI,IAAI;IAOd,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { WebGLRenderer } from 'three';
|
|
2
|
+
import type { PlayerState } from '../core/player-state.js';
|
|
3
|
+
import type { VzEventEmitter } from '../core/event-emitter.js';
|
|
4
|
+
import type { CameraController } from '../renderer/camera-controller.js';
|
|
5
|
+
/**
|
|
6
|
+
* Manages the WebXR session lifecycle.
|
|
7
|
+
*
|
|
8
|
+
* When entering XR:
|
|
9
|
+
* - Requests an immersive-vr session
|
|
10
|
+
* - Connects it to Three.js via renderer.xr.setSession()
|
|
11
|
+
* - Three.js swaps to XRSession.requestAnimationFrame and renders per-eye
|
|
12
|
+
* - Our layer-based stereo (Layer 1=left, Layer 2=right) maps directly
|
|
13
|
+
* - CameraController is disabled (headset drives camera)
|
|
14
|
+
*
|
|
15
|
+
* When exiting XR:
|
|
16
|
+
* - Three.js reverts to window.requestAnimationFrame
|
|
17
|
+
* - CameraController is re-enabled
|
|
18
|
+
*/
|
|
19
|
+
export declare class XRManager {
|
|
20
|
+
private renderer;
|
|
21
|
+
private state;
|
|
22
|
+
private events;
|
|
23
|
+
private cameraController;
|
|
24
|
+
private session;
|
|
25
|
+
private controllerInput;
|
|
26
|
+
constructor(renderer: WebGLRenderer, state: PlayerState, events: VzEventEmitter, cameraController: CameraController);
|
|
27
|
+
/** Check if immersive-vr sessions are supported */
|
|
28
|
+
static isSupported(): Promise<boolean>;
|
|
29
|
+
/** Request and start an immersive-vr session */
|
|
30
|
+
enterXR(): Promise<void>;
|
|
31
|
+
/** End the current XR session */
|
|
32
|
+
exitXR(): Promise<void>;
|
|
33
|
+
/** Toggle XR on/off */
|
|
34
|
+
toggleXR(): Promise<void>;
|
|
35
|
+
/** Whether an XR session is currently active */
|
|
36
|
+
get isActive(): boolean;
|
|
37
|
+
/** Set handler for controller select (trigger press) */
|
|
38
|
+
setSelectHandler(handler: () => void): void;
|
|
39
|
+
/** Clean up */
|
|
40
|
+
dispose(): void;
|
|
41
|
+
private onSessionEnd;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=xr-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xr-manager.d.ts","sourceRoot":"","sources":["../../src/xr/xr-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAoB;gBAGzC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,cAAc,EACtB,gBAAgB,EAAE,gBAAgB;IASpC,mDAAmD;WACtC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5C,gDAAgD;IAC1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC9B,iCAAiC;IAC3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,uBAAuB;IACjB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,gDAAgD;IAChD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,wDAAwD;IACxD,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAI3C,eAAe;IACf,OAAO,IAAI,IAAI;IASf,OAAO,CAAC,YAAY,CAalB;CACH"}
|
package/package.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vizor-vr/player",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "VR video player for the modern web — 360°, VR, live streaming, virtual tours",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/vizor.js",
|
|
8
|
+
"module": "./dist/vizor.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/vizor.js"
|
|
14
|
+
},
|
|
15
|
+
"./register": {
|
|
16
|
+
"types": "./dist/register.d.ts",
|
|
17
|
+
"import": "./dist/register.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"vr",
|
|
28
|
+
"360",
|
|
29
|
+
"video",
|
|
30
|
+
"player",
|
|
31
|
+
"webxr",
|
|
32
|
+
"panorama",
|
|
33
|
+
"three.js",
|
|
34
|
+
"web-components",
|
|
35
|
+
"hls",
|
|
36
|
+
"dash",
|
|
37
|
+
"streaming"
|
|
38
|
+
],
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/vizor-vr/player.git",
|
|
42
|
+
"directory": "packages/player"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://vizor.dev",
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"dompurify": "^3.2.4",
|
|
47
|
+
"three": "^0.170.0",
|
|
48
|
+
"@vizor-vr/shared": "0.1.0"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@playwright/test": "^1.58.2",
|
|
52
|
+
"@types/dompurify": "^3.2.0",
|
|
53
|
+
"@types/three": "^0.170.0",
|
|
54
|
+
"@types/webxr": "^0.5.24",
|
|
55
|
+
"@vitest/coverage-v8": "^2.1.0",
|
|
56
|
+
"jsdom": "^25.0.0",
|
|
57
|
+
"rimraf": "^6.0.0",
|
|
58
|
+
"tsx": "^4.19.0",
|
|
59
|
+
"typescript": "^5.7.0",
|
|
60
|
+
"vite": "^6.0.0",
|
|
61
|
+
"vitest": "^2.1.0",
|
|
62
|
+
"@vizor-vr/ts-config": "0.0.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"@noble/ed25519": "^2.0.0",
|
|
66
|
+
"dashjs": "^4.7.0",
|
|
67
|
+
"hls.js": "^1.5.0",
|
|
68
|
+
"omnitone": "^1.3.0"
|
|
69
|
+
},
|
|
70
|
+
"peerDependenciesMeta": {
|
|
71
|
+
"hls.js": {
|
|
72
|
+
"optional": true
|
|
73
|
+
},
|
|
74
|
+
"dashjs": {
|
|
75
|
+
"optional": true
|
|
76
|
+
},
|
|
77
|
+
"omnitone": {
|
|
78
|
+
"optional": true
|
|
79
|
+
},
|
|
80
|
+
"@noble/ed25519": {
|
|
81
|
+
"optional": true
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"scripts": {
|
|
85
|
+
"dev": "vite build --watch",
|
|
86
|
+
"build": "vite build && tsc --emitDeclarationOnly",
|
|
87
|
+
"postbuild": "tsx scripts/generate-sri.ts",
|
|
88
|
+
"test": "vitest run",
|
|
89
|
+
"test:e2e": "playwright test",
|
|
90
|
+
"test:watch": "vitest",
|
|
91
|
+
"typecheck": "tsc --noEmit",
|
|
92
|
+
"clean": "rimraf dist"
|
|
93
|
+
}
|
|
94
|
+
}
|