@tscircuit/cli 0.0.394 → 0.1.2

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 (246) hide show
  1. package/.github/workflows/bun-formatcheck.yml +26 -0
  2. package/.github/workflows/bun-pver-release.yml +25 -0
  3. package/.github/workflows/{typecheck.yml → bun-typecheck.yml} +0 -3
  4. package/LICENSE +21 -0
  5. package/README.md +33 -36
  6. package/biome.json +9 -9
  7. package/bun.lockb +0 -0
  8. package/cli/CliContext.ts +8 -0
  9. package/cli/auth/login/register.ts +73 -0
  10. package/cli/auth/logout/register.ts +11 -0
  11. package/cli/auth/register.ts +5 -0
  12. package/cli/clone/register.ts +99 -0
  13. package/cli/config/print/register.ts +12 -0
  14. package/cli/config/register.ts +5 -0
  15. package/cli/dev/register.ts +111 -0
  16. package/cli/main.ts +33 -0
  17. package/dist/main.js +537 -0
  18. package/docs/file-server-api-usage.md +57 -0
  19. package/docs/run-frame-usage.md +14 -0
  20. package/example-dir/manual-edits.json +1 -0
  21. package/example-dir/snippet.d.ts +13 -0
  22. package/example-dir/snippet.tsx +20 -0
  23. package/example-dir/types.d.ts +11 -0
  24. package/lib/cli-config/TypedConfigStore.ts +50 -0
  25. package/lib/cli-config/index.ts +16 -0
  26. package/lib/dependency-analysis/DependencyAnalyzer.ts +129 -0
  27. package/lib/dependency-analysis/getLocalFileDependencies.ts +101 -0
  28. package/lib/dependency-analysis/installNodeModuleTypes.ts +74 -0
  29. package/lib/index.ts +2 -0
  30. package/lib/project-config/index.ts +5 -0
  31. package/lib/registry-api/endpoint-types.ts +20 -0
  32. package/lib/registry-api/get-ky.ts +30 -0
  33. package/lib/server/EventsWatcher.ts +75 -0
  34. package/lib/server/createServer.ts +62 -0
  35. package/lib/site/getIndex.ts +18 -0
  36. package/package.json +27 -144
  37. package/tsconfig.json +25 -22
  38. package/.github/workflows/formatbot.yml +0 -63
  39. package/.github/workflows/release.yml +0 -40
  40. package/.github/workflows/test.yml +0 -32
  41. package/.github/workflows/windows-tests.yml +0 -32
  42. package/.prettierrc +0 -1
  43. package/DEVELOPMENT.md +0 -7
  44. package/api/README.md +0 -3
  45. package/api/db/generic-json-level.ts +0 -123
  46. package/api/db/get-db.ts +0 -26
  47. package/api/db/schema.ts +0 -65
  48. package/api/db/zod-level-db.ts +0 -148
  49. package/api/index.ts +0 -4
  50. package/api/lib/middlewares/with-db.ts +0 -18
  51. package/api/lib/middlewares/with-debug-request-logging.ts +0 -13
  52. package/api/lib/middlewares/with-error-response.ts +0 -37
  53. package/api/lib/with-winter-spec.ts +0 -9
  54. package/api/lib/zod/export_parameters.ts +0 -25
  55. package/api/routes/api/db/download.ts +0 -25
  56. package/api/routes/api/dev_package_examples/create.ts +0 -43
  57. package/api/routes/api/dev_package_examples/get.ts +0 -46
  58. package/api/routes/api/dev_package_examples/list.ts +0 -36
  59. package/api/routes/api/dev_package_examples/update.ts +0 -59
  60. package/api/routes/api/dev_server/reset.ts +0 -13
  61. package/api/routes/api/export_files/create.ts +0 -27
  62. package/api/routes/api/export_files/download.ts +0 -25
  63. package/api/routes/api/export_requests/create.ts +0 -30
  64. package/api/routes/api/export_requests/get.ts +0 -43
  65. package/api/routes/api/export_requests/list.ts +0 -26
  66. package/api/routes/api/export_requests/update.ts +0 -34
  67. package/api/routes/api/health.ts +0 -11
  68. package/api/routes/api/package_info/create.ts +0 -26
  69. package/api/routes/api/package_info/get.ts +0 -16
  70. package/api/routes/health.ts +0 -11
  71. package/api/routes/index.ts +0 -16
  72. package/api/server.ts +0 -20
  73. package/api/static-routes.ts +0 -24
  74. package/api/tests/fixtures/get-test-server.ts +0 -31
  75. package/api/tests/fixtures/start-server.ts +0 -41
  76. package/api/tests/routes/dev_package_examples/create.test.ts +0 -19
  77. package/api/tests/routes/dev_package_examples/get.test.ts +0 -25
  78. package/api/tests/routes/dev_package_examples/list.test.ts +0 -32
  79. package/api/tests/routes/dev_package_examples/update.test.ts +0 -38
  80. package/api/tests/routes/export_files/create.test.ts +0 -18
  81. package/api/tests/routes/export_files/download.test.ts +0 -29
  82. package/api/tests/routes/export_requests/create.test.ts +0 -24
  83. package/api/tests/routes/export_requests/get.test.ts +0 -41
  84. package/api/tests/routes/export_requests/list.test.ts +0 -35
  85. package/api/tests/routes/export_requests/update.test.ts +0 -50
  86. package/api/tests/routes/health.test.ts +0 -10
  87. package/bunfig.toml +0 -2
  88. package/cli/cli.ts +0 -13
  89. package/cli/lib/cmd-fns/add.ts +0 -34
  90. package/cli/lib/cmd-fns/auth-login.ts +0 -59
  91. package/cli/lib/cmd-fns/auth-logout.ts +0 -7
  92. package/cli/lib/cmd-fns/auth-sessions-create.ts +0 -3
  93. package/cli/lib/cmd-fns/auth-sessions-get.ts +0 -3
  94. package/cli/lib/cmd-fns/auth-sessions-list.ts +0 -5
  95. package/cli/lib/cmd-fns/config-clear.ts +0 -5
  96. package/cli/lib/cmd-fns/config-print-config.ts +0 -6
  97. package/cli/lib/cmd-fns/config-reveal-location.ts +0 -5
  98. package/cli/lib/cmd-fns/config-set-log-requests.ts +0 -7
  99. package/cli/lib/cmd-fns/config-set-registry.ts +0 -9
  100. package/cli/lib/cmd-fns/config-set-runtime.ts +0 -7
  101. package/cli/lib/cmd-fns/config-set-session.ts +0 -7
  102. package/cli/lib/cmd-fns/dev/check-if-initialized.ts +0 -22
  103. package/cli/lib/cmd-fns/dev/derive-selector-from-pcb-component-id.ts +0 -23
  104. package/cli/lib/cmd-fns/dev/dev-server-request-handler.ts +0 -61
  105. package/cli/lib/cmd-fns/dev/find-available-port.ts +0 -32
  106. package/cli/lib/cmd-fns/dev/fulfill-export-requests.ts +0 -162
  107. package/cli/lib/cmd-fns/dev/get-dev-server-axios.ts +0 -29
  108. package/cli/lib/cmd-fns/dev/index.ts +0 -168
  109. package/cli/lib/cmd-fns/dev/infer-export-name-from-source.ts +0 -17
  110. package/cli/lib/cmd-fns/dev/mark-all-examples-loading.ts +0 -18
  111. package/cli/lib/cmd-fns/dev/soupify-and-upload-example-file.ts +0 -62
  112. package/cli/lib/cmd-fns/dev/start-dev-server.ts +0 -34
  113. package/cli/lib/cmd-fns/dev/start-edit-event-watcher.ts +0 -347
  114. package/cli/lib/cmd-fns/dev/start-export-request-watcher.ts +0 -33
  115. package/cli/lib/cmd-fns/dev/start-fs-watcher.ts +0 -54
  116. package/cli/lib/cmd-fns/dev/upload-examples-from-directory.ts +0 -42
  117. package/cli/lib/cmd-fns/dev-server-fulfill-export-requests.ts +0 -43
  118. package/cli/lib/cmd-fns/dev-server-upload.ts +0 -56
  119. package/cli/lib/cmd-fns/export-gerbers.ts +0 -28
  120. package/cli/lib/cmd-fns/export-kicad-pcb.ts +0 -36
  121. package/cli/lib/cmd-fns/export-pnp-csv.ts +0 -32
  122. package/cli/lib/cmd-fns/gen-jlcpcb-component.ts +0 -64
  123. package/cli/lib/cmd-fns/go.ts +0 -14
  124. package/cli/lib/cmd-fns/index.ts +0 -46
  125. package/cli/lib/cmd-fns/init/create-or-modify-npmrc.ts +0 -21
  126. package/cli/lib/cmd-fns/init/get-generated-npmrc.ts +0 -8
  127. package/cli/lib/cmd-fns/init/get-generated-readme.ts +0 -41
  128. package/cli/lib/cmd-fns/init/get-generated-tsconfig.ts +0 -34
  129. package/cli/lib/cmd-fns/init/index.ts +0 -193
  130. package/cli/lib/cmd-fns/install.ts +0 -34
  131. package/cli/lib/cmd-fns/lint.ts +0 -43
  132. package/cli/lib/cmd-fns/open.ts +0 -19
  133. package/cli/lib/cmd-fns/package-examples-create.ts +0 -36
  134. package/cli/lib/cmd-fns/package-examples-get.ts +0 -20
  135. package/cli/lib/cmd-fns/package-examples-list.ts +0 -18
  136. package/cli/lib/cmd-fns/package-files-create.ts +0 -31
  137. package/cli/lib/cmd-fns/package-files-download.ts +0 -29
  138. package/cli/lib/cmd-fns/package-files-get.ts +0 -3
  139. package/cli/lib/cmd-fns/package-files-list.ts +0 -28
  140. package/cli/lib/cmd-fns/package-files-upload-directory.ts +0 -6
  141. package/cli/lib/cmd-fns/package-releases-create.ts +0 -35
  142. package/cli/lib/cmd-fns/package-releases-get.ts +0 -3
  143. package/cli/lib/cmd-fns/package-releases-list.ts +0 -32
  144. package/cli/lib/cmd-fns/package-releases-update.ts +0 -45
  145. package/cli/lib/cmd-fns/packages-create.ts +0 -16
  146. package/cli/lib/cmd-fns/packages-get.ts +0 -16
  147. package/cli/lib/cmd-fns/packages-list.ts +0 -16
  148. package/cli/lib/cmd-fns/publish/index.ts +0 -336
  149. package/cli/lib/cmd-fns/remove.ts +0 -31
  150. package/cli/lib/cmd-fns/render.ts +0 -45
  151. package/cli/lib/cmd-fns/soupify.ts +0 -31
  152. package/cli/lib/cmd-fns/uninstall.ts +0 -31
  153. package/cli/lib/cmd-fns/version.ts +0 -38
  154. package/cli/lib/create-config-manager.ts +0 -97
  155. package/cli/lib/export-fns/export-bom-csv.ts +0 -32
  156. package/cli/lib/export-fns/export-gerbers.ts +0 -108
  157. package/cli/lib/export-fns/export-kicad-pcb.ts +0 -32
  158. package/cli/lib/export-fns/export-pnp-csv.ts +0 -31
  159. package/cli/lib/get-program.ts +0 -387
  160. package/cli/lib/param-handlers/index.ts +0 -21
  161. package/cli/lib/param-handlers/interact-for-local-directory.ts +0 -58
  162. package/cli/lib/param-handlers/interact-for-local-file.ts +0 -59
  163. package/cli/lib/param-handlers/interact-for-package-example-id.ts +0 -25
  164. package/cli/lib/param-handlers/interact-for-package-name-with-version.ts +0 -63
  165. package/cli/lib/param-handlers/interact-for-package-name.ts +0 -45
  166. package/cli/lib/param-handlers/interact-for-package-release-id.ts +0 -15
  167. package/cli/lib/param-handlers/interact-for-registry-url.ts +0 -27
  168. package/cli/lib/param-handlers/interact-for-runtime.ts +0 -33
  169. package/cli/lib/param-handlers/param-handler-type.ts +0 -7
  170. package/cli/lib/posthog.ts +0 -23
  171. package/cli/lib/soupify/get-export-name-from-file.ts +0 -29
  172. package/cli/lib/soupify/get-tmp-entrpoint-filepath.ts +0 -15
  173. package/cli/lib/soupify/index.ts +0 -1
  174. package/cli/lib/soupify/run-entrypoint-file.ts +0 -59
  175. package/cli/lib/soupify/soupify-with-core.ts +0 -74
  176. package/cli/lib/soupify/soupify.ts +0 -6
  177. package/cli/lib/util/app-context.ts +0 -17
  178. package/cli/lib/util/create-context-and-run-program.ts +0 -168
  179. package/cli/lib/util/get-all-package-files.ts +0 -66
  180. package/cli/lib/util/lint-project.ts +0 -137
  181. package/cli/tests/export-gerber-keyboard.test.ts +0 -16
  182. package/cli/tests/export-gerber.test.ts +0 -49
  183. package/cli/tests/export-kicad-pcb.test.ts +0 -23
  184. package/cli/tests/export-pnp-csv.test.ts +0 -24
  185. package/cli/tests/fixtures/preload.ts +0 -54
  186. package/cli/tests/init.test.ts +0 -9
  187. package/cli/tests/open.test.ts +0 -9
  188. package/cli/tests/soupify-builder.test.ts +0 -9
  189. package/cli/tests/soupify-core.test.ts +0 -9
  190. package/dist/cli.js +0 -3676
  191. package/docs/EDIT_EVENT_PIPELINE.md +0 -34
  192. package/example-project/README.md +0 -18
  193. package/example-project/examples/basic-capacitor.tsx +0 -5
  194. package/example-project/examples/basic-chip.tsx +0 -26
  195. package/example-project/examples/basic-resistor.tsx +0 -3
  196. package/example-project/examples/macrokeypad.tsx +0 -59
  197. package/example-project/index.ts +0 -1
  198. package/example-project/package.json +0 -5
  199. package/example-project/src/ArduinoProMicroBreakout.tsx +0 -37
  200. package/example-project/src/Key.tsx +0 -46
  201. package/example-project/src/Keyswitch.tsx +0 -26
  202. package/example-project/src/KeyswitchSocket.tsx +0 -56
  203. package/example-project/src/MyCircuit.tsx +0 -38
  204. package/example-project/src/manual-edits.ts +0 -93
  205. package/frontend/README.md +0 -3
  206. package/frontend/bun.lockb +0 -0
  207. package/frontend/components/command-k.tsx +0 -86
  208. package/frontend/components/dialogs/generic-export-dialog.tsx +0 -189
  209. package/frontend/components/dialogs/gerber-export-dialog.tsx +0 -168
  210. package/frontend/components/global-context-providers.tsx +0 -11
  211. package/frontend/components/select-example-search.tsx +0 -118
  212. package/frontend/components/ui/alert-dialog.tsx +0 -139
  213. package/frontend/components/ui/alert.tsx +0 -59
  214. package/frontend/components/ui/breadcrumb.tsx +0 -115
  215. package/frontend/components/ui/button.tsx +0 -57
  216. package/frontend/components/ui/card.tsx +0 -76
  217. package/frontend/components/ui/command.tsx +0 -153
  218. package/frontend/components/ui/context-menu.tsx +0 -202
  219. package/frontend/components/ui/dialog.tsx +0 -120
  220. package/frontend/components/ui/menubar.tsx +0 -238
  221. package/frontend/components/ui/navigation-menu.tsx +0 -128
  222. package/frontend/components/ui/popover.tsx +0 -31
  223. package/frontend/components/ui/select.tsx +0 -162
  224. package/frontend/components/ui/tabs.tsx +0 -53
  225. package/frontend/components/ui/toggle-group.tsx +0 -59
  226. package/frontend/components/ui/toggle.tsx +0 -43
  227. package/frontend/components/ui/tooltip.tsx +0 -28
  228. package/frontend/components.json +0 -17
  229. package/frontend/hooks/toast-if-api-not-connected.ts +0 -23
  230. package/frontend/hooks/use-active-dev-package-example-lite.ts +0 -39
  231. package/frontend/hooks/use-dev-package-examples.tsx +0 -18
  232. package/frontend/hooks/use-global-store.ts +0 -42
  233. package/frontend/index.css +0 -76
  234. package/frontend/index.html +0 -13
  235. package/frontend/lib/utils.ts +0 -6
  236. package/frontend/main.tsx +0 -13
  237. package/frontend/tailwind.config.js +0 -74
  238. package/frontend/views/App.tsx +0 -22
  239. package/frontend/views/Header.tsx +0 -55
  240. package/frontend/views/HeaderMenu.tsx +0 -326
  241. package/frontend/views/MainContentView.tsx +0 -172
  242. package/frontend/vite-env.d.ts +0 -1
  243. package/frontend/vite.config.ts +0 -50
  244. package/renovate.json +0 -16
  245. package/scripts/build-cli.ts +0 -12
  246. package/tsup.config.ts +0 -7
