@bian-womp/spark-workbench 0.2.23 → 0.2.24

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 (55) hide show
  1. package/lib/cjs/index.cjs +12 -7
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/cjs/src/adapters/cli/index.d.ts +1 -1
  4. package/lib/cjs/src/adapters/cli/index.d.ts.map +1 -1
  5. package/lib/cjs/src/core/AbstractWorkbench.d.ts +3 -3
  6. package/lib/cjs/src/core/AbstractWorkbench.d.ts.map +1 -1
  7. package/lib/cjs/src/core/InMemoryWorkbench.d.ts +4 -3
  8. package/lib/cjs/src/core/InMemoryWorkbench.d.ts.map +1 -1
  9. package/lib/cjs/src/core/contracts.d.ts +4 -3
  10. package/lib/cjs/src/core/contracts.d.ts.map +1 -1
  11. package/lib/cjs/src/misc/WorkbenchStudio.d.ts +1 -1
  12. package/lib/cjs/src/misc/WorkbenchStudio.d.ts.map +1 -1
  13. package/lib/cjs/src/misc/context/WorkbenchContext.d.ts +2 -1
  14. package/lib/cjs/src/misc/context/WorkbenchContext.d.ts.map +1 -1
  15. package/lib/cjs/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
  16. package/lib/cjs/src/misc/layout.d.ts +5 -5
  17. package/lib/cjs/src/misc/layout.d.ts.map +1 -1
  18. package/lib/cjs/src/misc/mapping.d.ts +2 -1
  19. package/lib/cjs/src/misc/mapping.d.ts.map +1 -1
  20. package/lib/cjs/src/runtime/AbstractGraphRunner.d.ts +2 -2
  21. package/lib/cjs/src/runtime/AbstractGraphRunner.d.ts.map +1 -1
  22. package/lib/cjs/src/runtime/IGraphRunner.d.ts +2 -2
  23. package/lib/cjs/src/runtime/IGraphRunner.d.ts.map +1 -1
  24. package/lib/cjs/src/runtime/LocalGraphRunner.d.ts +2 -2
  25. package/lib/cjs/src/runtime/LocalGraphRunner.d.ts.map +1 -1
  26. package/lib/cjs/src/runtime/RemoteGraphRunner.d.ts +2 -2
  27. package/lib/cjs/src/runtime/RemoteGraphRunner.d.ts.map +1 -1
  28. package/lib/esm/index.js +12 -7
  29. package/lib/esm/index.js.map +1 -1
  30. package/lib/esm/src/adapters/cli/index.d.ts +1 -1
  31. package/lib/esm/src/adapters/cli/index.d.ts.map +1 -1
  32. package/lib/esm/src/core/AbstractWorkbench.d.ts +3 -3
  33. package/lib/esm/src/core/AbstractWorkbench.d.ts.map +1 -1
  34. package/lib/esm/src/core/InMemoryWorkbench.d.ts +4 -3
  35. package/lib/esm/src/core/InMemoryWorkbench.d.ts.map +1 -1
  36. package/lib/esm/src/core/contracts.d.ts +4 -3
  37. package/lib/esm/src/core/contracts.d.ts.map +1 -1
  38. package/lib/esm/src/misc/WorkbenchStudio.d.ts +1 -1
  39. package/lib/esm/src/misc/WorkbenchStudio.d.ts.map +1 -1
  40. package/lib/esm/src/misc/context/WorkbenchContext.d.ts +2 -1
  41. package/lib/esm/src/misc/context/WorkbenchContext.d.ts.map +1 -1
  42. package/lib/esm/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
  43. package/lib/esm/src/misc/layout.d.ts +5 -5
  44. package/lib/esm/src/misc/layout.d.ts.map +1 -1
  45. package/lib/esm/src/misc/mapping.d.ts +2 -1
  46. package/lib/esm/src/misc/mapping.d.ts.map +1 -1
  47. package/lib/esm/src/runtime/AbstractGraphRunner.d.ts +2 -2
  48. package/lib/esm/src/runtime/AbstractGraphRunner.d.ts.map +1 -1
  49. package/lib/esm/src/runtime/IGraphRunner.d.ts +2 -2
  50. package/lib/esm/src/runtime/IGraphRunner.d.ts.map +1 -1
  51. package/lib/esm/src/runtime/LocalGraphRunner.d.ts +2 -2
  52. package/lib/esm/src/runtime/LocalGraphRunner.d.ts.map +1 -1
  53. package/lib/esm/src/runtime/RemoteGraphRunner.d.ts +2 -2
  54. package/lib/esm/src/runtime/RemoteGraphRunner.d.ts.map +1 -1
  55. package/package.json +4 -4
package/lib/cjs/index.cjs CHANGED
@@ -2837,7 +2837,7 @@ const WorkbenchCanvas = React.forwardRef(({ showValues, toString, toElement, get
2837
2837
  })
2838
2838
  .map((n) => n.id);
2839
2839
  // Detect handle updates (ids/length changes) for targeted debug
2840
- const toIds = (arr) => Array.isArray(arr) ? arr.map((h) => h?.id) : [];
2840
+ const toIds = (arr) => Array.isArray(arr) ? arr.map((h) => (h && typeof h === "object" && "id" in h ? String(h.id) : "")).filter(Boolean) : [];
2841
2841
  const handlesEqual = (a, b) => {
2842
2842
  const aIds = toIds(a);
2843
2843
  const bIds = toIds(b);
@@ -3109,7 +3109,8 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
3109
3109
  URL.revokeObjectURL(url);
3110
3110
  }
3111
3111
  catch (err) {
3112
- alert(String(err?.message ?? err));
3112
+ const message = err instanceof Error ? err.message : String(err);
3113
+ alert(message);
3113
3114
  }
3114
3115
  }, [wb, runner]);
