@drawcall/glts 0.2.0 → 0.3.0

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/README.md CHANGED
@@ -1,24 +1,70 @@
1
- # @drawcall/glts
1
+ # GLTS
2
2
 
3
3
  **Like glTF, but for procedural Three.js assets.**
4
4
 
5
- `@drawcall/glts` loads trusted TypeScript modules as composable Three.js assets.
6
- It compiles them in the browser, resolves nested `.glts` and npm imports, and
7
- keeps a stable `THREE.Group` wrapper around every asset for atomic reloads.
5
+ GLTS loads trusted TypeScript modules as composable Three.js assets. It compiles
6
+ them in the browser, resolves nested `.glts` and npm imports, and gives every
7
+ asset a stable `THREE.Group` wrapper so its implementation can be replaced
8
+ without disturbing its place in the scene.
8
9
 
9
- ## Install
10
+ ```ts
11
+ import * as THREE from "three"
12
+ import Branch from "./branch.glts"
13
+
14
+ export default class Tree extends THREE.Group {
15
+ constructor() {
16
+ super()
17
+ this.add(new Branch())
18
+ }
19
+ }
20
+ ```
21
+
22
+ GLTS is executable code, not a sandbox or a serialization format. Only load
23
+ assets you trust.
24
+
25
+ ## Workspace
26
+
27
+ | Path | Purpose |
28
+ | --- | --- |
29
+ | `packages/glts` | Browser loader, compiler, module graph, wrappers, and reload runtime |
30
+ | `examples/basic` | Vanilla Three.js example covering nested assets, npm, resources, and reload |
31
+
32
+ The repository follows the same pnpm workspace structure as the neighboring
33
+ Drawcall Three.js projects.
34
+
35
+ ## Run it
10
36
 
11
37
  ```sh
12
- pnpm add @drawcall/glts three
38
+ pnpm install
39
+ pnpm dev
40
+ ```
41
+
42
+ Then open <http://localhost:5173>. Edit
43
+ `examples/basic/public/assets/tree.glts` or `branch.glts`, then use the example's
44
+ reload buttons to replace that asset in place.
45
+
46
+ Useful workspace commands:
47
+
48
+ ```sh
49
+ pnpm build
50
+ pnpm typecheck
51
+ pnpm test
52
+ pnpm test:e2e
53
+ pnpm check
13
54
  ```
14
55
 
15
- ## Load an asset
56
+ ## Use the loader
57
+
58
+ Install the runtime next to the application's own Three.js dependency:
59
+
60
+ ```sh
61
+ pnpm add @drawcall/glts three
62
+ ```
16
63
 
17
64
  ```ts
18
65
  import { GLTSLoader } from "@drawcall/glts"
19
66
 
20
- const loader = new GLTSLoader()
21
- const tree = await loader.loadAsync("/assets/tree.glts")
67
+ const tree = await new GLTSLoader().loadAsync("/assets/tree.glts")
22
68
 
23
69
  scene.add(tree.scene)
24
70
 
@@ -26,49 +72,128 @@ await tree.reload()
26
72
  await loader.reload("/assets/branch.glts")
27
73
 
28
74
  tree.dispose()
29
- loader.dispose()
30
75
  ```
31
76
 
32
- `load()` is also available with the familiar Three.js callback API.
33
-
34
77
  GLTS initializes its browser compiler automatically. It requires no bundler
35
78
  plugin or WASM configuration.
36
79
 
37
- ## Write an asset
38
-
39
- Each `.glts` file default-exports a no-argument class derived from
40
- `THREE.Object3D`:
80
+ `load()` is also available with the familiar Three.js callback shape:
41
81
 
42
82
  ```ts
43
- import * as THREE from "three"
44
- import Branch from "./branch.glts"
83
+ loader.load(
84
+ "/assets/tree.glts",
85
+ (asset) => scene.add(asset.scene),
86
+ undefined,
87
+ (error) => console.error(error)
88
+ )
89
+ ```
45
90
 
