@drawcall/glts 0.3.1 → 0.4.1

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 (46) hide show
  1. package/README.md +96 -4
  2. package/dist/GLTSLoader.d.ts +2 -1
  3. package/dist/GLTSLoader.d.ts.map +1 -1
  4. package/dist/GLTSLoader.js +114 -36
  5. package/dist/GLTSLoader.js.map +1 -1
  6. package/dist/asset-exports.d.ts +12 -0
  7. package/dist/asset-exports.d.ts.map +1 -0
  8. package/dist/asset-exports.js +82 -0
  9. package/dist/asset-exports.js.map +1 -0
  10. package/dist/errors.d.ts +1 -1
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js.map +1 -1
  13. package/dist/index.d.ts +2 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/inline-analysis.d.ts +63 -0
  18. package/dist/inline-analysis.d.ts.map +1 -0
  19. package/dist/inline-analysis.js +288 -0
  20. package/dist/inline-analysis.js.map +1 -0
  21. package/dist/inline.d.ts.map +1 -1
  22. package/dist/inline.js +16 -225
  23. package/dist/inline.js.map +1 -1
  24. package/dist/loading-manager.d.ts +3 -0
  25. package/dist/loading-manager.d.ts.map +1 -0
  26. package/dist/loading-manager.js +9 -0
  27. package/dist/loading-manager.js.map +1 -0
  28. package/dist/loading.d.ts +12 -0
  29. package/dist/loading.d.ts.map +1 -0
  30. package/dist/loading.js +111 -0
  31. package/dist/loading.js.map +1 -0
  32. package/dist/module-graph.d.ts +4 -7
  33. package/dist/module-graph.d.ts.map +1 -1
  34. package/dist/module-graph.js +7 -23
  35. package/dist/module-graph.js.map +1 -1
  36. package/dist/root.d.ts +20 -0
  37. package/dist/root.d.ts.map +1 -0
  38. package/dist/root.js +111 -0
  39. package/dist/root.js.map +1 -0
  40. package/dist/runtime.d.ts +7 -5
  41. package/dist/runtime.d.ts.map +1 -1
  42. package/dist/runtime.js +49 -9
  43. package/dist/runtime.js.map +1 -1
  44. package/dist/types.d.ts +11 -2
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +1 -1
package/README.md CHANGED
@@ -64,7 +64,8 @@ pnpm add @drawcall/glts three
64
64
  ```ts
65
65
  import { GLTSLoader } from "@drawcall/glts"
66
66
 
67
- const tree = await new GLTSLoader().loadAsync("/assets/tree.glts")
67
+ const loader = new GLTSLoader()
68
+ const tree = await loader.loadAsync("/assets/tree.glts")
68
69
 
69
70
  scene.add(tree.scene)
70
71
 
@@ -88,6 +89,34 @@ loader.load(
88
89
  )
89
90
  ```
90
91
 
92
+ ### Create several managed instances
93
+
94
+ Load the reusable managed constructor when one prepared asset needs several
95
+ instances:
96
+
97
+ ```ts
98
+ const Tree = await loader.loadAsyncConstructor("/assets/tree.glts")
99
+
100
+ const first = new Tree()
101
+ const second = new Tree()
102
+ await Promise.all([first.ready, second.ready])
103
+
104
+ scene.add(first, second)
105
+ first.dispose()
106
+ ```
107
+
108
+ `new Tree()` is synchronous and returns a stable `THREE.Group` wrapper. Its
109
+ `ready` promise settles when constructor-started Three.js resources have
110
+ finished. Each live instance participates in `reload()`, `has()`, and loader
111
+ ownership; `loader.dispose()` disposes any instances that remain. Repeated
112
+ constructor retrieval for the same URL returns the same constructor, while
113
+ each construction creates a distinct raw asset.
114
+
115
+ This constructor is GLTS's managed wrapper, not the class default-exported by
116
+ the asset. Authored methods and properties stay on the raw child and are not
117
+ part of the managed API. Use `loadAsync()` when one already-ready `GLTSAsset`
118
+ is more convenient.
119
+
91
120
  ## Asset contract
92
121
 
93
122
  Each `.glts` file must:
@@ -115,11 +144,32 @@ export default class Rock extends THREE.Mesh {
115
144
  }