@@ -1,49 +0,0 @@
1
- import { test, expect, describe } from "bun:test"
2
- import { $ } from "bun"
3
- import { temporaryDirectory } from "tempy"
4
- import { join } from "path/posix"
5
- import { existsSync, readdirSync, readFileSync } from "fs"
6
- import extract from "extract-zip"
7
- import pcbStackup from "pcb-stackup"
8
-
9
- test("tsci export gerbers --input example-project/examples/basic-chip.tsx", async () => {
10
- const tempDir = temporaryDirectory()
11
- const gerberPath = join(tempDir, "gerbers.zip")
12
- const { stdout, stderr } =
13
- await $`bun cli/cli.ts export gerbers --input example-project/examples/basic-chip.tsx --outputfile ${gerberPath} --no-color`
14
-
15
- expect(stderr.toString()).toBe("")
16
- expect(stdout.toString()).toContain("gerbers.zip")
17
-
18
- expect(existsSync(join(tempDir, "gerbers.zip"))).toBe(true)
19
-
20
- await extract(gerberPath, { dir: join(tempDir, "gerbers") })
21
-
22
- const files = readdirSync(join(tempDir, "gerbers"))
23
- const expectedFiles = [
24
- "F_Mask.gbr",
25
- "F_SilkScreen.gbr",
26
- "B_Cu.gbr",
27
- "plated.drl",
28
- "B_SilkScreen.gbr",
29
- "F_Cu.gbr",
30
- "B_Paste.gbr",
31
- "F_Paste.gbr",
32
- "B_Mask.gbr",
33
- "Edge_Cuts.gbr",
34
- ]
35
-
36
- expectedFiles.forEach((file) => {
37
- expect(files).toContain(file)
38
- })
39
-
40
- const gerberOutputMap = Object.entries(
41
- files.map((filename) => [
42
- filename,
43
- readFileSync(join(tempDir, "gerbers", filename)),
44
- ]),
45
- )
46
-
47
- // Unfortunately doesn't work in bun yet due to some bug in node:stream
48
- // expect(gerberOutputMap).toMatchGerberSnapshot(import.meta.path)
49
- })
@@ -1,23 +0,0 @@
1
- import { test, expect, describe } from "bun:test"
2
- import { $ } from "bun"
3
- import { temporaryDirectory } from "tempy"
4
- import { join } from "path/posix"
5
- import { existsSync, readFileSync } from "fs"
6
-
7
- test("tsci export kicad_pcb --input example-project/examples/macrokeypad.tsx", async () => {
8
- const tempDir = temporaryDirectory()
9
- const kicadPcbPath = join(tempDir, "output.kicad_pcb")
10
- const { stdout, stderr } =
11
- await $`bun cli/cli.ts export kicad_pcb --input example-project/examples/macrokeypad.tsx --outputfile ${kicadPcbPath} --no-color`
12
-
13
- expect(stderr.toString()).toBe("")
14
- expect(stdout.toString()).toContain("output.kicad_pcb")
15
-
16
- expect(existsSync(kicadPcbPath)).toBe(true)
17
-
18
- const kicadPcbContent = readFileSync(kicadPcbPath, "utf-8")
19
- expect(kicadPcbContent).toContain("(kicad_pcb")
20
- expect(kicadPcbContent).toContain("(version")
21
- expect(kicadPcbContent).toContain("(footprint")
22
- expect(kicadPcbContent).toContain("(layer")
23
- })
@@ -1,24 +0,0 @@
1
- import { test, expect } from "bun:test"
2
- import { $ } from "bun"
3
- import { temporaryDirectory } from "tempy"
4
- import { join } from "path/posix"
5
- import { existsSync, readFileSync } from "fs"
6
-
7
- test("tsci export pnp_csv --input example-project/examples/macrokeypad.tsx", async () => {
8
- const tempDir = temporaryDirectory()
9
- const pnpCsvPath = join(tempDir, "pnp.csv")
10
- const { stdout, stderr } =
11
- await $`bun cli/cli.ts export pnp_csv --input example-project/examples/macrokeypad.tsx --outputfile ${pnpCsvPath} --no-color`
12
-
13
- expect(stderr.toString()).toBe("")
14
- expect(stdout.toString()).toContain("pnp.csv")
15
-
16
- expect(existsSync(pnpCsvPath)).toBe(true)
17
-
18
- const pnpCsvContent = readFileSync(pnpCsvPath, "utf-8")
19
- expect(pnpCsvContent).toContain("Designator")
20
- expect(pnpCsvContent).toContain("Mid X")
21
- expect(pnpCsvContent).toContain("Mid Y")
22
- expect(pnpCsvContent).toContain("Layer")
23
- expect(pnpCsvContent).toContain("Rotation")
24
- })
@@ -1,54 +0,0 @@
1
- import "bun-match-svg"
2
- import { expect } from "bun:test"
3
- import pcbStackup, { type Stackup } from "pcb-stackup"
4
- import { Readable } from "stream"
5
-
6
- async function toMatchGerberSnapshot(
7
- this: any,
8
- gerberOutput: Record<string, string>,
9
- testPathOriginal: string,
10
- svgName?: string,
11
- ) {
12
- // Create layers array from gerberOutput
13
- const layers = Object.entries(gerberOutput).map(([filename, content]) => ({
14
- filename,
15
- gerber: Readable.from(content),
16
- }))
17
-
18
- try {
19
- const stackup = await pcbStackup(layers)
20
- const svgArray: string[] = []
21
- const svgNames: string[] = []
22
-
23
- for (const item of Object.keys(stackup!) as Array<keyof Stackup>) {
24
- const layer = stackup[item] as { svg: string }
25
- if (layer.svg) {
26
- svgArray.push(layer.svg)
27
- svgNames.push(`${svgName}-${item}`)
28
- }
29
- }
30
- return expect(svgArray).toMatchMultipleSvgSnapshots(
31
- testPathOriginal,
32
- svgNames,
33
- )
34
- } catch (error) {
35
- throw new Error(`Failed to generate PCB stackup: ${error}`)
36
- }
37
- }
38
-
39
- expect.extend({
40
- // biome-ignore lint/suspicious/noExplicitAny:
41
- toMatchGerberSnapshot: toMatchGerberSnapshot as any,
42
- })
43
-
44
- declare module "bun:test" {
45
- interface Matchers<T = unknown> {
46
- /**
47
- * This doesn't currently work in bun, some bug in node:stream
48
- */
49
- toMatchGerberSnapshot(
50
- testImportMetaPath: string,
51
- svgName?: string,
52
- ): Promise<MatcherResult>
53
- }
54
- }
@@ -1,9 +0,0 @@
1
- import { test, expect, describe } from "bun:test"
2
- import { $ } from "bun"
3
-
4
- test.skip("tsci init", async () => {
5
- await $`rm -rf ./tests/example-init`
6
- console.log(
7
- await $`bun cli.ts init --name init-test --dir ./tests/example-init`.text(),
8
- )
9
- })
@@ -1,9 +0,0 @@
1
- import { test, expect } from "bun:test"
2
- import { $ } from "bun"
3
-
4
- // This test annoyingly opens a browser window, unskip if you're testing it
5
- test.skip("tsci open", async () => {
6
- const result = await $`bun cli.ts open -y --cwd ./example-project`.text()
7
- expect(result).toContain("http")
8
- expect(result).toContain("example-project")
9
- })
@@ -1,9 +0,0 @@
1
- import { test, expect, describe } from "bun:test"
2
- import { $ } from "bun"
3
-
4
- test.skip("soupify (builder)", async () => {
5
- const result =
6
- await $`bun cli/cli.ts soupify -y --no-core --file ./example-project/examples/basic-chip.tsx`.text()
7
-
8
- expect(result).toContain("10000")
9
- })
@@ -1,9 +0,0 @@
1
- import { test, expect, describe } from "bun:test"
2
- import { $ } from "bun"
3
-
4
- test("soupify (core)", async () => {
5
- const result =
6
- await $`bun cli/cli.ts soupify -y --file ./example-project/examples/basic-chip.tsx`.text()
7
-
8
- expect(result).toContain("10000") // R1 resistor value
9
- })