@needle-tools/engine 5.1.8 → 5.1.10

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 (108) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/SKILL.md +62 -4
  3. package/components.needle.json +1 -1
  4. package/dist/{needle-engine.bundle-CaD5rOJ0.js → needle-engine.bundle-DP--RGAU.js} +6126 -5969
  5. package/dist/{needle-engine.bundle-X7Y4A-EO.min.js → needle-engine.bundle-DZD-GG7l.min.js} +144 -143
  6. package/dist/{needle-engine.bundle-D8gP8Nd0.umd.cjs → needle-engine.bundle-Dv5TidOk.umd.cjs} +141 -140
  7. package/dist/needle-engine.d.ts +133 -36
  8. package/dist/needle-engine.js +617 -613
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/dist/three-examples.js +727 -781
  12. package/dist/three-examples.min.js +12 -12
  13. package/dist/three-examples.umd.cjs +9 -9
  14. package/lib/engine/api.d.ts +1 -1
  15. package/lib/engine/api.js +1 -1
  16. package/lib/engine/api.js.map +1 -1
  17. package/lib/engine/engine_init.js +2 -2
  18. package/lib/engine/engine_init.js.map +1 -1
  19. package/lib/engine/engine_license.d.ts +7 -7
  20. package/lib/engine/engine_license.js +71 -71
  21. package/lib/engine/engine_license.js.map +1 -1
  22. package/lib/engine/engine_materialpropertyblock.d.ts +13 -4
  23. package/lib/engine/engine_materialpropertyblock.js +16 -5
  24. package/lib/engine/engine_materialpropertyblock.js.map +1 -1
  25. package/lib/engine/engine_networking_blob.js +3 -3
  26. package/lib/engine/engine_networking_blob.js.map +1 -1
  27. package/lib/engine/engine_utils_qrcode.js +2 -2
  28. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  29. package/lib/engine/postprocessing/postprocessing.d.ts +18 -0
  30. package/lib/engine/postprocessing/postprocessing.js +31 -2
  31. package/lib/engine/postprocessing/postprocessing.js.map +1 -1
  32. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  33. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  34. package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
  35. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  36. package/lib/engine/webcomponents/needle-engine.ar-overlay.js +11 -0
  37. package/lib/engine/webcomponents/needle-engine.ar-overlay.js.map +1 -1
  38. package/lib/engine/webcomponents/needle-engine.js +2 -2
  39. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  40. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  41. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  42. package/lib/engine/xr/NeedleXRSession.d.ts +7 -2
  43. package/lib/engine/xr/NeedleXRSession.js +65 -5
  44. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  45. package/lib/engine/xr/TempXRContext.js +2 -2
  46. package/lib/engine/xr/TempXRContext.js.map +1 -1
  47. package/lib/engine/xr/XRHandMeshModel.d.ts +31 -0
  48. package/lib/engine/xr/XRHandMeshModel.js +153 -0
  49. package/lib/engine/xr/XRHandMeshModel.js.map +1 -0
  50. package/lib/engine-components/Component.d.ts +2 -1
  51. package/lib/engine-components/Component.js.map +1 -1
  52. package/lib/engine-components/ReflectionProbe.js +3 -3
  53. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  54. package/lib/engine-components/RendererLightmap.js +1 -1
  55. package/lib/engine-components/RendererLightmap.js.map +1 -1
  56. package/lib/engine-components/SyncedRoom.js +5 -0
  57. package/lib/engine-components/SyncedRoom.js.map +1 -1
  58. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  59. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  60. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +10 -2
  61. package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -1
  62. package/lib/engine-components/postprocessing/index.d.ts +4 -0
  63. package/lib/engine-components/postprocessing/index.js +7 -0
  64. package/lib/engine-components/postprocessing/index.js.map +1 -1
  65. package/lib/engine-components/utils/LookAt.d.ts +13 -4
  66. package/lib/engine-components/utils/LookAt.js +13 -4
  67. package/lib/engine-components/utils/LookAt.js.map +1 -1
  68. package/lib/engine-components/webxr/WebXR.js +1 -1
  69. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  70. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +35 -18
  71. package/lib/engine-components/webxr/WebXRImageTracking.js +93 -78
  72. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  73. package/lib/engine-components/webxr/WebXRImageTracking.utils.d.ts +35 -0
  74. package/lib/engine-components/webxr/WebXRImageTracking.utils.js +96 -0
  75. package/lib/engine-components/webxr/WebXRImageTracking.utils.js.map +1 -0
  76. package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +1 -1
  77. package/lib/engine-components/webxr/controllers/XRControllerModel.js +12 -7
  78. package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
  79. package/package.json +2 -2
  80. package/plugins/common/license.js +4 -4
  81. package/plugins/vite/license.js +4 -4
  82. package/src/engine/api.ts +1 -1
  83. package/src/engine/engine_init.ts +2 -2
  84. package/src/engine/engine_license.ts +68 -68
  85. package/src/engine/engine_materialpropertyblock.ts +17 -5
  86. package/src/engine/engine_networking_blob.ts +3 -3
  87. package/src/engine/engine_utils_qrcode.ts +2 -2
  88. package/src/engine/postprocessing/postprocessing.ts +32 -2
  89. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  90. package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
  91. package/src/engine/webcomponents/needle-engine.ar-overlay.ts +13 -0
  92. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  93. package/src/engine/webcomponents/needle-engine.ts +2 -2
  94. package/src/engine/xr/NeedleXRSession.ts +68 -8
  95. package/src/engine/xr/TempXRContext.ts +2 -2
  96. package/src/engine/xr/XRHandMeshModel.ts +179 -0
  97. package/src/engine-components/Component.ts +2 -1
  98. package/src/engine-components/ReflectionProbe.ts +3 -3
  99. package/src/engine-components/RendererLightmap.ts +1 -1
  100. package/src/engine-components/SyncedRoom.ts +5 -0
  101. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  102. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +10 -2
  103. package/src/engine-components/postprocessing/index.ts +7 -0
  104. package/src/engine-components/utils/LookAt.ts +13 -4
  105. package/src/engine-components/webxr/WebXR.ts +1 -1
  106. package/src/engine-components/webxr/WebXRImageTracking.ts +120 -66
  107. package/src/engine-components/webxr/WebXRImageTracking.utils.ts +105 -0
  108. package/src/engine-components/webxr/controllers/XRControllerModel.ts +13 -7