116
145
  ```
117
146
 
147
+ A root module may also export preview-only camera and lighting metadata:
148
+
149
+ ```ts
150
+ export const previewCamera = new THREE.PerspectiveCamera(45, 1, 0.1, 100)
151
+
152
+ export const previewLighting = new THREE.Group()
153
+ previewLighting.add(new THREE.AmbientLight(0xffffff, 0.5))
154
+
155
+ export default class Tree extends THREE.Group {
156
+ // Reusable scene content only.
157
+ }
158
+ ```
159
+
160
+ `previewCamera` must be a `THREE.Camera`. `previewLighting` must be a
161
+ `THREE.Object3D` containing at least one `THREE.Light`. The loader exposes them
162
+ as `asset.previewCamera` and `asset.previewLighting`; neither is added to
163
+ `asset.scene`. Both properties are `undefined` when omitted and update after a
164
+ successful reload. When a `.glts` module is imported by another asset, only its
165
+ default scene export is composed into the parent.
166
+
118
167
  Supported static imports:
119
168
 
120
169
  | Import | Resolution |
121
170
  | --- | --- |
122
171
  | `three` | The host application's exact Three.js namespace |
172
+ | `@drawcall/glts` | `loadingManager` for the current loader runtime |
123
173
  | `three/addons/...` or `three/examples/...` | Matching Three.js revision through ESM.sh |
124
174
  | `./child.glts` | A stable loader-managed wrapper constructor |
125
175
  | Bare npm package | An ESM.sh bundle with `three` redirected to the host |
@@ -127,6 +177,45 @@ Supported static imports:
127
177
  `import.meta.url` is rewritten to the original `.glts` URL, so relative
128
178
  textures and other browser-loaded resources continue to work.
129
179
 
180
+ ### Constructor-started resources
181
+
182
+ Pass the runtime's `loadingManager` to any Three.js loader that starts resource
183
+ work in a constructor:
184
+
185
+ ```ts
186
+ import * as THREE from "three"
187
+ import { loadingManager } from "@drawcall/glts"
188
+
189
+ export default class Branch extends THREE.Group {
190
+ readonly leafTexture: THREE.Texture
191
+
192
+ constructor() {
193
+ super()
194
+ this.leafTexture = new THREE.TextureLoader(loadingManager).load(
195
+ new URL("./leaf.svg", import.meta.url).href,
196
+ )
197
+ }
198
+ }
199
+ ```
200
+
201
+ This applies to `TextureLoader`, `GLTFLoader`, `FileLoader`, and comparable
202
+ loaders. A root `loadAsync()` promise and `load()` callback complete only after
203
+ synchronous GLTS construction and the runtime manager becoming idle. Resource
204
+ failures reject the promise or reach the error callback at that boundary.
205
+
206
+ The package root remains safe to import in application code. Using its
207
+ `loadingManager` export outside a `.glts` module evaluated by `GLTSLoader`
208
+ throws, because no loader runtime exists there.
209
+
210
+ Nested `.glts` constructors need no special handling: they automatically use
211
+ the enclosing runtime. Each `GLTSLoader` owns one manager, shared by all of its
212
+ roots. Use one loader for concurrent roots that request the same resolved
213
+ resource URL; Three.js may globally coalesce that URL without notifying every
214
+ manager, so doing this across loaders is unsupported. Nested construction and
215
+ reload replacement stay synchronous and do not wait for resources they start.
216
+ Arbitrary asynchronous work outside a Three.js loader using `loadingManager`
217
+ is not tracked.
218
+
130
219
  Dynamic imports, import attributes, local helper `.ts` modules, cyclic module
131
220
  graphs, cross-asset inheritance, and custom-method contracts across a `.glts`
132
221
  boundary are intentionally outside V1.
@@ -160,10 +249,13 @@ import { Group } from "three"
160
249
  Paths in the source record are relative to the entry module unless they start
161
250
  at `/` or are absolute URLs. Each dependency must default-export a class and
162
251
  may only use default imports for other local `.glts` files. Dependency named
163
- exports, dynamic imports, import attributes, local helper modules, conflicting
164
- external bindings, and cycles fail with a `GLTSError`. Dependency
252
+ exports other than `previewCamera` and `previewLighting`, dynamic imports,
253
+ import attributes, local helper modules, conflicting external bindings, and
254
+ cycles fail with a `GLTSError`. Dependency
165
255
  `import.meta.url` expressions still resolve to the original source path. Local
166
- GLTS imports are constructor values rather than TypeScript type imports.
256
+ GLTS imports are constructor values rather than TypeScript type imports. The
257
+ two preview exports are permitted in inlined dependencies but remain local to
258
+ their source.
167
259
 
168
260
  ## Reload behavior
169
261
 
@@ -1,10 +1,11 @@
1
1
  import { Loader, type LoadingManager } from "three";
2
- import type { GLTSAsset, GLTSErrorCallback, GLTSLoadCallback, GLTSLoaderOptions, GLTSProgressCallback } from "./types.js";
2
+ import type { GLTSAsset, GLTSConstructor, GLTSErrorCallback, GLTSLoadCallback, GLTSLoaderOptions, GLTSProgressCallback } from "./types.js";
3
3
  export declare class GLTSLoader extends Loader {
4
4
  #private;
5
5
  constructor(manager?: LoadingManager, options?: GLTSLoaderOptions);
6
6
  load(url: string, onLoad: GLTSLoadCallback, onProgress?: GLTSProgressCallback, onError?: GLTSErrorCallback): void;
7
7
  loadAsync(url: string, onProgress?: GLTSProgressCallback): Promise<GLTSAsset>;
8
+ loadAsyncConstructor(url: string): Promise<GLTSConstructor>;
8
9
  has(url: string): boolean;
9
10
  reload(url: string): Promise<void>;
10
11
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"GLTSLoader.d.ts","sourceRoot":"","sources":["../src/GLTSLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AA0DpB,qBAAa,UAAW,SAAQ,MAAM;;gBAUlC,OAAO,GAAE,cAAsC,EAC/C,OAAO,GAAE,iBAAsB;IAmBxB,IAAI,CACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,oBAAoB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI;IAWQ,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAmC5F,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCxC,OAAO,IAAI,IAAI;CAwEhB"}
1
+ {"version":3,"file":"GLTSLoader.d.ts","sourceRoot":"","sources":["../src/GLTSLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EAGjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAqFpB,qBAAa,UAAW,SAAQ,MAAM;;gBAYlC,OAAO,GAAE,cAAsC,EAC/C,OAAO,GAAE,iBAAsB;IAmBxB,IAAI,CACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,oBAAoB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI;IAWQ,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAiB5F,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI3D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCxC,OAAO,IAAI,IAAI;CA2JhB"}
@@ -1,8 +1,9 @@
1
1
  import { DefaultLoadingManager, Loader } from "three";
2
2
  import * as THREE from "three";
3
3
  import { GLTSError } from "./errors.js";
4
- import { canonicalGLTSURL, ModuleGraph, threeRevision } from "./module-graph.js";
4
+ import { canonicalGLTSURL, ModuleGraph } from "./module-graph.js";
5
5
  import { ModuleURLStore } from "./module-url-store.js";
6
+ import { RootOwnership } from "./root.js";
6
7
  import { WrapperRuntime } from "./runtime.js";
7
8
  function environmentBaseURL() {
8
9
  if (typeof document !== "undefined") {
@@ -19,14 +20,28 @@ function resolvedOptionURL(value, fallback, base) {
19
20
  class GLTSAssetHandle {
20
21
  scene;
21
22
  url;
22
- #reloadAsset;
23
- #disposeAsset;
23
+ #assets;
24
+ #loader;
25
+ #previewCamera;
26
+ #previewLighting;
24
27
  #disposed = false;
25
- constructor(scene, url, reloadAsset, disposeAsset) {
28
+ constructor(scene, url, preview, loader, assets) {
26
29
  this.scene = scene;
27
30
  this.url = url;
28
- this.#reloadAsset = reloadAsset;
29
- this.#disposeAsset = disposeAsset;
31
+ this.#previewCamera = preview.previewCamera;
32
+ this.#previewLighting = preview.previewLighting;
33
+ this.#loader = loader;
34
+ this.#assets = assets;
35
+ }
36
+ get previewCamera() {
37
+ return this.#previewCamera;
38
+ }
39
+ get previewLighting() {
40
+ return this.#previewLighting;
41
+ }
42
+ updatePreview(preview) {
43
+ this.#previewCamera = preview.previewCamera;
44
+ this.#previewLighting = preview.previewLighting;
30
45
  }
31
46
  async reload() {
32
47
  if (this.#disposed) {
@@ -35,14 +50,19 @@ class GLTSAssetHandle {
35
50
  phase: "reload"
36
51
  });
37
52
  }
38
- await this.#reloadAsset();
53
+ await this.#loader.reload(this.url);
39
54
  }
40
55
  dispose() {
41
56
  if (this.#disposed) {
42
57
  return;
43
58
  }
44
59
  this.#disposed = true;
45
- this.#disposeAsset();
60
+ try {
61
+ this.scene.dispose();
62
+ }
63
+ finally {
64
+ this.#assets.delete(this);
65
+ }
46
66
  }
47
67
  }
48
68
  export class GLTSLoader extends Loader {
@@ -51,6 +71,8 @@ export class GLTSLoader extends Loader {
51
71
  #runtime;
52
72
  #graph;
53
73
  #assets = new Set();
74
+ #constructors = new Map();
75
+ #roots = new Set();
54
76
  #reloadQueues = new Map();
55
77
  #disposed = false;
56
78
  constructor(manager = DefaultLoadingManager, options = {}) {
@@ -65,7 +87,7 @@ export class GLTSLoader extends Loader {
65
87
  fetch: (input, init) => this.#fetch(input, init),
66
88
  moduleURLs,
67
89
  runtime: this.#runtime,
68
- threeRevision: threeRevision(THREE)
90
+ threeRevision: THREE.REVISION
69
91
  });
70
92
  }
71
93
  load(url, onLoad, onProgress, onError) {
@@ -78,32 +100,18 @@ export class GLTSLoader extends Loader {
78
100
  });
79
101
  }
80
102
  async loadAsync(url, onProgress) {
81
- this.#assertActive(url);
82
103
  void onProgress;
83
- const resolvedURL = this.#resolveURL(url);
84
- return this.#trackLoading(resolvedURL, async () => {
85
- try {
86
- const prepared = await this.#graph.prepareAsset(resolvedURL, { activate: true, force: false });
87
- const scene = this.#runtime.createRoot(prepared.url);
88
- this.#graph.retainRoot(prepared.url);
89
- let handle;
90
- handle = new GLTSAssetHandle(scene, prepared.url, () => this.reload(prepared.url), () => {
91
- try {
92
- this.#runtime.disposeWrapper(scene);
93
- }
94
- finally {
95
- this.#graph.releaseRoot(prepared.url);
96
- this.#assets.delete(handle);
97
- }
98
- });
99
- this.#assets.add(handle);
100
- return handle;
101
- }
102
- finally {
103
- this.#graph.settleReachability();
104
- }
104
+ return this.#withConstructor(url, async (prepared) => {
105
+ const instance = new prepared.Constructor();
106
+ await instance.ready;
107
+ const handle = new GLTSAssetHandle(instance, prepared.url, prepared, this, this.#assets);
108
+ this.#assets.add(handle);
109
+ return handle;
105
110
  });
106
111
  }
112
+ loadAsyncConstructor(url) {
113
+ return this.#withConstructor(url, (prepared) => prepared.Constructor);
114
+ }
107
115
  has(url) {
108
116
  return this.#graph.hasAsset(this.#resolveURL(url));
109
117
  }
@@ -124,7 +132,7 @@ export class GLTSLoader extends Loader {
124
132
  }
125
133
  throw error;
126
134
  }
127
- this.#graph.activateAsset(prepared);
135
+ this.#commitReload(prepared);
128
136
  }
129
137
  finally {
130
138
  this.#graph.settleReachability();
@@ -144,26 +152,88 @@ export class GLTSLoader extends Loader {
144
152
  if (this.#disposed) {
145
153
  return;
146
154
  }
155
+ this.#disposed = true;
156
+ const reason = new GLTSError("Loader was disposed before the instance became ready", {
157
+ url: "glts://loader",
158
+ phase: "dispose"
159
+ });
147
160
  const errors = [];
148
- for (const asset of [...this.#assets]) {
161
+ for (const root of [...this.#roots]) {
149
162
  try {
150
- asset.dispose();
163
+ root.dispose(reason);
151
164
  }
152
165
  catch (error) {
153
166
  errors.push(error);
154
167
  }
155
168
  }
169
+ this.#assets.clear();
156
170
  try {
157
171
  this.#runtime.dispose();
158
172
  }
159
173
  catch (error) {
160
174
  errors.push(error);
161
175
  }
162
- this.#disposed = true;
163
176
  if (errors.length > 0) {
164
177
  throw new GLTSError("Loader disposal failed", { url: "glts://loader", phase: "dispose" }, new AggregateError(errors));
165
178
  }
166
179
  }
180
+ async #withConstructor(url, use) {
181
+ this.#assertActive(url);
182
+ const resolvedURL = this.#resolveURL(url);
183
+ return this.#trackLoading(resolvedURL, async () => {
184
+ try {
185
+ const prepared = await this.#prepareConstructor(resolvedURL);
186
+ return await use(prepared);
187
+ }
188
+ finally {
189
+ this.#graph.settleReachability();
190
+ }
191
+ });
192
+ }
193
+ async #prepareConstructor(url) {
194
+ const prepared = await this.#graph.prepareAsset(url, { activate: true, force: false });
195
+ this.#assertActive(prepared.url);
196
+ const existing = this.#constructors.get(prepared.url);
197
+ if (existing) {
198
+ return { Constructor: existing, ...prepared };
199
+ }
200
+ const loader = this;
201
+ class ManagedGLTSInstance extends THREE.Group {
202
+ ready;
203
+ #ownership;
204
+ constructor() {
205
+ super();
206
+ this.#ownership = loader.#mountInstance(this, prepared.url);
207
+ this.ready = this.#ownership.ready;
208
+ }
209
+ dispose() {
210
+ this.#ownership.dispose();
211
+ }
212
+ }
213
+ this.#constructors.set(prepared.url, ManagedGLTSInstance);
214
+ return { Constructor: ManagedGLTSInstance, ...prepared };
215
+ }
216
+ #mountInstance(instance, url) {
217
+ this.#assertActive(url);
218
+ const root = this.#runtime.mountRoot(instance, url);
219
+ try {
220
+ this.#graph.retainRoot(url);
221
+ }
222
+ catch (error) {
223
+ root.dispose(error);
224
+ throw error;
225
+ }
226
+ const ownership = new RootOwnership(root, url, (released) => {
227
+ try {
228
+ this.#graph.releaseRoot(url);
229
+ }
230
+ finally {
231
+ this.#roots.delete(released);
232
+ }
233
+ });
234
+ this.#roots.add(ownership);
235
+ return ownership;
236
+ }
167
237
  async #trackLoading(url, operation) {
168
238
  this.manager.itemStart(url);
169
239
  try {
@@ -181,6 +251,14 @@ export class GLTSLoader extends Loader {
181
251
  const managedURL = this.manager.resolveURL(`${this.path}${url}`);
182
252
  return canonicalGLTSURL(managedURL, this.#baseURL);
183
253
  }
254
+ #commitReload(prepared) {
255
+ this.#graph.activateAsset(prepared);
256
+ for (const asset of this.#assets) {
257
+ if (asset.url === prepared.url) {
258
+ asset.updatePreview(prepared);
259
+ }
260
+ }
261
+ }
184
262
  #fetch(input, init) {
185
263
  const headers = new Headers(init?.headers);
186
264
  for (const [name, value] of Object.entries(this.requestHeader)) {
@@ -1 +1 @@
1
- {"version":3,"file":"GLTSLoader.js","sourceRoot":"","sources":["../src/GLTSLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GLTSLoader.js","sourceRoot":"","sources":["../src/GLTSLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { GLTSPreviewExports, RawAssetConstructor } from "./types.js";
2
+ export type PreviewState = Required<GLTSPreviewExports>;
3
+ export interface AssetExports extends PreviewState {
4
+ readonly assetClass: RawAssetConstructor;
5
+ }
6
+ interface AssetModuleContext {
7
+ readonly url: string;
8
+ readonly importChain: readonly string[];
9
+ }
10
+ export declare function readAssetExports(namespace: unknown, context: AssetModuleContext): AssetExports;
11
+ export {};
12
+ //# sourceMappingURL=asset-exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-exports.d.ts","sourceRoot":"","sources":["../src/asset-exports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAExD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AA+GD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,kBAAkB,GAC1B,YAAY,CAMd"}
@@ -0,0 +1,82 @@
1
+ import * as THREE from "three";
2
+ import { GLTSError } from "./errors.js";
3
+ const absent = Symbol("absent asset export");
4
+ function moduleExport(namespace, name) {
5
+ if ((typeof namespace !== "object" && typeof namespace !== "function") ||
6
+ namespace === null ||
7
+ !Object.hasOwn(namespace, name)) {
8
+ return absent;
9
+ }
10
+ return Reflect.get(namespace, name);
11
+ }
12
+ function receivedType(value) {
13
+ if (value === null) {
14
+ return "null";
15
+ }
16
+ if (value instanceof THREE.Object3D) {
17
+ return `THREE.${value.type}`;
18
+ }
19
+ return typeof value;
20
+ }
21
+ function isConstructor(value) {
22
+ if (typeof value !== "function") {
23
+ return false;
24
+ }
25
+ try {
26
+ Reflect.construct(Object, [], value);
27
+ return true;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ function readAssetClass(namespace, context) {
34
+ const value = moduleExport(namespace, "default");
35
+ if (isConstructor(value)) {
36
+ return value;
37
+ }
38
+ throw new GLTSError("Module must default-export a constructible class", {
39
+ ...context,
40
+ phase: "evaluate"
41
+ });
42
+ }
43
+ function readCamera(namespace, context) {
44
+ const value = moduleExport(namespace, "previewCamera");
45
+ if (value === absent) {
46
+ return undefined;
47
+ }
48
+ if (value instanceof THREE.Camera) {
49
+ return value;
50
+ }
51
+ throw new GLTSError(`Named export "previewCamera" must be a THREE.Camera; received ${receivedType(value)}`, { ...context, phase: "evaluate" });
52
+ }
53
+ function containsLight(object) {
54
+ let found = false;
55
+ object.traverse((child) => {
56
+ if (child instanceof THREE.Light) {
57
+ found = true;
58
+ }
59
+ });
60
+ return found;
61
+ }
62
+ function readLighting(namespace, context) {
63
+ const value = moduleExport(namespace, "previewLighting");
64
+ if (value === absent) {
65
+ return undefined;
66
+ }
67
+ if (!(value instanceof THREE.Object3D)) {
68
+ throw new GLTSError(`Named export "previewLighting" must be a THREE.Object3D containing at least one THREE.Light; received ${receivedType(value)}`, { ...context, phase: "evaluate" });
69
+ }
70
+ if (!containsLight(value)) {
71
+ throw new GLTSError(`Named export "previewLighting" must contain at least one THREE.Light; received ${receivedType(value)} with no lights`, { ...context, phase: "evaluate" });
72
+ }
73
+ return value;
74
+ }
75
+ export function readAssetExports(namespace, context) {
76
+ return {
77
+ assetClass: readAssetClass(namespace, context),
78
+ previewCamera: readCamera(namespace, context),
79
+ previewLighting: readLighting(namespace, context)
80
+ };
81
+ }
82
+ //# sourceMappingURL=asset-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-exports.js","sourceRoot":"","sources":["../src/asset-exports.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type GLTSPhase = "resolve" | "fetch" | "transform" | "evaluate" | "construct" | "reload" | "dispose";
1
+ export type GLTSPhase = "resolve" | "fetch" | "transform" | "evaluate" | "construct" | "resource" | "reload" | "dispose";
2
2
  export interface GLTSErrorContext {
3
3
  readonly url: string;
4
4
  readonly phase: GLTSPhase;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,OAAO,GACP,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO;CAaxE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAMX"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,OAAO,GACP,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO;CAaxE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAMX"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,GAAG,CAAS;IACZ,KAAK,CAAY;IACjB,WAAW,CAAoB;IAExC,YAAY,OAAe,EAAE,OAAyB,EAAE,KAAe;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,KAAK,CAAC,SAAS,OAAO,CAAC,KAAK,KAAK,OAAO,UAAU,OAAO,CAAC,GAAG,GAAG,YAAY,EAAE,EAAE;YAC9E,KAAK;SACN,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,OAAe,EACf,OAAyB;IAEzB,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,GAAG,CAAS;IACZ,KAAK,CAAY;IACjB,WAAW,CAAoB;IAExC,YAAY,OAAe,EAAE,OAAyB,EAAE,KAAe;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,KAAK,CAAC,SAAS,OAAO,CAAC,KAAK,KAAK,OAAO,UAAU,OAAO,CAAC,GAAG,GAAG,YAAY,EAAE,EAAE;YAC9E,KAAK;SACN,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,OAAe,EACf,OAAyB;IAEzB,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { GLTSError, type GLTSPhase } from "./errors.js";
2
2
  export { GLTSLoader } from "./GLTSLoader.js";
3
3
  export { inline } from "./inline.js";
4
- export type { GLTSAsset, GLTSErrorCallback, GLTSFetch, GLTSLoadCallback, GLTSLoaderOptions, GLTSProgressCallback } from "./types.js";
4
+ export { loadingManager } from "./loading-manager.js";
5
+ export type { GLTSAsset, GLTSConstructor, GLTSErrorCallback, GLTSFetch, GLTSInstance, GLTSLoadCallback, GLTSLoaderOptions, GLTSPreviewExports, GLTSProgressCallback } from "./types.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { GLTSError } from "./errors.js";
2
2
  export { GLTSLoader } from "./GLTSLoader.js";
3
3
  export { inline } from "./inline.js";
4
+ export { loadingManager } from "./loading-manager.js";
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}