@drawcall/glts 0.2.1 → 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
@@ -131,6 +131,39 @@ Dynamic imports, import attributes, local helper `.ts` modules, cyclic module
131
131
  graphs, cross-asset inheritance, and custom-method contracts across a `.glts`
132
132
  boundary are intentionally outside V1.
133
133
 
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
+
134
167
  ## Reload behavior
135
168
 
136
169
  Every root and imported asset has a stable wrapper:
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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"}
@@ -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.1",
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"