@tscircuit/cli 0.1.1022 → 0.1.1023

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/cli/main.js CHANGED
@@ -71664,7 +71664,7 @@ var registerStaticAssetLoaders = () => {
71664
71664
  // cli/main.ts
71665
71665
  var import_perfect_cli = __toESM2(require_dist2(), 1);
71666
71666
  // package.json
71667
- var version = "0.1.1021";
71667
+ var version = "0.1.1022";
71668
71668
  var package_default = {
71669
71669
  name: "@tscircuit/cli",
71670
71670
  version,
@@ -177327,6 +177327,45 @@ var registerSimulate = (program3) => {
177327
177327
  });
177328
177328
  };
177329
177329
 
177330
+ // lib/shared/camera-presets.ts
177331
+ function distance5(a3, b3) {
177332
+ return Math.sqrt((a3[0] - b3[0]) ** 2 + (a3[1] - b3[1]) ** 2 + (a3[2] - b3[2]) ** 2);
177333
+ }
177334
+ function repositionCamera(cam, dir) {
177335
+ const dist = distance5(cam.camPos, cam.lookAt);
177336
+ const len = Math.sqrt(dir[0] ** 2 + dir[1] ** 2 + dir[2] ** 2);
177337
+ const nx2 = dir[0] / len;
177338
+ const ny2 = dir[1] / len;
177339
+ const nz = dir[2] / len;
177340
+ return {
177341
+ camPos: [
177342
+ cam.lookAt[0] + nx2 * dist,
177343
+ cam.lookAt[1] + ny2 * dist,
177344
+ cam.lookAt[2] + nz * dist
177345
+ ],
177346
+ lookAt: cam.lookAt,
177347
+ fov: cam.fov
177348
+ };
177349
+ }
177350
+ var CAMERA_PRESETS = {
177351
+ "top-down": (cam) => repositionCamera(cam, [0.0001, 1, -0.01]),
177352
+ "top-left-corner": (cam) => repositionCamera(cam, [0.7, 1.2, -0.8]),
177353
+ "top-left": (cam) => repositionCamera(cam, [1, 1.2, 0]),
177354
+ "top-right-corner": (cam) => repositionCamera(cam, [-0.7, 1.2, -0.8]),
177355
+ "top-right": (cam) => repositionCamera(cam, [-1, 1.2, 0]),
177356
+ "left-sideview": (cam) => repositionCamera(cam, [1, 0.05, 0]),
177357
+ "right-sideview": (cam) => repositionCamera(cam, [-1, 0.05, 0]),
177358
+ front: (cam) => repositionCamera(cam, [0, 0.05, -1]),
177359
+ "top-center-angled": (cam) => repositionCamera(cam, [0, 1, -1])
177360
+ };
177361
+ var CAMERA_PRESET_NAMES = Object.keys(CAMERA_PRESETS);
177362
+ function applyCameraPreset(preset, cam) {
177363
+ if (!(preset in CAMERA_PRESETS)) {
177364
+ throw new Error(`Unknown camera preset "${preset}". Valid presets: ${CAMERA_PRESET_NAMES.join(", ")}`);
177365
+ }
177366
+ return CAMERA_PRESETS[preset](cam);
177367
+ }
177368
+
177330
177369
  // lib/shared/snapshot-project.ts
177331
177370
  import fs61 from "node:fs";
177332
177371
  import path61 from "node:path";
