@tscircuit/core 0.0.1244 → 0.0.1246

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/index.d.ts CHANGED
@@ -78,6 +78,7 @@ type SimplifiedPcbTrace = Omit<SimplifiedPcbTrace$1, "connection_name" | "route"
78
78
  };
79
79
  type Obstacle = {
80
80
  obstacleId?: string;
81
+ componentId?: string;
81
82
  type: "rect";
82
83
  layers: string[];
83
84
  zLayers?: number[];
package/dist/index.js CHANGED
@@ -2729,15 +2729,17 @@ var getAxisAlignedRectFromRotatedRect = (rotatedRect) => {
2729
2729
  }
2730
2730
  return null;
2731
2731
  };
2732
- var getObstaclesFromCircuitJson = (soup, connMap) => {
2732
+ var getObstaclesFromCircuitJson = (circuitJson, connMap) => {
2733
2733
  const withNetId = (idList) => connMap ? idList.concat(
2734
2734
  idList.map((id) => connMap?.getNetConnectedToId(id)).filter(Boolean)
2735
2735
  ) : idList;
2736
2736
  const obstacles = [];
2737
- for (const element of soup) {
2737
+ for (const element of circuitJson) {
2738
+ const pcbComponentId = element.pcb_component_id ?? void 0;
2738
2739
  if (element.type === "pcb_smtpad") {
2739
2740
  if (element.shape === "circle") {
2740
2741
  obstacles.push({
2742
+ componentId: pcbComponentId,
2741
2743
  // @ts-ignore
2742
2744
  type: "oval",
2743
2745
  layers: [element.layer],
@@ -2751,6 +2753,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2751
2753
  });
2752
2754
  } else if (element.shape === "rect") {
2753
2755
  obstacles.push({
2756
+ componentId: pcbComponentId,
2754
2757
  type: "rect",
2755
2758
  layers: [element.layer],
2756
2759
  center: {
@@ -2771,6 +2774,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2771
2774
  const axisAlignedRect = getAxisAlignedRectFromRotatedRect(rotatedRect);
2772
2775
  const rect = axisAlignedRect ?? rotatedRect;
2773
2776
  obstacles.push({
2777
+ componentId: pcbComponentId,
2774
2778
  type: "rect",
2775
2779
  layers: [element.layer],
2776
2780
  center: rect.center,
@@ -2781,6 +2785,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2781
2785
  });
2782
2786
  } else if (element.shape === "pill" || element.shape === "rotated_pill") {
2783
2787
  obstacles.push({
2788
+ componentId: pcbComponentId,
2784
2789
  type: "rect",
2785
2790
  layers: [element.layer],
2786
2791
  center: {
@@ -2800,6 +2805,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2800
2805
  const minY = Math.min(...ys);
2801
2806
  const maxY = Math.max(...ys);
2802
2807
  obstacles.push({
2808
+ componentId: pcbComponentId,
2803
2809
  type: "rect",
2804
2810
  layers: [element.layer],
2805
2811
  center: {
@@ -2814,6 +2820,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2814
2820
  } else if (element.type === "pcb_keepout") {
2815
2821
  if (element.shape === "circle") {
2816
2822
  obstacles.push({
2823
+ componentId: pcbComponentId,
2817
2824
  // @ts-ignore
2818
2825
  type: "oval",
2819
2826
  layers: element.layers,
@@ -2827,6 +2834,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2827
2834
  });
2828
2835
  } else if (element.shape === "rect") {
2829
2836
  obstacles.push({
2837
+ componentId: pcbComponentId,
2830
2838
  type: "rect",
2831
2839
  layers: element.layers,
2832
2840
  center: {
@@ -2841,6 +2849,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2841
2849
  } else if (element.type === "pcb_cutout") {
2842
2850
  if (element.shape === "rect") {
2843
2851
  obstacles.push({
2852
+ componentId: pcbComponentId,
2844
2853
  type: "rect",
2845
2854
  layers: EVERY_LAYER,
2846
2855
  center: {
@@ -2861,6 +2870,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2861
2870
  );
2862
2871
  for (const rect of approximatingRects) {
2863
2872
  obstacles.push({
2873
+ componentId: pcbComponentId,
2864
2874
  type: "rect",
2865
2875
  layers: EVERY_LAYER,
2866
2876
  center: rect.center,
@@ -2875,6 +2885,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2875
2885
  });
2876
2886
  for (const rect of approximatingRects) {
2877
2887
  obstacles.push({
2888
+ componentId: pcbComponentId,
2878
2889
  type: "rect",
2879
2890
  layers: EVERY_LAYER,
2880
2891
  center: rect.center,
@@ -2887,6 +2898,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2887
2898
  } else if (element.type === "pcb_hole") {
2888
2899
  if (element.hole_shape === "oval") {
2889
2900
  obstacles.push({
2901
+ componentId: pcbComponentId,
2890
2902
  // @ts-ignore
2891
2903
  type: "oval",
2892
2904
  center: {
@@ -2899,6 +2911,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2899
2911
  });
2900
2912
  } else if (element.hole_shape === "pill" || element.hole_shape === "rotated_pill") {
2901
2913
  obstacles.push({
2914
+ componentId: pcbComponentId,
2902
2915
  type: "rect",
2903
2916
  layers: EVERY_LAYER,
2904
2917
  center: {
@@ -2912,6 +2925,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2912
2925
  });
2913
2926
  } else if (element.hole_shape === "rect") {
2914
2927
  obstacles.push({
2928
+ componentId: pcbComponentId,
2915
2929
  type: "rect",
2916
2930
  layers: EVERY_LAYER,
2917
2931
  center: {
@@ -2924,6 +2938,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2924
2938
  });
2925
2939
  } else if (element.hole_shape === "square") {
2926
2940
  obstacles.push({
2941
+ componentId: pcbComponentId,
2927
2942
  type: "rect",
2928
2943
  layers: EVERY_LAYER,
2929
2944
  center: {
@@ -2939,6 +2954,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2939
2954
  element.hole_shape === "round" || element.hole_shape === "circle"
2940
2955
  ) {
2941
2956
  obstacles.push({
2957
+ componentId: pcbComponentId,
2942
2958
  type: "rect",
2943
2959
  layers: EVERY_LAYER,
2944
2960
  center: {
@@ -2953,6 +2969,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2953
2969
  } else if (element.type === "pcb_plated_hole") {
2954
2970
  if (element.shape === "circle") {
2955
2971
  obstacles.push({
2972
+ componentId: pcbComponentId,
2956
2973
  // @ts-ignore
2957
2974
  type: "oval",
2958
2975
  layers: EVERY_LAYER,
@@ -2966,6 +2983,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2966
2983
  });
2967
2984
  } else if (element.shape === "circular_hole_with_rect_pad") {
2968
2985
  obstacles.push({
2986
+ componentId: pcbComponentId,
2969
2987
  // @ts-ignore
2970
2988
  type: "rect",
2971
2989
  layers: EVERY_LAYER,
@@ -2979,6 +2997,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2979
2997
  });
2980
2998
  } else if (element.shape === "oval") {
2981
2999
  obstacles.push({
3000
+ componentId: pcbComponentId,
2982
3001
  // @ts-ignore
2983
3002
  type: "oval",
2984
3003
  layers: EVERY_LAYER,
@@ -2992,6 +3011,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
2992
3011
  });
2993
3012
  } else if (element.shape === "pill") {
2994
3013
  obstacles.push({
3014
+ componentId: pcbComponentId,
2995
3015
  type: "rect",
2996
3016
  layers: EVERY_LAYER,
2997
3017
  center: {
@@ -3014,6 +3034,7 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
3014
3034
  const centerX = (minX + maxX) / 2;
3015
3035
  const centerY = (minY + maxY) / 2;
3016
3036
  obstacles.push({
3037
+ componentId: pcbComponentId,
3017
3038
  // @ts-ignore
3018
3039
  type: "rect",
3019
3040
  layers: EVERY_LAYER,
@@ -3054,12 +3075,18 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
3054
3075
  }),
3055
3076
  element.source_trace_id
3056
3077
  );
3057
- obstacles.push(...traceObstacles);
3078
+ obstacles.push(
3079
+ ...traceObstacles.map((obstacle) => ({
3080
+ ...obstacle,
3081
+ componentId: pcbComponentId
3082
+ }))
3083
+ );
3058
3084
  } else if (element.type === "pcb_via") {
3059
3085
  const netIsAssignable = Boolean(
3060
3086
  element.net_is_assignable ?? element.netIsAssignable
3061
3087
  );
3062
3088
  obstacles.push({
3089
+ componentId: pcbComponentId,
3063
3090
  type: "rect",
3064
3091
  layers: element.layers,
3065
3092
  center: {
@@ -11522,7 +11549,6 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
11522
11549
  *
11523
11550
  */
11524
11551
  initPorts(opts = {}) {
11525
- if (this.root?.schematicDisabled) return;
11526
11552
  this._inferredInternallyConnectedPinNames = [];
11527
11553
  const { config } = this;
11528
11554
  const portsToCreate = [];
@@ -21217,7 +21243,7 @@ import { identity as identity5 } from "transformation-matrix";
21217
21243
  var package_default = {
21218
21244
  name: "@tscircuit/core",
21219
21245
  type: "module",
21220
- version: "0.0.1243",
21246
+ version: "0.0.1245",
21221
21247
  types: "dist/index.d.ts",
21222
21248
  main: "dist/index.js",
21223
21249
  module: "dist/index.js",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.1244",
4
+ "version": "0.0.1246",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",