@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.
- package/CHANGELOG.md +16 -0
- package/SKILL.md +62 -4
- package/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-CaD5rOJ0.js → needle-engine.bundle-DP--RGAU.js} +6126 -5969
- package/dist/{needle-engine.bundle-X7Y4A-EO.min.js → needle-engine.bundle-DZD-GG7l.min.js} +144 -143
- package/dist/{needle-engine.bundle-D8gP8Nd0.umd.cjs → needle-engine.bundle-Dv5TidOk.umd.cjs} +141 -140
- package/dist/needle-engine.d.ts +133 -36
- package/dist/needle-engine.js +617 -613
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/three-examples.js +727 -781
- package/dist/three-examples.min.js +12 -12
- package/dist/three-examples.umd.cjs +9 -9
- package/lib/engine/api.d.ts +1 -1
- package/lib/engine/api.js +1 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_init.js +2 -2
- package/lib/engine/engine_init.js.map +1 -1
- package/lib/engine/engine_license.d.ts +7 -7
- package/lib/engine/engine_license.js +71 -71
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_materialpropertyblock.d.ts +13 -4
- package/lib/engine/engine_materialpropertyblock.js +16 -5
- package/lib/engine/engine_materialpropertyblock.js.map +1 -1
- package/lib/engine/engine_networking_blob.js +3 -3
- package/lib/engine/engine_networking_blob.js.map +1 -1
- package/lib/engine/engine_utils_qrcode.js +2 -2
- package/lib/engine/engine_utils_qrcode.js.map +1 -1
- package/lib/engine/postprocessing/postprocessing.d.ts +18 -0
- package/lib/engine/postprocessing/postprocessing.js +31 -2
- package/lib/engine/postprocessing/postprocessing.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.ar-overlay.js +11 -0
- package/lib/engine/webcomponents/needle-engine.ar-overlay.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.js +2 -2
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine/xr/NeedleXRSession.d.ts +7 -2
- package/lib/engine/xr/NeedleXRSession.js +65 -5
- package/lib/engine/xr/NeedleXRSession.js.map +1 -1
- package/lib/engine/xr/TempXRContext.js +2 -2
- package/lib/engine/xr/TempXRContext.js.map +1 -1
- package/lib/engine/xr/XRHandMeshModel.d.ts +31 -0
- package/lib/engine/xr/XRHandMeshModel.js +153 -0
- package/lib/engine/xr/XRHandMeshModel.js.map +1 -0
- package/lib/engine-components/Component.d.ts +2 -1
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.js +3 -3
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/RendererLightmap.js +1 -1
- package/lib/engine-components/RendererLightmap.js.map +1 -1
- package/lib/engine-components/SyncedRoom.js +5 -0
- package/lib/engine-components/SyncedRoom.js.map +1 -1
- package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js +10 -2
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -1
- package/lib/engine-components/postprocessing/index.d.ts +4 -0
- package/lib/engine-components/postprocessing/index.js +7 -0
- package/lib/engine-components/postprocessing/index.js.map +1 -1
- package/lib/engine-components/utils/LookAt.d.ts +13 -4
- package/lib/engine-components/utils/LookAt.js +13 -4
- package/lib/engine-components/utils/LookAt.js.map +1 -1
- package/lib/engine-components/webxr/WebXR.js +1 -1
- package/lib/engine-components/webxr/WebXR.js.map +1 -1
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +35 -18
- package/lib/engine-components/webxr/WebXRImageTracking.js +93 -78
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/lib/engine-components/webxr/WebXRImageTracking.utils.d.ts +35 -0
- package/lib/engine-components/webxr/WebXRImageTracking.utils.js +96 -0
- package/lib/engine-components/webxr/WebXRImageTracking.utils.js.map +1 -0
- package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +1 -1
- package/lib/engine-components/webxr/controllers/XRControllerModel.js +12 -7
- package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
- package/package.json +2 -2
- package/plugins/common/license.js +4 -4
- package/plugins/vite/license.js +4 -4
- package/src/engine/api.ts +1 -1
- package/src/engine/engine_init.ts +2 -2
- package/src/engine/engine_license.ts +68 -68
- package/src/engine/engine_materialpropertyblock.ts +17 -5
- package/src/engine/engine_networking_blob.ts +3 -3
- package/src/engine/engine_utils_qrcode.ts +2 -2
- package/src/engine/postprocessing/postprocessing.ts +32 -2
- package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
- package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
- package/src/engine/webcomponents/needle-engine.ar-overlay.ts +13 -0
- package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
- package/src/engine/webcomponents/needle-engine.ts +2 -2
- package/src/engine/xr/NeedleXRSession.ts +68 -8
- package/src/engine/xr/TempXRContext.ts +2 -2
- package/src/engine/xr/XRHandMeshModel.ts +179 -0
- package/src/engine-components/Component.ts +2 -1
- package/src/engine-components/ReflectionProbe.ts +3 -3
- package/src/engine-components/RendererLightmap.ts +1 -1
- package/src/engine-components/SyncedRoom.ts +5 -0
- package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
- package/src/engine-components/postprocessing/Effects/DepthOfField.ts +10 -2
- package/src/engine-components/postprocessing/index.ts +7 -0
- package/src/engine-components/utils/LookAt.ts +13 -4
- package/src/engine-components/webxr/WebXR.ts +1 -1
- package/src/engine-components/webxr/WebXRImageTracking.ts +120 -66
- package/src/engine-components/webxr/WebXRImageTracking.utils.ts +105 -0
- 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
|
-
//
|
|
287
|
-
// we need
|
|
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,
|
|
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.
|
|
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
|
|
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("
|
|
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 = "
|
|
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("
|
|
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 = "
|
|
150
|
+
const jwtReplaced = "_AXD = \"" + licenseResult.jwt + "\"";
|
|
151
151
|
code = code.replace(jwtLine, jwtReplaced);
|
|
152
152
|
}
|
|
153
153
|
}
|
package/plugins/vite/license.js
CHANGED
|
@@ -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("
|
|
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 = "
|
|
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("
|
|
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 = "
|
|
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 {
|
|
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 {
|
|
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
|
-
|
|
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
|
|
12
|
+
const __DChk: ((result: boolean) => void)[] = [];
|
|
13
13
|
|
|
14
14
|
// DO NOT EDIT MANUALLY
|
|
15
|
-
let
|
|
15
|
+
let __ZrI: string = "";
|
|
16
16
|
// eslint-disable-next-line prefer-const
|
|
17
|
-
let
|
|
17
|
+
let _AXD: string = "";
|
|
18
18
|
|
|
19
19
|
if (debug) {
|
|
20
|
-
console.log("License Type: " +
|
|
21
|
-
if (
|
|
22
|
-
console.log("License JWT: " +
|
|
20
|
+
console.log("License Type: " + __ZrI);
|
|
21
|
+
if (_AXD) {
|
|
22
|
+
console.log("License JWT: " + _AXD);
|
|
23
23
|
try {
|
|
24
|
-
const payload = JSON.parse(atob(
|
|
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
|
|
36
|
-
switch (
|
|
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
|
|
46
|
-
switch (
|
|
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
|
|
55
|
-
switch (
|
|
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
|
|
64
|
-
return
|
|
63
|
+
export function __KODK() {
|
|
64
|
+
return $Ljyi() || $fHATZ() || rdc();
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
/** @internal */
|
|
69
|
-
export function
|
|
70
|
-
if (
|
|
69
|
+
export function __spV(cb: (result: boolean) => void) {
|
|
70
|
+
if ($Ljyi() || $fHATZ() || rdc())
|
|
71
71
|
return cb(true);
|
|
72
|
-
|
|
72
|
+
__DChk.push(cb);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
function
|
|
76
|
-
for (const cb of
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
185
|
+
* The engine ONLY trusts the JWT — the plain __ZrI string is ignored. */
|
|
186
186
|
let _jwtVerificationPromise: Promise<void> | undefined = undefined;
|
|
187
|
-
async function
|
|
188
|
-
// NOTE: do NOT add an `if (!
|
|
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 =
|
|
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
|
-
|
|
195
|
-
const verifiedType = await
|
|
194
|
+
_AXD = "";
|
|
195
|
+
const verifiedType = await _KhFK(jwt);
|
|
196
196
|
if (verifiedType) {
|
|
197
|
-
|
|
197
|
+
__ZrI = verifiedType;
|
|
198
198
|
if (debug) console.log("License type set from verified JWT: " + verifiedType);
|
|
199
|
-
|
|
199
|
+
__qmrKg(__KODK());
|
|
200
200
|
}
|
|
201
201
|
else {
|
|
202
|
-
|
|
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
|
|
653
|
+
export function _$AtfmW() {
|
|
654
654
|
|
|
655
|
-
if(
|
|
655
|
+
if(__ZrI === "") __ZrI = "basic";
|
|
656
656
|
|
|
657
657
|
// Start JWT verification — must be here (not top-level) to avoid tree-shaking
|
|
658
|
-
_jwtVerificationPromise =
|
|
658
|
+
_jwtVerificationPromise = __FiHbIAo();
|
|
659
659
|
|
|
660
660
|
Telemetry.init();
|
|
661
661
|
ContextRegistry.registerCallback(ContextEvent.ContextRegistered, evt => {
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
setTimeout(() =>
|
|
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
|
|
673
|
+
export let $AHhz: Promise<void> | undefined = undefined;
|
|
674
674
|
let applicationIsForbidden = false;
|
|
675
675
|
let applicationForbiddenText = "";
|
|
676
|
-
async function
|
|
676
|
+
async function $OoEIwAqC() {
|
|
677
677
|
// Only perform the runtime license check once
|
|
678
|
-
if (
|
|
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 (
|
|
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
|
-
|
|
696
|
-
|
|
695
|
+
__ZrI = "pro";
|
|
696
|
+
__qmrKg(true);
|
|
697
697
|
}
|
|
698
698
|
else if (res?.status === 403) {
|
|
699
|
-
|
|
699
|
+
__qmrKg(false);
|
|
700
700
|
applicationIsForbidden = true;
|
|
701
701
|
applicationForbiddenText = await res.text();
|
|
702
702
|
}
|
|
703
703
|
else {
|
|
704
|
-
|
|
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
|
-
|
|
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 \"" +
|
|
713
|
+
else if (debug) console.log("Runtime license check is skipped because license is already applied as \"" + __ZrI + "\"");
|
|
714
714
|
}
|
|
715
|
-
|
|
715
|
+
$AHhz = $OoEIwAqC();
|
|
716
716
|
|
|
717
|
-
async function
|
|
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
|
|
782
|
+
async function LwcCAK(ctx: IContext) {
|
|
783
783
|
try {
|
|
784
|
-
if (
|
|
785
|
-
return
|
|
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
|
|
790
|
+
return Xwnxe(ctx)
|
|
791
791
|
}
|
|
792
|
-
if (debug)
|
|
792
|
+
if (debug) Xwnxe(ctx)
|
|
793
793
|
}
|
|
794
794
|
|
|
795
795
|
|
|
796
796
|
|
|
797
|
-
async function
|
|
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
|
|
803
|
+
await $AHhz?.catch(() => { });
|
|
804
804
|
|
|
805
805
|
|
|
806
|
-
if (
|
|
807
|
-
if (
|
|
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
|
-
|
|
811
|
+
$jGjxKSJM(ctx);
|
|
812
812
|
}
|
|
813
813
|
else {
|
|
814
814
|
ctx.domElement.addEventListener("ready", () => {
|
|
815
|
-
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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.
|
|
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.
|
|
364
|
+
* block.removeOverride("color");
|
|
365
365
|
*
|
|
366
366
|
* // Other overrides (roughness, lightMap) remain active
|
|
367
367
|
* ```
|
|
368
368
|
*/
|
|
369
|
-
|
|
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
|
|
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 {
|