@@ -1,8 +1,8 @@
1
1
  import { XRControllerModelFactory } from "three/examples/jsm/webxr/XRControllerModelFactory.js";
2
- import { XRHandMeshModel } from "three/examples/jsm/webxr/XRHandMeshModel.js";
3
2
  import { AssetReference } from "../../../engine/engine_addressables.js";
4
3
  import type { IGameObject } from "../../../engine/engine_types.js";
5
4
  import { NeedleXRController, type NeedleXRControllerEventArgs, type NeedleXREventArgs } from "../../../engine/engine_xr.js";
5
+ import { XRHandMeshModel } from "../../../engine/xr/XRHandMeshModel.js";
6
6
  import { Behaviour, Component } from "../../Component.js";
7
7
  /**
8
8
  * XRControllerModel is a component that allows to display controller models or hand models in an XR session.
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { AxesHelper, Group, Material, Mesh, Object3D } from "three";
8
8
  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
9
9
  import { XRControllerModelFactory } from "three/examples/jsm/webxr/XRControllerModelFactory.js";
10
- import { XRHandMeshModel } from "three/examples/jsm/webxr/XRHandMeshModel.js";
11
10
  import { AssetReference } from "../../../engine/engine_addressables.js";
12
11
  import { setDontDestroy } from "../../../engine/engine_gameobject.js";
13
12
  import { Gizmos } from "../../../engine/engine_gizmos.js";
@@ -19,6 +18,7 @@ import { NeedleXRSession } from "../../../engine/engine_xr.js";
19
18
  import { registerComponentExtension, registerExtensions } from "../../../engine/extensions/extensions.js";
20
19
  import { NEEDLE_progressive } from "../../../engine/extensions/NEEDLE_progressive.js";
21
20
  import { flipForwardMatrix } from "../../../engine/xr/internal.js";
21
+ import { XRHandMeshModel } from "../../../engine/xr/XRHandMeshModel.js";
22
22
  import { Behaviour } from "../../Component.js";
23
23
  const debug = getParam("debugwebxr");
24
24
  const handsJointBuffer = new Float32Array(16 * 25);
@@ -263,8 +263,6 @@ export class XRControllerModel extends Behaviour {
263
263
  }
264
264
  const loader = new GLTFLoader();
265
265
  addDracoAndKTX2Loaders(loader, context);
266
- await registerExtensions(loader, context, this.sourceId ?? "", this.sourceId ?? "");
267
- const componentsExtension = registerComponentExtension(loader);
268
266
  let filename = "";
269
267
  const customHand = controller.side === "left" ? this.customLeftHand : this.customRightHand;
270
268
  if (customHand) {
@@ -278,19 +276,26 @@ export class XRControllerModel extends Behaviour {
278
276
  filename = controller.inputSource.handedness === "left" ? "left" : "right";
279
277
  loader.setPath('https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/');
280
278
  }
279
+ // The hand is a separate glTF and needs its own source id: its components resolve their
280
+ // relative uris against it (resolveUrl) and its lightmaps/skybox are keyed by it. Using
281
+ // this component's id resolved the hand's uris next to the HOST glb and let the hand's
282
+ // skybox overwrite the scene's. customHand.url is already resolved, `filename` is not
283
+ // (extension stripped for XRHandMeshModel).
284
+ const handSourceId = customHand?.url ?? `${loader.path}${filename}.glb`;
285
+ await registerExtensions(loader, context, handSourceId, handSourceId);
286
+ const componentsExtension = registerComponentExtension(loader);
281
287
  const handObject = new Object3D();
282
288
  setDontDestroy(handObject);
283
- // @ts-ignore
284
289
  const handmesh = new XRHandMeshModel(handObject, hand, loader.path, filename, loader, (object) => {
285
290
  const gltf = componentsExtension?.gltf;
286
- // The XRHandMeshController removes the hand from the gltf before calling this callback
287
- // we need this in the GLTF scene however for creating the builtin components
291
+ // XRHandMeshModel reparents the hand out of the gltf scene before calling this
292
+ // callback; we need it back in the scene so the builtin components are created on it
288
293
  if (gltf?.scene.children?.length === 0) {
289
294
  gltf.scene.children[0] = object;
290
295
  }
291
296
  // console.log(controller.side, componentsExtension.gltf, object, componentsExtension.gltf.scene?.children)
292
297
  if (componentsExtension?.gltf)
293
- getLoader().createBuiltinComponents(comp.context, comp.sourceId || filename, componentsExtension.gltf, null, componentsExtension);
298
+ getLoader().createBuiltinComponents(comp.context, handSourceId, componentsExtension.gltf, null, componentsExtension);
294
299
  // The hand mesh should not receive raycasts
295
300
  object.traverse(child => {
296
301
  child.layers.set(2);
@@ -1 +1 @@
1
- {"version":3,"file":"XRControllerModel.js","sourceRoot":"","sources":["../../../../src/engine-components/webxr/controllers/XRControllerModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRControllerModel.js","sourceRoot":"","sources":["../../../../src/engine-components/webxr/controllers/XRControllerModel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "5.1.8",
3
+ "version": "5.1.10",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -99,7 +99,7 @@
99
99
  ],
100
100
  "dependencies": {
101
101
  "@dimforge/rapier3d-compat": "0.19.3",
102
- "@needle-tools/gltf-progressive": "3.6.0-beta.2",
102
+ "@needle-tools/gltf-progressive": "3.6.0",
103
103
  "@needle-tools/materialx": "1.7.4",
104
104
  "@needle-tools/three-animation-pointer": "1.1.2",
105
105
  "@webxr-input-profiles/motion-controllers": "1.0.0",
@@ -127,7 +127,7 @@ async function requestNeedleCloud(path, options) {
127
127
  * @param {DefaultOptions & {accessToken?:string, team:string|undefined}} opts
128
128
  */