46
- export default class Tree extends THREE.Group {
91
+ ## Asset contract
92
+
93
+ Each `.glts` file must:
94
+
95
+ - be a TypeScript ESM module;
96
+ - default-export a constructible class;
97
+ - accept no constructor arguments;
98
+ - construct a value derived from `THREE.Object3D`;
99
+ - avoid top-level side effects, because new revisions are evaluated again.
100
+
101
+ An optional `dispose()` method releases resources owned by the raw asset:
102
+
103
+ ```ts
104
+ export default class Rock extends THREE.Mesh {
47
105
  constructor() {
48
- super()
49
- this.add(new Branch())
106
+ const geometry = new THREE.IcosahedronGeometry()
107
+ const material = new THREE.MeshStandardMaterial()
108
+ super(geometry, material)
50
109
  }
51
110
 
52
111
  dispose() {
53
- // Release resources owned by this asset.
112
+ this.geometry.dispose()
113
+ this.material.dispose()
54
114
  }
55
115
  }
56
116
  ```
57
117
 
58
- Asset modules can import `three`, Three.js addons, nested `.glts` assets, and
59
- bare npm packages. `import.meta.url` resolves to the original asset URL so
60
- relative textures and other resources continue to work.
118
+ Supported static imports:
61
119
 
62
- ## V1 constraints
120
+ | Import | Resolution |
121
+ | --- | --- |
122
+ | `three` | The host application's exact Three.js namespace |
123
+ | `three/addons/...` or `three/examples/...` | Matching Three.js revision through ESM.sh |
124
+ | `./child.glts` | A stable loader-managed wrapper constructor |
125
+ | Bare npm package | An ESM.sh bundle with `three` redirected to the host |
126
+
127
+ `import.meta.url` is rewritten to the original `.glts` URL, so relative
128
+ textures and other browser-loaded resources continue to work.
63
129
 
64
130
  Dynamic imports, import attributes, local helper `.ts` modules, cyclic module
65
131
  graphs, cross-asset inheritance, and custom-method contracts across a `.glts`
66
132
  boundary are intentionally outside V1.
67
133
 
68
- ## Security
134
+ ## Inline a source graph
135
+
136
+ `inline()` combines an in-memory GLTS graph into one TypeScript ESM string. It
137
+ does not transpile the TypeScript or convert the entry module to another module
138
+ format.
139
+
140
+ ```ts
141
+ import { inline } from "@drawcall/glts"
142
+
143
+ const source = inline(treeSource, {
144
+ "./branch.glts": branchSource,
145
+ "./leaf.glts": leafSource,
146
+ })
147
+ ```
148
+
149
+ The entry module's external imports, body, and exports stay in place. Local
150
+ `.glts` imports become bindings to isolated dependency scopes. External imports
151
+ used by those scopes are added to the entry module and deduplicated by their
152
+ local binding, so namespace and named imports can coexist:
153
+
154
+ ```ts
155
+ import * as THREE from "three"
156
+ import { Group } from "three"
157
+ ```
158
+
159
+ Paths in the source record are relative to the entry module unless they start
160
+ at `/` or are absolute URLs. Each dependency must default-export a class and
161
+ may only use default imports for other local `.glts` files. Dependency named
162
+ exports, dynamic imports, import attributes, local helper modules, conflicting
163
+ external bindings, and cycles fail with a `GLTSError`. Dependency
164
+ `import.meta.url` expressions still resolve to the original source path. Local
165
+ GLTS imports are constructor values rather than TypeScript type imports.
166
+
167
+ ## Reload behavior
168
+
169
+ Every root and imported asset has a stable wrapper:
170
+
171
+ ```text
172
+ Tree wrapper
173
+ └── current Tree instance
174
+ └── Branch wrapper
175
+ └── current Branch instance
176
+ ```
177
+
178
+ Reloading `branch.glts` constructs all replacement branches off-scene. Only
179
+ after every constructor succeeds does GLTS swap them into their existing
180
+ wrappers. A fetch, compile, resolution, evaluation, or construction failure
181
+ leaves the old instances mounted. Replacement intentionally resets raw asset
182
+ state.
183
+
184
+ `loader.has(url)` reports whether an asset is reachable from at least one
185
+ undisposed root. Reloading a root updates that reachability to its latest
186
+ successful set of imports.
187
+
188
+ GLTS calls `dispose()` on replaced raw instances. It does not automatically
189
+ dispose geometries, materials, or textures because those resources may be
190
+ shared. Nested GLTS wrappers are owned and disposed recursively by the runtime.
69
191
 
70
- GLTS is executable code, not a sandbox or serialization format. Only load
71
- assets you trust; they run with the page's full JavaScript authority.
192
+ ## Operational constraints
72
193
 
73
- Three.js `0.160.0` or newer is required as a peer dependency. Licensed under
74
- MIT.
194
+ - The application must use one Three.js version.
195
+ - Source, CDN modules, and relative resources must be CORS-accessible.
196
+ - The page's CSP must allow `blob:` modules and configured CDN sources.
197
+ - ESM.sh package versions are intentionally live in V1; reproducible locking is
198
+ future work.
199
+ - GLTS code runs with the page's full JavaScript authority.
@@ -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;IA0B5F,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxC,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;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"}
@@ -82,15 +82,26 @@ export class GLTSLoader extends Loader {
82
82
  void onProgress;
83
83
  const resolvedURL = this.#resolveURL(url);
84
84
  return this.#trackLoading(resolvedURL, async () => {
85
- const prepared = await this.#graph.prepareAsset(resolvedURL, { activate: true, force: false });
86
- const scene = this.#runtime.createRoot(prepared.url);
87
- let handle;
88
- handle = new GLTSAssetHandle(scene, prepared.url, () => this.reload(prepared.url), () => {
89
- this.#runtime.disposeWrapper(scene);
90
- this.#assets.delete(handle);
91
- });
92
- this.#assets.add(handle);
93
- return handle;
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
+ }
94
105
  });
95
106
  }
