@needle-tools/engine 5.1.0 → 5.1.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 (80) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/{needle-engine.bundle-5oIL49YP.js → needle-engine.bundle-BAUfRyBA.js} +7692 -7506
  3. package/dist/{needle-engine.bundle-DvOrfXws.umd.cjs → needle-engine.bundle-BL2wG5Te.umd.cjs} +159 -159
  4. package/dist/{needle-engine.bundle-DAAfj8Cs.min.js → needle-engine.bundle-BpNRkY3s.min.js} +184 -184
  5. package/dist/needle-engine.d.ts +25 -7
  6. package/dist/needle-engine.js +533 -533
  7. package/dist/needle-engine.min.js +1 -1
  8. package/dist/needle-engine.umd.cjs +1 -1
  9. package/lib/engine/api.d.ts +1 -1
  10. package/lib/engine/api.js +1 -1
  11. package/lib/engine/api.js.map +1 -1
  12. package/lib/engine/engine_init.js +2 -2
  13. package/lib/engine/engine_init.js.map +1 -1
  14. package/lib/engine/engine_license.d.ts +45 -7
  15. package/lib/engine/engine_license.js +276 -77
  16. package/lib/engine/engine_license.js.map +1 -1
  17. package/lib/engine/engine_networking.js +6 -0
  18. package/lib/engine/engine_networking.js.map +1 -1
  19. package/lib/engine/engine_networking_blob.js +3 -3
  20. package/lib/engine/engine_networking_blob.js.map +1 -1
  21. package/lib/engine/engine_networking_peer.js +19 -13
  22. package/lib/engine/engine_networking_peer.js.map +1 -1
  23. package/lib/engine/engine_utils_qrcode.js +2 -2
  24. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  25. package/lib/engine/webcomponents/WebXRButtons.js +5 -6
  26. package/lib/engine/webcomponents/WebXRButtons.js.map +1 -1
  27. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  28. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  29. package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
  30. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  31. package/lib/engine/webcomponents/needle-engine.js +31 -2
  32. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  33. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  34. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  35. package/lib/engine/xr/NeedleXRSession.d.ts +7 -1
  36. package/lib/engine/xr/NeedleXRSession.js +70 -11
  37. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  38. package/lib/engine/xr/NeedleXRSync.js +23 -4
  39. package/lib/engine/xr/NeedleXRSync.js.map +1 -1
  40. package/lib/engine/xr/TempXRContext.js +2 -2
  41. package/lib/engine/xr/TempXRContext.js.map +1 -1
  42. package/lib/engine-components/SyncedTransform.d.ts +5 -1
  43. package/lib/engine-components/SyncedTransform.js +45 -8
  44. package/lib/engine-components/SyncedTransform.js.map +1 -1
  45. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  46. package/lib/engine-components/webxr/Avatar.d.ts +8 -0
  47. package/lib/engine-components/webxr/Avatar.js +60 -32
  48. package/lib/engine-components/webxr/Avatar.js.map +1 -1
  49. package/lib/engine-components/webxr/WebXR.js +25 -14
  50. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  51. package/lib/engine-schemes/synced-transform-model.d.ts +2 -0
  52. package/lib/engine-schemes/synced-transform-model.js +8 -1
  53. package/lib/engine-schemes/synced-transform-model.js.map +1 -1
  54. package/package.json +2 -2
  55. package/plugins/common/license.js +4 -4
  56. package/plugins/types/userconfig.d.ts +4 -3
  57. package/plugins/vite/build-pipeline.d.ts +3 -1
  58. package/plugins/vite/build-pipeline.js +19 -9
  59. package/plugins/vite/license.js +4 -4
  60. package/src/engine/api.ts +1 -1
  61. package/src/engine/engine_init.ts +2 -2
  62. package/src/engine/engine_license.ts +263 -73
  63. package/src/engine/engine_networking.ts +5 -0
  64. package/src/engine/engine_networking_blob.ts +3 -3
  65. package/src/engine/engine_networking_peer.ts +12 -13
  66. package/src/engine/engine_utils_qrcode.ts +2 -2
  67. package/src/engine/webcomponents/WebXRButtons.ts +5 -6
  68. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  69. package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
  70. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  71. package/src/engine/webcomponents/needle-engine.ts +31 -2
  72. package/src/engine/xr/NeedleXRSession.ts +72 -14
  73. package/src/engine/xr/NeedleXRSync.ts +24 -4
  74. package/src/engine/xr/TempXRContext.ts +2 -2
  75. package/src/engine-components/SyncedTransform.ts +49 -10
  76. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  77. package/src/engine-components/webxr/Avatar.ts +60 -33
  78. package/src/engine-components/webxr/WebXR.ts +23 -15
  79. package/src/engine-schemes/synced-transform-model.ts +10 -1
  80. package/src/engine-schemes/transforms.fbs +1 -0
@@ -116,14 +116,12 @@ import { XRControllerModelFactory } from '../../../../node_modules/@types/three/
116
116
  import { XRHandMeshModel } from '../../../../node_modules/@types/three/examples/jsm/webxr/XRHandMeshModel.js';
117
117
  import { XRHandSpace } from 'three';
118
118
 
119
- export declare const $componentName: unique symbol;
119
+ /* Excluded from this release type: _$apSvAt */
120
120
 
121
- /* Excluded from this release type: $iujBhf */
121
+ export declare const $componentName: unique symbol;
122
122
 
123
123
  export declare const $physicsKey: unique symbol;
124
124
 
