@needle-tools/engine 5.1.0-alpha.6 → 5.1.0-canary.02ccb45

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 (74) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/components.needle.json +1 -1
  3. package/dist/{needle-engine.bundle-5avtTUMM.umd.cjs → needle-engine.bundle-BSJwg312.umd.cjs} +102 -102
  4. package/dist/{needle-engine.bundle-C0gPOq4m.js → needle-engine.bundle-DLNnLj9B.js} +1185 -1160
  5. package/dist/{needle-engine.bundle-BHcw4C8f.min.js → needle-engine.bundle-I8Lv85MA.min.js} +110 -110
  6. package/dist/needle-engine.d.ts +54 -38
  7. package/dist/needle-engine.js +405 -404
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/lib/engine/api.d.ts +1 -1
  11. package/lib/engine/api.js +1 -1
  12. package/lib/engine/api.js.map +1 -1
  13. package/lib/engine/engine_init.js +2 -2
  14. package/lib/engine/engine_init.js.map +1 -1
  15. package/lib/engine/engine_license.d.ts +7 -7
  16. package/lib/engine/engine_license.js +72 -72
  17. package/lib/engine/engine_license.js.map +1 -1
  18. package/lib/engine/engine_networking_blob.js +3 -3
  19. package/lib/engine/engine_networking_blob.js.map +1 -1
  20. package/lib/engine/engine_utils_format.js +20 -14
  21. package/lib/engine/engine_utils_format.js.map +1 -1
  22. package/lib/engine/engine_utils_qrcode.js +2 -2
  23. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  24. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  25. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  26. package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
  27. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  28. package/lib/engine/webcomponents/needle-engine.js +2 -2
  29. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  30. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  31. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  32. package/lib/engine/xr/TempXRContext.js +2 -2
  33. package/lib/engine/xr/TempXRContext.js.map +1 -1
  34. package/lib/engine-components/AudioSource.js +1 -1
  35. package/lib/engine-components/AudioSource.js.map +1 -1
  36. package/lib/engine-components/DropListener.js +1 -0
  37. package/lib/engine-components/DropListener.js.map +1 -1
  38. package/lib/engine-components/OrbitControls.d.ts +1 -0
  39. package/lib/engine-components/OrbitControls.js +7 -2
  40. package/lib/engine-components/OrbitControls.js.map +1 -1
  41. package/lib/engine-components/VideoPlayer.d.ts +8 -2
  42. package/lib/engine-components/VideoPlayer.js +42 -19
  43. package/lib/engine-components/VideoPlayer.js.map +1 -1
  44. package/lib/engine-components/Voip.d.ts +16 -7
  45. package/lib/engine-components/Voip.js +90 -53
  46. package/lib/engine-components/Voip.js.map +1 -1
  47. package/lib/engine-components/api.d.ts +1 -0
  48. package/lib/engine-components/api.js +1 -0
  49. package/lib/engine-components/api.js.map +1 -1
  50. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  51. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  52. package/package.json +2 -2
  53. package/plugins/common/license.js +28 -6
  54. package/plugins/types/userconfig.d.ts +4 -1
  55. package/plugins/vite/build-pipeline.js +57 -20
  56. package/plugins/vite/license.js +4 -4
  57. package/src/engine/api.ts +1 -1
  58. package/src/engine/engine_init.ts +2 -2
  59. package/src/engine/engine_license.ts +69 -69
  60. package/src/engine/engine_networking_blob.ts +3 -3
  61. package/src/engine/engine_utils_format.ts +20 -14
  62. package/src/engine/engine_utils_qrcode.ts +2 -2
  63. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  64. package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
  65. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  66. package/src/engine/webcomponents/needle-engine.ts +2 -2
  67. package/src/engine/xr/TempXRContext.ts +2 -2
  68. package/src/engine-components/AudioSource.ts +1 -1
  69. package/src/engine-components/DropListener.ts +1 -0
  70. package/src/engine-components/OrbitControls.ts +8 -2
  71. package/src/engine-components/VideoPlayer.ts +40 -17
  72. package/src/engine-components/Voip.ts +88 -53
  73. package/src/engine-components/api.ts +1 -0
  74. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
@@ -117,15 +117,17 @@ import { XRHandSpace } from 'three';
117
117
 
118
118
  export declare const $componentName: unique symbol;
119
119
 
120
+ /* Excluded from this release type: _$HwXA */
121
+
120
122
  export declare const $physicsKey: unique symbol;
121
123
 
124
+ /* Excluded from this release type: _$xxpfa */
125
+
122
126
  export declare class __Ignore {
123
127
  }
