@needle-tools/engine 5.1.0-experimental.03e8105 → 5.1.0-experimental.08fa2ef

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 (54) hide show
  1. package/dist/{needle-engine.bundle-DF6ovbwD.min.js → needle-engine.bundle-6jp9Udrr.min.js} +2 -2
  2. package/dist/{needle-engine.bundle-BNqUjnSQ.js → needle-engine.bundle-CB0g67az.js} +9 -9
  3. package/dist/{needle-engine.bundle-Bt8ULD7E.umd.cjs → needle-engine.bundle-D5db5ZP1.umd.cjs} +3 -3
  4. package/dist/needle-engine.d.ts +6 -6
  5. package/dist/needle-engine.js +368 -368
  6. package/dist/needle-engine.min.js +1 -1
  7. package/dist/needle-engine.umd.cjs +1 -1
  8. package/lib/engine/api.d.ts +1 -1
  9. package/lib/engine/api.js +1 -1
  10. package/lib/engine/api.js.map +1 -1
  11. package/lib/engine/engine_init.js +2 -2
  12. package/lib/engine/engine_init.js.map +1 -1
  13. package/lib/engine/engine_license.d.ts +7 -7
  14. package/lib/engine/engine_license.js +70 -70
  15. package/lib/engine/engine_license.js.map +1 -1
  16. package/lib/engine/engine_networking_blob.js +3 -3
  17. package/lib/engine/engine_networking_blob.js.map +1 -1
  18. package/lib/engine/engine_utils_qrcode.js +2 -2
  19. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  20. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  21. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  22. package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
  23. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  24. package/lib/engine/webcomponents/needle-engine.js +2 -2
  25. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  26. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  27. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  28. package/lib/engine/xr/TempXRContext.js +2 -2
  29. package/lib/engine/xr/TempXRContext.js.map +1 -1
  30. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  31. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  32. package/package.json +1 -1
  33. package/plugins/common/license.js +4 -4
  34. package/plugins/dts-generator/dts.codegen.js +334 -0
  35. package/plugins/dts-generator/dts.scan.js +99 -0
  36. package/plugins/dts-generator/dts.writer.js +59 -0
  37. package/plugins/dts-generator/glb.discovery.js +279 -0
  38. package/plugins/dts-generator/glb.extractor.js +215 -0
  39. package/plugins/dts-generator/glb.reader.js +167 -0
  40. package/plugins/dts-generator/index.js +36 -0
  41. package/plugins/dts-generator/manifest.types.js +174 -0
  42. package/plugins/gltf-packer.mjs +1 -0
  43. package/plugins/vite/license.js +5 -9
  44. package/src/engine/api.ts +1 -1
  45. package/src/engine/engine_init.ts +2 -2
  46. package/src/engine/engine_license.ts +68 -68
  47. package/src/engine/engine_networking_blob.ts +3 -3
  48. package/src/engine/engine_utils_qrcode.ts +2 -2
  49. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  50. package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
  51. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  52. package/src/engine/webcomponents/needle-engine.ts +2 -2
  53. package/src/engine/xr/TempXRContext.ts +2 -2
  54. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"USDZExporter.js","sourceRoot":"","sources":["../../../../src/engine-components/export/usdz/USDZExporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"USDZExporter.js","sourceRoot":"","sources":["../../../../src/engine-components/export/usdz/USDZExporter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "5.1.0-experimental.03e8105",
3
+ "version": "5.1.0-experimental.08fa2ef",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -94,7 +94,7 @@ async function requestNeedleCloud(path, options) {
94
94
  * @param {DefaultOptions & {accessToken?:string, team:string|undefined}} opts
95
95
  */
96
96
  export async function replaceLicense(code, opts) {
97
- const index = code?.indexOf("_PQYikbj");
97
+ const index = code?.indexOf("_TqYlV");
98
98
  if (index >= 0) {
99
99
  const licenseResult = await resolveLicense(opts);
100
100
  if (!licenseResult) {
@@ -103,18 +103,18 @@ export async function replaceLicense(code, opts) {
103
103
  const end = code.indexOf(";", index);
104
104
  if (end >= 0) {
105
105
  const line = code.substring(index, end);
106
- const replaced = "_PQYikbj = \"" + licenseResult.type + "\"";
106
+ const replaced = "_TqYlV = \"" + licenseResult.type + "\"";
107
107
  code = code.replace(line, replaced);
108
108
  }
109
109
 
110
110
  // Also inject JWT if available
111
111
  if (licenseResult.jwt) {
112
- const jwtIndex = code.indexOf("_$QHon");
112
+ const jwtIndex = code.indexOf("_GYfnW");
113
113
  if (jwtIndex >= 0) {
114
114
  const jwtEnd = code.indexOf(";", jwtIndex);
115
115
  if (jwtEnd >= 0) {
116
116
  const jwtLine = code.substring(jwtIndex, jwtEnd);
117
- const jwtReplaced = "_$QHon = \"" + licenseResult.jwt + "\"";
117
+ const jwtReplaced = "_GYfnW = \"" + licenseResult.jwt + "\"";
118
118
  code = code.replace(jwtLine, jwtReplaced);
119
119
  }
120
120
  }
@@ -0,0 +1,334 @@
1
+ // @ts-check
2
+ /**
3
+ * Pure string generators — no I/O.
4
+ *
5
+ * Takes `BindingEntry[]` from dts.scan.js and produces:
6
+ * - `needle-bindings.gen.d.ts` (TypeScript ambient module augmentation)
7
+ * - `needle-html-data.json` (VS Code HTML custom data for data-bind-needle completions)
8
+ *
9
+ * Each scene node is emitted as a named type alias so VS Code hover shows
10
+ * the alias name + JSDoc summary rather than expanding the full object type:
11
+ *
12
+ * /** `Minimal/Cube` — MeshRenderer, BoxCollider *\/
13
+ * type $Minimal__Cube = { $object: THREE.Mesh; $components: { ... }; };
14
+ *
15
+ * interface SceneData {
16
+ * Minimal: { Minimal: { Cube: $Minimal__Minimal__Cube; }; }; };
17
+ * }
18
+ */
19
+
20
+ /** @typedef {import('./dts.scan.js').BindingEntry} BindingEntry */
21
+
22
+ /** Append `?view` to Needle Cloud asset URLs so the link opens the viewer. @param {string} url @returns {string} */
23
+ function addViewParam(url) {
24
+ if (!url.includes("cloud.needle.tools")) return url;
25
+ return url.includes("?") ? `${url}&view` : `${url}?view`;
26
+ }
27
+
28
+ /** @param {string} name @returns {string} */
29
+ function propKey(name) {
30
+ return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name) ? name : `"${name}"`;
31
+ }
32
+
33
+ /**
34
+ * Convert a node path like "Minimal/Cube_1/Child Of Cube" to a safe type alias name.
35
+ * @param {string} nodePath
36
+ * @returns {string}
37
+ */
38
+ function typeAliasName(nodePath) {
39
+ const safe = nodePath.replace(/[^a-zA-Z0-9]/g, "_");
40
+ return `$${safe}`;
41
+ }
42
+
43
+ /**
44
+ * @typedef {{
45
+ * threeType: string,
46
+ * components: Map<string, { isEngineComponent: boolean, fields: Map<string, Set<string>> }>,
47
+ * children: Map<string, TreeNode>
48
+ * }} TreeNode
49
+ */
50
+
51
+ /** @returns {TreeNode} */
52
+ function makeNode() {
53
+ return { threeType: `import("three").Object3D`, components: new Map(), children: new Map() };
54
+ }
55
+
56
+ /**
57
+ * Build a tree from BindingEntry[]. Each entry's nodePath (e.g. "UI/Camera/Target")
58
+ * defines where in the tree the node lives.
59
+ *
60
+ * @param {BindingEntry[]} entries
61
+ * @returns {Map<string, TreeNode>} Root-level nodes
62
+ */
63
+ function buildTree(entries) {
64
+ /** @type {Map<string, TreeNode>} */
65
+ const roots = new Map();
66
+
67
+ for (const { nodePath, componentName, fieldTypes, isEngineComponent, nodeThreeType } of entries) {
68
+ const parts = nodePath.split("/").filter(Boolean);
69
+ if (parts.length === 0) continue;
70
+
71
+ let map = roots;
72
+ /** @type {TreeNode | null} */
73
+ let node = null;
74
+ for (const part of parts) {
75
+ if (!map.has(part)) map.set(part, makeNode());
76
+ node = /** @type {TreeNode} */ (map.get(part));
77
+ map = node.children;
78
+ }
79
+ if (!node) continue;
80
+
81
+ node.threeType = nodeThreeType;
82
+
83
+ if (componentName) {
84
+ if (!node.components.has(componentName)) {
85
+ node.components.set(componentName, { isEngineComponent, fields: new Map() });
86
+ }
87
+ const comp = /** @type {{ isEngineComponent: boolean, fields: Map<string, Set<string>> }} */ (node.components.get(componentName));
88
+ for (const [field, tsType] of Object.entries(fieldTypes)) {
89
+ if (!comp.fields.has(field)) comp.fields.set(field, new Set());
90
+ /** @type {Set<string>} */ (comp.fields.get(field)).add(tsType);
91
+ }
92
+ }
93
+ }
94
+
95
+ return roots;
96
+ }
97
+
98
+ /**
99
+ * Compute the human-readable summary for a node (component names or Three.js type).
100
+ * @param {TreeNode} node
101
+ * @returns {string}
102
+ */
103
+ function nodeSummary(node) {
104
+ const threeShortType = node.threeType.replace(/import\("three"\)\./g, "THREE.");
105
+ const compNames = Array.from(node.components.keys()).filter(n => n !== "").sort();
106
+ return compNames.length > 0 ? compNames.join(", ") : threeShortType;
107
+ }
108
+
109
+ /**
110
+ * Recursively collect type alias declarations for all nodes in the tree.
111
+ * Emits one `type $Alias = { ... }` per node, with JSDoc summary.
112
+ *
113
+ * @param {string} _key
114
+ * @param {TreeNode} node
115
+ * @param {string} nodePath Full path e.g. "Minimal/Cube"
116
+ * @param {string[]} aliases Accumulator — lines pushed in bottom-up order
117
+ */
118
+ function collectTypeAliases(_key, node, nodePath, aliases) {
119
+ // Recurse into children first (bottom-up so aliases are defined before use)
120
+ for (const [childKey, childNode] of Array.from(node.children.entries()).sort(([a], [b]) => a.localeCompare(b))) {
121
+ collectTypeAliases(childKey, childNode, `${nodePath}/${childKey}`, aliases);
122
+ }
123
+
124
+ const threeShortType = node.threeType.replace(/import\("three"\)\./g, "THREE.");
125
+ const compEntries = Array.from(node.components.entries())
126
+ .filter(([n]) => n !== "")
127
+ .sort(([a], [b]) => a.localeCompare(b));
128
+ const summary = nodeSummary(node);
129
+
130
+ const alias = typeAliasName(nodePath);
131
+
132
+ // Emit as an interface so each child property can carry JSDoc
133
+ const lines = [];
134
+ lines.push(`/** \`${nodePath}\` — ${summary} */`);
135
+ lines.push(`interface ${alias} {`);
136
+ lines.push(` $object: ${threeShortType};`);
137
+
138
+ if (compEntries.length > 0) {
139
+ const compParts = compEntries.map(([compName, { isEngineComponent, fields }]) => {
140
+ if (isEngineComponent) {
141
+ return `${propKey(compName)}: NE.${compName}`;
142
+ } else {
143
+ const fieldParts = [`enabled: boolean`];
144
+ for (const [field, types] of Array.from(fields.entries()).sort(([a], [b]) => a.localeCompare(b))) {
145
+ fieldParts.push(`${field}: ${Array.from(types).join(" | ")}`);
146
+ }
147
+ return `${propKey(compName)}: { ${fieldParts.join("; ")} }`;
148
+ }
149
+ });
150
+ lines.push(` /** Needle Engine components on this node. Access via \`getComponent()\`, \`addComponent()\`, or \`findObjectOfType()\` / \`findObjectsOfType()\`. */`);
151
+ lines.push(` $components: { ${compParts.join("; ")} };`);
152
+ }
153
+
154
+ for (const [childKey, childNode] of Array.from(node.children.entries()).sort(([a], [b]) => a.localeCompare(b))) {
155
+ const childAlias = typeAliasName(`${nodePath}/${childKey}`);
156
+ const childSummary = nodeSummary(childNode);
157
+ lines.push(` /** ${childSummary} */`);
158
+ lines.push(` ${propKey(childKey)}: ${childAlias};`);
159
+ }
160
+
161
+ lines.push(`}`);
162
+
163
+ aliases.push(lines.join("\n"));
164
+ }
165
+
166
+ /**
167
+ * Recursively render a tree node as indented JSDoc lines.
168
+ * @param {string} key
169
+ * @param {TreeNode} node
170
+ * @param {number} depth
171
+ * @param {string[]} lines
172
+ */
173
+ /** @param {string} threeType @returns {string} */
174
+ function nodeEmoji(threeType) {
175
+ if (threeType.includes("Scene")) return "🎬";
176
+ if (threeType.includes("SkinnedMesh")) return "🦴";
177
+ if (threeType.includes("Mesh")) return "⊞";
178
+ if (threeType.includes("PerspectiveCamera") || threeType.includes("OrthographicCamera") || threeType.includes("Camera")) return "👁";
179
+ if (threeType.includes("Light")) return "💡";
180
+ return "";
181
+ }
182
+
183
+ function buildTreeDoc(key, node, depth, lines) {
184
+ const indent = " ".repeat(depth);
185
+ const hasComponents = Array.from(node.components.keys()).some(n => n !== "");
186
+ const summary = nodeSummary(node);
187
+ const emoji = nodeEmoji(node.threeType);
188
+ const prefix = emoji ? `${emoji} ` : "";
189
+ // Bold + components for nodes that have something actionable; plain name for empty containers
190
+ const label = hasComponents ? `${prefix}**${key}** — ${summary}` : `${prefix}${key}`;
191
+ lines.push(` * ${indent}- ${label}`);
192
+ for (const [childKey, childNode] of Array.from(node.children.entries()).sort(([a], [b]) => a.localeCompare(b))) {
193
+ buildTreeDoc(childKey, childNode, depth + 1, lines);
194
+ }
195
+ }
196
+
197
+ /**
198
+ * Generate the `needle-bindings.gen.d.ts` content from binding entries.
199
+ *
200
+ * @param {BindingEntry[]} entries
201
+ * @returns {string}
202
+ */
203
+ export function generateDts(entries) {
204
+ /** @type {Map<string, BindingEntry[]>} */
205
+ const byGlb = new Map();
206
+ /** @type {Map<string, string>} glbKey → source path/URL */
207
+ const glbSrcMap = new Map();
208
+ /** @type {Map<string, Set<string>>} glbKey → set of source files referencing it */
209
+ const glbSourceFilesMap = new Map();
210
+ for (const entry of entries) {
211
+ const k = entry.glbKey;
212
+ if (!byGlb.has(k)) byGlb.set(k, []);
213
+ /** @type {BindingEntry[]} */ (byGlb.get(k)).push(entry);
214
+ if (entry.glbSrc && !glbSrcMap.has(k)) glbSrcMap.set(k, entry.glbSrc);
215
+ if (entry.glbSourceFiles?.length) {
216
+ if (!glbSourceFilesMap.has(k)) glbSourceFilesMap.set(k, new Set());
217
+ for (const sf of entry.glbSourceFiles) /** @type {Set<string>} */ (glbSourceFilesMap.get(k)).add(sf);
218
+ }
219
+ }
220
+
221
+ const header = [
222
+ `// Auto-generated by @needle-tools/engine — do not edit`,
223
+ `// Regenerated on each vite dev-server start and GLB change.`,
224
+ `// Augments the base "needle-bindings" declaration in @needle-tools/engine.`,
225
+ `import type * as NE from "../../lib/needle-engine.js";`,
226
+ `import type * as THREE from "three";`,
227
+ ];
228
+
229
+ /** @type {string[]} */
230
+ const aliases = [];
231
+ /** @type {string[]} */
232
+ const interfaceLines = [
233
+ `declare module "needle-bindings" {`,
234
+ ` interface SceneData {`,
235
+ ];
236
+
237
+ for (const [glbKey, glbEntries] of Array.from(byGlb.entries()).sort(([a], [b]) => a.localeCompare(b))) {
238
+ const roots = buildTree(glbEntries);
239
+ if (roots.size === 0) continue;
240
+
241
+ // Collect type aliases for all nodes in this GLB
242
+ for (const [rootKey, rootNode] of Array.from(roots.entries()).sort(([a], [b]) => a.localeCompare(b))) {
243
+ collectTypeAliases(rootKey, rootNode, `${glbKey}/${rootKey}`, aliases);
244
+ }
245
+
246
+ // Emit SceneData property references with hierarchy JSDoc
247
+ const glbSrc = glbSrcMap.get(glbKey);
248
+ const sourceFiles = glbSourceFilesMap.get(glbKey);
249
+ const treeDocLines = [` * GLB/glTF scene file`];
250
+ const glbSrcLink = glbSrc
251
+ ? (glbSrc.startsWith("http://") || glbSrc.startsWith("https://")
252
+ ? ` — [${glbSrc}](${addViewParam(glbSrc)})`
253
+ : ` — \`${glbSrc}\``)
254
+ : "";
255
+ treeDocLines.push(` * \`${glbKey}\`${glbSrcLink}`);
256
+ if (sourceFiles?.size) {
257
+ treeDocLines.push(` *`);
258
+ treeDocLines.push(` * **Referenced from:**`);
259
+ for (const sf of Array.from(sourceFiles).sort()) {
260
+ treeDocLines.push(` * - \`${sf}\``);
261
+ }
262
+ }
263
+ treeDocLines.push(` *`);
264
+ treeDocLines.push(` * ---`);
265
+ treeDocLines.push(` *`);
266
+ for (const [rootKey, rootNode] of Array.from(roots.entries()).sort(([a], [b]) => a.localeCompare(b))) {
267
+ buildTreeDoc(rootKey, rootNode, 0, treeDocLines);
268
+ }
269
+ interfaceLines.push(` /**\n ${treeDocLines.join("\n ")}\n */`);
270
+ interfaceLines.push(` $${glbKey}: {`);
271
+ for (const [rootKey, rootNode] of Array.from(roots.entries()).sort(([a], [b]) => a.localeCompare(b))) {
272
+ const alias = typeAliasName(`${glbKey}/${rootKey}`);
273
+ const summary = nodeSummary(rootNode);
274
+ interfaceLines.push(` /** ${summary} */`);
275
+ interfaceLines.push(` ${propKey(rootKey)}: ${alias};`);
276
+ }
277
+ interfaceLines.push(` };`);
278
+ }
279
+
280
+ interfaceLines.push(` }`);
281
+ interfaceLines.push(`}`);
282
+
283
+ return [...header, ``, ...aliases, ``, ...interfaceLines, ``].join("\n");
284
+ }
285
+
286
+ /**
287
+ * Generate VS Code HTML custom data JSON for `data-bind-needle` completions.
288
+ *
289
+ * @param {BindingEntry[]} entries
290
+ * @returns {string} JSON string
291
+ */
292
+ export function generateHtmlCustomData(entries) {
293
+ const pairs = Array.from(
294
+ new Set(entries.filter(e => e.componentName).map(e => `${e.nodePath}/${e.componentName}`))
295
+ ).sort();
296
+
297
+ const values = pairs.map(pair => {
298
+ const slash = pair.lastIndexOf("/");
299
+ const nodePath = pair.slice(0, slash);
300
+ const compName = pair.slice(slash + 1);
301
+ return {
302
+ name: pair,
303
+ description: `Bind to the **${compName}** component on node \`${nodePath}\`.`,
304
+ };
305
+ });
306
+
307
+ const data = {
308
+ version: 1.1,
309
+ globalAttributes: [
310
+ {
311
+ name: "data-bind-needle",
312
+ description: {
313
+ kind: "markdown",
314
+ value: [
315
+ "Binds this HTML element to a Needle Engine scene component.",
316
+ "",
317
+ "**Format:** `NodePath/ComponentName`",
318
+ "",
319
+ "The Needle Engine runtime will associate this element with the specified",
320
+ "component instance in the live scene graph.",
321
+ "",
322
+ "**Example:**",
323
+ "```html",
324
+ '<div data-bind-needle="Camera/OrbitControls">',
325
+ "```",
326
+ ].join("\n"),
327
+ },
328
+ values,
329
+ },
330
+ ],
331
+ };
332
+
333
+ return JSON.stringify(data, null, 2) + "\n";
334
+ }
@@ -0,0 +1,99 @@
1
+ // @ts-check
2
+ /**
3
+ * Scans GLB/glTF files and returns structured binding data.
4
+ *
5
+ * Combines file discovery, JSON reading, component extraction, and manifest
6
+ * type resolution into the `BindingEntry[]` array consumed by codegen.
7
+ */
8
+
9
+ import { resolveEntrypointGlbs, collectSceneFiles, glbFriendlyName } from './glb.discovery.js';
10
+ import { readGlbJsonChunk, readGltfJsonFile, readRemoteGlbJsonChunk } from './glb.reader.js';
11
+ import { extractComponentBindings, inferTsType } from './glb.extractor.js';
12
+ import { componentsManifest } from './manifest.types.js';
13
+ import { needleLog } from '../vite/logging.js';
14
+
15
+ const PLUGIN = "needle:dts-generator";
16
+
17
+ /**
18
+ * @typedef {Object} BindingEntry
19
+ * @property {string} nodeName
20
+ * @property {string} nodePath Full hierarchy path e.g. "Scene/Cube/Child_Of_Cube"
21
+ * @property {string} componentName
22
+ * @property {Record<string, string>} fieldTypes field name → TS type string
23
+ * @property {boolean} isEngineComponent true if the component exists in components.needle.json
24
+ * @property {string} nodeThreeType Three.js type of the parent node (e.g. `import("three").Mesh`)
25
+ * @property {string} glbKey Friendly identifier derived from the GLB name (e.g. "myScene", "MaterialXNodes")
26
+ * @property {string} glbSrc Project-relative path or URL of the GLB file
27
+ * @property {string[]} [glbSourceFiles] Source files (relative to project root) that reference this GLB
28
+ */
29
+
30
+ /**
31
+ * Scan GLB/glTF files and return structured binding data.
32
+ * Uses entrypoint GLBs (from index.html, gen.js, or source files) when available,
33
+ * otherwise falls back to scanning all GLBs in assetsDir.
34
+ *
35
+ * @param {string} assetsDir Absolute path to the assets directory
36
+ * @param {string} [projectRoot] Absolute path to the project root (enables entrypoint detection)
37
+ * @param {string} [codegenDir] Absolute path to the codegen directory
38
+ * @returns {Promise<BindingEntry[]>}
39
+ */
40
+ export async function scanBindings(assetsDir, projectRoot, codegenDir) {
41
+ /** @type {Array<{path: string, type: "glb"|"gltf", remote?: boolean, key?: string}>} */
42
+ const files = /** @type {any} */ ((projectRoot ? resolveEntrypointGlbs(projectRoot, assetsDir, codegenDir) : null)
43
+ ?? collectSceneFiles(assetsDir));
44
+
45
+ needleLog(PLUGIN, `Discovered ${files.length} GLB(s):\n${files.map(f => ` ${f.path}`).join("\n")}`);
46
+
47
+ /** @type {BindingEntry[]} */
48
+ const entries = [];
49
+
50
+ for (const file of files) {
51
+ let json = /** @type {Record<string, unknown> | null} */ (null);
52
+ let contentDispositionFilename = /** @type {string | null} */ (null);
53
+
54
+ if (file.remote) {
55
+ needleLog(PLUGIN, `Fetching remote GLB: ${file.path}`);
56
+ const result = await readRemoteGlbJsonChunk(file.path);
57
+ if (!result) { needleLog(PLUGIN, `Skipped (fetch failed): ${file.path}`, "warn"); continue; }
58
+ json = result.json;
59
+ contentDispositionFilename = result.filename;
60
+ needleLog(PLUGIN, `Remote GLB ok — Content-Disposition: ${contentDispositionFilename ?? "(none)"}`);
61
+ } else {
62
+ json = file.type === "glb" ? readGlbJsonChunk(file.path) : readGltfJsonFile(file.path);
63
+ }
64
+ if (!json) continue;
65
+
66
+ // Derive a friendly identifier for this GLB (used as SceneData key).
67
+ // For local files: basename without extension.
68
+ // For remote: Content-Disposition filename > last non-generic URL segment.
69
+ const localPathForName = file.remote ? file.path : (
70
+ projectRoot
71
+ ? file.path.replace(projectRoot + "/", "").replace(projectRoot + "\\", "")
72
+ : file.path
73
+ );
74
+ const glbKey = glbFriendlyName(localPathForName, contentDispositionFilename);
75
+
76
+ for (const { nodeName, nodePath, componentName, fields, nodeThreeType } of extractComponentBindings(json)) {
77
+ /** @type {Record<string, string>} */
78
+ const fieldTypes = {};
79
+ if (componentName) {
80
+ const manifestFields = componentsManifest.get(componentName);
81
+ if (manifestFields) {
82
+ for (const [k, tsType] of manifestFields) {
83
+ fieldTypes[k] = tsType;
84
+ }
85
+ } else {
86
+ for (const [k, v] of Object.entries(fields)) {
87
+ fieldTypes[k] = inferTsType(v);
88
+ }
89
+ }
90
+ }
91
+ const isEngineComponent = componentName ? componentsManifest.has(componentName) : false;
92
+ const glbSrc = file.remote ? file.path : localPathForName;
93
+ const glbSourceFiles = /** @type {string[] | undefined} */ (/** @type {any} */ (file).sourceFiles);
94
+ entries.push({ nodeName, nodePath, componentName, fieldTypes, isEngineComponent, nodeThreeType, glbKey, glbSrc, glbSourceFiles });
95
+ }
96
+ }
97
+
98
+ return entries;
99
+ }
@@ -0,0 +1,59 @@
1
+ // @ts-check
2
+ /**
3
+ * File writer — the only module that performs I/O writes.
4
+ *
5
+ * Orchestrates scanning, codegen, and writes the output files.
6
+ * Returns false if content was already up-to-date (no write performed).
7
+ */
8
+
9
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
10
+ import { join, dirname } from 'path';
11
+ import { scanBindings } from './dts.scan.js';
12
+ import { generateDts, generateHtmlCustomData } from './dts.codegen.js';
13
+
14
+ /**
15
+ * Scan assets and write `needle-bindings.d.ts` and `needle-html-data.json`
16
+ * to the output directory.
17
+ * Returns the number of bindings written, or `false` if content was already up-to-date.
18
+ *
19
+ * @param {object} opts
20
+ * @param {string} opts.assetsDir Absolute path to assets directory
21
+ * @param {string} opts.outputPath Absolute path to write needle-bindings.d.ts
22
+ * @param {string} [opts.projectRoot] Project root — enables entrypoint GLB detection
23
+ * @param {string} [opts.codegenDir] Codegen directory — used to find gen.js and write needle-html-data.json (no binding copy written here)
24
+ * @returns {Promise<number | false>}
25
+ */
26
+ export async function generateBindingsDts({ assetsDir, outputPath, projectRoot, codegenDir }) {
27
+ const entries = await scanBindings(assetsDir, projectRoot, codegenDir);
28
+ const content = generateDts(entries);
29
+ const htmlContent = generateHtmlCustomData(entries);
30
+
31
+ mkdirSync(dirname(outputPath), { recursive: true });
32
+
33
+ let dtsChanged = false;
34
+ try {
35
+ const existing = existsSync(outputPath) ? readFileSync(outputPath, "utf8") : "";
36
+ if (existing !== content) {
37
+ writeFileSync(outputPath, content, "utf8");
38
+ dtsChanged = true;
39
+ }
40
+ } catch (_e) {
41
+ writeFileSync(outputPath, content, "utf8");
42
+ dtsChanged = true;
43
+ }
44
+
45
+ const htmlDataPath = join(dirname(outputPath), "needle-html-data.json");
46
+ try {
47
+ const existingHtml = existsSync(htmlDataPath) ? readFileSync(htmlDataPath, "utf8") : "";
48
+ if (existingHtml !== htmlContent) {
49
+ writeFileSync(htmlDataPath, htmlContent, "utf8");
50
+ }
51
+ } catch (_e) {
52
+ writeFileSync(htmlDataPath, htmlContent, "utf8");
53
+ }
54
+
55
+ if (!dtsChanged) return false;
56
+ const nodeCount = new Set(entries.map(e => e.nodeName)).size;
57
+ const bindingCount = new Set(entries.filter(e => e.componentName).map(e => `${e.nodeName}/${e.componentName}`)).size;
58
+ return bindingCount > 0 ? bindingCount : nodeCount;
59
+ }