@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.
- package/dist/{needle-engine.bundle-DF6ovbwD.min.js → needle-engine.bundle-6jp9Udrr.min.js} +2 -2
- package/dist/{needle-engine.bundle-BNqUjnSQ.js → needle-engine.bundle-CB0g67az.js} +9 -9
- package/dist/{needle-engine.bundle-Bt8ULD7E.umd.cjs → needle-engine.bundle-D5db5ZP1.umd.cjs} +3 -3
- package/dist/needle-engine.d.ts +6 -6
- package/dist/needle-engine.js +368 -368
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/api.d.ts +1 -1
- package/lib/engine/api.js +1 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_init.js +2 -2
- package/lib/engine/engine_init.js.map +1 -1
- package/lib/engine/engine_license.d.ts +7 -7
- package/lib/engine/engine_license.js +70 -70
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_networking_blob.js +3 -3
- package/lib/engine/engine_networking_blob.js.map +1 -1
- package/lib/engine/engine_utils_qrcode.js +2 -2
- package/lib/engine/engine_utils_qrcode.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.js +2 -2
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine/xr/TempXRContext.js +2 -2
- package/lib/engine/xr/TempXRContext.js.map +1 -1
- package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
- package/package.json +1 -1
- package/plugins/common/license.js +4 -4
- package/plugins/dts-generator/dts.codegen.js +334 -0
- package/plugins/dts-generator/dts.scan.js +99 -0
- package/plugins/dts-generator/dts.writer.js +59 -0
- package/plugins/dts-generator/glb.discovery.js +279 -0
- package/plugins/dts-generator/glb.extractor.js +215 -0
- package/plugins/dts-generator/glb.reader.js +167 -0
- package/plugins/dts-generator/index.js +36 -0
- package/plugins/dts-generator/manifest.types.js +174 -0
- package/plugins/gltf-packer.mjs +1 -0
- package/plugins/vite/license.js +5 -9
- package/src/engine/api.ts +1 -1
- package/src/engine/engine_init.ts +2 -2
- package/src/engine/engine_license.ts +68 -68
- package/src/engine/engine_networking_blob.ts +3 -3
- package/src/engine/engine_utils_qrcode.ts +2 -2
- package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
- package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
- package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
- package/src/engine/webcomponents/needle-engine.ts +2 -2
- package/src/engine/xr/TempXRContext.ts +2 -2
- package/src/engine-components/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.
|
|
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("
|
|
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 = "
|
|
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("
|
|
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 = "
|
|
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
|
+
}
|