@needle-tools/engine 5.1.0-alpha.7 → 5.1.0-alpha.9
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 +17 -0
- package/components.needle.json +1 -1
- package/dist/{materialx-CE2sUv2B.umd.cjs → materialx-B47Bz-xs.umd.cjs} +1 -1
- package/dist/{materialx-u1EqYrhu.min.js → materialx-B85WjP7E.min.js} +1 -1
- package/dist/{materialx-vyB2Zbt4.js → materialx-jkHmVPez.js} +1 -1
- package/dist/{needle-engine.bundle-BNj2FJS7.min.js → needle-engine.bundle-BotdnwVF.min.js} +173 -173
- package/dist/{needle-engine.bundle-tHGdwr9a.umd.cjs → needle-engine.bundle-DagaNrZK.umd.cjs} +147 -147
- package/dist/{needle-engine.bundle-BwS5IsLn.js → needle-engine.bundle-mtqHZ45d.js} +7832 -7624
- package/dist/needle-engine.d.ts +301 -23
- package/dist/needle-engine.js +575 -565
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{vendor-ButPLzor.umd.cjs → vendor-1UvpPPSB.umd.cjs} +2 -2
- package/dist/{vendor-DqZC4Is7.min.js → vendor-BQ2Vuntm.min.js} +4 -4
- package/dist/{vendor-DkWSNjMV.js → vendor-BslSKZPo.js} +113 -106
- 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_audio.d.ts +30 -1
- package/lib/engine/engine_audio.js +57 -13
- package/lib/engine/engine_audio.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_instantiate_resolve.js +40 -10
- package/lib/engine/engine_instantiate_resolve.js.map +1 -1
- package/lib/engine/engine_license.d.ts +7 -7
- package/lib/engine/engine_license.js +72 -72
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_math.d.ts +1 -1
- package/lib/engine/engine_math.js +10 -4
- package/lib/engine/engine_math.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_scenedata.js +7 -0
- package/lib/engine/engine_scenedata.js.map +1 -1
- package/lib/engine/engine_serialization_core.js +7 -2
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_time_utils.d.ts +10 -6
- package/lib/engine/engine_time_utils.js +10 -6
- package/lib/engine/engine_time_utils.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/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.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/TempXRContext.js +2 -2
- package/lib/engine/xr/TempXRContext.js.map +1 -1
- package/lib/engine-components/AudioSource.d.ts +46 -2
- package/lib/engine-components/AudioSource.js +268 -60
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/DragControls.js +2 -2
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/DragControlsConstraints.d.ts +0 -15
- package/lib/engine-components/DragControlsConstraints.js +14 -8
- package/lib/engine-components/DragControlsConstraints.js.map +1 -1
- package/lib/engine-components/EventList.js +1 -1
- package/lib/engine-components/EventList.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.js +17 -2
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +10 -0
- package/lib/engine-components/codegen/components.js +10 -0
- package/lib/engine-components/codegen/components.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/timeline/PlayableDirector.d.ts +6 -0
- package/lib/engine-components/timeline/PlayableDirector.js +25 -12
- package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
- package/lib/engine-components/web/ScrollFollow.d.ts +33 -0
- package/lib/engine-components/web/ScrollFollow.js +164 -22
- package/lib/engine-components/web/ScrollFollow.js.map +1 -1
- package/lib/needle-app.d.ts +18 -0
- package/lib/needle-app.js +19 -0
- package/lib/needle-app.js.map +1 -0
- package/package.json +3 -2
- package/plugins/common/license.js +25 -4
- package/plugins/common/needle-engine.js +5 -2
- package/plugins/types/userconfig.d.ts +22 -0
- package/plugins/vite/dts-generator.d.ts +24 -0
- package/plugins/vite/dts-generator.js +40 -7
- package/plugins/vite/index.d.ts +2 -0
- package/plugins/vite/index.js +17 -0
- package/plugins/vite/license.js +4 -4
- package/plugins/vite/needle-app.js +78 -5
- package/plugins/vite/remote.d.ts +28 -0
- package/plugins/vite/remote.js +124 -0
- package/src/engine/api.ts +1 -1
- package/src/engine/engine_audio.ts +68 -15
- package/src/engine/engine_init.ts +2 -2
- package/src/engine/engine_instantiate_resolve.ts +37 -10
- package/src/engine/engine_license.ts +69 -69
- package/src/engine/engine_math.ts +11 -4
- package/src/engine/engine_networking_blob.ts +3 -3
- package/src/engine/engine_scenedata.ts +7 -2
- package/src/engine/engine_serialization_core.ts +7 -2
- package/src/engine/engine_time_utils.ts +10 -6
- package/src/engine/engine_utils_qrcode.ts +2 -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.loading.ts +6 -6
- package/src/engine/webcomponents/needle-engine.ts +2 -2
- package/src/engine/xr/TempXRContext.ts +2 -2
- package/src/engine-components/AudioSource.ts +256 -55
- package/src/engine-components/DragControls.ts +3 -2
- package/src/engine-components/DragControlsConstraints.ts +16 -8
- package/src/engine-components/EventList.ts +1 -1
- package/src/engine-components/SceneSwitcher.ts +14 -2
- package/src/engine-components/codegen/components.ts +10 -0
- package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
- package/src/engine-components/timeline/PlayableDirector.ts +23 -12
- package/src/engine-components/web/ScrollFollow.ts +168 -22
|
@@ -7,11 +7,41 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
// For firefox ViewTimeline support — dynamic import to avoid SSR crashes (polyfill accesses window at module level)
|
|
8
8
|
if (typeof window !== "undefined")
|
|
9
9
|
import("scroll-timeline-polyfill/dist/scroll-timeline.js");
|
|
10
|
+
// ─────────────────────────────────────────────────────────────────────────────────────────────
|
|
11
|
+
// NOTE / TODO — ScrollMarker tracking vs. the parent window (useTopWindowScroll)
|
|
12
|
+
//
|
|
13
|
+
// The ScrollMarker feature (see handleTimelineTarget) currently relies on `ViewTimeline` to know
|
|
14
|
+
// how far a marker element has travelled through the viewport. This import polyfills `ViewTimeline`
|
|
15
|
+
// on THIS window only — it never patches the parent/top window. So when `useTopWindowScroll` is on
|
|
16
|
+
// and we resolve markers against the host page (top document), tracking only works if the *host*
|
|
17
|
+
// window also has `ViewTimeline`:
|
|
18
|
+
// - Chromium host (native ViewTimeline) ............. works
|
|
19
|
+
// - Firefox/Safari host without the polyfill ........ does NOT work → falls back to linear scroll
|
|
20
|
+
// - cross-origin host ............................... impossible (no access to top.document at all)
|
|
21
|
+
// We cannot reliably install the polyfill onto a (same-origin) parent from inside the iframe — it is
|
|
22
|
+
// designed to patch its own realm at import time, and doing it cross-realm is fragile.
|
|
23
|
+
//
|
|
24
|
+
// POSSIBLE CHANGE: drop `ViewTimeline` entirely and compute the marker's viewport progress manually
|
|
25
|
+
// with getBoundingClientRect, e.g. for the default "cover 0%→100%" range:
|
|
26
|
+
// const rect = el.getBoundingClientRect();
|
|
27
|
+
// const vh = scroller.clientHeight; // top's viewport when useTopWindowScroll
|
|
28
|
+
// const t01 = (vh - rect.top) / (vh + rect.height);
|
|
29
|
+
// This is mathematically equivalent to the current ViewTimeline values (0 = entering from bottom,
|
|
30
|
+
// 0.5 = centered, 1 = exited past top — matches the existing `1 - |t-0.5|*2` weighting).
|
|
31
|
+
// PROS: works with top/parent content in every browser (same-origin); removes the
|
|
32
|
+
// scroll-timeline-polyfill dependency and this SSR-risky top-level import; cheaper
|
|
33
|
+
// (no ViewTimeline objects / WeakMap per marker). `ViewTimeline` is used ONLY in this file.
|
|
34
|
+
// CONS: re-implements view-progress ourselves instead of leaning on the platform/polyfill, so any
|
|
35
|
+
// future spec range features (cover/contain/entry/exit, named ranges) would have to be
|
|
36
|
+
// reproduced by hand; needs careful re-testing against the existing scrollytelling demos.
|
|
37
|
+
// NOTE: cross-origin embeds still cannot work either way — that needs a postMessage scroll bridge.
|
|
38
|
+
// ─────────────────────────────────────────────────────────────────────────────────────────────
|
|
10
39
|
import { Object3D } from "three";
|
|
11
40
|
import { isDevEnvironment } from "../../engine/debug/debug.js";
|
|
12
41
|
import { Mathf } from "../../engine/engine_math.js";
|
|
13
42
|
import { serializable } from "../../engine/engine_serialization.js";
|
|
14
43
|
import { getBoundingBox } from "../../engine/engine_three_utils.js";
|
|
44
|
+
import { validate } from "../../engine/engine_util_decorator.js";
|
|
15
45
|
import { getParam } from "../../engine/engine_utils.js";
|
|
16
46
|
import { Animation } from "../Animation.js";
|
|
17
47
|
import { Animator } from "../Animator.js";
|
|
@@ -93,6 +123,22 @@ export class ScrollFollow extends Behaviour {
|
|
|
93
123
|
*/
|
|
94
124
|
htmlSelector = null;
|
|
95
125
|
mode = "window";
|
|
126
|
+
/**
|
|
127
|
+
* Read the scroll position from the **top-level window** instead of the window Needle Engine
|
|
128
|
+
* runs in. This matters when the canvas is embedded in an iframe:
|
|
129
|
+
* - When the page is **not** embedded this has no effect — the top window *is* the current window.
|
|
130
|
+
* - When embedded in a **same-origin** iframe, the component follows the *host page's* scroll,
|
|
131
|
+
* which is almost always the intent (an embedded iframe usually isn't scrollable itself).
|
|
132
|
+
*
|
|
133
|
+
* Set this to `false` to always follow the engine's own window scroll, e.g. when the iframe
|
|
134
|
+
* itself is scrollable and you want to follow its own scroll rather than the host's.
|
|
135
|
+
*
|
|
136
|
+
* If the top window is **cross-origin** (and therefore inaccessible), the component
|
|
137
|
+
* transparently falls back to the local window and logs a warning in development —
|
|
138
|
+
* cross-origin embeds would require a `postMessage` scroll bridge from the host page.
|
|
139
|
+
* @default true
|
|
140
|
+
*/
|
|
141
|
+
useTopWindowScroll = true;
|
|
96
142
|
/**
|
|
97
143
|
* Event fired when the scroll position changes
|
|
98
144
|
*/
|
|
@@ -108,18 +154,80 @@ export class ScrollFollow extends Behaviour {
|
|
|
108
154
|
_appliedValue = -1;
|
|
109
155
|
_needsUpdate = false;
|
|
110
156
|
_firstUpdate = false;
|
|
157
|
+
/** The window whose scroll position currently drives this component (resolved from {@link useTopWindowScroll}). */
|
|
158
|
+
_scrollWindow = null;
|
|
159
|
+
/** The window the `wheel` listener is attached to — kept so we remove it from the same window. */
|
|
160
|
+
_wheelTarget = null;
|
|
161
|
+
_crossOriginWarned = false;
|
|
162
|
+
_viewTimelineWarned = false;
|
|
111
163
|
awake() {
|
|
112
164
|
this._firstUpdate = true;
|
|
113
165
|
}
|
|
114
166
|
/** @internal */
|
|
115
167
|
onEnable() {
|
|
116
|
-
|
|
168
|
+
this.rebindScrollListener();
|
|
117
169
|
this._appliedValue = -1;
|
|
118
170
|
this._needsUpdate = true;
|
|
119
171
|
}
|
|
120
172
|
/** @internal */
|
|
121
173
|
onDisable() {
|
|
122
|
-
|
|
174
|
+
this._wheelTarget?.removeEventListener("wheel", this.updateCurrentScrollValue);
|
|
175
|
+
this._wheelTarget = null;
|
|
176
|
+
}
|
|
177
|
+
/** @internal */
|
|
178
|
+
onValidate(property) {
|
|
179
|
+
// React to a runtime change of `useTopWindowScroll` while the component is active.
|
|
180
|
+
if (property === "useTopWindowScroll" && this._wheelTarget) {
|
|
181
|
+
this.rebindScrollListener();
|
|
182
|
+
this._needsUpdate = true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Resolves which browsing context's scroll position should drive this component.
|
|
187
|
+
* Honors {@link useTopWindowScroll}. When the top window is requested but is cross-origin
|
|
188
|
+
* (and therefore inaccessible) it falls back to the local window and warns once —
|
|
189
|
+
* cross-origin embeds would need a `postMessage` scroll bridge from the host page.
|
|
190
|
+
*/
|
|
191
|
+
resolveScrollWindow() {
|
|
192
|
+
if (!this.useTopWindowScroll)
|
|
193
|
+
return window;
|
|
194
|
+
const top = window.top;
|
|
195
|
+
// Not embedded, or we already *are* the top window.
|
|
196
|
+
if (!top || top === window.self)
|
|
197
|
+
return window;
|
|
198
|
+
try {
|
|
199
|
+
// Any property access on a cross-origin top window throws a SecurityError.
|
|
200
|
+
void top.document;
|
|
201
|
+
return top;
|
|
202
|
+
}
|
|
203
|
+
catch (_e) {
|
|
204
|
+
if (!this._crossOriginWarned) {
|
|
205
|
+
this._crossOriginWarned = true;
|
|
206
|
+
if (debug || isDevEnvironment()) {
|
|
207
|
+
console.warn("[ScrollFollow] useTopWindowScroll is enabled but the top-level window is cross-origin and cannot be read. Falling back to the local window. Supporting cross-origin embeds requires a postMessage scroll bridge from the host page.");
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return window;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/** (Re)resolves the scroll window and moves the `wheel` listener onto it. */
|
|
214
|
+
rebindScrollListener() {
|
|
215
|
+
const next = this.resolveScrollWindow();
|
|
216
|
+
this._scrollWindow = next;
|
|
217
|
+
if (next === this._wheelTarget)
|
|
218
|
+
return;
|
|
219
|
+
this._wheelTarget?.removeEventListener("wheel", this.updateCurrentScrollValue);
|
|
220
|
+
this._wheelTarget = next;
|
|
221
|
+
next.addEventListener("wheel", this.updateCurrentScrollValue, { passive: true });
|
|
222
|
+
// The selector cache may point into the previous document — invalidate it.
|
|
223
|
+
this._lastSelectorValue = null;
|
|
224
|
+
this._lastSelectorElement = null;
|
|
225
|
+
if (debug) {
|
|
226
|
+
console.debug(`[ScrollFollow] Scroll listener bound to ${next === window ? "local window" : "top-level window"}`, {
|
|
227
|
+
scrollWindow: this._scrollWindow,
|
|
228
|
+
isTopWindow: next === window,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
123
231
|
}
|
|
124
232
|
/** @internal */
|
|
125
233
|
lateUpdate() {
|
|
@@ -171,32 +279,42 @@ export class ScrollFollow extends Behaviour {
|
|
|
171
279
|
_lastSelectorValue = null;
|
|
172
280
|
_lastSelectorElement = null;
|
|
173
281
|
updateCurrentScrollValue = () => {
|
|
282
|
+
const win = this._scrollWindow ?? window;
|
|
283
|
+
const doc = win.document;
|
|
284
|
+
// The page's scrollable extent lives on the root scrolling element (documentElement in
|
|
285
|
+
// standards mode, body in quirks mode) — document.body.scrollHeight is unreliable and is
|
|
286
|
+
// often just the viewport height even when the page is scrolled. scrollingElement resolves
|
|
287
|
+
// to the correct one for the current document mode.
|
|
288
|
+
const scroller = doc.scrollingElement ?? doc.documentElement;
|
|
174
289
|
switch (this.mode) {
|
|
175
290
|
case "window":
|
|
176
291
|
if (this.htmlSelector?.length) {
|
|
177
292
|
if (this.htmlSelector !== this._lastSelectorValue) {
|
|
178
|
-
this._lastSelectorElement =
|
|
293
|
+
this._lastSelectorElement = doc.querySelector(this.htmlSelector);
|
|
179
294
|
this._lastSelectorValue = this.htmlSelector;
|
|
180
295
|
}
|
|
181
296
|
if (this._lastSelectorElement) {
|
|
182
297
|
const rect = this._lastSelectorElement.getBoundingClientRect();
|
|
183
|
-
this._target_value = -rect.top / (rect.height -
|
|
298
|
+
this._target_value = -rect.top / (rect.height - win.innerHeight);
|
|
184
299
|
break;
|
|
185
300
|
}
|
|
186
301
|
}
|
|
187
302
|
else {
|
|
188
|
-
|
|
189
|
-
|
|
303
|
+
const maxScroll = scroller.scrollHeight - scroller.clientHeight;
|
|
304
|
+
if (maxScroll <= 0) {
|
|
305
|
+
// Page is not scrollable — keep the current value (still allows triggering timelines etc.).
|
|
190
306
|
}
|
|
191
307
|
else {
|
|
192
|
-
|
|
193
|
-
this._target_value = window.scrollY / (diff || 1);
|
|
308
|
+
this._target_value = scroller.scrollTop / maxScroll;
|
|
194
309
|
}
|
|
195
310
|
}
|
|
196
311
|
break;
|
|
197
312
|
}
|
|
198
313
|
if (isNaN(this._target_value) || !isFinite(this._target_value))
|
|
199
314
|
this._target_value = -1;
|
|
315
|
+
if (debug) {
|
|
316
|
+
console.debug(`[ScrollFollow] Scroll value updated: ${this._target_value.toFixed(5)} (ScrollTop: ${scroller.scrollTop}, ScrollHeight: ${scroller.scrollHeight}, ClientHeight: ${scroller.clientHeight})`);
|
|
317
|
+
}
|
|
200
318
|
};
|
|
201
319
|
applyScroll(target, value) {
|
|
202
320
|
if (!target)
|
|
@@ -246,6 +364,9 @@ export class ScrollFollow extends Behaviour {
|
|
|
246
364
|
}
|
|
247
365
|
}
|
|
248
366
|
handleTimelineTarget(director, value) {
|
|
367
|
+
// Resolve markers against the same browsing context we read scroll from (see useTopWindowScroll).
|
|
368
|
+
const scrollWin = this._scrollWindow ?? window;
|
|
369
|
+
const doc = scrollWin.document;
|
|
249
370
|
const duration = director.duration;
|
|
250
371
|
let markersArray = timelineMarkerArrays.get(director);
|
|
251
372
|
// Create markers array
|
|
@@ -260,7 +381,7 @@ export class ScrollFollow extends Behaviour {
|
|
|
260
381
|
marker.needsUpdate = false;
|
|
261
382
|
try {
|
|
262
383
|
// TODO: with this it's currently not possible to remap markers from HTML. For example if I have two sections and I want to now use the marker["center"] multiple times to stay at that marker for a longer time
|
|
263
|
-
marker.element = tryGetElementsForSelector(index);
|
|
384
|
+
marker.element = tryGetElementsForSelector(index, doc);
|
|
264
385
|
if (debug)
|
|
265
386
|
console.debug(`ScrollMarker #${index} (${marker.time.toFixed(2)}) found`, marker.element);
|
|
266
387
|
if (!marker.element) {
|
|
@@ -281,7 +402,7 @@ export class ScrollFollow extends Behaviour {
|
|
|
281
402
|
}
|
|
282
403
|
// If the timeline has no markers defined we can use timeline-marker elements in the DOM. These must define times then
|
|
283
404
|
if (markersArray.length <= 0) {
|
|
284
|
-
const markers =
|
|
405
|
+
const markers = doc.querySelectorAll(`[data-timeline-marker]`);
|
|
285
406
|
markers.forEach((element) => {
|
|
286
407
|
const value = element.getAttribute("data-timeline-marker");
|
|
287
408
|
const time = parseFloat(value || ("NaN"));
|
|
@@ -296,15 +417,32 @@ export class ScrollFollow extends Behaviour {
|
|
|
296
417
|
}
|
|
297
418
|
});
|
|
298
419
|
}
|
|
299
|
-
// Init ViewTimeline for markers
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
420
|
+
// Init ViewTimeline for markers. Use the constructor from the *owning* window so that
|
|
421
|
+
// markers living in a same-origin host page (useTopWindowScroll) are tracked in the
|
|
422
|
+
// correct realm rather than against the iframe's own (non-scrolling) document.
|
|
423
|
+
const ViewTimelineCtor = scrollWin.ViewTimeline;
|
|
424
|
+
if (!ViewTimelineCtor) {
|
|
425
|
+
// ViewTimeline isn't available on the target window yet. This is expected transiently
|
|
426
|
+
// on the "self" path while the async scroll-timeline polyfill is still loading, and
|
|
427
|
+
// permanently when useTopWindowScroll targets a host page without ViewTimeline support.
|
|
428
|
+
// Don't persist the half-built marker set — drop the cache so it's rebuilt next frame
|
|
429
|
+
// (self-heals once the polyfill loads), and fall back to linear scrubbing for now.
|
|
430
|
+
if (!this._viewTimelineWarned && (debug || isDevEnvironment())) {
|
|
431
|
+
this._viewTimelineWarned = true;
|
|
432
|
+
console.warn("[ScrollFollow] ViewTimeline is not available on the target window — falling back to linear scroll. If this persists with useTopWindowScroll, the scroll-timeline polyfill must be present on the host page.");
|
|
433
|
+
}
|
|
434
|
+
timelineMarkerArrays.delete(director);
|
|
435
|
+
markersArray.length = 0;
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
for (const marker of markersArray) {
|
|
439
|
+
if (marker.element) {
|
|
440
|
+
// https://scroll-driven-animations.style/tools/view-timeline/ranges
|
|
441
|
+
marker.timeline = new ViewTimelineCtor({
|
|
442
|
+
subject: marker.element,
|
|
443
|
+
axis: 'block', // https://drafts.csswg.org/scroll-animations/#scroll-notation
|
|
444
|
+
});
|
|
445
|
+
}
|
|
308
446
|
}
|
|
309
447
|
}
|
|
310
448
|
}
|
|
@@ -391,6 +529,10 @@ __decorate([
|
|
|
391
529
|
__decorate([
|
|
392
530
|
serializable()
|
|
393
531
|
], ScrollFollow.prototype, "mode", void 0);
|
|
532
|
+
__decorate([
|
|
533
|
+
validate(),
|
|
534
|
+
serializable()
|
|
535
|
+
], ScrollFollow.prototype, "useTopWindowScroll", void 0);
|
|
394
536
|
__decorate([
|
|
395
537
|
serializable(EventList)
|
|
396
538
|
], ScrollFollow.prototype, "changed", void 0);
|
|
@@ -405,19 +547,19 @@ const weightsArray = [];
|
|
|
405
547
|
// const querySelectorResults: Array<SelectorCache> = [];
|
|
406
548
|
const needleScrollMarkerCache = new Array();
|
|
407
549
|
let needsScrollMarkerRefresh = true;
|
|
408
|
-
function tryGetElementsForSelector(index) {
|
|
550
|
+
function tryGetElementsForSelector(index, doc) {
|
|
409
551
|
if (!needsScrollMarkerRefresh) {
|
|
410
552
|
const element = needleScrollMarkerCache[index] || null;
|
|
411
553
|
return element;
|
|
412
554
|
}
|
|
413
555
|
needsScrollMarkerRefresh = false;
|
|
414
556
|
needleScrollMarkerCache.length = 0;
|
|
415
|
-
const markers =
|
|
557
|
+
const markers = doc.querySelectorAll(`[data-timeline-marker]`);
|
|
416
558
|
markers.forEach((m, i) => {
|
|
417
559
|
needleScrollMarkerCache[i] = m;
|
|
418
560
|
});
|
|
419
561
|
needsScrollMarkerRefresh = false;
|
|
420
|
-
return tryGetElementsForSelector(index);
|
|
562
|
+
return tryGetElementsForSelector(index, doc);
|
|
421
563
|
}
|
|
422
564
|
// #region ScrollTimeline
|
|
423
565
|
function calculateTimelinePositionNormalized(timeline) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollFollow.js","sourceRoot":"","sources":["../../../src/engine-components/web/ScrollFollow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScrollFollow.js","sourceRoot":"","sources":["../../../src/engine-components/web/ScrollFollow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API surface for same-document `<needle-app>` embeds.
|
|
3
|
+
*
|
|
4
|
+
* The `needleApp` Vite plugin emits this module as a dedicated, deterministically-named facade
|
|
5
|
+
* chunk (`needle-app.engine.js`) and re-exports it from the generated `needle-app.js`. Because it
|
|
6
|
+
* is built in the same pass as the app, it shares the engine module instance with the running
|
|
7
|
+
* scene — so importing lifecycle hooks from it drives the live, embedded scene:
|
|
8
|
+
*
|
|
9
|
+
* ```js
|
|
10
|
+
* import { onStart } from "https://your-deploy/needle-app.js";
|
|
11
|
+
* onStart(ctx => { ... });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* This is a thin re-export of the main entry point; keep it that way so the embed API stays in
|
|
15
|
+
* sync with the package's public surface. The eslint `no-restricted-imports` rule has an explicit
|
|
16
|
+
* override for this file (see `eslint.config.mjs`) — it's a public-facing facade, not internal code.
|
|
17
|
+
*/
|
|
18
|
+
export * from "./needle-engine.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API surface for same-document `<needle-app>` embeds.
|
|
3
|
+
*
|
|
4
|
+
* The `needleApp` Vite plugin emits this module as a dedicated, deterministically-named facade
|
|
5
|
+
* chunk (`needle-app.engine.js`) and re-exports it from the generated `needle-app.js`. Because it
|
|
6
|
+
* is built in the same pass as the app, it shares the engine module instance with the running
|
|
7
|
+
* scene — so importing lifecycle hooks from it drives the live, embedded scene:
|
|
8
|
+
*
|
|
9
|
+
* ```js
|
|
10
|
+
* import { onStart } from "https://your-deploy/needle-app.js";
|
|
11
|
+
* onStart(ctx => { ... });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* This is a thin re-export of the main entry point; keep it that way so the embed API stays in
|
|
15
|
+
* sync with the package's public surface. The eslint `no-restricted-imports` rule has an explicit
|
|
16
|
+
* override for this file (see `eslint.config.mjs`) — it's a public-facing facade, not internal code.
|
|
17
|
+
*/
|
|
18
|
+
export * from "./needle-engine.js";
|
|
19
|
+
//# sourceMappingURL=needle-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"needle-app.js","sourceRoot":"","sources":["../src/needle-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,cAAc,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "5.1.0-alpha.
|
|
3
|
+
"version": "5.1.0-alpha.9",
|
|
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": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"./package.json": "./package.json",
|
|
13
13
|
"./components.json": "./components.needle.json",
|
|
14
14
|
"./asap": "./lib/asap/needle-asap.js",
|
|
15
|
+
"./needle-app": "./lib/needle-app.js",
|
|
15
16
|
"./vite": {
|
|
16
17
|
"types": "./plugins/vite/index.d.ts",
|
|
17
18
|
"import": "./plugins/vite/index.js",
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
"@dimforge/rapier3d-compat": "0.19.3",
|
|
101
102
|
"@needle-tools/gltf-progressive": "3.6.0-alpha.3",
|
|
102
103
|
"@needle-tools/materialx": "1.7.0-next.0d06218",
|
|
103
|
-
"@needle-tools/three-animation-pointer": "1.0
|
|
104
|
+
"@needle-tools/three-animation-pointer": "1.1.0",
|
|
104
105
|
"@webxr-input-profiles/motion-controllers": "1.0.0",
|
|
105
106
|
"flatbuffers": "2.0.4",
|
|
106
107
|
"n8ao": "1.10.1",
|
|
@@ -111,7 +111,7 @@ async function requestNeedleCloud(path, options) {
|
|
|
111
111
|
* @param {DefaultOptions & {accessToken?:string, team:string|undefined}} opts
|
|
112
112
|
*/
|
|
113
113
|
export async function replaceLicense(code, opts) {
|
|
114
|
-
const index = code?.indexOf("
|
|
114
|
+
const index = code?.indexOf("DUZpOVcM");
|
|
115
115
|
if (index >= 0) {
|
|
116
116
|
const licenseResult = await resolveLicense(opts);
|
|
117
117
|
if (!licenseResult) {
|
|
@@ -120,18 +120,18 @@ export async function replaceLicense(code, opts) {
|
|
|
120
120
|
const end = code.indexOf(";", index);
|
|
121
121
|
if (end >= 0) {
|
|
122
122
|
const line = code.substring(index, end);
|
|
123
|
-
const replaced = "
|
|
123
|
+
const replaced = "DUZpOVcM = \"" + licenseResult.type + "\"";
|
|
124
124
|
code = code.replace(line, replaced);
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
// Also inject JWT if available
|
|
128
128
|
if (licenseResult.jwt) {
|
|
129
|
-
const jwtIndex = code.indexOf("
|
|
129
|
+
const jwtIndex = code.indexOf("__Bjqq");
|
|
130
130
|
if (jwtIndex >= 0) {
|
|
131
131
|
const jwtEnd = code.indexOf(";", jwtIndex);
|
|
132
132
|
if (jwtEnd >= 0) {
|
|
133
133
|
const jwtLine = code.substring(jwtIndex, jwtEnd);
|
|
134
|
-
const jwtReplaced = "
|
|
134
|
+
const jwtReplaced = "__Bjqq = \"" + licenseResult.jwt + "\"";
|
|
135
135
|
code = code.replace(jwtLine, jwtReplaced);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -318,11 +318,32 @@ function tryParseLicense(str, options = undefined) {
|
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
|
|
321
|
+
/** @type {Map<string, Promise<string | null>>} */
|
|
322
|
+
const _publicIdentifierCache = new Map();
|
|
323
|
+
|
|
321
324
|
/**
|
|
325
|
+
* Memoized public project identifier. Several plugins (defines, needle-app, next) request this per build,
|
|
326
|
+
* but it only needs to be resolved once - cache the promise by project_id to avoid redundant Needle Cloud
|
|
327
|
+
* requests. Keyed by project_id only; `opts` only controls logging and does not affect the result.
|
|
322
328
|
* @param {string | undefined} project_id
|
|
323
329
|
* @param {DefaultOptions | undefined} opts
|
|
330
|
+
* @returns {Promise<string | null>}
|
|
324
331
|
*/
|
|
325
332
|
export async function getPublicIdentifier(project_id, opts = undefined) {
|
|
333
|
+
const key = project_id ?? "";
|
|
334
|
+
let cached = _publicIdentifierCache.get(key);
|
|
335
|
+
if (!cached) {
|
|
336
|
+
cached = getPublicIdentifierUncached(project_id, opts);
|
|
337
|
+
_publicIdentifierCache.set(key, cached);
|
|
338
|
+
}
|
|
339
|
+
return cached;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* @param {string | undefined} project_id
|
|
344
|
+
* @param {DefaultOptions | undefined} opts
|
|
345
|
+
*/
|
|
346
|
+
async function getPublicIdentifierUncached(project_id, opts = undefined) {
|
|
326
347
|
|
|
327
348
|
let accessToken = /** @type {string | undefined} */ (undefined);
|
|
328
349
|
if (!accessToken) {
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// Matches the `src` attribute of a <needle-engine> tag.
|
|
4
|
+
// The value capture must accept any real src: relative paths (with dots, slashes, spaces),
|
|
5
|
+
// full URLs, query strings, and the JSON-array form `["a.glb","b.glb"]`. It must also
|
|
6
|
+
// tolerate other attributes appearing before or after `src`.
|
|
4
7
|
// @ts-ignore
|
|
5
|
-
const needleEngineRegex = /<needle-engine
|
|
8
|
+
const needleEngineRegex = /<needle-engine\b[^>]*?\ssrc=(?<q>["'])(?<src>.*?)\k<q>/gms;
|
|
6
9
|
|
|
7
10
|
|
|
8
11
|
/**
|
|
@@ -175,6 +175,28 @@ export type userSettings = {
|
|
|
175
175
|
*/
|
|
176
176
|
openBrowser?: boolean;
|
|
177
177
|
|
|
178
|
+
/**
|
|
179
|
+
* Enable remote debugging: bind the dev server to your local network (`host`)
|
|
180
|
+
* and serve over HTTPS (via `@vitejs/plugin-basic-ssl`) so you can open the page
|
|
181
|
+
* on a phone, Quest or Apple Vision Pro on the same Wi‑Fi. The Needle logger
|
|
182
|
+
* already streams the device's console, errors and device info back over Vite's
|
|
183
|
+
* websocket (see `node_modules/.needle/logs/latest.client.needle.log`), so this
|
|
184
|
+
* makes "debug a scene on a real device from your laptop" work out of the box.
|
|
185
|
+
* HTTPS is required for WebXR / secure‑context features on the device; the
|
|
186
|
+
* self‑signed certificate shows a one‑time warning you accept on the device.
|
|
187
|
+
*
|
|
188
|
+
* Requires `@vitejs/plugin-basic-ssl` (for HTTPS) and, optionally,
|
|
189
|
+
* `qrcode-terminal` (to print a scannable QR code). Can also be toggled with the
|
|
190
|
+
* `NEEDLE_REMOTE` env var (`NEEDLE_REMOTE=1` / `=false`).
|
|
191
|
+
* - `true` — enable with a terminal QR code
|
|
192
|
+
* - `{ qr: false }` — enable but don't print the QR code
|
|
193
|
+
* @default false
|
|
194
|
+
*/
|
|
195
|
+
remote?: boolean | {
|
|
196
|
+
/** Set to false to skip printing the scannable QR code. @default true */
|
|
197
|
+
qr?: boolean;
|
|
198
|
+
};
|
|
199
|
+
|
|
178
200
|
disableLogging?: boolean;
|
|
179
201
|
|
|
180
202
|
/** Set to true to disable the plugin that ensures VSCode workspace settings for custom-elements.json data */
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helper: compute the desired `html.customData` array for a project.
|
|
3
|
+
*
|
|
4
|
+
* Returns `null` when no change is required (the existing array already matches),
|
|
5
|
+
* otherwise the new array that should be written.
|
|
6
|
+
*
|
|
7
|
+
* The produced entry is a project-relative path with forward slashes. We use
|
|
8
|
+
* `path.relative` rather than a string replace because Vite normalises projectRoot
|
|
9
|
+
* to forward slashes while `htmlDataPath` carries the platform separator from
|
|
10
|
+
* `path.join` — a naive replace fails to match on Windows and leaves an absolute path.
|
|
11
|
+
* Any pre-existing entry pointing at a `needle-html-data.json` (e.g. an absolute path
|
|
12
|
+
* written by an older version of this plugin) is dropped so we don't accumulate
|
|
13
|
+
* duplicates or leave stale absolute paths behind.
|
|
14
|
+
*
|
|
15
|
+
* Exported for testing. The `relativeFn` seam lets tests reproduce platform-specific
|
|
16
|
+
* separator behaviour (`path.win32.relative` / `path.posix.relative`) deterministically.
|
|
17
|
+
*
|
|
18
|
+
* @param {unknown[]} existing Current html.customData entries
|
|
19
|
+
* @param {string} projectRoot
|
|
20
|
+
* @param {string} htmlDataPath Absolute path to the generated needle-html-data.json
|
|
21
|
+
* @param {(from: string, to: string) => string} [relativeFn]
|
|
22
|
+
* @returns {string[] | null}
|
|
23
|
+
*/
|
|
24
|
+
export function computeHtmlCustomData(existing: unknown[], projectRoot: string, htmlDataPath: string, relativeFn?: (from: string, to: string) => string): string[] | null;
|
|
1
25
|
/**
|
|
2
26
|
* @param {"build" | "serve"} _command Vite command (unused — runs in both modes)
|
|
3
27
|
* @param {import('../types/needleConfig').needleMeta | null | undefined} _config
|