@aura3d/cli 4.3.6 → 4.5.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.
@@ -18,7 +18,7 @@
18
18
  * `a3d:` guidance comments (never rewritten into a broken named import).
19
19
  */
20
20
  import { threeMappingFor } from "./mappings.js";
21
- import { parseThreeSource } from "./parse.js";
21
+ import { matchingParen, parseThreeSource } from "./parse.js";
22
22
  const UNSAFE_BARE_NAME = /^(?:Error|Map|Set|Promise|RegExp|Date|Number|String|Boolean|Array|Object)$/;
23
23
  const ENGINE_ROOT = "@aura3d/engine";
24
24
  const CONTROLS_SUBPATH = "@aura3d/engine/controls";
@@ -412,6 +412,76 @@ function controlsCtor(name, args) {
412
412
  comment: `a3d: ctor is (cameraLike?, options) — ${dropped.length > 0 ? `dropped args (${dropped.join(", ")}) — ` : ""}dom wiring goes through options`
413
413
  };
414
414
  }
415
+ // ── Mutable math classes vs option-field primitives ───────────────────────────
416
+ // `@aura3d/math/three` Color/Euler/Vector3 are classes, but Aura3D option fields take "#rrggbb" strings and
417
+ // [x, y, z] tuples. The class is right at a standalone site (`const c = new THREE.Color(...); c.setHex(...)`);
418
+ // the primitive is right where the value is consumed as an option.
419
+ /** Constructs whose emitted form lives in `@aura3d/math/three`; they take the classes as arguments. */
420
+ const MATH_THREE_CONSTRUCTS = new Set([
421
+ "Vector2", "Vector3", "Vector4", "Quaternion", "Euler", "Matrix3", "Matrix4", "Box3", "Sphere", "Plane", "Ray", "Frustum", "Color", "Triangle"
422
+ ]);
423
+ const PRIMITIVE_CLASS_OPEN = /\bnew\s+(?:THREE\.)?(Color|Euler|Vector3)\s*\(/;
424
+ function colorPrimitive(args) {
425
+ const trimmed = args.trim();
426
+ if (trimmed === "")
427
+ return '"#ffffff"';
428
+ const literal = hex(trimmed);
429
+ if (literal)
430
+ return literal;
431
+ // Non-literal (a variable, an r/g/b triple, an HSL string): let the class do the conversion.
432
+ return `\`#\${new Color(${trimmed}).getHexString()}\``;
433
+ }
434
+ function eulerPrimitive(args) {
435
+ const parts = splitArgs(args);
436
+ const order = parts.length > 3 ? parts[3] : undefined;
437
+ const xyz = `[${[0, 1, 2].map((i) => parts[i] ?? "0").join(", ")}]`;
438
+ if (order === undefined || /^['"]XYZ['"]$/.test(order))
439
+ return xyz;
440
+ return `${xyz} /* a3d: Euler order ${order} dropped — node rotation is XYZ; compose a quaternion for other orders */`;
441
+ }
442
+ function vector3Primitive(args) {
443
+ const parts = splitArgs(args);
444
+ return `[${[0, 1, 2].map((i) => parts[i] ?? "0").join(", ")}]`;
445
+ }
446
+ function primitiveFor(name, args) {
447
+ if (name === "Color")
448
+ return colorPrimitive(args);
449
+ if (name === "Euler")
450
+ return eulerPrimitive(args);
451
+ return vector3Primitive(args);
452
+ }
453
+ /** Rewrites every `new (THREE.)Color/Euler/Vector3(...)` in `text` to its option-field primitive, innermost first. */
454
+ function inlineMathPrimitives(text) {
455
+ const m = PRIMITIVE_CLASS_OPEN.exec(text);
456
+ if (!m)
457
+ return text;
458
+ const open = m.index + m[0].length - 1;
459
+ const close = matchingParen(text, open);
460
+ if (close < 0)
461
+ return text;
462
+ const inner = inlineMathPrimitives(text.slice(open + 1, close));
463
+ return text.slice(0, m.index) + primitiveFor(m[1] ?? "", inner) + inlineMathPrimitives(text.slice(close + 1));
464
+ }
465
+ /** A block comment may not contain another one: drop complete nested comments, break any stray terminator. */
466
+ function commentSafe(text) {
467
+ return text.replace(/\/\*[\s\S]*?\*\//g, "").replace(/\*\//g, "* /").replace(/\s{2,}/g, " ").trim();
468
+ }
469
+ // Option sites that are visible without the surrounding construct: `scene.background = new THREE.Color(...)` and
470
+ // object-literal keys. `const color = new THREE.Color(...)` has neither a leading `.` nor a `:` after the name,
471
+ // so a variable keeps the class.
472
+ const PRIMITIVE_CONTEXT_KEYS = {
473
+ Color: { assign: "background|color|emissive|specular|sheenColor|groundColor", key: "background|color|emissive|specularColor|sheenColor|groundColor" },
474
+ Vector3: { assign: "(?!)", key: "position|scale|target|direction|center|size|offset" },
475
+ Euler: { assign: "(?!)", key: "rotation|euler" }
476
+ };
477
+ function primitiveOptionContexts(source, construct, needle) {
478
+ const keys = PRIMITIVE_CONTEXT_KEYS[construct];
479
+ if (!keys)
480
+ return [];
481
+ const escaped = needle.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
482
+ const re = new RegExp(`(?:\\.(?:${keys.assign})\\s*=(?!=)|\\b(?:${keys.key})\\s*:)\\s*${escaped}`, "g");
483
+ return [...source.matchAll(re)].map((m) => m[0]);
484
+ }
415
485
  const EMIT_ARGS = {
416
486
  PerspectiveCamera: (args) => mapPerspectiveCamera(args, "camera.perspective"),
417
487
  OrthographicCamera: (args) => mapOrthographicCamera(args, "camera.orthographic"),
@@ -447,11 +517,17 @@ const EMIT_ARGS = {
447
517
  Scene: (args) => (args.trim() === "" ? { call: "scene()" } : null),
448
518
  Group: (args) => (args.trim() === "" ? { call: "group()" } : null),
449
519
  RoomEnvironment: () => ({ call: "environments.neutral()" }),
450
- Color: (args) => {
451
- const mapped = hex(args.trim());
452
- return mapped ? { call: mapped } : null;
453
- },
520
+ // The math classes below come from `@aura3d/math/three`: mutable, three-compatible, same constructor arguments,
521
+ // so the source arguments pass through verbatim at standalone sites (`const c = new THREE.Color(...)`).
522
+ // Color, Euler and Vector3 are classes now, but Aura3D option fields (scene.background, light and fog colour,
523
+ // node position/rotation) take a hex string or a tuple. Where the codemod can see an option site (an argument of a
524
+ // construct it rewrites, or `.background =` / `color:` style keys) it emits the primitive instead; see
525
+ // `inlineMathPrimitives` and `primitiveOptionContexts`. Any other site keeps the class and says how to cross over.
526
+ Color: (args) => ({ call: `new Color(${args})`, comment: "a3d: mutable Color class; Aura3D options take a hex string, pass `#${c.getHexString()}`" }),
527
+ Euler: (args) => ({ call: `new Euler(${args})`, comment: "a3d: mutable Euler class; node rotation takes [x, y, z], pass [e.x, e.y, e.z]" }),
454
528
  Vector2: (args) => ({ call: `new Vector2(${args})` }),
529
+ Vector3: (args) => ({ call: `new Vector3(${args})`, comment: "a3d: mutable Vector3 class; node specs take [x, y, z], pass v.toArray()" }),
530
+ Triangle: (args) => ({ call: `new Triangle(${args})` }),
455
531
  Vector4: (args) => ({ call: `new Vector4(${args})` }),
456
532
  Quaternion: (args) => ({ call: `new Quaternion(${args})`, comment: args.trim() === "" ? undefined : undefined }),
457
533
  Matrix3: (args) => ({ call: `new Matrix3(${args})` }),
@@ -537,11 +613,16 @@ export function emitMigratedSource(source) {
537
613
  const replacement = emitCall(mapping, c);
538
614
  const needle = `new THREE.${c.construct}(${c.rawArgs ?? c.args})`;
539
615
  const needleBare = `new ${c.construct}(${c.rawArgs ?? c.args})`;
540
- if (source.includes(needle)) {
541
- rewrites.push({ match: needle, replacement });
542
- }
543
- else if (source.includes(needleBare)) {
544
- rewrites.push({ match: needleBare, replacement });
616
+ const used = source.includes(needle) ? needle : source.includes(needleBare) ? needleBare : undefined;
617
+ if (used) {
618
+ // An option site the codemod can see (`.background =`, `color:` ...) takes the primitive, not the class.
619
+ if (PRIMITIVE_CONTEXT_KEYS[c.construct]) {
620
+ const primitive = primitiveFor(c.construct, inlineMathPrimitives(c.args));
621
+ for (const site of primitiveOptionContexts(source, c.construct, used)) {
622
+ rewrites.push({ match: site, replacement: site.slice(0, site.length - used.length) + primitive });
623
+ }
624
+ }
625
+ rewrites.push({ match: used, replacement });
545
626
  }
546
627
  if (c.construct === "WebGLRenderer" || c.construct === "WebGPURenderer")
547
628
  sawRenderer = true;
@@ -606,6 +687,17 @@ export function emitMigratedSource(source) {
606
687
  for (const { match, replacement } of [...rewrites].sort((a, b) => b.match.length - a.match.length)) {
607
688
  code = code.replaceAll(match, replacement);
608
689
  }
690
+ // Color/Euler/Vector3 only need their `@aura3d/math/three` import where the class form survived; a file whose
691
+ // every use became an option primitive must not import an unused name.
692
+ const mathThreeImports = neededImports.get("@aura3d/math/three");
693
+ if (mathThreeImports) {
694
+ for (const name of ["Color", "Euler", "Vector3"]) {
695
+ if (mathThreeImports.has(name) && !new RegExp(`\\bnew\\s+${name}\\s*\\(`).test(code))
696
+ mathThreeImports.delete(name);
697
+ }
698
+ if (mathThreeImports.size === 0)
699
+ neededImports.delete("@aura3d/math/three");
700
+ }
609
701
  // three/app method folds — only when a renderer construct was seen so
610
702
  // non-three `.render(`/`.setSize(` calls are never touched.
611
703
  if (sawRenderer) {
@@ -722,39 +814,27 @@ function rowFor(c, mapping) {
722
814
  return { construct: c.construct, line: c.line, mapping: mapping.mapping, note };
723
815
  }
724
816
  function emitCall(mapping, c) {
725
- const args = c.args;
817
+ // Arguments of a construct that is not itself a `@aura3d/math/three` class are option values: a nested
818
+ // Color/Euler/Vector3 becomes the hex string or tuple that option takes, never a class instance.
819
+ const args = MATH_THREE_CONSTRUCTS.has(mapping.construct) ? c.args : inlineMathPrimitives(c.args);
726
820
  const emitter = EMIT_ARGS[mapping.construct];
727
821
  if (emitter) {
728
822
  const out = emitter(args);
729
823
  if (out) {
730
- return `${out.call}${out.comment ? ` /* ${out.comment} */` : ""}`;
824
+ return `${out.call}${out.comment ? ` /* ${commentSafe(out.comment)} */` : ""}`;
731
825
  }
732
826
  }
733
827
  // Covered constructs get `a3d:` guidance, not `TODO(a3d-migrate)` — the
734
828
  // TODO marker is reserved for pending/unmapped rows.
735
- const todo = ` /* a3d: ${c.construct} — ${args ? `map args (${args}); ` : ""}${mapping.note} */`;
829
+ const todo = ` /* ${commentSafe(`a3d: ${c.construct} — ${args ? `map args (${args}); ` : ""}${mapping.note}`)} */`;
736
830
  if (args.trim() === "" && mapping.emit !== "new") {
737
831
  // no args to mis-map — emit the clean factory plus a short guidance note
738
832
  return `${mapping.target}() /* a3d: ${mapping.note} */`;
739
833
  }
740
834
  if (mapping.emit === "new") {
741
- return `new ${mapping.target}()${args ? ` /* a3d: original args (${args}) — ${mapping.note} */` : ` /* a3d: ${mapping.note} */`}`;
742
- }
743
- switch (mapping.construct) {
744
- case "Euler": {
745
- // Euler emits a tuple literal, valid as an expression.
746
- const xyz = /,\s*['"]?XYZ['"]?\s*$/.test(args)
747
- ? args.replace(/,\s*['"]?XYZ['"]?\s*$/, "").trim()
748
- : args;
749
- return `[${xyz}]${args && xyz !== args ? "" : todo}`;
750
- }
751
- case "Vector3":
752
- return `[${args}]${args.trim() === "" ? " /* a3d: AuraVec3 */" : ""}`;
753
- case "Color":
754
- return `(${args}) /* a3d: ${mapping.target} */`;
755
- default:
756
- return `${mapping.target}()${todo}`;
835
+ return `new ${mapping.target}()${args ? ` /* ${commentSafe(`a3d: original args (${args}) — ${mapping.note}`)} */` : ` /* a3d: ${mapping.note} */`}`;
757
836
  }
837
+ return `${mapping.target}()${todo}`;
758
838
  }
759
839
  function pushComment(map, line, text) {
760
840
  const list = map.get(line) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/emit.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,13 @@
12
12
  * `// TODO(a3d-migrate): parityPending …` comment naming the planned API and
13
13
  * owning lane. A row graduates from "pending" to "approximate|exact" only
14
14
  * when the target is exported and backed by a real GPU path (WS-3.4).
15
+ * The table currently has no pending rows (PRD beat-three.js M1); the class is
16
+ * kept for the next reserved target.
17
+ *
18
+ * Fidelity (PRD beat-three.js contract 3.6): "exact" additionally requires a
19
+ * `test` fixture — the same source run against real three.js r185 (goldens in
20
+ * tests/fixtures/migrate-three/goldens.json) and against the Aura3D surface the
21
+ * row names — enforced by tests/unit/aura3d-cli/migrate-three-fidelity.test.ts.
15
22
  */
16
23
  export interface ThreeMapping {
17
24
  /** Construct key as produced by parse (e.g. "BoxGeometry", "GLTFLoader.load"). */
@@ -37,6 +44,14 @@ export interface ThreeMapping {
37
44
  readonly emit?: "call" | "new" | "comment";
38
45
  readonly mapping: "exact" | "approximate" | "none" | "pending";
39
46
  readonly note: string;
47
+ /**
48
+ * Before/after fixture, `tests/fixtures/migrate-three/cases[.extra].mjs#<construct>`.
49
+ * Required on every `exact` row (tests/unit/aura3d-cli/migrate-three-fidelity.test.ts):
50
+ * the case runs against real three.js (recorded in goldens.json) and against the
51
+ * Aura3D surface the row names, and must agree within the stated tolerance.
52
+ * Optional evidence on approximate rows whose semantics the fixture bounds.
53
+ */
54
+ readonly test?: string;
40
55
  }
41
56
  export declare const THREE_TO_A3D_MAPPINGS: readonly ThreeMapping[];
42
57
  export declare function threeMappingFor(construct: string): ThreeMapping | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/mappings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAQD,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EA0RxD,CAAC;AAIF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE3E"}
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/migrate-three/mappings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EA0RxD,CAAC;AAIF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE3E"}