96
107
  has(url) {
@@ -101,9 +112,23 @@ export class GLTSLoader extends Loader {
101
112
  const resolvedURL = this.#resolveURL(url);
102
113
  const previous = this.#reloadQueues.get(resolvedURL) ?? Promise.resolve();
103
114
  const next = previous.catch(() => undefined).then(() => this.#trackLoading(resolvedURL, async () => {
104
- const prepared = await this.#graph.prepareAsset(resolvedURL, { activate: false, force: true });
105
- this.#runtime.replace(resolvedURL, prepared.assetClass);
106
- this.#graph.activateAsset(prepared);
115
+ try {
116
+ const prepared = await this.#graph.prepareAsset(resolvedURL, { activate: false, force: true });
117
+ try {
118
+ this.#runtime.replace(resolvedURL, prepared.assetClass);
119
+ }
120
+ catch (error) {
121
+ if (error instanceof GLTSError && error.phase === "dispose") {
122
+ // Disposal begins only after WrapperRuntime commits the replacement.
123
+ this.#graph.activateAsset(prepared);
124
+ }
125
+ throw error;
126
+ }
127
+ this.#graph.activateAsset(prepared);
128
+ }
129
+ finally {
130
+ this.#graph.settleReachability();
131
+ }
107
132
  }));
108
133
  this.#reloadQueues.set(resolvedURL, next);