124
128
 
125
129
  export declare function __internalNotifyObjectDestroyed(obj: Object3D): void;
126
130
 
127
- /* Excluded from this release type: __otwqOR */
128
-
129
131
  /** Data describing the accessible semantics for a 3D object or component. */
130
132
  declare type AccessibilityData = {
131
133
  /** ARIA role (e.g. `"button"`, `"img"`, `"region"`). */
@@ -1796,7 +1798,7 @@ export { AudioListener_2 as AudioListener }
1796
1798
  /**
1797
1799
  * Defines how audio volume attenuates over distance from the listener.
1798
1800
  */
1799
- declare enum AudioRolloffMode {
1801
+ export declare enum AudioRolloffMode {
1800
1802
  /**
1801
1803
  * Logarithmic rolloff provides a natural, real-world attenuation where volume decreases
1802
1804
  * exponentially with distance.
@@ -5422,8 +5424,6 @@ export declare class CustomShader extends RawShaderMaterial {
5422
5424
  onUpdateUniforms(camera?: Camera_2, obj?: any): void;
5423
5425
  }
5424
5426
 
5425
- /* Excluded from this release type: _cxKhKwDL */
5426
-
5427
5427
  export declare const debugNet: boolean;
5428
5428
 
5429
5429
  export declare const debugOwner: boolean;
@@ -10959,8 +10959,6 @@ declare class LowPassFilter {
10959
10959
  reset(value: number): void;
10960
10960
  }
10961
10961
 
10962
- /* Excluded from this release type: LynjGsV */
10963
-
10964
10962
  declare type MagicSkyboxName = "studio" | "blurred-skybox" | "quicklook-ar" | "quicklook";
10965
10963
 
10966
10964
  export declare class MainModule {
@@ -14470,6 +14468,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
14470
14468
  */
14471
14469
  private setLookTargetFromConstraint;
14472
14470
  private lerpLookTarget;
14471
+ private canFocusAtPointer;
14473
14472
  private setTargetFromRaycast;
14474
14473
  /**
14475
14474
  * Fits the camera to show the objects provided (defaults to the scene if no objects are passed in)
@@ -22597,6 +22596,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
22597
22596
  userId: string;
22598
22597
  }
22599
22598
 
22599
+ /* Excluded from this release type: UsFaeEU */
22600
+
22600
22601
  /**
22601
22602
  * Marks a field to trigger the `onValidate` callback when its value changes.
22602
22603
  * Useful for reacting to property changes from the editor or at runtime.
@@ -22906,8 +22907,14 @@ export declare class OrbitControls extends Component implements ICameraControlle
22906
22907
  private _receivedInput;
22907
22908
  /* Excluded from this release type: __constructor */
22908
22909
  private _playErrors;
22909
- /** start playing the video source */
22910
- play(): void;
22910
+ /**
22911
+ * Plays the assigned video clip, URL, or MediaStream.
22912
+ * If a `clip` argument is passed, it is used as the new video source (mirroring {@link AudioSource.play}).
22913
+ *
22914
+ * @param clip - Optional video URL string or {@link MediaStream} to play. If omitted, plays the currently assigned source.
22915
+ * @returns A promise that resolves to `true` when playback was successfully started, or `false` on error.
22916
+ */
22917
+ play(clip?: string | MediaStream): Promise<boolean>;
22911
22918
  /**
22912
22919
  * Stop the video playback. This will reset the video to the beginning
22913
22920
  */
@@ -23177,9 +23184,9 @@ export declare class OrbitControls extends Component implements ICameraControlle
23177
23184
  * voip.createMenuButton = true;
23178
23185
  *
23179
23186
  * // Manual control
23180
- * voip.connect(); // Start sending audio
23181
- * voip.disconnect(); // Stop sending
23182
- * voip.setMuted(true); // Mute microphone
23187
+ * voip.connect(); // Start sending your microphone
23188
+ * voip.disconnect(); // Stop sending your microphone
23189
+ * voip.setMuted(true); // Mute incoming audio (silence other users)
23183
23190
  * ```
23184
23191
  *
23185
23192
  * @summary Voice over IP for networked audio communication
@@ -23238,8 +23245,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
23238
23245
  */
23239
23246
  get incomingStreams(): ReadonlyMap<string, HTMLAudioElement>;
23240
23247
  /**
23241
- * Threshold for speaking detection (0–255). When a user's audio amplitude exceeds this,
23242
- * they are considered "speaking". Default is 30.
23248
+ * Normalized amplitude threshold for speaking detection (0–1). When a user's average
23249
+ * audio amplitude exceeds this, they are considered "speaking". Default is 0.1.
23243
23250
  */
23244
23251
  speakingThreshold: number;
23245
23252
  /**
@@ -23249,6 +23256,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
23249
23256
  onSpeakingChanged: EventList;
23250
23257
  private _speakingStates;
23251
23258
  private _analysers;
23259
+ private _sharedAudioContext?;
23260
+ private _lastSpeakingPollMs;
23252
23261
  private _net?;
23253
23262
  private _menubutton?;
23254
23263
  /* Excluded from this release type: awake */
@@ -23258,21 +23267,27 @@ export declare class OrbitControls extends Component implements ICameraControlle
23258
23267
  /** Set via the mic button (e.g. when the websocket connection closes and rejoins but the user was muted before we don't want to enable VOIP again automatically) */
23259
23268
  private _allowSending;
23260
23269
  private _outputStream;
23270
+ private _connectInFlight?;
23261
23271
  /**
23262
23272
  * @returns true if the component is currently sending audio
23263
23273
  */
23264
23274
  get isSending(): boolean;
23265
23275
  /** Start sending audio. */
23266
23276
  connect(audioSource?: MediaTrackConstraints): Promise<boolean>;
23277
+ private _connectImpl;
23267
23278
  /** Stop sending audio (muting your own microphone) */
23268
23279
  disconnect(opts?: {
23269
23280
  remember: boolean;
23270
23281
  }): void;
23271
23282
  /**
23272
- * Mute or unmute the audio stream (this will only mute incoming streams and not mute your own microphone. Use disconnect() to mute your own microphone)
23283
+ * Mute or unmute the audio you hear from other users (incoming streams).
23284
+ * This does NOT mute your own microphone — use {@link disconnect} to stop sending your microphone.
23273
23285
  */
23274
23286
  setMuted(mute: boolean): void;
23275
- /** Returns true if the audio stream is currently muted */
23287
+ /**
23288
+ * Returns true if incoming audio is currently muted (you can't hear other users).
23289
+ * When there are no incoming streams, returns false.
23290
+ */
23276
23291
  get isMuted(): boolean;
23277
23292
  private updateButton;
23278
23293
  /** @deprecated */
@@ -23284,6 +23299,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
23284
23299
  /* Excluded from this release type: update */
23285
23300
  private setupAnalyser;
23286
23301
  private cleanupAnalyser;
23302
+ private closeSharedAudioContext;
23287
23303
  private onReceiveStream;
23288
23304
  private onStreamEnded;
23289
23305
  private onEnabledChanged;
@@ -24712,28 +24728,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
24712
24728
  export { }
24713
24729
 
24714
24730
 
24715
- declare module 'three' {
24716
- interface SkinnedMesh {
24717
- staticGenerator?: StaticGeometryGenerator;
24718
- staticGeometry?: BufferGeometry;
24719
- staticGeometryLastUpdate?: number;
24720
- }
24721
- interface Mesh {
24722
- acceleratedRaycast?: any;
24723
- }
24724
- interface SkinnedMesh {
24725
- /** @deprecated use autoUpdateMeshBvhInterval */
24726
- autoUpdateMeshBVH?: boolean;
24727
- /**
24728
- * Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
24729
- * @default undefined (disabled)
24730
- */
24731
- autoUpdateMeshBvhInterval?: number;
24732
- bvhNeedsUpdate?: boolean;
24733
- }
24734
- }
24735
-
24736
-
24737
24731
  declare module 'three' {
24738
24732
  interface Object3D {
24739
24733
  get guid(): string | undefined;
@@ -24879,3 +24873,25 @@ declare module 'three' {
24879
24873
  slerp(end: Vector3, t: number): Vector3;
24880
24874
  }
24881
24875
  }
24876
+
24877
+
24878
+ declare module 'three' {
24879
+ interface SkinnedMesh {
24880
+ staticGenerator?: StaticGeometryGenerator;
24881
+ staticGeometry?: BufferGeometry;
24882
+ staticGeometryLastUpdate?: number;
24883
+ }
24884
+ interface Mesh {
24885
+ acceleratedRaycast?: any;
24886
+ }
24887
+ interface SkinnedMesh {
24888
+ /** @deprecated use autoUpdateMeshBvhInterval */
24889
+ autoUpdateMeshBVH?: boolean;
24890
+ /**
24891
+ * Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
24892
+ * @default undefined (disabled)
24893
+ */
24894
+ autoUpdateMeshBvhInterval?: number;
24895
+ bvhNeedsUpdate?: boolean;
24896
+ }
24897
+ }