diff --git a/lib/convertCircuitJsonToReadableNetlist.ts b/lib/convertCircuitJsonToReadableNetlist.ts index 35de3f8..0994dc9 100644 --- a/lib/convertCircuitJsonToReadableNetlist.ts +++ b/lib/convertCircuitJsonToReadableNetlist.ts @@ -1,4 +1,4 @@ -import { su } from "@tscircuit/soup-util" +import { su } from "@tscircuit/circuit-json-util" import type { AnyCircuitElement, CircuitJson, @@ -37,16 +37,15 @@ export const convertCircuitJsonToReadableNetlist = ( if (component.ftype === "simple_resistor") { componentDescription = `${component.display_resistance}${ - footprint ? ` ${footprint}` : ""} resistor` + footprint ? ` ${footprint}` : "" + } resistor` } else if (component.ftype === "simple_capacitor") { componentDescription = `${component.display_capacitance}${ - footprint ? ` ${footprint}` : ""} capacitor` + footprint ? ` ${footprint}` : "" + } capacitor` } else if (component.ftype === "simple_chip") { const manufacturerPartNumber = component.manufacturer_part_number - componentDescription = [ - manufacturerPartNumber, - footprint, - ] + componentDescription = [manufacturerPartNumber, footprint] .filter(Boolean) .join(", ") } else { diff --git a/lib/generateNetName.ts b/lib/generateNetName.ts index 4aaab36..e7abbf2 100644 --- a/lib/generateNetName.ts +++ b/lib/generateNetName.ts @@ -1,4 +1,4 @@ -import { su } from "@tscircuit/soup-util" +import { su } from "@tscircuit/circuit-json-util" import type { AnyCircuitElement, AnySourceComponent } from "circuit-json" import { getReadableNameForPin } from "./getReadableNameForPin" import { scorePhrase } from "./scorePhrase" diff --git a/lib/getReadableNameForPin.ts b/lib/getReadableNameForPin.ts index 0aa7d4b..cf05e35 100644 --- a/lib/getReadableNameForPin.ts +++ b/lib/getReadableNameForPin.ts @@ -1,4 +1,4 @@ -import { su } from "@tscircuit/soup-util" +import { su } from "@tscircuit/circuit-json-util" import type { AnyCircuitElement, CircuitJson, diff --git a/package-lock.json b/package-lock.json index decbf57..814b606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,28 +1,34 @@ { "name": "circuit-json-to-readable-netlist", - "version": "0.0.5", + "version": "0.0.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "circuit-json-to-readable-netlist", - "version": "0.0.5", + "version": "0.0.12", "dependencies": { - "@tscircuit/core": "^0.0.286", - "@tscircuit/soup-util": "^0.0.41", - "circuit-json-to-connectivity-map": "^0.0.17" + "@tscircuit/circuit-json-util": "^0.0.47" }, "devDependencies": { "@biomejs/biome": "^1.9.4", - "@types/bun": "latest", - "@types/react": "^19.0.2", - "circuit-json": "^0.0.124", + "@tscircuit/circuit-json-util": "^0.0.47", + "@tscircuit/core": "^0.0.401", + "@tscircuit/math-utils": "^0.0.18", + "@tscircuit/props": "^0.0.178", + "@types/bun": "^1.2.13", + "@types/react": "18", + "circuit-json": "^0.0.170", + "circuit-json-to-connectivity-map": "^0.0.17", "debug": "^4.4.0", - "react": "^18.3.1", + "react": "18", "tsup": "^8.3.5" }, "peerDependencies": { - "typescript": "^5.7.2" + "@tscircuit/circuit-json-util": "*", + "circuit-json": "*", + "circuit-json-to-connectivity-map": "*", + "typescript": "^5.0.0" } }, "node_modules/@biomejs/biome": { @@ -689,6 +695,7 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/@lume/kiwi/-/kiwi-0.4.4.tgz", "integrity": "sha512-ie0YTKgiZqD4TXlJ4eUbfi4UEoKs6YlLRYNTfPm5eUXwfudTBmPRs7Qcxz2SWKDpVTwThv3sWG6zwtyAA0nPpw==", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/@pkgjs/parseargs": { @@ -968,47 +975,84 @@ "win32" ] }, + "node_modules/@tscircuit/capacity-autorouter": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/@tscircuit/capacity-autorouter/-/capacity-autorouter-0.0.71.tgz", + "integrity": "sha512-OlzPSGxZVGbX8SwQk3ReS5y/WW0uVCHKmyrIAnJVb3foF4gY1WCZC261WfOUtHEY4FJUsSM7tUck282bCUtfCA==", + "dev": true, + "peer": true, + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "object-hash": "^3.0.0" + }, + "peerDependencies": { + "typescript": "^5.7.3" + } + }, + "node_modules/@tscircuit/checks": { + "version": "0.0.52", + "resolved": "https://registry.npmjs.org/@tscircuit/checks/-/checks-0.0.52.tgz", + "integrity": "sha512-vPHwaHdjdeJlD9bcBl2krb5StRCLhh1ueKOgLOdBjAtM75BGNffHnxiwvOJH3jDzeJrh2XIwMJEJTmuK84AQZA==", + "dev": true, + "peer": true, + "peerDependencies": { + "@tscircuit/math-utils": "*", + "circuit-json": "*", + "circuit-json-to-connectivity-map": "*", + "typescript": "^5.5.3" + } + }, + "node_modules/@tscircuit/circuit-json-util": { + "version": "0.0.47", + "resolved": "https://registry.npmjs.org/@tscircuit/circuit-json-util/-/circuit-json-util-0.0.47.tgz", + "integrity": "sha512-IUEPGJT5WcDo7Eudtgqs8Ia+zzBWtFIuuLtUguYMBHnnt037CKBStpaGGGDCLzRq2Bmsf4ynxMN3Sb0JWGsz4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "parsel-js": "^1.1.2" + }, + "peerDependencies": { + "circuit-json": "*", + "transformation-matrix": "*", + "zod": "*" + } + }, "node_modules/@tscircuit/core": { - "version": "0.0.286", - "resolved": "https://registry.npmjs.org/@tscircuit/core/-/core-0.0.286.tgz", - "integrity": "sha512-ib4Yg0yx7tbdGsq76tpwqV4FpM5oZEqXC/idC7cUeOPwuv5/R6HkHnNkgQC2ZIqirTxEG/tjmc6V/nRcizjIIQ==", + "version": "0.0.401", + "resolved": "https://registry.npmjs.org/@tscircuit/core/-/core-0.0.401.tgz", + "integrity": "sha512-Z4Epv3GHMwjvsfQ3jPua+E1H1NvoJkyGLBMEC2vku9kTF4yBixyKGiVqZAK1I6lQUQE4w8qjygnqyRtRtFwTkg==", + "dev": true, "dependencies": { "@lume/kiwi": "^0.4.3", - "@tscircuit/footprinter": "^0.0.97", - "@tscircuit/infgrid-ijump-astar": "^0.0.33", - "@tscircuit/math-utils": "^0.0.9", - "@tscircuit/props": "^0.0.136", - "@tscircuit/schematic-autolayout": "^0.0.6", - "@tscircuit/soup-util": "^0.0.41", - "circuit-json": "^0.0.134", - "circuit-json-to-connectivity-map": "^0.0.17", - "format-si-unit": "^0.0.2", + "css-select": "^5.1.0", + "format-si-unit": "^0.0.3", "nanoid": "^5.0.7", "performance-now": "^2.1.0", "react-reconciler": "^0.31.0", "react-reconciler-18": "npm:react-reconciler@0.29.2", - "schematic-symbols": "^0.0.113", "transformation-matrix": "^2.16.1", "zod": "^3.23.8" }, "peerDependencies": { + "@tscircuit/capacity-autorouter": "*", + "@tscircuit/checks": "*", + "@tscircuit/circuit-json-util": "*", + "@tscircuit/footprinter": "*", + "@tscircuit/infgrid-ijump-astar": "*", + "@tscircuit/math-utils": "*", + "@tscircuit/props": "*", + "@tscircuit/schematic-autolayout": "*", + "circuit-json": "*", + "circuit-json-to-connectivity-map": "*", + "schematic-symbols": "*", "typescript": "^5.0.0" } }, - "node_modules/@tscircuit/core/node_modules/circuit-json": { - "version": "0.0.134", - "resolved": "https://registry.npmjs.org/circuit-json/-/circuit-json-0.0.134.tgz", - "integrity": "sha512-guGLYrvducP6hquR/kyTA+3tOfvpo9vb7e42fUqukpcnbdq/irzxrbbukHSy4Op9MlqjdASKekjnBUmg8xO2pQ==", - "license": "ISC", - "dependencies": { - "nanoid": "^5.0.7", - "zod": "^3.23.6" - } - }, "node_modules/@tscircuit/core/node_modules/react": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -1019,6 +1063,7 @@ "version": "0.31.0", "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.31.0.tgz", "integrity": "sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ==", + "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.25.0" @@ -1035,6 +1080,7 @@ "version": "0.29.2", "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", + "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", @@ -1051,6 +1097,7 @@ "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -1060,7 +1107,9 @@ "version": "0.0.97", "resolved": "https://registry.npmjs.org/@tscircuit/footprinter/-/footprinter-0.0.97.tgz", "integrity": "sha512-LeqjpXqPwR++kcshlfe0E3IOsv0Y9BVRjIllDaHFA2OM+gJ91z/SS3CdweXB+qtF4t9G+8MLKf4nU5L1HDGjmg==", + "dev": true, "license": "ISC", + "peer": true, "dependencies": { "@tscircuit/mm": "^0.0.8", "zod": "^3.23.8" @@ -1072,12 +1121,15 @@ "node_modules/@tscircuit/infgrid-ijump-astar": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/@tscircuit/infgrid-ijump-astar/-/infgrid-ijump-astar-0.0.33.tgz", - "integrity": "sha512-tmX4Esp+HqyIGCUD43steVUH8pKRuyBNs21r4NlApGGLu+K1XSrK9FinhVJyMiEsuwJdajLnMTzmVt8vSYSafA==" + "integrity": "sha512-tmX4Esp+HqyIGCUD43steVUH8pKRuyBNs21r4NlApGGLu+K1XSrK9FinhVJyMiEsuwJdajLnMTzmVt8vSYSafA==", + "dev": true, + "peer": true }, "node_modules/@tscircuit/layout": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@tscircuit/layout/-/layout-0.0.29.tgz", "integrity": "sha512-3V1SikE147UT/ag8/BRX5oBjYc6H0ZdV+7Et+ljp8fMyQy2P9EMbNKjS0yaXI1SSNgxfnEmDWqImw1JB0oWeXg==", + "dev": true, "license": "ISC", "peer": true, "dependencies": { @@ -1097,6 +1149,7 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/@tscircuit/manual-edit-events/-/manual-edit-events-0.0.6.tgz", "integrity": "sha512-PLgy+/Dsw1YcnNVNqfieNGTNIaRKRJ70Jt2LcSMljwaBOtsiOwtdzj24xCYO9XzJUZc7opKytShMlx863PehTQ==", + "dev": true, "license": "ISC", "peer": true, "dependencies": { @@ -1104,9 +1157,10 @@ } }, "node_modules/@tscircuit/math-utils": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@tscircuit/math-utils/-/math-utils-0.0.9.tgz", - "integrity": "sha512-sPzfXndijet8z29X6f5vnSZddiso2tRg7m6rB+268bVj60mxnxUMD14rKuMlLn6n84fMOpD/X7pRTZUfi6M+Tg==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@tscircuit/math-utils/-/math-utils-0.0.18.tgz", + "integrity": "sha512-P45v7V/BiVZZjXTUzjWSUsy0M8GpI5o6d+JWhPWE5+JwI/sYZARuLT4e1xzV7LaavEX4GQ0NKG9hKN48xTZJsw==", + "dev": true, "peerDependencies": { "typescript": "^5.0.0" } @@ -1115,14 +1169,17 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/@tscircuit/mm/-/mm-0.0.8.tgz", "integrity": "sha512-nl7nxE7AhARbKuobflI0LUzoir7+wJyvwfPw6bzA/O0Q3YTcH3vBkU/Of+V/fp6ht+AofiCXj7YAH9E446138Q==", + "dev": true, + "peer": true, "peerDependencies": { "typescript": "^5.0.0" } }, "node_modules/@tscircuit/props": { - "version": "0.0.136", - "resolved": "https://registry.npmjs.org/@tscircuit/props/-/props-0.0.136.tgz", - "integrity": "sha512-YC0T8S+U95IIu+734JsIKpIFKm9pEC3imULYk/9WZoIgCNoiAPcLHnqiVnFYHQFPc0KgT6xXCgWer8/guAU0xw==", + "version": "0.0.178", + "resolved": "https://registry.npmjs.org/@tscircuit/props/-/props-0.0.178.tgz", + "integrity": "sha512-SXvw/VzdsEpdcN5m8o29ztg+00p2d4rSO864sak+gp+37x13khX3wM26+NdmImA8SH/6BfPO9/5eSYWiejKPig==", + "dev": true, "license": "ISC", "peerDependencies": { "@tscircuit/layout": "*", @@ -1135,6 +1192,8 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/@tscircuit/schematic-autolayout/-/schematic-autolayout-0.0.6.tgz", "integrity": "sha512-34cQxtlSylBKyHkzaMBCynaWJgN9c/mWm7cz63StTYIafKmfFs383K8Xoc4QX8HXCvVrHYl1aK15onZua9MxeA==", + "dev": true, + "peer": true, "dependencies": { "@tscircuit/soup-util": "^0.0.38", "transformation-matrix": "^2.16.1" @@ -1144,7 +1203,9 @@ "version": "0.0.38", "resolved": "https://registry.npmjs.org/@tscircuit/soup-util/-/soup-util-0.0.38.tgz", "integrity": "sha512-GdcuFxk+qnJZv+eI7ZoJ1MJEseFgRyaztMtQ/OXA2SUnxyPEH0UTy9vkhKTm+8GTePryEgdXcc65TgUyrr44ww==", + "dev": true, "license": "ISC", + "peer": true, "dependencies": { "parsel-js": "^1.1.2" }, @@ -1158,7 +1219,9 @@ "version": "0.0.41", "resolved": "https://registry.npmjs.org/@tscircuit/soup-util/-/soup-util-0.0.41.tgz", "integrity": "sha512-47JKWBUKkRVHhad0HhBbdOJxB6v/eiac46beiKRBMlJqiZ1gPGI276v9iZfpF7c4hXR69cURcgiwuA5vowrFEg==", + "dev": true, "license": "ISC", + "peer": true, "dependencies": { "parsel-js": "^1.1.2" }, @@ -1169,13 +1232,13 @@ } }, "node_modules/@types/bun": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.2.0.tgz", - "integrity": "sha512-5N1JqdahfpBlAv4wy6svEYcd/YfO2GNrbL95JOmFx8nkE6dbK4R0oSE5SpBA4vBRqgrOUAXF8Dpiz+gi7r80SA==", + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.2.16.tgz", + "integrity": "sha512-1aCZJ/6nSiViw339RsaNhkNoEloLaPzZhxMOYEa7OzRzO41IGg5n/7I43/ZIAW/c+Q6cT12Vf7fOZOoVIzb5BQ==", "dev": true, "license": "MIT", "dependencies": { - "bun-types": "1.2.0" + "bun-types": "1.2.16" } }, "node_modules/@types/estree": { @@ -1186,33 +1249,31 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", - "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.1.tgz", + "integrity": "sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~7.8.0" } }, - "node_modules/@types/react": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", - "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } + "license": "MIT" }, - "node_modules/@types/ws": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", - "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "node_modules/@types/react": { + "version": "18.3.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "@types/prop-types": "*", + "csstype": "^3.0.2" } }, "node_modules/ansi-regex": { @@ -1255,6 +1316,13 @@ "dev": true, "license": "MIT" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1266,14 +1334,13 @@ } }, "node_modules/bun-types": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.2.0.tgz", - "integrity": "sha512-KEaJxyZfbV/c4eyG0vyehDpYmBGreNiQbZIqvVHJwZ4BmeuWlNZ7EAzMN2Zcd7ailmS/tGVW0BgYbGf+lGEpWw==", + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.2.16.tgz", + "integrity": "sha512-ciXLrHV4PXax9vHvUrkvun9VPVGOVwbbbBF/Ev1cXz12lyEZMoJpIJABOfPcN9gDJRaiKF9MVbSygLg4NXu3/A==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*", - "@types/ws": "~8.5.10" + "@types/node": "*" } }, "node_modules/bundle-require": { @@ -1319,9 +1386,10 @@ } }, "node_modules/circuit-json": { - "version": "0.0.124", - "resolved": "https://registry.npmjs.org/circuit-json/-/circuit-json-0.0.124.tgz", - "integrity": "sha512-TT44qIlnap5+I8QsabSrQkBnZ1Tt80f5dXsnfQO9sRz5bw+ey/w6JOBoPRgDg1jP1cXp7TLsObL8v8gc14+Z8Q==", + "version": "0.0.170", + "resolved": "https://registry.npmjs.org/circuit-json/-/circuit-json-0.0.170.tgz", + "integrity": "sha512-hl7ZKdwk2y6/u7yCR5S49ie9V2rO6s7MpvQqnDmRb4ktQFNoW/rII5wvyhU5uKVtZtvpbQxJD9yRWLDKYjXSrQ==", + "dev": true, "license": "ISC", "dependencies": { "nanoid": "^5.0.7", @@ -1332,6 +1400,7 @@ "version": "0.0.17", "resolved": "https://registry.npmjs.org/circuit-json-to-connectivity-map/-/circuit-json-to-connectivity-map-0.0.17.tgz", "integrity": "sha512-0IlFTwGWFXzlrYSvXQocXi6pYriF/JKnfihfvnVZ4p60kMC+1QvtJdivW9C4I0VNXEe922xak70v3YZNJrjI1g==", + "dev": true, "dependencies": { "@tscircuit/math-utils": "^0.0.4" }, @@ -1343,6 +1412,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@tscircuit/math-utils/-/math-utils-0.0.4.tgz", "integrity": "sha512-8Bu/C+go95Zk9AXb4Pe37OgObGhOd5F7UIzXV+u1PKuhpJpGjr+X/WHBzSI7xHrBSvwsf39/Luooe4b3djuzgQ==", + "dev": true, "peerDependencies": { "typescript": "^5.0.0" } @@ -1402,6 +1472,36 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -1427,6 +1527,65 @@ } } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -1441,6 +1600,19 @@ "dev": true, "license": "MIT" }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/esbuild": { "version": "0.24.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", @@ -1482,6 +1654,14 @@ "@esbuild/win32-x64": "0.24.2" } }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fdir": { "version": "6.4.3", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", @@ -1515,9 +1695,10 @@ } }, "node_modules/format-si-unit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/format-si-unit/-/format-si-unit-0.0.2.tgz", - "integrity": "sha512-eTUhJ/54h7G42BKAsjYfbnKKTBdhfc8/4qkibPisFT/umACUxU1KDqCes7mUg8lBjacXGLYyn0ZuybnffjfOsA==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/format-si-unit/-/format-si-unit-0.0.3.tgz", + "integrity": "sha512-rhw1g1mOoLV497FtKNbzBPE4fJXfWRmIEPRO0DKXpEPvS54vRLjG8e1jE4vOcjZg4bsoOPJkM9jB6yGk+0XKmQ==", + "dev": true, "peerDependencies": { "typescript": "^5.0.0" } @@ -1605,6 +1786,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/lilconfig": { @@ -1648,6 +1830,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -1712,6 +1895,7 @@ "version": "5.0.9", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.9.tgz", "integrity": "sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==", + "dev": true, "funding": [ { "type": "github", @@ -1726,6 +1910,19 @@ "node": "^18 || >=20" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1736,6 +1933,17 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -1747,6 +1955,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/parsel-js/-/parsel-js-1.2.1.tgz", "integrity": "sha512-omFBig09mUh/NjBGba4DxVFAsqCY4C/6UYIaJuDOxJw2GlpgUJdPlNF301971gCP3Gt727+F+NZIXN483VAKIg==", + "dev": true, "license": "MIT" }, "node_modules/path-key": { @@ -1780,6 +1989,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, "license": "MIT" }, "node_modules/picocolors": { @@ -1869,6 +2079,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -1944,12 +2155,15 @@ "version": "0.25.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "dev": true, "license": "MIT" }, "node_modules/schematic-symbols": { "version": "0.0.113", "resolved": "https://registry.npmjs.org/schematic-symbols/-/schematic-symbols-0.0.113.tgz", "integrity": "sha512-3fVsjAgn9ukmCfNn3q8iii4yFxvmeF0mpRuCplDYwwP4Yo6T6ElzsrkTj+QurljspDF7zTvxxlT+uZQQuVmvYg==", + "dev": true, + "peer": true, "peerDependencies": { "typescript": "^5.5.4" } @@ -2188,6 +2402,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-2.16.1.tgz", "integrity": "sha512-tdtC3wxVEuzU7X/ydL131Q3JU5cPMEn37oqVLITjRDSDsnSHVFzW2JiCLfZLIQEgWzZHdSy3J6bZzvKEN24jGA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/chrvadala" @@ -2277,9 +2492,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", "dev": true, "license": "MIT" }, @@ -2420,6 +2635,7 @@ "version": "3.24.1", "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index 7a90d5d..22d6837 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,13 @@ "react": "18", "tsup": "^8.3.5" }, + "dependencies": { + "@tscircuit/circuit-json-util": "^0.0.47" + }, "peerDependencies": { "typescript": "^5.0.0", "@tscircuit/circuit-json-util": "*", - "circuit-json-to-connectivity-map": "*" + "circuit-json-to-connectivity-map": "*", + "circuit-json": "*" } } diff --git a/tests/test3-no-footprint-chip.test.tsx b/tests/test3-no-footprint-chip.test.tsx index 7f083a4..a57594b 100644 --- a/tests/test3-no-footprint-chip.test.tsx +++ b/tests/test3-no-footprint-chip.test.tsx @@ -1,6 +1,6 @@ -import { renderCircuit } from "tests/fixtures/render-circuit" +import { expect, it } from "bun:test" import { convertCircuitJsonToReadableNetlist } from "lib/convertCircuitJsonToReadableNetlist" -import { it, expect } from "bun:test" +import { renderCircuit } from "tests/fixtures/render-circuit" declare module "bun:test" { interface Matchers {