@@ -177378,8 +177417,12 @@ var snapshotProject = async ({
177378
177417
  onError = (msg) => console.error(msg),
177379
177418
  onSuccess = (msg) => console.log(msg),
177380
177419
  platformConfig: platformConfig2,
177381
- createDiff = false
177420
+ createDiff = false,
177421
+ cameraPreset
177382
177422
  } = {}) => {
177423
+ if (cameraPreset) {
177424
+ threeD = true;
177425
+ }
177383
177426
  const projectDir = process.cwd();
177384
177427
  const ignore = [
177385
177428
  ...DEFAULT_IGNORED_PATTERNS,
@@ -177454,7 +177497,10 @@ var snapshotProject = async ({
177454
177497
  if (!(glbBuffer instanceof ArrayBuffer)) {
177455
177498
  throw new Error("Expected ArrayBuffer from convertCircuitJsonToGltf with glb format");
177456
177499
  }
177457
- const cameraOptions = getBestCameraPosition(circuitJson);
177500
+ let cameraOptions = getBestCameraPosition(circuitJson);
177501
+ if (cameraPreset) {
177502
+ cameraOptions = applyCameraPreset(cameraPreset, cameraOptions);
177503
+ }
177458
177504
  png3d = await renderGLTFToPNGBufferFromGLBBuffer2(glbBuffer, cameraOptions);
177459
177505
  } catch (error) {
177460
177506
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -177551,7 +177597,11 @@ Run with --update to fix.`);
177551
177597
 
177552
177598
  // cli/snapshot/register.ts
177553
177599
  var registerSnapshot = (program3) => {
177554
- program3.command("snapshot").argument("[path]", "Path to file, directory, or glob pattern (e.g., 'examples/**/*.tsx')").description("Generate schematic and PCB snapshots (add --3d for 3d preview)").option("-u, --update", "Update snapshots on disk").option("--force-update", "Force update snapshots even if they match").option("--3d", "Generate 3d preview snapshots").option("--pcb-only", "Generate only PCB snapshots").option("--schematic-only", "Generate only schematic snapshots").option("--disable-parts-engine", "Disable the parts engine").option("--ci", "Enable CI mode with snapshot diff artifacts").option("--test", "Enable test mode with snapshot diff artifacts").action(async (target, options) => {
177600
+ program3.command("snapshot").argument("[path]", "Path to file, directory, or glob pattern (e.g., 'examples/**/*.tsx')").description("Generate schematic and PCB snapshots (add --3d for 3d preview)").option("-u, --update", "Update snapshots on disk").option("--force-update", "Force update snapshots even if they match").option("--3d", "Generate 3d preview snapshots").option("--pcb-only", "Generate only PCB snapshots").option("--schematic-only", "Generate only schematic snapshots").option("--disable-parts-engine", "Disable the parts engine").option("--camera-preset <preset>", `Camera angle preset for 3D snapshots (implies --3d). Valid presets: ${CAMERA_PRESET_NAMES.join(", ")}`).option("--ci", "Enable CI mode with snapshot diff artifacts").option("--test", "Enable test mode with snapshot diff artifacts").action(async (target, options) => {
177601
+ if (options.cameraPreset && !CAMERA_PRESET_NAMES.includes(options.cameraPreset)) {
177602
+ console.error(`Unknown camera preset "${options.cameraPreset}". Valid presets: ${CAMERA_PRESET_NAMES.join(", ")}`);
177603
+ process.exit(1);
177604
+ }
177555
177605
  await snapshotProject({
177556
177606
  update: options.update ?? false,
177557
177607
  threeD: options["3d"] ?? false,
@@ -177560,6 +177610,7 @@ var registerSnapshot = (program3) => {
177560
177610
  forceUpdate: options.forceUpdate ?? false,
177561
177611
  filePaths: target ? [target] : [],
177562
177612
  platformConfig: options.disablePartsEngine ? { partsEngineDisabled: true } : undefined,
177613
+ cameraPreset: options.cameraPreset,
177563
177614
  createDiff: (options.ci ?? false) || (options.test ?? false),
177564
177615
  onExit: (code) => process.exit(code),
177565
177616
  onError: (msg) => console.error(msg),
package/dist/lib/index.js CHANGED
@@ -60432,7 +60432,7 @@ var getNodeHandler = (winterSpec, { port, middleware = [] }) => {
60432
60432
  }));
60433
60433
  };
60434
60434
  // package.json
60435
- var version = "0.1.1021";
60435
+ var version = "0.1.1022";
60436
60436
  var package_default = {
60437
60437
  name: "@tscircuit/cli",
60438
60438
  version,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/cli",
3
- "version": "0.1.1022",
3
+ "version": "0.1.1023",
4
4
  "main": "dist/cli/main.js",
5
5
  "exports": {
6
6
  ".": "./dist/cli/main.js",