109
134
  try {
@@ -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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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { GLTSError, type GLTSPhase } from "./errors.js";
2
2
  export { GLTSLoader } from "./GLTSLoader.js";
3
+ export { inline } from "./inline.js";
3
4
  export type { GLTSAsset, GLTSErrorCallback, GLTSFetch, GLTSLoadCallback, GLTSLoaderOptions, GLTSProgressCallback } from "./types.js";
4
5
  //# 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,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,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { GLTSError } from "./errors.js";
2
2
  export { GLTSLoader } from "./GLTSLoader.js";
3
+ export { inline } from "./inline.js";
3
4
  //# 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"}
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"}
@@ -0,0 +1,3 @@
1
+ /** Combines a root GLTS module and its in-memory dependencies into TypeScript ESM. */
2
+ export declare function inline(source: string, files: Readonly<Record<string, string>>): string;
3
+ //# sourceMappingURL=inline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../src/inline.ts"],"names":[],"mappings":"AA2jBA,sFAAsF;AACtF,wBAAgB,MAAM,CACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACtC,MAAM,CAkFR"}
package/dist/inline.js ADDED
@@ -0,0 +1,455 @@
1
+ import { parse } from "@babel/parser";
2
+ import { traverseFast } from "@babel/types";
3
+ import MagicString from "magic-string";
4
+ import { GLTSError } from "./errors.js";
5
+ const entryURL = new URL("glts://inline/entry.glts");
6
+ function fail(message, path, phase, importChain = [], cause) {
7
+ throw new GLTSError(message, { url: path, phase, importChain }, cause);
8
+ }
9
+ function range(node, path) {
10
+ if (typeof node.start !== "number" || typeof node.end !== "number") {
11
+ fail("Parser returned a node without a source range", path, "transform");
12
+ }
13
+ return { start: node.start, end: node.end };
14
+ }
15
+ function isBare(specifier) {
16
+ return (!specifier.startsWith(".") &&
17
+ !specifier.startsWith("/") &&
18
+ !/^[A-Za-z][A-Za-z\d+.-]*:/.test(specifier));
19
+ }
20
+ function displayURL(url) {
21
+ if (url.protocol !== entryURL.protocol || url.host !== entryURL.host) {
22
+ return url.href;
23
+ }
24
+ return `.${url.pathname}${url.search}${url.hash}`;
25
+ }
26
+ function sourceMap(files) {
27
+ const sources = new Map();
28
+ for (const [path, source] of Object.entries(files)) {
29
+ if (path.includes("\\")) {
30
+ fail(`Inline paths must use URL separators: ${path}`, path, "resolve");
31
+ }
32
+ let url;
33
+ try {
34
+ url = new URL(path, entryURL);
35
+ }
36
+ catch (error) {
37
+ fail(`Invalid inline path: ${path}`, path, "resolve", [], error);
38
+ }
39
+ if (!url.pathname.endsWith(".glts")) {
40
+ fail(`Inline path must end in .glts: ${path}`, path, "resolve");
41
+ }
42
+ if (url.href === entryURL.href) {
43
+ fail(`Inline path is reserved for the entry source: ${path}`, path, "resolve");
44
+ }
45
+ const existing = sources.get(url.href);
46
+ if (existing) {
47
+ fail(`Inline paths resolve to the same file: ${existing.path} and ${path}`, path, "resolve");
48
+ }
49
+ const absolute = /^[A-Za-z][A-Za-z\d+.-]*:/.test(path);
50
+ const metaURL = absolute ? url.href : path;
51
+ sources.set(url.href, { path, source, url, metaURL });
52
+ }
53
+ return sources;
54
+ }
55
+ function parseModule(source, path) {
56
+ try {
57
+ return parse(source, {
58
+ plugins: ["decorators-legacy", "deferredImportEvaluation", "sourcePhaseImports", "typescript"],
59
+ sourceFilename: path,
60
+ sourceType: "module"
61
+ });
62
+ }
63
+ catch (error) {
64
+ fail("Unable to parse TypeScript source", path, "transform", [], error);
65
+ }
66
+ }
67
+ function moduleSyntax(ast, path) {
68
+ const importMetas = new Set();
69
+ const metaURLs = new Map();
70
+ traverseFast(ast, (node) => {
71
+ if (node.type === "ImportExpression") {
72
+ fail("Dynamic imports are not supported", path, "transform");
73
+ }
74
+ if (node.type === "MetaProperty" &&
75
+ node.meta.name === "import" &&
76
+ node.property.name === "meta") {
77
+ importMetas.add(node);
78
+ return;
79
+ }
80
+ if (node.type !== "MemberExpression" ||
81
+ node.computed ||
82
+ node.object.type !== "MetaProperty" ||
83
+ node.object.meta.name !== "import" ||
84
+ node.object.property.name !== "meta" ||
85
+ node.property.type !== "Identifier" ||
86
+ node.property.name !== "url") {
87
+ return;
88
+ }
89
+ metaURLs.set(node.object, range(node, path));
90
+ });
91
+ for (const meta of importMetas) {
92
+ if (!metaURLs.has(meta)) {
93
+ fail("Only import.meta.url is supported", path, "transform");
94
+ }
95
+ }
96
+ return [...metaURLs.values()];
97
+ }
98
+ function importType(node, path) {
99
+ if (node.importKind === "typeof") {
100
+ fail("Typeof imports are not supported", path, "transform");
101
+ }
102
+ return node.importKind === "type" ? "type" : "value";
103
+ }
104
+ function checkImport(node, path) {
105
+ if (node.attributes && node.attributes.length > 0) {
106
+ fail("Import attributes are not supported", path, "transform");
107
+ }
108
+ if (node.module || node.phase) {
109
+ fail("Source-phase and deferred imports are not supported", path, "transform");
110
+ }
111
+ }
112
+ function externalImports(node, path) {
113
+ const source = node.source.value;
114
+ if (node.specifiers.length === 0) {
115
+ return [{ kind: "side-effect", path, source }];
116
+ }
117
+ const declarationType = importType(node, path);
118
+ return node.specifiers.map((specifier) => {
119
+ if (specifier.type === "ImportDefaultSpecifier") {
120
+ return {
121
+ kind: "binding",
122
+ imported: "default",
123
+ local: specifier.local.name,
124
+ path,
125
+ source,
126
+ typeOnly: declarationType === "type"
127
+ };
128
+ }
129
+ if (specifier.type === "ImportNamespaceSpecifier") {
130
+ return {
131
+ kind: "binding",
132
+ imported: "*",
133
+ local: specifier.local.name,
134
+ path,
135
+ source,
136
+ typeOnly: declarationType === "type"
137
+ };
138
+ }
139
+ if (specifier.importKind === "typeof") {
140
+ fail("Typeof imports are not supported", path, "transform");
141
+ }
142
+ return {
143
+ kind: "binding",
144
+ imported: specifier.imported.type === "Identifier"
145
+ ? specifier.imported.name
146
+ : specifier.imported.value,
147
+ local: specifier.local.name,
148
+ path,
149
+ source,
150
+ typeOnly: declarationType === "type" || specifier.importKind === "type"
151
+ };
152
+ });
153
+ }
154
+ function localImport(node, url, path) {
155
+ if (node.importKind === "type" ||
156
+ node.specifiers.length !== 1 ||
157
+ node.specifiers[0]?.type !== "ImportDefaultSpecifier") {
158
+ fail("Local GLTS imports must be default imports", path, "transform");
159
+ }
160
+ return {
161
+ ...range(node, path),
162
+ local: node.specifiers[0].local.name,
163
+ url
164
+ };
165
+ }
166
+ function resolveImport(specifier, importer, path, sources, root) {
167
+ if (isBare(specifier)) {
168
+ return undefined;
169
+ }
170
+ let url;
171
+ try {
172
+ url = new URL(specifier, importer);
173
+ }
174
+ catch (error) {
175
+ fail(`Unable to resolve import: ${specifier}`, path, "resolve", [], error);
176
+ }
177
+ if (sources.has(url.href) || url.href === entryURL.href) {
178
+ return url;
179
+ }
180
+ if (url.pathname.endsWith(".glts")) {
181
+ fail(`Missing inline source for ${displayURL(url)}`, path, "resolve");
182
+ }
183
+ if (url.protocol === entryURL.protocol && url.host === entryURL.host) {
184
+ if (root) {
185
+ return undefined;
186
+ }
187
+ fail(`Local helper imports are not supported: ${specifier}`, path, "resolve");
188
+ }
189
+ return undefined;
190
+ }
191
+ function defaultClass(node, path) {
192
+ if (node.declaration.type !== "ClassDeclaration") {
193
+ fail("Inlined dependencies must default-export a class", path, "transform");
194
+ }
195
+ const exportRange = range(node, path);
196
+ const classRange = range(node.declaration, path);
197
+ if (node.declaration.id) {
198
+ return {
199
+ kind: "named",
200
+ classStart: classRange.start,
201
+ exportStart: exportRange.start,
202
+ name: node.declaration.id.name
203
+ };
204
+ }
205
+ return {
206
+ kind: "anonymous",
207
+ classEnd: classRange.end,
208
+ classStart: classRange.start,
209
+ exportStart: exportRange.start
210
+ };
211
+ }
212
+ function readFile(source, url, path, metaURL, sources, root) {
213
+ const ast = parseModule(source, path);
214
+ const imports = [];
215
+ const externals = [];
216
+ const importRanges = [];
217
+ let exported;
218
+ const firstNode = ast.program.body[0];
219
+ let insertAt = firstNode ? range(firstNode, path).start : source.length;
220
+ let bodyStarted = false;
221
+ for (const node of ast.program.body) {
222
+ if (node.type === "ImportDeclaration") {
223
+ const nodeRange = range(node, path);
224
+ importRanges.push(nodeRange);
225
+ if (!bodyStarted) {
226
+ insertAt = nodeRange.end;
227
+ }
228
+ const target = resolveImport(node.source.value, url, path, sources, root);
229
+ if (!root || target) {
230
+ checkImport(node, path);
231
+ }
232
+ if (target) {
233
+ imports.push(localImport(node, target, path));
234
+ }
235
+ else {
236
+ externals.push(...externalImports(node, path));
237
+ }
238
+ continue;
239
+ }
240
+ bodyStarted = true;
241
+ if (!root && node.type === "TSImportEqualsDeclaration") {
242
+ fail("TypeScript import-equals declarations are not supported", path, "transform");
243
+ }
244
+ if (root) {
245
+ if ((node.type === "ExportNamedDeclaration" || node.type === "ExportAllDeclaration") &&
246
+ node.source &&
247
+ resolveImport(node.source.value, url, path, sources, root)) {
248
+ fail("Local GLTS re-exports are not supported", path, "transform");
249
+ }
250
+ continue;
251
+ }
252
+ if (node.type === "ExportDefaultDeclaration") {
253
+ if (exported) {
254
+ fail("Inlined dependency has more than one default export", path, "transform");
255
+ }
256
+ exported = defaultClass(node, path);
257
+ continue;
258
+ }
259
+ if (node.type === "ExportNamedDeclaration" ||
260
+ node.type === "ExportAllDeclaration" ||
261
+ node.type === "TSExportAssignment" ||
262
+ node.type === "TSNamespaceExportDeclaration") {
263
+ fail("Inlined dependencies may only have a default export", path, "transform");
264
+ }
265
+ }
266
+ if (!root && !exported) {
267
+ fail("Inlined dependency must have a default export", path, "transform");
268
+ }
269
+ return {
270
+ ...(exported ? { defaultClass: exported } : {}),
271
+ externals,
272
+ importRanges,
273
+ imports,
274
+ insertAt,
275
+ metaURLs: root ? [] : moduleSyntax(ast, path),
276
+ metaURL,
277
+ path,
278
+ source,
279
+ url
280
+ };
281
+ }
282
+ function sameImport(left, right) {
283
+ return (left.imported === right.imported &&
284
+ left.source === right.source &&
285
+ left.typeOnly === right.typeOnly);
286
+ }
287
+ function renderImport(value) {
288
+ if (value.kind === "side-effect") {
289
+ return `import ${JSON.stringify(value.source)};`;
290
+ }
291
+ const type = value.typeOnly ? " type" : "";
292
+ if (value.imported === "default") {
293
+ return `import${type} ${value.local} from ${JSON.stringify(value.source)};`;
294
+ }
295
+ if (value.imported === "*") {
296
+ return `import${type} * as ${value.local} from ${JSON.stringify(value.source)};`;
297
+ }
298
+ const imported = /^[A-Za-z_$][A-Za-z\d_$]*$/.test(value.imported)
299
+ ? value.imported
300
+ : JSON.stringify(value.imported);
301
+ const specifier = imported === value.local ? imported : `${imported} as ${value.local}`;
302
+ return `import${type} { ${specifier} } from ${JSON.stringify(value.source)};`;
303
+ }
304
+ function collectImports(root, files) {
305
+ const bindings = new Map();
306
+ const runtimeSources = new Set();
307
+ const added = [];
308
+ const collect = (value, preserve) => {
309
+ if (value.kind === "side-effect") {
310
+ if (runtimeSources.has(value.source)) {
311
+ return;
312
+ }
313
+ runtimeSources.add(value.source);
314
+ if (!preserve) {
315
+ added.push(value);
316
+ }
317
+ return;
318
+ }
319
+ const existing = bindings.get(value.local);
320
+ if (existing && !sameImport(existing, value)) {
321
+ fail(`External import ${JSON.stringify(value.local)} conflicts with ${existing.path}`, value.path, "transform");
322
+ }
323
+ if (existing) {
324
+ return;
325
+ }
326
+ bindings.set(value.local, value);
327
+ if (!value.typeOnly) {
328
+ runtimeSources.add(value.source);
329
+ }
330
+ if (!preserve) {
331
+ added.push(value);
332
+ }
333
+ };
334
+ for (const value of root.externals) {
335
+ collect(value, true);
336
+ }
337
+ for (const file of files) {
338
+ for (const value of file.externals) {
339
+ collect(value, false);
340
+ }
341
+ }
342
+ return added.map(renderImport).join("\n");
343
+ }
344
+ function indent(source) {
345
+ return source
346
+ .split("\n")
347
+ .map((line) => line.length > 0 ? ` ${line}` : line)
348
+ .join("\n");
349
+ }
350
+ function renderFile(file, name, names) {
351
+ const exported = file.defaultClass;
352
+ if (!exported) {
353
+ fail("Inlined dependency has no default class", file.path, "transform");
354
+ }
355
+ const rewritten = new MagicString(file.source);
356
+ for (const importRange of file.importRanges) {
357
+ rewritten.remove(importRange.start, importRange.end);
358
+ }
359
+ for (const metaURL of file.metaURLs) {
360
+ rewritten.overwrite(metaURL.start, metaURL.end, `new URL(${JSON.stringify(file.metaURL)}, import.meta.url).href`);
361
+ }
362
+ let local;
363
+ if (exported.kind === "named") {
364
+ rewritten.remove(exported.exportStart, exported.classStart);
365
+ local = exported.name;
366
+ }
367
+ else {
368
+ local = `${name}_default`;
369
+ rewritten.overwrite(exported.exportStart, exported.classStart, `const ${local} = `);
370
+ rewritten.appendLeft(exported.classEnd, ";");
371
+ }
372
+ const aliases = file.imports.map((value) => {
373
+ const target = names.get(value.url.href);
374
+ if (!target) {
375
+ fail(`Missing generated module for ${displayURL(value.url)}`, file.path, "transform");
376
+ }
377
+ return `const ${value.local} = ${target};`;
378
+ });
379
+ const body = rewritten.toString().trim();
380
+ const content = [...aliases, body, `return ${local};`].filter((part) => part.length > 0);
381
+ return `const ${name} = (() => {\n${indent(content.join("\n\n"))}\n})();`;
382
+ }
383
+ function prefix(files) {
384
+ const sources = files.map((file) => file.source);
385
+ let value = "__glts_";
386
+ while (sources.some((source) => source.includes(value))) {
387
+ value += "_";
388
+ }
389
+ return value;
390
+ }
391
+ function validate(source) {
392
+ parseModule(source, "<inline output>");
393
+ }
394
+ /** Combines a root GLTS module and its in-memory dependencies into TypeScript ESM. */
395
+ export function inline(source, files) {
396
+ const sources = sourceMap(files);
397
+ const root = readFile(source, entryURL, "<entry>", entryURL.href, sources, true);
398
+ if (root.imports.length === 0) {
399
+ return source;
400
+ }
401
+ const loaded = new Map();
402
+ const ordered = [];
403
+ const load = (url, chain) => {
404
+ if (loaded.has(url.href)) {
405
+ return;
406
+ }
407
+ if (chain.includes(url.href)) {
408
+ fail("Cyclic GLTS imports are not supported", displayURL(url), "resolve", [...chain.map((value) => displayURL(new URL(value))), displayURL(url)]);
409
+ }
410
+ const input = sources.get(url.href);
411
+ if (!input) {
412
+ fail(`Missing inline source for ${displayURL(url)}`, displayURL(url), "resolve");
413
+ }
414
+ const file = readFile(input.source, input.url, input.path, input.metaURL, sources, false);
415
+ const nextChain = [...chain, url.href];
416
+ for (const dependency of file.imports) {
417
+ load(dependency.url, nextChain);
418
+ }
419
+ loaded.set(url.href, file);
420
+ ordered.push(file);
421
+ };
422
+ for (const dependency of root.imports) {
423
+ load(dependency.url, [entryURL.href]);
424
+ }
425
+ const generatedPrefix = prefix([root, ...ordered]);
426
+ const names = new Map();
427
+ ordered.forEach((file, index) => {
428
+ names.set(file.url.href, `${generatedPrefix}${index}`);
429
+ });
430
+ const imports = collectImports(root, ordered);
431
+ const modules = ordered.map((file) => {
432
+ const name = names.get(file.url.href);
433
+ if (!name) {
434
+ fail(`Missing generated name for ${file.path}`, file.path, "transform");
435
+ }
436
+ return renderFile(file, name, names);
437
+ }).join("\n\n");
438
+ const aliases = root.imports.map((value) => {
439
+ const name = names.get(value.url.href);
440
+ if (!name) {
441
+ fail(`Missing generated module for ${displayURL(value.url)}`, "<entry>", "transform");
442
+ }
443
+ return `const ${value.local} = ${name};`;
444
+ }).join("\n");
445
+ const addition = [imports, modules, aliases].filter((part) => part.length > 0).join("\n\n");
446
+ const rewritten = new MagicString(source);
447
+ for (const value of root.imports) {
448
+ rewritten.remove(value.start, value.end);
449
+ }
450
+ rewritten.appendLeft(root.insertAt, `\n\n${addition}`);
451
+ const output = rewritten.toString();
452
+ validate(output);
453
+ return output;
454
+ }
455
+ //# sourceMappingURL=inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline.js","sourceRoot":"","sources":["../src/inline.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { WrapperRuntime } from "./runtime.js";
4
4
  import type { GLTSAssetClass, GLTSFetch } from "./types.js";
5
5
  interface PreparedAsset {
6
6
  readonly assetClass: GLTSAssetClass;
7
+ readonly dependencies: ReadonlySet<string>;
7
8
  readonly moduleURL: string;
8
9
  readonly source: string;
9
10
  readonly url: string;
@@ -19,6 +20,9 @@ export declare class ModuleGraph {
19
20
  #private;
20
21
  constructor(options: ModuleGraphOptions);
21
22
  hasAsset(url: string): boolean;
23
+ settleReachability(): void;
24
+ retainRoot(url: string): void;
25
+ releaseRoot(url: string): void;
22
26
  prepareAsset(url: string, options: {
23
27
  readonly activate: boolean;
24
28
  readonly force: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"module-graph.d.ts","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,UAAU,aAAa;IACrB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAOD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAqDD,qBAAa,WAAW;;gBAYV,OAAO,EAAE,kBAAkB;IAQvC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIxB,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAChE,WAAW,GAAE,SAAS,MAAM,EAAO,GAClC,OAAO,CAAC,aAAa,CAAC;IAiCzB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAuR7C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAE1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,CAEzD"}
1
+ {"version":3,"file":"module-graph.d.ts","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,UAAU,aAAa;IACrB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAOD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAqDD,qBAAa,WAAW;;gBAcV,OAAO,EAAE,kBAAkB;IAQvC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B,kBAAkB,IAAI,IAAI;IAW1B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAmCxB,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAChE,WAAW,GAAE,SAAS,MAAM,EAAO,GAClC,OAAO,CAAC,aAAa,CAAC;IAyCzB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CA4R7C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAE1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,CAEzD"}
@@ -48,6 +48,8 @@ export class ModuleGraph {
48
48
  #runtime;
49
49
  #threeRevision;
50
50
  #currentAssets = new Map();
51
+ #inactiveAssets = new Set();
52
+ #rootReferences = new Map();
51
53
  #assetRevisions = new Map();
52
54
  #assetLoads = new Map();
53
55
  #externalModules = new Map();
@@ -60,7 +62,50 @@ export class ModuleGraph {
60
62
  this.#threeRevision = options.threeRevision;
61
63
  }
62
64
  hasAsset(url) {
63
- return this.#currentAssets.has(url);
65
+ return this.#reachableAssets().has(url);
66
+ }
67
+ settleReachability() {
68
+ const reachable = this.#reachableAssets();
69
+ for (const url of this.#currentAssets.keys()) {
70
+ if (reachable.has(url)) {
71
+ this.#inactiveAssets.delete(url);
72
+ }
73
+ else {
74
+ this.#inactiveAssets.add(url);
75
+ }
76
+ }
77
+ }
78
+ retainRoot(url) {
79
+ this.#rootReferences.set(url, (this.#rootReferences.get(url) ?? 0) + 1);
80
+ }
81
+ releaseRoot(url) {
82
+ const references = this.#rootReferences.get(url);
83
+ if (references === undefined) {
84
+ throw new Error(`Cannot release untracked GLTS root: ${url}`);
85
+ }
86
+ if (references === 1) {
87
+ this.#rootReferences.delete(url);
88
+ }
89
+ else {
90
+ this.#rootReferences.set(url, references - 1);
91
+ }
92
+ this.settleReachability();
93
+ }
94
+ #reachableAssets() {
95
+ const pending = [...this.#rootReferences.keys()];
96
+ const reachable = new Set();
97
+ while (pending.length > 0) {
98
+ const candidate = pending.pop();
99
+ if (!candidate || reachable.has(candidate)) {
100
+ continue;
101
+ }
102
+ reachable.add(candidate);
103
+ const prepared = this.#currentAssets.get(candidate);
104
+ if (prepared) {
105
+ pending.push(...prepared.dependencies);
106
+ }
107
+ }
108
+ return reachable;
64
109
  }
65
110
  async prepareAsset(url, options, importChain = []) {
66
111
  if (importChain.includes(url)) {
@@ -70,14 +115,17 @@ export class ModuleGraph {
70
115
  importChain: [...importChain, url]
71
116
  });
72
117
  }
118
+ const reactivate = this.#inactiveAssets.has(url);
119
+ const refresh = options.force || reactivate;
73
120
  const current = this.#currentAssets.get(url);
74
- if (current && !options.force) {
121
+ if (current && !refresh) {
75
122
  return current;
76
123
  }
77
- const loadKey = `${options.force ? "reload" : "load"}:${url}`;
124
+ const nextImportChain = [...importChain, url];
125
+ const loadKey = `${refresh ? "reload" : "load"}:${url}`;
78
126
  let loading = this.#assetLoads.get(loadKey);
79
127
  if (!loading) {
80
- loading = this.#prepareAssetRevision(url, options.force, [...importChain, url]);
128
+ loading = this.#prepareAssetRevision(url, refresh, nextImportChain);
81
129
  this.#assetLoads.set(loadKey, loading);
82
130
  void loading.finally(() => {
83
131
  if (this.#assetLoads.get(loadKey) === loading) {
@@ -86,6 +134,9 @@ export class ModuleGraph {
86
134
  }).catch(() => undefined);
87
135
  }
88
136
  const prepared = await loading;
137
+ if (reactivate) {
138
+ await Promise.all([...prepared.dependencies].map((dependency) => this.prepareAsset(dependency, { activate: true, force: false }, nextImportChain)));
139
+ }
89
140
  if (options.activate) {
90
141
  this.activateAsset(prepared);
91
142
  }
@@ -94,6 +145,7 @@ export class ModuleGraph {
94
145
  activateAsset(prepared) {
95
146
  this.#runtime.setAssetClass(prepared.url, prepared.assetClass);
96
147
  this.#currentAssets.set(prepared.url, prepared);
148
+ this.#inactiveAssets.delete(prepared.url);
97
149
  }
98
150
  async #prepareAssetRevision(url, force, importChain) {
99
151
  const fetched = await this.#fetchSource(url, force, importChain);
@@ -113,13 +165,14 @@ export class ModuleGraph {
113
165
  importChain
114
166
  });
115
167
  }
168
+ const dependencies = new Set();
116
169
  let transformed;
117
170
  try {
118
171
  transformed = await rewriteModule({
119
172
  source: compiled,
120
173
  sourceURL: url,
121
174
  importChain,
122
- resolveImport: (specifier, importerURL, chain) => this.#resolveAssetImport(specifier, importerURL, chain)
175
+ resolveImport: (specifier, importerURL, chain) => this.#resolveAssetImport(specifier, importerURL, chain, dependencies)
123
176
  });
124
177
  }
125
178
  catch (error) {
@@ -151,6 +204,7 @@ export class ModuleGraph {
151
204
  }
152
205
  const prepared = {
153
206
  assetClass,
207
+ dependencies,
154
208
  moduleURL,
155
209
  source: fetched.source,
156
210
  url
@@ -160,7 +214,7 @@ export class ModuleGraph {
160
214
  this.#assetRevisions.set(url, nextRevisions);
161
215
  return prepared;
162
216
  }
163
- async #resolveAssetImport(specifier, importerURL, importChain) {
217
+ async #resolveAssetImport(specifier, importerURL, importChain, dependencies) {
164
218
  if (specifier === "three") {
165
219
  return this.#runtime.threeModuleURL;
166
220
  }
@@ -191,6 +245,7 @@ export class ModuleGraph {
191
245
  if (isGLTSURL(resolved)) {
192
246
  const childURL = canonicalize(resolved);
193
247
  await this.prepareAsset(childURL, { activate: true, force: false }, importChain);
248
+ dependencies.add(childURL);
194
249
  return this.#runtime.getWrapperModuleURL(childURL);
195
250
  }
196
251
  if (resolved.protocol === "http:" || resolved.protocol === "https:") {
@@ -1 +1 @@
1
- {"version":3,"file":"module-graph.js","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-graph.js","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-module.d.ts","sourceRoot":"","sources":["../src/rewrite-module.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,MAAM,EAAE,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;CAC9C;AAUD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ElF"}
1
+ {"version":3,"file":"rewrite-module.d.ts","sourceRoot":"","sources":["../src/rewrite-module.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,MAAM,EAAE,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;CAC9C;AAUD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ElF"}
@@ -1,6 +1,8 @@
1
- import { ImportType, init, parse } from "es-module-lexer";
1
+ import { parse } from "es-module-lexer/js";
2
2
  import MagicString from "magic-string";
3
3
  import { GLTSError } from "./errors.js";
4
+ const staticImport = 1;
5
+ const importMeta = 3;
4
6
  function locationAt(source, offset) {
5
7
  const before = source.slice(0, offset);
6
8
  const line = before.split("\n").length;
@@ -9,7 +11,6 @@ function locationAt(source, offset) {
9
11
  return `${line}:${column}`;
10
12
  }
11
13
  export async function rewriteModule(options) {
12
- await init;
13
14
  let imports;
14
15
  try {
15
16
  [imports] = parse(options.source, options.sourceURL);
@@ -22,16 +23,16 @@ export async function rewriteModule(options) {
22
23
  }, error);
23
24
  }
24
25
  const rewritten = new MagicString(options.source, { filename: options.sourceURL });
25
- const staticImports = imports.filter((entry) => entry.t === ImportType.Static);
26
+ const staticImports = imports.filter((entry) => entry.t === staticImport);
26
27
  for (const entry of imports) {
27
- if (entry.t === ImportType.ImportMeta) {
28
+ if (entry.t === importMeta) {
28
29
  const suffix = options.source.slice(entry.e, entry.e + 4);
29
30
  if (suffix === ".url") {
30
31
  rewritten.overwrite(entry.s, entry.e + 4, JSON.stringify(options.sourceURL));
31
32
  }
32
33
  continue;
33
34
  }
34
- if (entry.t !== ImportType.Static) {
35
+ if (entry.t !== staticImport) {
35
36
  throw new GLTSError(`Dynamic and source-phase imports are not supported (${locationAt(options.source, entry.ss)})`, {
36
37
  url: options.sourceURL,
37
38
  phase: "transform",
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-module.js","sourceRoot":"","sources":["../src/rewrite-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewrite-module.js","sourceRoot":"","sources":["../src/rewrite-module.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawcall/glts",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Like glTF, but for procedural Three.js assets.",
6
6
  "license": "MIT",
@@ -44,6 +44,8 @@
44
44
  "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit"
45
45
  },
46
46
  "dependencies": {
47
+ "@babel/parser": "^8.0.4",
48
+ "@babel/types": "^8.0.4",
47
49
  "es-module-lexer": "^2.0.0",
48
50
  "magic-string": "^0.30.21",
49
51
  "sucrase": "3.35.1"