125
- /* Excluded from this release type: $RHhhju */
126
-
127
125
  export declare class __Ignore {
128
126
  }
129
127
 
@@ -2124,6 +2122,8 @@ export declare class Avatar extends Component {
2124
2122
  rightHand?: AssetReference;
2125
2123
  private _leftHandMeshes?;
2126
2124
  private _rightHandMeshes?;
2125
+ private _remoteLeftHandMeshes?;
2126
+ private _remoteRightHandMeshes?;
2127
2127
  private _syncTransforms?;
2128
2128
  onEnterXR(_args: NeedleXREventArgs): Promise<void>;
2129
2129
  onLeaveXR(_args: NeedleXREventArgs): void;
@@ -2131,6 +2131,12 @@ export declare class Avatar extends Component {
2131
2131
  onBeforeRender(): void;
2132
2132
  private updateHandVisibility;
2133
2133
  private updateRemoteAvatarVisibility;
2134
+ /**
2135
+ * Show/hide a remote avatar hand render-only. The hand object stays active so its SyncedTransform keeps
2136
+ * applying networked updates (toggling `.visible` would deactivate it and could free the owner's ownership).
2137
+ * The mesh list is gathered lazily and cached, and returned so the caller can keep it.
2138
+ */
2139
+ private setRemoteHandRendered;
2134
2140
  private tryFindAvatarObjectsIfMissing;
2135
2141
  private prepareAvatar;
2136
2142
  private loadAvatarObjects;
@@ -8594,6 +8600,8 @@ export declare class HoverAnimation extends Component {
8594
8600
  /** SSR-safe base class for web components. */
8595
8601
  declare const HTMLElementBase: typeof HTMLElement;
8596
8602
 
8603
+ /* Excluded from this release type: _hyjgv */
8604
+
8597
8605
  export declare type IAnimationComponent = Pick<IComponent, "gameObject"> & {
8598
8606
  isAnimationComponent: boolean;
8599
8607
  addClip?(clip: AnimationClip): void;
@@ -10495,6 +10503,8 @@ export declare interface IXRRig extends Pick<IComponent, "gameObject"> {
10495
10503
  priority?: number;
10496
10504
  }
10497
10505
 
10506
+ /* Excluded from this release type: Jkdun */
10507
+
10498
10508
  /** Received when listening to `RoomEvents.JoinedRoom` event */
10499
10509
  export declare class JoinedRoomResponse {
10500
10510
  room: string;
@@ -12884,7 +12894,9 @@ export declare class NeedleXRSession implements INeedleXRSession {
12884
12894
  *
12885
12895
  * **IMPORTANT**: the resulting URL must exactly match an App Clip experience URL you have registered (with custom card metadata).
12886
12896
  * For this reason the URL is opened as-is, without appending any query parameters.
12887
- * @link https://appclip.needle.tools
12897
+ *
12898
+ * Note: custom App Clip branding requires an active PRO subscription. See the iOS WebXR App Clip docs (Custom Branding for iOS AR).
12899
+ * @link https://engine.needle.tools/docs/how-to-guides/xr/ios-webxr-app-clip#custom-branding-for-ios-ar
12888
12900
  */
12889
12901
  static get appClipUrl(): string | null;
12890
12902
  static set appClipUrl(value: string | null);
@@ -12922,6 +12934,10 @@ export declare class NeedleXRSession implements INeedleXRSession {
12922
12934
  */
12923
12935
  static isSessionSupported(mode: XRSessionMode): Promise<boolean>;
12924
12936
  private static _sessionSupportedCache;
12937
+ private static _deviceChangeHooked;
12938
+ /** Invalidate the support cache when the set of XR devices changes, so a newly
12939
+ * connected headset is picked up by the next isSessionSupported() call. */
12940
+ private static ensureDeviceChangeInvalidation;
12925
12941
  private static _currentSessionRequest?;
12926
12942
  private static _activeSession;
12927
12943
  /** Register to listen to XRSession start events. Unsubscribe with `offXRSessionStart` */
@@ -18071,8 +18087,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
18071
18087
  evaluate(t01: number, t: number): number;
18072
18088
  }
18073
18089
 
18074
- /* Excluded from this release type: rXELCf */
18075
-
18076
18090
  export declare function sanitizeString(str: any): string;
18077
18091
 
18078
18092
  /** Download a image (must be a data url).
@@ -21307,17 +21321,21 @@ export declare class OrbitControls extends Component implements ICameraControlle
21307
21321
  interpolatePosition: boolean;
21308
21322
  /** Whether to smoothly interpolate rotation changes when receiving updates */
21309
21323
  interpolateRotation: boolean;
21324
+ /** Whether to smoothly interpolate scale changes when receiving updates */
21325
+ interpolateScale: boolean;
21310
21326
  /** When true, sends updates at a higher frequency, useful for fast-moving objects */
21311
21327
  fastMode: boolean;
21312
21328
  /** When true, notifies other clients when this object is destroyed */
21313
21329
  syncDestroy: boolean;
21314
21330
  private _model;
21315
21331
  private _needsUpdate;
21332
+ private _hadOwnershipBeforeDisable;
21316
21333
  private rb;
21317
21334
  private _wasKinematic;
21318
21335
  private _receivedDataBefore;
21319
21336
  private _targetPosition;
21320
21337
  private _targetRotation;
21338
+ private _targetScale;
21321
21339
  private _receivedFastUpdate;
21322
21340
  private _shouldRequestOwnership;
21323
21341
  /**