129
129
  export async function replaceLicense(code, opts) {
130
- const index = code?.indexOf("DCMbeC");
130
+ const index = code?.indexOf("__ZrI");
131
131
  if (index >= 0) {
132
132
  const licenseResult = await resolveLicense(opts);
133
133
  if (!licenseResult) {
@@ -136,18 +136,18 @@ export async function replaceLicense(code, opts) {
136
136
  const end = code.indexOf(";", index);
137
137
  if (end >= 0) {
138
138
  const line = code.substring(index, end);
139
- const replaced = "DCMbeC = \"" + licenseResult.type + "\"";
139
+ const replaced = "__ZrI = \"" + licenseResult.type + "\"";
140
140
  code = code.replace(line, replaced);
141
141
  }
142
142
 
143
143
  // Also inject JWT if available
144
144
  if (licenseResult.jwt) {
145
- const jwtIndex = code.indexOf("_$QDa");
145
+ const jwtIndex = code.indexOf("_AXD");
146
146
  if (jwtIndex >= 0) {
147
147
  const jwtEnd = code.indexOf(";", jwtIndex);
148
148
  if (jwtEnd >= 0) {
149
149
  const jwtLine = code.substring(jwtIndex, jwtEnd);
150
- const jwtReplaced = "_$QDa = \"" + licenseResult.jwt + "\"";
150
+ const jwtReplaced = "_AXD = \"" + licenseResult.jwt + "\"";
151
151
  code = code.replace(jwtLine, jwtReplaced);
152
152
  }
153
153
  }
@@ -49,12 +49,12 @@ export function needleLicense(command, config, userSettings) {
49
49
  let modified = false;
50
50
 
51
51
  // Replace license type
52
- const index = src.indexOf("DCMbeC");
52
+ const index = src.indexOf("__ZrI");
53
53
  if (index >= 0) {
54
54
  const end = src.indexOf(";", index);
55
55
  if (end >= 0) {
56
56
  const line = src.substring(index, end);
57
- const replaced = "DCMbeC = \"" + licenseResult.type + "\"";
57
+ const replaced = "__ZrI = \"" + licenseResult.type + "\"";
58
58
  src = src.replace(line, replaced);
59
59
  modified = true;
60
60
  }
@@ -62,12 +62,12 @@ export function needleLicense(command, config, userSettings) {
62
62
 
63
63
  // Replace license JWT (same pattern)
64
64
  if (licenseResult.jwt) {
65
- const jwtIndex = src.indexOf("_$QDa");
65
+ const jwtIndex = src.indexOf("_AXD");
66
66
  if (jwtIndex >= 0) {
67
67
  const jwtEnd = src.indexOf(";", jwtIndex);
68
68
  if (jwtEnd >= 0) {
69
69
  const jwtLine = src.substring(jwtIndex, jwtEnd);
70
- const jwtReplaced = "_$QDa = \"" + licenseResult.jwt + "\"";
70
+ const jwtReplaced = "_AXD = \"" + licenseResult.jwt + "\"";
71
71
  src = src.replace(jwtLine, jwtReplaced);
72
72
  modified = true;
73
73
  }
package/src/engine/api.ts CHANGED
@@ -230,7 +230,7 @@ export * from "./engine_input.js";
230
230
  export { InstancingUtil } from "./engine_instancing.js";
231
231
 
232
232
  /** License checking utilities */
233
- export { __sKHtRdk, _VIq, LuMYUbW } from "./engine_license.js";
233
+ export { __KODK, $fHATZ, $Ljyi } from "./engine_license.js";
234
234
 
235
235
 
236
236
  // ============================================================================
@@ -8,7 +8,7 @@ import { initBuiltinTypes } from "./codegen/register_types.js";
8
8
  import { initSpatialConsole } from "./debug/debug_spatial_console.js";
9
9
  import { initAddressableSerializers } from "./engine_addressables.js";
10
10
  import { ensureAudioContextIsResumed } from "./engine_audio.js";
11
- import { __jwMeHQW } from "./engine_license.js";
11
+ import { _$AtfmW } from "./engine_license.js";
12
12
  import { initNeedleLoader } from "./engine_loaders.js";
13
13
  import { initPhysics } from "./engine_physics_rapier.js";
14
14
  import { initBuiltinSerializers } from "./engine_serialization_builtin_serializer.js";
@@ -59,7 +59,7 @@ export function initEngine() {
59
59
  initPhysics();
60
60
  initXR();
61
61
  initSpatialConsole();
62
- __jwMeHQW();
62
+ _$AtfmW();
63
63
 
64
64
  // Must be last. customElements.define() upgrades existing <needle-engine>
65
65
  // elements synchronously, which can trigger context.create() and dispatch
@@ -9,19 +9,19 @@ import { DeviceUtilities, getParam } from "./engine_utils.js";
9
9
 
10
10
  const debug = getParam("__debuglic__");
11
11
 
12
- const _vyy: ((result: boolean) => void)[] = [];
12
+ const __DChk: ((result: boolean) => void)[] = [];
13
13
 
14
14
  // DO NOT EDIT MANUALLY
15
- let DCMbeC: string = "";
15
+ let __ZrI: string = "";
16
16
  // eslint-disable-next-line prefer-const
17
- let _$QDa: string = "";
17
+ let _AXD: string = "";
18
18
 
19
19
  if (debug) {
20
- console.log("License Type: " + DCMbeC);
21
- if (_$QDa) {
22
- console.log("License JWT: " + _$QDa);
20
+ console.log("License Type: " + __ZrI);
21
+ if (_AXD) {
22
+ console.log("License JWT: " + _AXD);
23
23
  try {
24
- const payload = JSON.parse(atob(_$QDa.split(".")[1].replace(/-/g, '+').replace(/_/g, '/')));
24
+ const payload = JSON.parse(atob(_AXD.split(".")[1].replace(/-/g, '+').replace(/_/g, '/')));
25
25
  console.log("License JWT payload:", payload);
26
26
  }
27
27
  catch { console.log("License JWT payload: (failed to decode)"); }
@@ -32,8 +32,8 @@ if (debug) {
32
32
  }
33
33
 
34
34
  /** @internal */
35
- export function LuMYUbW() {
36
- switch (DCMbeC) {
35
+ export function $Ljyi() {
36
+ switch (__ZrI) {
37
37
  case "pro":
38
38
  case "enterprise":
39
39
  return true;
@@ -42,8 +42,8 @@ export function LuMYUbW() {
42
42
  }
43
43
 
44
44
  /** @internal */
45
- export function _VIq() {
46
- switch (DCMbeC) {
45
+ export function $fHATZ() {
46
+ switch (__ZrI) {
47
47
  case "indie":
48
48
  return true;
49
49
  }
@@ -51,8 +51,8 @@ export function _VIq() {
51
51
  }
52
52
 
53
53
  /** @internal */
54
- export function _qGnTHBt() {
55
- switch (DCMbeC) {
54
+ export function rdc() {
55
+ switch (__ZrI) {
56
56
  case "edu":
57
57
  return true;
58
58
  }
@@ -60,20 +60,20 @@ export function _qGnTHBt() {
60
60
  }
61
61
 
62
62
  /** @internal */
63
- export function __sKHtRdk() {
64
- return LuMYUbW() || _VIq() || _qGnTHBt();
63
+ export function __KODK() {
64
+ return $Ljyi() || $fHATZ() || rdc();
65
65
  }
66
66
 
67
67
 
68
68
  /** @internal */
69
- export function __YcMNHT(cb: (result: boolean) => void) {
70
- if (LuMYUbW() || _VIq() || _qGnTHBt())
69
+ export function __spV(cb: (result: boolean) => void) {
70
+ if ($Ljyi() || $fHATZ() || rdc())
71
71
  return cb(true);
72
- _vyy.push(cb);
72
+ __DChk.push(cb);
73
73
  }
74
74
 
75
- function __GhIoUnR(result: boolean) {
76
- for (const cb of _vyy) {
75
+ function __qmrKg(result: boolean) {
76
+ for (const cb of __DChk) {
77
77
  try {
78
78
  cb(result);
79
79
  }
@@ -88,7 +88,7 @@ function __GhIoUnR(result: boolean) {
88
88
 
89
89
  // ECDSA P-256 public key for verifying license JWTs (verification-only, safe to ship)
90
90
  /* eslint-disable no-secrets/no-secrets -- public key, not a secret */
91
- const _ZlcqTFZ = {
91
+ const _Utd = {
92
92
  kty: "EC",
93
93
  crv: "P-256",
94
94
  x: "A34nyKMjhQYVgzeE4tyLUYdx34TAKogDa7v7PRaO9Lg",
@@ -112,7 +112,7 @@ function base64urlDecode(str: string): Uint8Array {
112
112
  * Verify a JWT license token and return the `type` claim if valid.
113
113
  * Returns null if the JWT is missing, malformed, or has an invalid signature.
114
114
  */
115
- async function $XibkUuV(jwt: string): Promise<string | null> {
115
+ async function _KhFK(jwt: string): Promise<string | null> {
116
116
  if (!jwt) return null;
117
117
  try {
118
118
  const parts = jwt.split(".");
@@ -122,7 +122,7 @@ async function $XibkUuV(jwt: string): Promise<string | null> {
122
122
 
123
123
  const key = await crypto.subtle.importKey(
124
124
  "jwk",
125
- _ZlcqTFZ,
125
+ _Utd,
126
126
  { name: "ECDSA", namedCurve: "P-256" },
127
127
  false,
128
128
  ["verify"]
@@ -182,24 +182,24 @@ async function $XibkUuV(jwt: string): Promise<string | null> {
182
182
  }
183
183
 
184
184
  /** Verify the injected JWT and update the license type if valid.
185
- * The engine ONLY trusts the JWT — the plain DCMbeC string is ignored. */
185
+ * The engine ONLY trusts the JWT — the plain __ZrI string is ignored. */
186
186
  let _jwtVerificationPromise: Promise<void> | undefined = undefined;
187
- async function _eHTHvyky(): Promise<void> {
188
- // NOTE: do NOT add an `if (!_$QDa) return` guard here.
187
+ async function __FiHbIAo(): Promise<void> {
188
+ // NOTE: do NOT add an `if (!_AXD) return` guard here.
189
189
  // esbuild (Vite dependency pre-bundling) would see the variable as constant ""
190
190
  // and tree-shake the entire JWT verification code path.
191
- const jwt = _$QDa;
191
+ const jwt = _AXD;
192
192
  // Clear after reading — this reassignment also prevents esbuild from
193
193
  // constant-folding the variable (it now has multiple assignment sites).
194
- _$QDa = "";
195
- const verifiedType = await $XibkUuV(jwt);
194
+ _AXD = "";
195
+ const verifiedType = await _KhFK(jwt);
196
196
  if (verifiedType) {
197
- DCMbeC = verifiedType;
197
+ __ZrI = verifiedType;
198
198
  if (debug) console.log("License type set from verified JWT: " + verifiedType);
199
- __GhIoUnR(__sKHtRdk());
199
+ __qmrKg(__KODK());
200
200
  }
201
201
  else {
202
- DCMbeC = "basic";
202
+ __ZrI = "basic";
203
203
  if (debug && jwt) console.warn("JWT verification failed — license reset to basic");
204
204
  }
205
205
  }
@@ -650,18 +650,18 @@ export namespace Telemetry {
650
650
  }
651
651
 
652
652
 
653
- export function __jwMeHQW() {
653
+ export function _$AtfmW() {
654
654
 
655
- if(DCMbeC === "") DCMbeC = "basic";
655
+ if(__ZrI === "") __ZrI = "basic";
656
656
 
657
657
  // Start JWT verification — must be here (not top-level) to avoid tree-shaking
658
- _jwtVerificationPromise = _eHTHvyky();
658
+ _jwtVerificationPromise = __FiHbIAo();
659
659
 
660
660
  Telemetry.init();
661
661
  ContextRegistry.registerCallback(ContextEvent.ContextRegistered, evt => {
662
- __dwrTPO(evt.context);
663
- RENdB(evt.context);
664
- setTimeout(() => _$lKMhQuj(evt.context), 2000);
662
+ LwcCAK(evt.context);
663
+ _lsnP(evt.context);
664
+ setTimeout(() => _Fprjh(evt.context), 2000);
665
665
  });
666
666
  // ContextCreated fires after the renderer exists, so the canvas is available for context-loss monitoring
667
667
  ContextRegistry.registerCallback(ContextEvent.ContextCreated, evt => {
@@ -670,17 +670,17 @@ export function __jwMeHQW() {
670
670
  });
671
671
  }
672
672
 
673
- export let __pRlh: Promise<void> | undefined = undefined;
673
+ export let $AHhz: Promise<void> | undefined = undefined;
674
674
  let applicationIsForbidden = false;
675
675
  let applicationForbiddenText = "";
676
- async function __DmsXa() {
676
+ async function $OoEIwAqC() {
677
677
  // Only perform the runtime license check once
678
- if (__pRlh) return __pRlh;
678
+ if ($AHhz) return $AHhz;
679
679
  // Wait for JWT verification to complete first (if running)
680
680
  if (_jwtVerificationPromise) {
681
681
  await _jwtVerificationPromise;
682
682
  }
683
- if (DCMbeC === "basic") {
683
+ if (__ZrI === "basic") {
684
684
  try {
685
685
  const licenseUrl = "https://needle.tools/api/v1/needle-engine/check?location=" + encodeURIComponent(window.location.href) + "&version=" + VERSION + "&generator=" + encodeURIComponent(GENERATOR);
686
686
  const res = await fetch(licenseUrl, {
@@ -692,29 +692,29 @@ async function __DmsXa() {
692
692
  if (res?.status === 200) {
693
693
  applicationIsForbidden = false;
694
694
  if (debug) console.log("License check succeeded");
695
- DCMbeC = "pro";
696
- __GhIoUnR(true);
695
+ __ZrI = "pro";
696
+ __qmrKg(true);
697
697
  }
698
698
  else if (res?.status === 403) {
699
- __GhIoUnR(false);
699
+ __qmrKg(false);
700
700
  applicationIsForbidden = true;
701
701
  applicationForbiddenText = await res.text();
702
702
  }
703
703
  else {
704
- __GhIoUnR(false);
704
+ __qmrKg(false);
705
705
  if (debug) console.log("License check failed with status " + res?.status);
706
706
  }
707
707
  }
708
708
  catch (err) {
709
- __GhIoUnR(false);
709
+ __qmrKg(false);
710
710
  if (debug) console.error("License check failed", err);
711
711
  }
712
712
  }
713
- else if (debug) console.log("Runtime license check is skipped because license is already applied as \"" + DCMbeC + "\"");
713
+ else if (debug) console.log("Runtime license check is skipped because license is already applied as \"" + __ZrI + "\"");
714
714
  }
715
- __pRlh = __DmsXa();
715
+ $AHhz = $OoEIwAqC();
716
716
 
717
- async function RENdB(ctx: IContext) {
717
+ async function _lsnP(ctx: IContext) {
718
718
  function createForbiddenElement() {
719
719
  const div = document.createElement("div");
720
720
  div.className = "needle-forbidden";
@@ -779,40 +779,40 @@ async function RENdB(ctx: IContext) {
779
779
  }, 500)
780
780
  }
781
781
 
782
- async function __dwrTPO(ctx: IContext) {
782
+ async function LwcCAK(ctx: IContext) {
783
783
  try {
784
- if (!LuMYUbW() && !_VIq()) {
785
- return _BDcq(ctx);
784
+ if (!$Ljyi() && !$fHATZ()) {
785
+ return Xwnxe(ctx);
786
786
  }
787
787
  }
788
788
  catch (err) {
789
789
  if (debug) console.log("License check failed", err)
790
- return _BDcq(ctx)
790
+ return Xwnxe(ctx)
791
791
  }
792
- if (debug) _BDcq(ctx)
792
+ if (debug) Xwnxe(ctx)
793
793
  }
794
794
 
795
795
 
796
796
 
797
- async function _BDcq(ctx: IContext) {
797
+ async function Xwnxe(ctx: IContext) {
798
798
 
799
799
  // if the engine loads faster than the license check, we need to capture the ready event here
800
800
  let isReady = false;
801
801
  ctx.domElement.addEventListener("ready", () => isReady = true);
802
802
 
803
- await __pRlh?.catch(() => { });
803
+ await $AHhz?.catch(() => { });
804
804
 
805
805
 
806
- if (LuMYUbW() || _VIq()) return;
807
- if (__sKHtRdk() === false) _oFDigtof();
806
+ if ($Ljyi() || $fHATZ()) return;
807
+ if (__KODK() === false) CSTks();
808
808
 
809
809
  // check if the engine is already ready (meaning has finished loading)
810
810
  if (isReady) {
811
- DWOdshYS(ctx);
811
+ $jGjxKSJM(ctx);
812
812
  }
813
813
  else {
814
814
  ctx.domElement.addEventListener("ready", () => {
815
- DWOdshYS(ctx);
815
+ $jGjxKSJM(ctx);
816
816
  });
817
817
  }
818
818
  }
@@ -820,7 +820,7 @@ async function _BDcq(ctx: IContext) {
820
820
  // const licenseElementIdentifier = "needle-license-element";
821
821
  // const licenseDuration = 10000;
822
822
  // const licenseDelay = 1200;
823
- function DWOdshYS(ctx: IContext) {
823
+ function $jGjxKSJM(ctx: IContext) {
824
824
 
825
825
  const style = `
826
826
  position: relative;
@@ -833,7 +833,7 @@ function DWOdshYS(ctx: IContext) {
833
833
  padding: 10px;
834
834
  padding-left: 30px;
835
835
  `;
836
- if (DCMbeC === "edu") {
836
+ if (__ZrI === "edu") {
837
837
  if (navigator.webdriver) {
838
838
  console.log("This project is supported by Needle for Education – https://needle.tools");
839
839
  }
@@ -890,7 +890,7 @@ function DWOdshYS(ctx: IContext) {
890
890
  }
891
891
  }, 1000);
892
892
 
893
- if (_qGnTHBt()) {
893
+ if (rdc()) {
894
894
  const removeDelay = 20_000;
895
895
  setTimeout(() => {
896
896
  clearInterval(interval);
@@ -899,7 +899,7 @@ function DWOdshYS(ctx: IContext) {
899
899
  const intervalInMinutes = 5;
900
900
  setTimeout(() => {
901
901
  if (ctx.domElement.parentNode)
902
- DWOdshYS(ctx);
902
+ $jGjxKSJM(ctx);
903
903
  }, 1000 * 60 * intervalInMinutes)
904
904
  }, removeDelay);
905
905
  }
@@ -910,7 +910,7 @@ function DWOdshYS(ctx: IContext) {
910
910
  const base64Logo = "data:image/webp;base64,UklGRrABAABXRUJQVlA4WAoAAAAQAAAAHwAAHwAAQUxQSKEAAAARN6CmbSM4WR7vdARON11EBDq3fLiNbVtVzpMCPlKAEzsx0Y/x+Ovuv4dn0EFE/ydAvz6YggXzgh5sVgXM/zOC/4sii7qgGvB5N7hmuQYwkvazWAu1JPW41FXSHq6pnaQWvqYH18Fc0j1hO/BFTtIeSBlJi5w6qIIO7IOrwhFsB2Yxukif0FTRLpXswHR8MxbslKe9VZsn/Ub5C7YFOpqSTABWUDgg6AAAAFAGAJ0BKiAAIAA+7VyoTqmkpCI3+qgBMB2JbACdMt69DwMIQBLhkTO6XwY00UEDK6cNIDnuNibPf0EgAP7Y1myuiQHLDsF/0h5unrGh6WAbv7aegg2ZMd3uRKfT/3SJztcaujYfTvMXspfCTmYcoO6a+vhC3ss4M8uM58t4siiu59I4aOl59e9Sr6xoxYlHf2v+NnBNpJYeJf8jABQAId/PXuBkLEFkiCucgSGEcfhvajql/j3reCGl0M5/9gQWy7ayNPs+wlvIxFnNfSlfuND4CZOCyxOHhRqOmHN4ULHo3tCSrUNvgAA=";
911
911
 
912
912
  let lastLogTime = 0;
913
- async function _oFDigtof(_logo?: string) {
913
+ async function CSTks(_logo?: string) {
914
914
  const now = Date.now();
915
915
  if (now - lastLogTime < 2000) return;
916
916
  lastLogTime = now;
@@ -943,7 +943,7 @@ async function _oFDigtof(_logo?: string) {
943
943
  }
944
944
 
945
945
 
946
- async function _$lKMhQuj(context: IContext) {
946
+ async function _Fprjh(context: IContext) {
947
947
  // isAllowed() now also covers cross-origin-isolated pages (where beacons can't be sent)
948
948
  // and Do Not Track / GPC.
949
949
  if (!Telemetry.isAllowed(context)) {
@@ -957,7 +957,7 @@ async function _$lKMhQuj(context: IContext) {
957
957
 
958
958
  // current url without query parameters
959
959
  const currentUrl = window.location.href.split("?")[0];
960
- const license = DCMbeC;
960
+ const license = __ZrI;
961
961
 
962
962
  const beaconData = {
963
963
  license,
@@ -132,7 +132,7 @@ const registry = new PropertyBlockRegistry();
132
132
  * This means:
133
133
  * - If you change the object's material, the overrides will still be applied to the new material
134
134
  * - Multiple objects can share the same material but have different property overrides
135
- * - If you don't want overrides applied after changing a material, you must remove them using {@link removeOveride}, {@link clearAllOverrides}, or {@link dispose}
135
+ * - If you don't want overrides applied after changing a material, you must remove them using {@link removeOverride}, {@link clearAllOverrides}, or {@link dispose}
136
136
  *
137
137
  * The property block system works by:
138
138
  * - Temporarily applying overrides in onBeforeRender
@@ -194,7 +194,7 @@ const registry = new PropertyBlockRegistry();
194
194
  * // If you don't want overrides on the new material, remove them:
195
195
  * block.clearAllOverrides(); // Remove all overrides
196
196
  * // or
197
- * block.removeOveride("color"); // Remove specific override
197
+ * block.removeOverride("color"); // Remove specific override
198
198
  * // or
199
199
  * block.dispose(); // Remove the entire property block
200
200
  * ```
@@ -361,18 +361,30 @@ export class MaterialPropertyBlock<T extends Material = Material> {
361
361
  * block.setOverride("lightMap", lightmapTexture);
362
362
  *
363
363
  * // Remove a specific override - the material will now use its original color
364
- * block.removeOveride("color");
364
+ * block.removeOverride("color");
365
365
  *
366
366
  * // Other overrides (roughness, lightMap) remain active
367
367
  * ```
368
368
  */
369
- removeOveride<K extends NonFunctionPropertyNames<T>>(name: K | ({} & string)): void {
369
+ removeOverride<K extends NonFunctionPropertyNames<T>>(name: K | ({} & string)): void {
370
370
  const index = this._overrides.findIndex(o => o.name === name);
371
371
  if (index >= 0) {
372
372
  this._overrides.splice(index, 1);
373
373
  }
374
374
  }
375
375
 
376
+ /**
377
+ * Removes a specific property override.
378
+ *
379
+ * @param name The property name to remove the override for
380
+ *
381
+ * @deprecated The name is missing an `r`. Use {@link removeOverride} instead — this
382
+ * alias is kept so existing code keeps working and will be removed in a future version.
383
+ */
384
+ removeOveride<K extends NonFunctionPropertyNames<T>>(name: K | ({} & string)): void {
385
+ this.removeOverride(name);
386
+ }
387
+
376
388
  /**
377
389
  * Removes all property overrides from this block.
378
390
  * After calling this, the material will use its original values for all properties.
@@ -413,7 +425,7 @@ export class MaterialPropertyBlock<T extends Material = Material> {
413
425
  * });
414
426
  * ```
415
427
  *
416
- * @see {@link removeOveride} - To remove a single override
428
+ * @see {@link removeOverride} - To remove a single override
417
429
  * @see {@link dispose} - To completely remove the property block and clean up resources
418
430
  */
419
431
  clearAllOverrides(): void {