3115
3116
  const onUploadPicked = React.useCallback(async (e) => {
@@ -3167,7 +3168,8 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
3167
3168
  runAutoLayout();
3168
3169
  }
3169
3170
  catch (err) {
3170
- alert(String(err?.message ?? err));
3171
+ const message = err instanceof Error ? err.message : String(err);
3172
+ alert(message);
3171
3173
  }
3172
3174
  finally {
3173
3175
  // reset input so same file can be picked again
@@ -3417,8 +3419,9 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
3417
3419
  return pre;
3418
3420
  if (typeof value === "object" &&
3419
3421
  value !== null &&
3422
+ "url" in value &&
3420
3423
  typeof value.url === "string") {
3421
- const title = value.title || "";
3424
+ const title = ("title" in value && typeof value.title === "string") ? value.title : "";
3422
3425
  const url = String(value.url || "");
3423
3426
  // value.ts handles data URL formatting
3424
3427
  return title || url.slice(0, 32) + (url.length > 32 ? "…" : "");
@@ -3431,7 +3434,7 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
3431
3434
  const round4 = (n) => Math.round(Number(n) * 10000) / 10000;
3432
3435
  if (typeId === "base.vec3" && Array.isArray(value)) {
3433
3436
  const a = value;
3434
- return [round4(a[0] ?? 0), round4(a[1] ?? 0), round4(a[2] ?? 0)].join(",");
3437
+ return [round4(Number(a[0] ?? 0)), round4(Number(a[1] ?? 0)), round4(Number(a[2] ?? 0))].join(",");
3435
3438
  }
3436
3439
  const stringifyRounded = (v) => {
3437
3440
  try {
@@ -3482,7 +3485,8 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
3482
3485
  runner.launch(wb.export(), { engine: kind });
3483
3486
  }
3484
3487
  catch (err) {
3485
- alert(String(err?.message ?? err));
3488
+ const message = err instanceof Error ? err.message : String(err);
3489
+ alert(message);
3486
3490
  }
3487
3491
  }, disabled: !engine, title: engine ? "Start engine" : "Select an engine first", children: [jsxRuntime.jsx(react$1.PlayIcon, { size: 14, weight: "fill" }), jsxRuntime.jsx("span", { className: "font-medium ml-1", children: "Start" })] })), jsxRuntime.jsx("button", { className: "border border-gray-300 rounded px-2 py-1.5", onClick: runAutoLayout, children: "Auto Layout" }), jsxRuntime.jsx("button", { className: "ml-2 border border-gray-300 rounded px-2 py-1.5", onClick: () => canvasRef.current?.fitView?.(), title: "Fit View", children: "Fit View" }), jsxRuntime.jsx("button", { className: "ml-2 border border-gray-300 rounded px-2 py-1.5", onClick: downloadGraph, children: "Download Graph" }), jsxRuntime.jsx("button", { className: "ml-2 border border-gray-300 rounded px-2 py-1.5", onClick: async () => {
3488
3492
  try {
@@ -3510,7 +3514,8 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
3510
3514
  URL.revokeObjectURL(url);
3511
3515
  }
3512
3516
  catch (err) {
3513
- alert(String(err?.message ?? err));
3517
+ const message = err instanceof Error ? err.message : String(err);
3518
+ alert(message);
3514
3519
  }
3515
3520
  }, children: "Download Snapshot" }), jsxRuntime.jsx("input", { ref: uploadInputRef, type: "file", accept: "application/json,.json", className: "hidden", onChange: onUploadPicked }), jsxRuntime.jsx("button", { className: "ml-2 border border-gray-300 rounded px-2 py-1.5", onClick: triggerUpload, children: "Upload Graph/Snapshot" }), jsxRuntime.jsxs("label", { className: "ml-2 flex items-center gap-1", children: [jsxRuntime.jsx("input", { type: "checkbox", checked: debug, onChange: (e) => onDebugChange(e.target.checked) }), jsxRuntime.jsx("span", { children: "Debug events" })] }), jsxRuntime.jsxs("label", { className: "ml-2 flex items-center gap-1", children: [jsxRuntime.jsx("input", { type: "checkbox", checked: showValues, onChange: (e) => onShowValuesChange(e.target.checked) }), jsxRuntime.jsx("span", { children: "Show values in nodes" })] })] }), jsxRuntime.jsxs("div", { className: "flex flex-1 min-h-0", children: [jsxRuntime.jsx("div", { className: "flex-1 min-w-0", children: jsxRuntime.jsx(WorkbenchCanvas, { ref: canvasRef, showValues: showValues, toString: toString, toElement: toElement, getDefaultNodeSize: overrides?.getDefaultNodeSize }) }), jsxRuntime.jsx(Inspector, { setInput: setInput, debug: debug, autoScroll: autoScroll, hideWorkbench: hideWorkbench, onAutoScrollChange: onAutoScrollChange, onHideWorkbenchChange: onHideWorkbenchChange, toString: toString, toElement: toElement, contextPanel: overrides?.contextPanel })] })] }));
3516
3521
  }