@tscircuit/fake-snippets 0.0.120 → 0.0.122

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 (612) hide show
  1. package/dist/bundle.js +1 -2
  2. package/package.json +4 -1
  3. package/.github/CODEOWNERS +0 -1
  4. package/.github/workflows/bun-formatcheck.yml +0 -26
  5. package/.github/workflows/bun-pver-release.yml +0 -28
  6. package/.github/workflows/bun-test.yml +0 -28
  7. package/.github/workflows/bun-typecheck.yml +0 -26
  8. package/.github/workflows/bundle-size-analysis.yml +0 -79
  9. package/.github/workflows/stale.yml +0 -40
  10. package/.github/workflows/update-package.yml +0 -58
  11. package/.github/workflows/update-snapshots.yml +0 -49
  12. package/CLAUDE.md +0 -92
  13. package/CONTRIBUTING.md +0 -59
  14. package/api/generated-index.js +0 -456
  15. package/biome.json +0 -67
  16. package/bun-tests/fake-snippets-api/fixtures/get-test-server.ts +0 -141
  17. package/bun-tests/fake-snippets-api/fixtures/preload.ts +0 -18
  18. package/bun-tests/fake-snippets-api/fixtures/start-server.ts +0 -48
  19. package/bun-tests/fake-snippets-api/routes/accounts/get.test.ts +0 -64
  20. package/bun-tests/fake-snippets-api/routes/accounts/get_account_balance.test.ts +0 -14
  21. package/bun-tests/fake-snippets-api/routes/ai_reviews/create.test.ts +0 -21
  22. package/bun-tests/fake-snippets-api/routes/ai_reviews/get.test.ts +0 -16
  23. package/bun-tests/fake-snippets-api/routes/ai_reviews/list.test.ts +0 -14
  24. package/bun-tests/fake-snippets-api/routes/ai_reviews/process_review.test.ts +0 -16
  25. package/bun-tests/fake-snippets-api/routes/bug_reports/create.test.ts +0 -37
  26. package/bun-tests/fake-snippets-api/routes/bug_reports/upload_file.test.ts +0 -89
  27. package/bun-tests/fake-snippets-api/routes/datasheets/create.test.ts +0 -16
  28. package/bun-tests/fake-snippets-api/routes/datasheets/get.test.ts +0 -54
  29. package/bun-tests/fake-snippets-api/routes/datasheets/list.test.ts +0 -49
  30. package/bun-tests/fake-snippets-api/routes/datasheets/process_all_datasheets.test.ts +0 -22
  31. package/bun-tests/fake-snippets-api/routes/datasheets/run_async_tasks.test.ts +0 -19
  32. package/bun-tests/fake-snippets-api/routes/health.test.ts +0 -9
  33. package/bun-tests/fake-snippets-api/routes/order_files/get.test.ts +0 -48
  34. package/bun-tests/fake-snippets-api/routes/order_files/upload.test.ts +0 -77
  35. package/bun-tests/fake-snippets-api/routes/order_quotes/create.test.ts +0 -33
  36. package/bun-tests/fake-snippets-api/routes/orders/create.test.ts +0 -17
  37. package/bun-tests/fake-snippets-api/routes/orders/get.test.ts +0 -199
  38. package/bun-tests/fake-snippets-api/routes/orders/list.test.ts +0 -30
  39. package/bun-tests/fake-snippets-api/routes/orgs/add_member.test.ts +0 -26
  40. package/bun-tests/fake-snippets-api/routes/orgs/create.test.ts +0 -37
  41. package/bun-tests/fake-snippets-api/routes/orgs/get.test.ts +0 -53
  42. package/bun-tests/fake-snippets-api/routes/orgs/get_member.test.ts +0 -110
  43. package/bun-tests/fake-snippets-api/routes/orgs/list.test.ts +0 -17
  44. package/bun-tests/fake-snippets-api/routes/orgs/list_members.test.ts +0 -24
  45. package/bun-tests/fake-snippets-api/routes/orgs/remove_member.test.ts +0 -81
  46. package/bun-tests/fake-snippets-api/routes/orgs/update.test.ts +0 -151
  47. package/bun-tests/fake-snippets-api/routes/package_builds/get.test.ts +0 -279
  48. package/bun-tests/fake-snippets-api/routes/package_builds/list.test.ts +0 -292
  49. package/bun-tests/fake-snippets-api/routes/package_files/create.test.ts +0 -320
  50. package/bun-tests/fake-snippets-api/routes/package_files/create_or_update.test.ts +0 -603
  51. package/bun-tests/fake-snippets-api/routes/package_files/delete.test.ts +0 -233
  52. package/bun-tests/fake-snippets-api/routes/package_files/download.test.ts +0 -248
  53. package/bun-tests/fake-snippets-api/routes/package_files/get.test.ts +0 -230
  54. package/bun-tests/fake-snippets-api/routes/package_files/list.test.ts +0 -212
  55. package/bun-tests/fake-snippets-api/routes/package_releases/create.test.ts +0 -171
  56. package/bun-tests/fake-snippets-api/routes/package_releases/get.test.ts +0 -181
  57. package/bun-tests/fake-snippets-api/routes/package_releases/get_image_generation_fields.test.ts +0 -38
  58. package/bun-tests/fake-snippets-api/routes/package_releases/list.test.ts +0 -149
  59. package/bun-tests/fake-snippets-api/routes/package_releases/update.test.ts +0 -160
  60. package/bun-tests/fake-snippets-api/routes/packages/add_star.test.ts +0 -129
  61. package/bun-tests/fake-snippets-api/routes/packages/create.test.ts +0 -67
  62. package/bun-tests/fake-snippets-api/routes/packages/delete.test.ts +0 -74
  63. package/bun-tests/fake-snippets-api/routes/packages/fork.test.ts +0 -132
  64. package/bun-tests/fake-snippets-api/routes/packages/get.test.ts +0 -112
  65. package/bun-tests/fake-snippets-api/routes/packages/images.test.ts +0 -72
  66. package/bun-tests/fake-snippets-api/routes/packages/list-1.test.ts +0 -145
  67. package/bun-tests/fake-snippets-api/routes/packages/list-2.test.ts +0 -48
  68. package/bun-tests/fake-snippets-api/routes/packages/list_latest.test.ts +0 -110
  69. package/bun-tests/fake-snippets-api/routes/packages/list_trending.test.ts +0 -103
  70. package/bun-tests/fake-snippets-api/routes/packages/remove_star.test.ts +0 -131
  71. package/bun-tests/fake-snippets-api/routes/packages/update.test.ts +0 -217
  72. package/bun-tests/fake-snippets-api/routes/proxy.test.ts +0 -42
  73. package/bun.lock +0 -2724
  74. package/bunfig.toml +0 -3
  75. package/components.json +0 -20
  76. package/docs/CIRCUIT_JSON_SOURCE_COMPONENT_OVERVIEW.md +0 -151
  77. package/fake-snippets-api/README.md +0 -6
  78. package/fake-snippets-api/biome.json +0 -47
  79. package/fake-snippets-api/bun.lockb +0 -0
  80. package/fake-snippets-api/lib/db/autoload-dev-packages.ts +0 -222
  81. package/fake-snippets-api/lib/db/autoload-packages.json +0 -8
  82. package/fake-snippets-api/lib/db/db-client.ts +0 -1857
  83. package/fake-snippets-api/lib/db/schema.ts +0 -502
  84. package/fake-snippets-api/lib/db/seed.ts +0 -1843
  85. package/fake-snippets-api/lib/index.ts +0 -3
  86. package/fake-snippets-api/lib/middleware/with-ctx-error.ts +0 -26
  87. package/fake-snippets-api/lib/middleware/with-db.ts +0 -15
  88. package/fake-snippets-api/lib/middleware/with-error-handling.ts +0 -24
  89. package/fake-snippets-api/lib/middleware/with-optional-session-auth.ts +0 -53
  90. package/fake-snippets-api/lib/middleware/with-request-logging.ts +0 -54
  91. package/fake-snippets-api/lib/middleware/with-session-auth.ts +0 -102
  92. package/fake-snippets-api/lib/middleware/with-winter-spec.ts +0 -24
  93. package/fake-snippets-api/lib/package_file/generate-fs-sha.ts +0 -20
  94. package/fake-snippets-api/lib/package_file/get-package-file-id-from-file-descriptor.ts +0 -173
  95. package/fake-snippets-api/lib/package_release/find-package-release-id.ts +0 -120
  96. package/fake-snippets-api/lib/public-mapping/public-map-org.ts +0 -34
  97. package/fake-snippets-api/lib/public-mapping/public-map-package-build.ts +0 -48
  98. package/fake-snippets-api/lib/public-mapping/public-map-package-release.ts +0 -88
  99. package/fake-snippets-api/lib/public-mapping/public-map-package.ts +0 -60
  100. package/fake-snippets-api/lib/with-winter-spec.ts +0 -1
  101. package/fake-snippets-api/next-env.d.ts +0 -5
  102. package/fake-snippets-api/routes/api/_fake/ai_reviews/process_review.ts +0 -31
  103. package/fake-snippets-api/routes/api/_fake/datasheets/process_all_datasheets.ts +0 -38
  104. package/fake-snippets-api/routes/api/_fake/db.ts +0 -11
  105. package/fake-snippets-api/routes/api/_fake/move_orders_forward.ts +0 -65
  106. package/fake-snippets-api/routes/api/_fake/received_quotes.ts +0 -112
  107. package/fake-snippets-api/routes/api/_fake/run_async_tasks.ts +0 -12
  108. package/fake-snippets-api/routes/api/_fake/seed.ts +0 -13
  109. package/fake-snippets-api/routes/api/accounts/get.ts +0 -35
  110. package/fake-snippets-api/routes/api/accounts/get_account_balance.ts +0 -22
  111. package/fake-snippets-api/routes/api/accounts/search.ts +0 -20
  112. package/fake-snippets-api/routes/api/accounts/update.ts +0 -32
  113. package/fake-snippets-api/routes/api/ai/[...anyroute].ts +0 -31
  114. package/fake-snippets-api/routes/api/ai.ts +0 -2
  115. package/fake-snippets-api/routes/api/ai_reviews/create.ts +0 -44
  116. package/fake-snippets-api/routes/api/ai_reviews/get.ts +0 -24
  117. package/fake-snippets-api/routes/api/ai_reviews/list.ts +0 -14
  118. package/fake-snippets-api/routes/api/aistream/[...anyroute].ts +0 -65
  119. package/fake-snippets-api/routes/api/autocomplete/create_autocomplete.ts +0 -16
  120. package/fake-snippets-api/routes/api/bug_reports/create.ts +0 -43
  121. package/fake-snippets-api/routes/api/bug_reports/upload_file.ts +0 -113
  122. package/fake-snippets-api/routes/api/datasheets/create.ts +0 -18
  123. package/fake-snippets-api/routes/api/datasheets/get.ts +0 -35
  124. package/fake-snippets-api/routes/api/datasheets/list.ts +0 -29
  125. package/fake-snippets-api/routes/api/github/installations/create_new_installation_redirect.ts +0 -75
  126. package/fake-snippets-api/routes/api/github/repos/list_available.ts +0 -91
  127. package/fake-snippets-api/routes/api/github/repos/refresh.ts +0 -44
  128. package/fake-snippets-api/routes/api/health.ts +0 -9
  129. package/fake-snippets-api/routes/api/internal/sessions/create_without_auth.ts +0 -63
  130. package/fake-snippets-api/routes/api/order_files/get.ts +0 -28
  131. package/fake-snippets-api/routes/api/order_files/upload.ts +0 -46
  132. package/fake-snippets-api/routes/api/order_quotes/create.ts +0 -60
  133. package/fake-snippets-api/routes/api/order_quotes/create_all_vendor_quotes.ts +0 -30
  134. package/fake-snippets-api/routes/api/order_quotes/get.ts +0 -29
  135. package/fake-snippets-api/routes/api/orders/create.ts +0 -70
  136. package/fake-snippets-api/routes/api/orders/get.ts +0 -168
  137. package/fake-snippets-api/routes/api/orders/list.ts +0 -15
  138. package/fake-snippets-api/routes/api/orgs/add_member.ts +0 -52
  139. package/fake-snippets-api/routes/api/orgs/create.ts +0 -48
  140. package/fake-snippets-api/routes/api/orgs/get.ts +0 -39
  141. package/fake-snippets-api/routes/api/orgs/get_member.ts +0 -67
  142. package/fake-snippets-api/routes/api/orgs/list.ts +0 -31
  143. package/fake-snippets-api/routes/api/orgs/list_members.ts +0 -106
  144. package/fake-snippets-api/routes/api/orgs/remove_member.ts +0 -46
  145. package/fake-snippets-api/routes/api/orgs/update.ts +0 -118
  146. package/fake-snippets-api/routes/api/package_builds/get.ts +0 -70
  147. package/fake-snippets-api/routes/api/package_builds/list.ts +0 -97
  148. package/fake-snippets-api/routes/api/package_files/create.ts +0 -135
  149. package/fake-snippets-api/routes/api/package_files/create_or_update.ts +0 -194
  150. package/fake-snippets-api/routes/api/package_files/delete.ts +0 -109
  151. package/fake-snippets-api/routes/api/package_files/download.ts +0 -87
  152. package/fake-snippets-api/routes/api/package_files/get.ts +0 -68
  153. package/fake-snippets-api/routes/api/package_files/list.ts +0 -54
  154. package/fake-snippets-api/routes/api/package_releases/create.ts +0 -109
  155. package/fake-snippets-api/routes/api/package_releases/get.ts +0 -137
  156. package/fake-snippets-api/routes/api/package_releases/list.ts +0 -85
  157. package/fake-snippets-api/routes/api/package_releases/rebuild.ts +0 -66
  158. package/fake-snippets-api/routes/api/package_releases/update.ts +0 -122
  159. package/fake-snippets-api/routes/api/packages/add_star.ts +0 -84
  160. package/fake-snippets-api/routes/api/packages/create.ts +0 -136
  161. package/fake-snippets-api/routes/api/packages/delete.ts +0 -41
  162. package/fake-snippets-api/routes/api/packages/fork.ts +0 -165
  163. package/fake-snippets-api/routes/api/packages/generate_from_jlcpcb.ts +0 -111
  164. package/fake-snippets-api/routes/api/packages/get.ts +0 -81
  165. package/fake-snippets-api/routes/api/packages/images/[owner_github_username]/[unscoped_name]/[view_format].ts +0 -119
  166. package/fake-snippets-api/routes/api/packages/list.ts +0 -105
  167. package/fake-snippets-api/routes/api/packages/list_latest.ts +0 -29
  168. package/fake-snippets-api/routes/api/packages/list_trending.ts +0 -43
  169. package/fake-snippets-api/routes/api/packages/remove_star.ts +0 -70
  170. package/fake-snippets-api/routes/api/packages/search.ts +0 -19
  171. package/fake-snippets-api/routes/api/packages/update.ts +0 -112
  172. package/fake-snippets-api/routes/api/packages/update_ai_description.ts +0 -37
  173. package/fake-snippets-api/routes/api/proxy.ts +0 -128
  174. package/fake-snippets-api/routes/api/snippets/add_star.ts +0 -62
  175. package/fake-snippets-api/routes/api/snippets/create.ts +0 -184
  176. package/fake-snippets-api/routes/api/snippets/delete.ts +0 -41
  177. package/fake-snippets-api/routes/api/snippets/download.ts +0 -162
  178. package/fake-snippets-api/routes/api/snippets/generate_from_jlcpcb.ts +0 -48
  179. package/fake-snippets-api/routes/api/snippets/get.ts +0 -83
  180. package/fake-snippets-api/routes/api/snippets/get_image.ts +0 -65
  181. package/fake-snippets-api/routes/api/snippets/images/[author]/[snippet_name]/[typeFormat].ts +0 -80
  182. package/fake-snippets-api/routes/api/snippets/list.ts +0 -151
  183. package/fake-snippets-api/routes/api/snippets/list_latest.ts +0 -13
  184. package/fake-snippets-api/routes/api/snippets/list_trending.ts +0 -38
  185. package/fake-snippets-api/routes/api/snippets/remove_star.ts +0 -42
  186. package/fake-snippets-api/routes/api/snippets/search.ts +0 -18
  187. package/fake-snippets-api/routes/api/snippets/update.ts +0 -114
  188. package/fake-snippets-api/utils/normalizeProjectFilePath.ts +0 -60
  189. package/fake-snippets-api/utils/order-steps.ts +0 -20
  190. package/favicon.ico +0 -0
  191. package/index.html +0 -125
  192. package/landing.html +0 -23
  193. package/playwright-tests/ai-page.spec.ts +0 -19
  194. package/playwright-tests/circuit-json-import.spec.ts +0 -133
  195. package/playwright-tests/cmd-click.spec.ts +0 -43
  196. package/playwright-tests/dashboard-page.spec.ts +0 -10
  197. package/playwright-tests/editor-page.spec.ts +0 -15
  198. package/playwright-tests/exampleCircuitJson.ts +0 -498
  199. package/playwright-tests/files-dialog.spec.ts +0 -19
  200. package/playwright-tests/footprint-dialog/footprint-dialog.spec.ts +0 -27
  201. package/playwright-tests/footprint-dialog/footprint-insertion.spec.ts +0 -38
  202. package/playwright-tests/footprint-dialog/footprint-preview.spec.ts +0 -34
  203. package/playwright-tests/footprint-dialog/footprint-selection.spec.ts +0 -29
  204. package/playwright-tests/handle-manual-edits.spec.ts +0 -55
  205. package/playwright-tests/home-page.spec.ts +0 -10
  206. package/playwright-tests/images.spec.ts +0 -17
  207. package/playwright-tests/manual-edits.spec.ts +0 -89
  208. package/playwright-tests/preview-page.spec.ts +0 -7
  209. package/playwright-tests/profile-page.spec.ts +0 -108
  210. package/playwright-tests/quickstart-page.spec.ts +0 -10
  211. package/playwright-tests/search-links.spec.ts +0 -21
  212. package/playwright-tests/search.spec.ts +0 -27
  213. package/playwright-tests/snapshots/ai-page.spec.ts-AI-Page-lg.png +0 -0
  214. package/playwright-tests/snapshots/ai-page.spec.ts-AI-Page-md.png +0 -0
  215. package/playwright-tests/snapshots/ai-page.spec.ts-AI-Page-xs.png +0 -0
  216. package/playwright-tests/snapshots/cmd-click.spec.ts-underlined-imports.png +0 -0
  217. package/playwright-tests/snapshots/dashboard-page.spec.ts-Dashboard-page-lg.png +0 -0
  218. package/playwright-tests/snapshots/dashboard-page.spec.ts-Dashboard-page-md.png +0 -0
  219. package/playwright-tests/snapshots/dashboard-page.spec.ts-Dashboard-page-xs.png +0 -0
  220. package/playwright-tests/snapshots/editor-page.spec.ts-editor-with-snippet.png +0 -0
  221. package/playwright-tests/snapshots/error-fallback.spec.ts-error-fallback-lg.png +0 -0
  222. package/playwright-tests/snapshots/error-fallback.spec.ts-error-fallback-md.png +0 -0
  223. package/playwright-tests/snapshots/error-fallback.spec.ts-error-fallback-xs.png +0 -0
  224. package/playwright-tests/snapshots/files-dialog.spec.ts-view-snippet-files.png +0 -0
  225. package/playwright-tests/snapshots/footprint-dialog/footprint-dialog.spec.ts-footprint-preview-lg.png +0 -0
  226. package/playwright-tests/snapshots/footprint-dialog/footprint-dialog.spec.ts-footprint-preview-md.png +0 -0
  227. package/playwright-tests/snapshots/footprint-dialog/footprint-dialog.spec.ts-footprint-preview-xs.png +0 -0
  228. package/playwright-tests/snapshots/footprint-dialog/footprint-insertion.spec.ts-footprint-insertion-lg.png +0 -0
  229. package/playwright-tests/snapshots/footprint-dialog/footprint-insertion.spec.ts-footprint-insertion-md.png +0 -0
  230. package/playwright-tests/snapshots/footprint-dialog/footprint-insertion.spec.ts-footprint-insertion-xs.png +0 -0
  231. package/playwright-tests/snapshots/footprint-dialog/footprint-preview.spec.ts-footprint-preview-lg.png +0 -0
  232. package/playwright-tests/snapshots/footprint-dialog/footprint-preview.spec.ts-footprint-preview-md.png +0 -0
  233. package/playwright-tests/snapshots/footprint-dialog/footprint-preview.spec.ts-footprint-preview-xs.png +0 -0
  234. package/playwright-tests/snapshots/footprint-dialog/footprint-selection.spec.ts-footprint-preview-lg.png +0 -0
  235. package/playwright-tests/snapshots/footprint-dialog/footprint-selection.spec.ts-footprint-preview-md.png +0 -0
  236. package/playwright-tests/snapshots/footprint-dialog/footprint-selection.spec.ts-footprint-preview-xs.png +0 -0
  237. package/playwright-tests/snapshots/handle-manual-edits.spec.ts-handle-manual-edits.png +0 -0
  238. package/playwright-tests/snapshots/home-page.spec.ts-Home-page-lg.png +0 -0
  239. package/playwright-tests/snapshots/home-page.spec.ts-Home-page-md.png +0 -0
  240. package/playwright-tests/snapshots/home-page.spec.ts-Home-page-xs.png +0 -0
  241. package/playwright-tests/snapshots/images.spec.ts-pcb-image.png +0 -0
  242. package/playwright-tests/snapshots/images.spec.ts-schematic-image.png +0 -0
  243. package/playwright-tests/snapshots/manual-edits.spec.ts-editor-manual-edits.png +0 -0
  244. package/playwright-tests/snapshots/manual-edits.spec.ts-manual-edits-view.png +0 -0
  245. package/playwright-tests/snapshots/preview-page.spec.ts-preview-snippet-pcb.png +0 -0
  246. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-before-delete.png +0 -0
  247. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-delete-dialog.png +0 -0
  248. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-dropdown-open.png +0 -0
  249. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-snippets-tab.png +0 -0
  250. package/playwright-tests/snapshots/profile-page.spec.ts-profile-page-starred-tab.png +0 -0
  251. package/playwright-tests/snapshots/profile-page.spec.ts-snippet-page-open-after-star-click.png +0 -0
  252. package/playwright-tests/snapshots/quickstart-page.spec.ts-Quickstart-Pagelg.png +0 -0
  253. package/playwright-tests/snapshots/quickstart-page.spec.ts-Quickstart-Pagemd.png +0 -0
  254. package/playwright-tests/snapshots/quickstart-page.spec.ts-Quickstart-Pagexs.png +0 -0
  255. package/playwright-tests/snapshots/search-links.spec.ts-search-links.png +0 -0
  256. package/playwright-tests/snapshots/search.spec.ts-search-lg.png +0 -0
  257. package/playwright-tests/snapshots/search.spec.ts-search-md.png +0 -0
  258. package/playwright-tests/snapshots/search.spec.ts-search-xs.png +0 -0
  259. package/playwright-tests/snapshots/star.spec.ts-remove-star-button.png +0 -0
  260. package/playwright-tests/snapshots/star.spec.ts-star-button.png +0 -0
  261. package/playwright-tests/snapshots/update-description.spec.ts-update-description.png +0 -0
  262. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-after-lg.png +0 -0
  263. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-after-md.png +0 -0
  264. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-after-xs.png +0 -0
  265. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-before-lg.png +0 -0
  266. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-before-md.png +0 -0
  267. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-before-xs.png +0 -0
  268. package/playwright-tests/snapshots/view-snippet.spec.ts-view-snippet-files.png +0 -0
  269. package/playwright-tests/star.spec.ts +0 -40
  270. package/playwright-tests/update-description.spec.ts +0 -18
  271. package/playwright-tests/view-snippet.spec.ts +0 -35
  272. package/playwright-tests/viewports.ts +0 -5
  273. package/playwright.config.ts +0 -27
  274. package/postcss.config.js +0 -6
  275. package/public/robots.txt +0 -9
  276. package/renovate.json +0 -25
  277. package/scripts/generate-image-sizes.ts +0 -57
  278. package/scripts/generate-sitemap.ts +0 -103
  279. package/scripts/generate_bundle_stats.js +0 -208
  280. package/scripts/snapshot.ts +0 -35
  281. package/src/App.tsx +0 -314
  282. package/src/ContextProviders.tsx +0 -94
  283. package/src/assets/originals/editor_example_1.webp +0 -0
  284. package/src/assets/originals/editor_example_1_more_square.webp +0 -0
  285. package/src/assets/originals/editor_example_2.webp +0 -0
  286. package/src/assets/originals/example_schematic.webp +0 -0
  287. package/src/components/AiChatMessage.tsx +0 -86
  288. package/src/components/Analytics.tsx +0 -23
  289. package/src/components/BomTable.tsx +0 -69
  290. package/src/components/ChatInput.tsx +0 -53
  291. package/src/components/CircuitJsonImportDialog.tsx +0 -269
  292. package/src/components/CircuitToSvgWithMouseControl.tsx +0 -78
  293. package/src/components/CmdKMenu.tsx +0 -809
  294. package/src/components/CreateNewSnippetWithAiHero.tsx +0 -81
  295. package/src/components/CreateReleaseDialog.tsx +0 -124
  296. package/src/components/DownloadButtonAndMenu.tsx +0 -443
  297. package/src/components/ErrorFallback.tsx +0 -25
  298. package/src/components/ErrorOutline.tsx +0 -35
  299. package/src/components/ErrorTabContent.tsx +0 -122
  300. package/src/components/ExpandableText.tsx +0 -29
  301. package/src/components/FAQ.tsx +0 -189
  302. package/src/components/FileSidebar.tsx +0 -271
  303. package/src/components/Footer.tsx +0 -144
  304. package/src/components/GithubAvatarWithFallback.tsx +0 -35
  305. package/src/components/Header.tsx +0 -202
  306. package/src/components/Header2.tsx +0 -202
  307. package/src/components/HeaderDropdown.tsx +0 -88
  308. package/src/components/HeaderLogin.tsx +0 -105
  309. package/src/components/HiddenFilesDropdown.tsx +0 -42
  310. package/src/components/ImageWithFallback.tsx +0 -37
  311. package/src/components/LatestSnippets.tsx +0 -39
  312. package/src/components/NotFound.tsx +0 -37
  313. package/src/components/OptimizedImage.tsx +0 -100
  314. package/src/components/PackageBreadcrumb.tsx +0 -105
  315. package/src/components/PackageBuildsPage/ErrorObject.ts +0 -12
  316. package/src/components/PackageBuildsPage/capitalCase.ts +0 -4
  317. package/src/components/PackageBuildsPage/getColorForDisplayStatus.ts +0 -17
  318. package/src/components/PackageCard.tsx +0 -191
  319. package/src/components/PackageCardSkeleton.tsx +0 -17
  320. package/src/components/PackageLink.tsx +0 -29
  321. package/src/components/PackageSearchResults.tsx +0 -81
  322. package/src/components/PackagesList.tsx +0 -71
  323. package/src/components/PcbViewerWithContainerHeight.tsx +0 -47
  324. package/src/components/PrefetchPageLink.tsx +0 -114
  325. package/src/components/PreviewEmptyState.tsx +0 -16
  326. package/src/components/ProfileRouter.tsx +0 -30
  327. package/src/components/RunButton.tsx +0 -27
  328. package/src/components/SearchComponent.tsx +0 -282
  329. package/src/components/SentryNotFoundReporter.tsx +0 -44
  330. package/src/components/SnippetTypeIcon.tsx +0 -60
  331. package/src/components/StaticPreviewContent.tsx +0 -89
  332. package/src/components/StaticViewSnippetSidebar.tsx +0 -100
  333. package/src/components/SuspenseRunFrame.tsx +0 -28
  334. package/src/components/TableViewer/CircuitJsonTableViewer.tsx +0 -316
  335. package/src/components/TableViewer/ClickableText.tsx +0 -21
  336. package/src/components/TableViewer/HeaderCell.tsx +0 -27
  337. package/src/components/TableViewer/Modal.tsx +0 -39
  338. package/src/components/TrendingPackagesCarousel.tsx +0 -79
  339. package/src/components/TypeBadge.tsx +0 -31
  340. package/src/components/UserCard.tsx +0 -80
  341. package/src/components/ViewPackagePage/components/ShikiCodeViewer.tsx +0 -49
  342. package/src/components/ViewPackagePage/components/build-status.tsx +0 -38
  343. package/src/components/ViewPackagePage/components/important-files-view.tsx +0 -611
  344. package/src/components/ViewPackagePage/components/main-content-header.tsx +0 -181
  345. package/src/components/ViewPackagePage/components/main-content-view-selector.tsx +0 -167
  346. package/src/components/ViewPackagePage/components/markdown-viewer.tsx +0 -88
  347. package/src/components/ViewPackagePage/components/mobile-sidebar.tsx +0 -301
  348. package/src/components/ViewPackagePage/components/package-header.tsx +0 -264
  349. package/src/components/ViewPackagePage/components/preview-image-squares.tsx +0 -47
  350. package/src/components/ViewPackagePage/components/repo-page-content.tsx +0 -266
  351. package/src/components/ViewPackagePage/components/sidebar-about-section.tsx +0 -223
  352. package/src/components/ViewPackagePage/components/sidebar-packages-section.tsx +0 -16
  353. package/src/components/ViewPackagePage/components/sidebar-releases-section.tsx +0 -126
  354. package/src/components/ViewPackagePage/components/sidebar.tsx +0 -29
  355. package/src/components/ViewPackagePage/components/tab-views/3d-view.tsx +0 -43
  356. package/src/components/ViewPackagePage/components/tab-views/bom-view.tsx +0 -30
  357. package/src/components/ViewPackagePage/components/tab-views/files-view.tsx +0 -295
  358. package/src/components/ViewPackagePage/components/tab-views/pcb-view.tsx +0 -35
  359. package/src/components/ViewPackagePage/components/tab-views/schematic-view.tsx +0 -38
  360. package/src/components/ViewPackagePage/components/theme-toggle.tsx +0 -40
  361. package/src/components/ViewPackagePage/hooks/use-current-package-circuit-json.ts +0 -46
  362. package/src/components/ViewPackagePage/hooks/use-mobile.tsx +0 -19
  363. package/src/components/ViewPackagePage/hooks/use-toast.tsx +0 -69
  364. package/src/components/ViewPackagePage/utils/fuzz-search.ts +0 -121
  365. package/src/components/ViewPackagePage/utils/get-license-content.ts +0 -119
  366. package/src/components/ViewPackagePage/utils/is-hidden-file.ts +0 -55
  367. package/src/components/ViewPackagePage/utils/is-package-file-important.ts +0 -35
  368. package/src/components/ViewPackagePage/utils/is-within-directory.ts +0 -32
  369. package/src/components/dialogs/GitHubRepositorySelector.tsx +0 -300
  370. package/src/components/dialogs/confirm-delete-package-dialog.tsx +0 -74
  371. package/src/components/dialogs/confirm-discard-changes-dialog.tsx +0 -73
  372. package/src/components/dialogs/create-use-dialog.tsx +0 -40
  373. package/src/components/dialogs/edit-description-dialog.tsx +0 -96
  374. package/src/components/dialogs/edit-package-details-dialog.tsx +0 -474
  375. package/src/components/dialogs/files-dialog.tsx +0 -70
  376. package/src/components/dialogs/import-component-dialog.tsx +0 -32
  377. package/src/components/dialogs/import-package-dialog.tsx +0 -90
  378. package/src/components/dialogs/new-package-save-prompt-dialog.tsx +0 -199
  379. package/src/components/dialogs/package-visibility-settings-dialog.tsx +0 -93
  380. package/src/components/dialogs/pcb-download-dialog.tsx +0 -113
  381. package/src/components/dialogs/rename-package-dialog.tsx +0 -86
  382. package/src/components/dialogs/rename-snippet-dialog.tsx +0 -81
  383. package/src/components/dialogs/update-package-description-dialog.tsx +0 -96
  384. package/src/components/dialogs/view-ts-files-dialog.tsx +0 -664
  385. package/src/components/organization/OrganizationCard.tsx +0 -202
  386. package/src/components/organization/OrganizationCardSkeleton.tsx +0 -55
  387. package/src/components/organization/OrganizationHeader.tsx +0 -140
  388. package/src/components/organization/OrganizationMembers.tsx +0 -117
  389. package/src/components/package-port/CodeAndPreview.tsx +0 -253
  390. package/src/components/package-port/CodeEditor.tsx +0 -866
  391. package/src/components/package-port/CodeEditorHeader.tsx +0 -427
  392. package/src/components/package-port/EditorNav.tsx +0 -606
  393. package/src/components/package-port/GlobalFindReplace.tsx +0 -681
  394. package/src/components/package-port/QuickOpen.tsx +0 -241
  395. package/src/components/preview/BuildsList.tsx +0 -237
  396. package/src/components/preview/ConnectedPackagesList.tsx +0 -229
  397. package/src/components/preview/ConnectedRepoOverview.tsx +0 -588
  398. package/src/components/preview/PackageReleasesDashboard.tsx +0 -228
  399. package/src/components/preview/index.tsx +0 -54
  400. package/src/components/ui/accordion.tsx +0 -55
  401. package/src/components/ui/alert-dialog.tsx +0 -139
  402. package/src/components/ui/alert.tsx +0 -59
  403. package/src/components/ui/aspect-ratio.tsx +0 -5
  404. package/src/components/ui/avatar.tsx +0 -48
  405. package/src/components/ui/badge.tsx +0 -36
  406. package/src/components/ui/breadcrumb.tsx +0 -118
  407. package/src/components/ui/button.tsx +0 -58
  408. package/src/components/ui/calendar.tsx +0 -73
  409. package/src/components/ui/card.tsx +0 -76
  410. package/src/components/ui/carousel.tsx +0 -260
  411. package/src/components/ui/chart.tsx +0 -363
  412. package/src/components/ui/checkbox.tsx +0 -28
  413. package/src/components/ui/collapsible.tsx +0 -9
  414. package/src/components/ui/combobox.tsx +0 -178
  415. package/src/components/ui/command.tsx +0 -151
  416. package/src/components/ui/context-menu.tsx +0 -202
  417. package/src/components/ui/dialog.tsx +0 -120
  418. package/src/components/ui/drawer.tsx +0 -116
  419. package/src/components/ui/dropdown-menu.tsx +0 -203
  420. package/src/components/ui/form.tsx +0 -182
  421. package/src/components/ui/hover-card.tsx +0 -27
  422. package/src/components/ui/input.tsx +0 -25
  423. package/src/components/ui/label.tsx +0 -24
  424. package/src/components/ui/menubar.tsx +0 -238
  425. package/src/components/ui/navigation-menu.tsx +0 -129
  426. package/src/components/ui/pagination.tsx +0 -121
  427. package/src/components/ui/popover.tsx +0 -31
  428. package/src/components/ui/progress.tsx +0 -26
  429. package/src/components/ui/radio-group.tsx +0 -42
  430. package/src/components/ui/resizable.tsx +0 -43
  431. package/src/components/ui/role-badge.tsx +0 -27
  432. package/src/components/ui/scroll-area.tsx +0 -46
  433. package/src/components/ui/searchable-select.tsx +0 -94
  434. package/src/components/ui/select.tsx +0 -162
  435. package/src/components/ui/separator.tsx +0 -29
  436. package/src/components/ui/sheet.tsx +0 -141
  437. package/src/components/ui/skeleton.tsx +0 -18
  438. package/src/components/ui/slider.tsx +0 -26
  439. package/src/components/ui/sonner.tsx +0 -30
  440. package/src/components/ui/switch.tsx +0 -27
  441. package/src/components/ui/table.tsx +0 -120
  442. package/src/components/ui/tabs.tsx +0 -53
  443. package/src/components/ui/textarea.tsx +0 -24
  444. package/src/components/ui/toast.tsx +0 -128
  445. package/src/components/ui/toaster.tsx +0 -1
  446. package/src/components/ui/toggle-group.tsx +0 -59
  447. package/src/components/ui/toggle.tsx +0 -43
  448. package/src/components/ui/tooltip.tsx +0 -28
  449. package/src/components/ui/tree-view.tsx +0 -563
  450. package/src/entry-server.tsx +0 -12
  451. package/src/hooks/use-account-balance.ts +0 -25
  452. package/src/hooks/use-add-org-member-mutation.ts +0 -51
  453. package/src/hooks/use-ai-api.ts +0 -35
  454. package/src/hooks/use-ai-review.ts +0 -31
  455. package/src/hooks/use-axios.ts +0 -20
  456. package/src/hooks/use-code-completion-ai-api.ts +0 -11
  457. package/src/hooks/use-copy-to-clipboard.ts +0 -26
  458. package/src/hooks/use-create-datasheet.ts +0 -30
  459. package/src/hooks/use-create-org-mutation.ts +0 -38
  460. package/src/hooks/use-create-package-files-mutation.ts +0 -76
  461. package/src/hooks/use-create-package-mutation.ts +0 -54
  462. package/src/hooks/use-create-package-release-mutation.ts +0 -107
  463. package/src/hooks/use-create-release-dialog.ts +0 -160
  464. package/src/hooks/use-create-snippet-mutation.ts +0 -65
  465. package/src/hooks/use-current-package-id.ts +0 -16
  466. package/src/hooks/use-current-package-info.ts +0 -32
  467. package/src/hooks/use-current-package-release.ts +0 -48
  468. package/src/hooks/use-current-snippet-id.ts +0 -78
  469. package/src/hooks/use-current-snippet.ts +0 -24
  470. package/src/hooks/use-datasheet.ts +0 -18
  471. package/src/hooks/use-debounce.ts +0 -17
  472. package/src/hooks/use-delete-package.ts +0 -45
  473. package/src/hooks/use-download-zip.ts +0 -50
  474. package/src/hooks/use-fork-package-mutation.ts +0 -61
  475. package/src/hooks/use-global-store.ts +0 -36
  476. package/src/hooks/use-hotkey.ts +0 -116
  477. package/src/hooks/use-hydration.ts +0 -30
  478. package/src/hooks/use-is-using-fake-api.ts +0 -3
  479. package/src/hooks/use-jlcpcb-component-import.tsx +0 -164
  480. package/src/hooks/use-list-org-members.ts +0 -32
  481. package/src/hooks/use-list-user-orgs.ts +0 -25
  482. package/src/hooks/use-now.ts +0 -12
  483. package/src/hooks/use-org-by-github-handle.ts +0 -24
  484. package/src/hooks/use-org.ts +0 -24
  485. package/src/hooks/use-organization.ts +0 -42
  486. package/src/hooks/use-package-as-snippet.ts +0 -81
  487. package/src/hooks/use-package-builds.ts +0 -91
  488. package/src/hooks/use-package-by-package-id.ts +0 -24
  489. package/src/hooks/use-package-by-package-name.ts +0 -29
  490. package/src/hooks/use-package-details-form.ts +0 -146
  491. package/src/hooks/use-package-files.ts +0 -122
  492. package/src/hooks/use-package-release-by-id-or-version.ts +0 -45
  493. package/src/hooks/use-package-release-images.ts +0 -105
  494. package/src/hooks/use-package-release.ts +0 -124
  495. package/src/hooks/use-package-stars.ts +0 -163
  496. package/src/hooks/use-package.ts +0 -24
  497. package/src/hooks/use-packages-base-api-url.ts +0 -3
  498. package/src/hooks/use-preview-images.ts +0 -78
  499. package/src/hooks/use-rebuild-package-release-mutation.ts +0 -41
  500. package/src/hooks/use-remove-org-member-mutation.ts +0 -32
  501. package/src/hooks/use-request-ai-review-mutation.ts +0 -54
  502. package/src/hooks/use-run-tsx/eval-compiled-js.ts +0 -9
  503. package/src/hooks/use-shiki-highlighter.ts +0 -33
  504. package/src/hooks/use-sign-in.ts +0 -24
  505. package/src/hooks/use-snippet-by-name.ts +0 -25
  506. package/src/hooks/use-snippet.ts +0 -24
  507. package/src/hooks/use-toast.tsx +0 -90
  508. package/src/hooks/use-update-ai-description-mutation.ts +0 -42
  509. package/src/hooks/use-update-org-mutation.ts +0 -41
  510. package/src/hooks/use-url-params.ts +0 -31
  511. package/src/hooks/use-warn-user-on-page-change.ts +0 -90
  512. package/src/hooks/useFileManagement.ts +0 -602
  513. package/src/hooks/useForkPackageMutation.ts +0 -50
  514. package/src/hooks/useForkSnippetMutation.ts +0 -53
  515. package/src/hooks/useOptimizedPackageFilesLoader.ts +0 -136
  516. package/src/hooks/usePackageFilesLoader.ts +0 -58
  517. package/src/hooks/useUpdatePackageFilesMutation.ts +0 -131
  518. package/src/hooks/useUpdatePackageMutation.ts +0 -63
  519. package/src/index.css +0 -108
  520. package/src/lib/__tests__/constants.test.ts +0 -66
  521. package/src/lib/base64ToBytes.ts +0 -5
  522. package/src/lib/bytesToBase64.ts +0 -4
  523. package/src/lib/codemirror/basic-setup.ts +0 -67
  524. package/src/lib/constants.ts +0 -23
  525. package/src/lib/decodeUrlHashToFsMap.ts +0 -17
  526. package/src/lib/decodeUrlHashToText.ts +0 -15
  527. package/src/lib/defaultCodeForBlankCode.tsx +0 -7
  528. package/src/lib/download-fns/createBlobURL.ts +0 -4
  529. package/src/lib/download-fns/download-assembly-svg.ts +0 -12
  530. package/src/lib/download-fns/download-circuit-json-fn.ts +0 -12
  531. package/src/lib/download-fns/download-circuit-png.ts +0 -96
  532. package/src/lib/download-fns/download-dsn-file-fn.ts +0 -12
  533. package/src/lib/download-fns/download-fabrication-files.ts +0 -233
  534. package/src/lib/download-fns/download-gltf-from-circuit-json.ts +0 -44
  535. package/src/lib/download-fns/download-gltf.ts +0 -43
  536. package/src/lib/download-fns/download-kicad-files.ts +0 -38
  537. package/src/lib/download-fns/download-pcb-svg.ts +0 -35
  538. package/src/lib/download-fns/download-png-utils.ts +0 -31
  539. package/src/lib/download-fns/download-readable-netlist.ts +0 -12
  540. package/src/lib/download-fns/download-schematic-svg.ts +0 -12
  541. package/src/lib/download-fns/download-simple-route-json.ts +0 -17
  542. package/src/lib/download-fns/download-spice-file.ts +0 -13
  543. package/src/lib/download-fns/download-step.ts +0 -12
  544. package/src/lib/encodeFsMapToUrlHash.ts +0 -13
  545. package/src/lib/encodeTextToUrlHash.ts +0 -17
  546. package/src/lib/get-snippet-template.ts +0 -26
  547. package/src/lib/getLicenseFromLicenseContent.ts +0 -67
  548. package/src/lib/handleManualEditsImport.tsx +0 -65
  549. package/src/lib/handleManualEditsImportWithSupportForMultipleFiles.ts +0 -67
  550. package/src/lib/normalize-svg-for-tile.ts +0 -50
  551. package/src/lib/populate-query-cache-with-ssr-data.ts +0 -53
  552. package/src/lib/posthog.ts +0 -17
  553. package/src/lib/react-query-api-failure-tracking.ts +0 -148
  554. package/src/lib/sentry.ts +0 -14
  555. package/src/lib/templates/blank-3d-model-template.ts +0 -12
  556. package/src/lib/templates/blank-circuit-board-template.ts +0 -20
  557. package/src/lib/templates/blank-footprint-template.ts +0 -29
  558. package/src/lib/templates/blank-package-template.ts +0 -21
  559. package/src/lib/templates/blinking-led-board-template.ts +0 -64
  560. package/src/lib/templates/usb-c-led-flashlight-template.ts +0 -22
  561. package/src/lib/ts-lib-cache.ts +0 -162
  562. package/src/lib/types.ts +0 -31
  563. package/src/lib/utils/checkIfManualEditsImported.ts +0 -20
  564. package/src/lib/utils/findTargetFile.ts +0 -97
  565. package/src/lib/utils/formatTimeAgo.ts +0 -10
  566. package/src/lib/utils/getPackagePreviewImageUrl.ts +0 -15
  567. package/src/lib/utils/index.ts +0 -6
  568. package/src/lib/utils/isComponentExported.ts +0 -10
  569. package/src/lib/utils/isUuid.ts +0 -5
  570. package/src/lib/utils/isValidFileName.ts +0 -17
  571. package/src/lib/utils/load-prettier.ts +0 -23
  572. package/src/lib/utils/member-role.tsx +0 -61
  573. package/src/lib/utils/package-utils.ts +0 -7
  574. package/src/lib/utils/parseJsonOrNull.ts +0 -8
  575. package/src/lib/utils/pcbManualEditEventHandler.ts +0 -156
  576. package/src/lib/utils/resolveRelativePath.ts +0 -40
  577. package/src/lib/utils/timeAgo.ts +0 -20
  578. package/src/lib/utils/toastManualEditConflicts.tsx +0 -39
  579. package/src/lib/utils/transformFilesToTreeData.tsx +0 -195
  580. package/src/main.tsx +0 -15
  581. package/src/pages/404.tsx +0 -23
  582. package/src/pages/authorize.tsx +0 -208
  583. package/src/pages/create-organization.tsx +0 -169
  584. package/src/pages/dashboard.tsx +0 -254
  585. package/src/pages/datasheet.tsx +0 -198
  586. package/src/pages/datasheets.tsx +0 -148
  587. package/src/pages/dev-login.tsx +0 -68
  588. package/src/pages/editor.tsx +0 -54
  589. package/src/pages/landing.tsx +0 -237
  590. package/src/pages/latest.tsx +0 -145
  591. package/src/pages/my-orders.tsx +0 -54
  592. package/src/pages/organization-profile.tsx +0 -197
  593. package/src/pages/organization-settings.tsx +0 -571
  594. package/src/pages/package-editor.tsx +0 -60
  595. package/src/pages/preview-release.tsx +0 -209
  596. package/src/pages/quickstart.tsx +0 -258
  597. package/src/pages/release-builds.tsx +0 -99
  598. package/src/pages/release-detail.tsx +0 -211
  599. package/src/pages/releases.tsx +0 -55
  600. package/src/pages/search.tsx +0 -288
  601. package/src/pages/settings-redirect.tsx +0 -44
  602. package/src/pages/trending.tsx +0 -201
  603. package/src/pages/user-profile.tsx +0 -330
  604. package/src/pages/user-settings.tsx +0 -161
  605. package/src/pages/view-package.tsx +0 -90
  606. package/src/types/package.ts +0 -4
  607. package/src/vite-env.d.ts +0 -1
  608. package/tailwind.config.js +0 -47
  609. package/tsconfig.json +0 -30
  610. package/vercel.json +0 -50
  611. package/vite.config.ts +0 -236
  612. package/winterspec.config.ts +0 -6
@@ -1,7 +0,0 @@
1
- export const defaultCodeForBlankPage = `
2
- export default () => (
3
- <board width="10mm" height="10mm">
4
- {/* write your code here! */}
5
- </board>
6
- )
7
- `.trim()
@@ -1,4 +0,0 @@
1
- export const createBlobURL = (content: string) => {
2
- const blob = new Blob([content], { type: "text/plain" })
3
- return URL.createObjectURL(blob)
4
- }
@@ -1,12 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { convertCircuitJsonToAssemblySvg } from "circuit-to-svg"
3
- import { saveAs } from "file-saver"
4
-
5
- export const downloadAssemblySvg = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const svg = convertCircuitJsonToAssemblySvg(circuitJson)
10
- const blob = new Blob([svg], { type: "image/svg" })
11
- saveAs(blob, fileName + ".svg")
12
- }
@@ -1,12 +0,0 @@
1
- import { saveAs } from "file-saver"
2
- import { createBlobURL } from "./createBlobURL"
3
- import { AnyCircuitElement } from "circuit-json"
4
-
5
- export const downloadCircuitJson = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const stringifiedCircuitJson = JSON.stringify(circuitJson, null, 2)
10
- const blob = new Blob([stringifiedCircuitJson], { type: "application/json" })
11
- saveAs(blob, fileName)
12
- }
@@ -1,96 +0,0 @@
1
- import { convertCircuitJsonToSimple3dSvg } from "circuit-json-to-simple-3d"
2
- import { AnyCircuitElement } from "circuit-json"
3
- import {
4
- convertCircuitJsonToAssemblySvg,
5
- convertCircuitJsonToPcbSvg,
6
- convertCircuitJsonToSchematicSvg,
7
- } from "circuit-to-svg"
8
- import { saveAs } from "file-saver"
9
-
10
- export type ImageFormat = "schematic" | "pcb" | "assembly" | "3d"
11
-
12
- interface DownloadCircuitPngOptions {
13
- format: ImageFormat
14
- width?: number
15
- height?: number
16
- }
17
-
18
- const convertSvgToPng = async (svgString: string): Promise<Blob> => {
19
- return new Promise((resolve, reject) => {
20
- const canvas = document.createElement("canvas")
21
- const ctx = canvas.getContext("2d")
22
- if (!ctx) {
23
- reject(new Error("Failed to get canvas context"))
24
- return
25
- }
26
-
27
- const img = new Image()
28
- img.onload = () => {
29
- canvas.width = img.width || 800
30
- canvas.height = img.height || 600
31
- ctx.fillStyle = "white"
32
- ctx.fillRect(0, 0, canvas.width, canvas.height)
33
- ctx.drawImage(img, 0, 0)
34
-
35
- canvas.toBlob((blob) => {
36
- if (blob) {
37
- resolve(blob)
38
- } else {
39
- reject(new Error("Failed to convert canvas to blob"))
40
- }
41
- }, "image/png")
42
- }
43
-
44
- img.onerror = () => {
45
- reject(new Error("Failed to load SVG image"))
46
- }
47
-
48
- const svgBlob = new Blob([svgString], { type: "image/svg+xml" })
49
- const url = URL.createObjectURL(svgBlob)
50
- img.src = url
51
-
52
- setTimeout(() => URL.revokeObjectURL(url), 10000)
53
- })
54
- }
55
-
56
- export const downloadCircuitPng = async (
57
- circuitJson: AnyCircuitElement[],
58
- fileName: string,
59
- options: DownloadCircuitPngOptions = { format: "pcb" },
60
- ) => {
61
- try {
62
- let blob: Blob
63
- let svg: string
64
-
65
- const svgOptions: any = {}
66
- if (options.width) svgOptions.width = options.width
67
- if (options.height) svgOptions.height = options.height
68
-
69
- switch (options.format.toLowerCase()) {
70
- case "schematic":
71
- svg = convertCircuitJsonToSchematicSvg(circuitJson, svgOptions)
72
- break
73
- case "pcb":
74
- svg = convertCircuitJsonToPcbSvg(circuitJson, svgOptions)
75
- break
76
- case "assembly":
77
- svg = convertCircuitJsonToAssemblySvg(circuitJson, svgOptions)
78
- break
79
- default:
80
- svg = await convertCircuitJsonToSimple3dSvg(circuitJson, {
81
- background: {
82
- color: "#fff",
83
- opacity: 0.0,
84
- },
85
- defaultZoomMultiplier: 1.1,
86
- })
87
- }
88
-
89
- blob = await convertSvgToPng(svg)
90
- const downloadFileName = `${fileName}_${options.format}.png`
91
- saveAs(blob, downloadFileName)
92
- } catch (error) {
93
- console.error(error)
94
- throw new Error(`Failed to download ${options.format} PNG: ${error}`)
95
- }
96
- }
@@ -1,12 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { saveAs } from "file-saver"
3
- import { convertCircuitJsonToDsnString } from "dsn-converter"
4
-
5
- export const downloadDsnFile = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const dsnString = convertCircuitJsonToDsnString(circuitJson)
10
- const blob = new Blob([dsnString], { type: "text/plain" })
11
- saveAs(blob, fileName + ".dsn")
12
- }
@@ -1,233 +0,0 @@
1
- /**
2
- * Some relevant code from another project
3
- import { AppContext } from "../util/app-context"
4
- import { z } from "zod"
5
- import * as Path from "path"
6
- import { unlink } from "node:fs/promises"
7
- import * as fs from "fs"
8
- import {
9
- stringifyGerberCommandLayers,
10
- convertSoupToGerberCommands,
11
- convertSoupToExcellonDrillCommands,
12
- stringifyExcellonDrill,
13
- } from "circuit-json-to-gerber"
14
- import kleur from "kleur"
15
- import archiver from "archiver"
16
- import { AnyCircuitElement } from "circuit-json"
17
-
18
- export const exportGerbersToFile = async (
19
- params: {
20
- circuitJson: AnyCircuitElement[]
21
- example_file_path: string
22
- export_name?: string
23
- output_zip_path: string
24
- },
25
- ctx: AppContext,
26
- ) => {
27
- console.log(kleur.gray("[soupifying]..."))
28
-
29
- console.log(kleur.gray("[soup to gerber json]..."))
30
- const gerber_layer_cmds = convertSoupToGerberCommands(circuitJson, {
31
- flip_y_axis: false,
32
- })
33
-
34
- console.log(kleur.gray("[soup to drl json]..."))
35
- const drill_cmds = convertSoupToExcellonDrillCommands({
36
- soup: circuitJson,
37
- is_plated: true,
38
- flip_y_axis: false,
39
- })
40
-
41
- console.log(kleur.gray("[stringify gerber json]..."))
42
- const gerber_file_contents = stringifyGerberCommandLayers(gerber_layer_cmds)
43
- console.log(kleur.gray("[stringify drl json]..."))
44
- const drill_file_contents = {
45
- plated: stringifyExcellonDrill(drill_cmds),
46
- }
47
-
48
- console.log(kleur.gray("[writing gerbers to tmp dir]..."))
49
- const tempDir = Path.join(".tscircuit", "tmp-gerber-export")
50
- fs.rmSync(tempDir, { recursive: true, force: true })
51
- fs.mkdirSync(tempDir, { recursive: true })
52
- for (const [fileName, fileContents] of Object.entries(gerber_file_contents)) {
53
- const filePath = Path.join(tempDir, fileName)
54
- await fs.writeFileSync(`${filePath}.gbr`, fileContents)
55
- }
56
- for (const [fileName, fileContents] of Object.entries(drill_file_contents)) {
57
- const filePath = Path.join(tempDir, fileName)
58
- await fs.writeFileSync(`${filePath}.drl`, fileContents)
59
- }
60
-
61
- console.log(kleur.gray("[zipping tmp dir]..."))
62
- console.log(kleur.gray(" writing to " + params.output_zip_path))
63
- const output = fs.createWriteStream(params.output_zip_path)
64
-
65
- const archive = archiver("zip", {
66
- zlib: { level: 9 },
67
- })
68
-
69
- archive.pipe(output)
70
- archive.directory(tempDir, false)
71
-
72
- await new Promise((resolve, reject) => {
73
- output.on("close", resolve)
74
- output.on("finish", resolve)
75
- output.on("end", resolve)
76
- output.on("error", reject)
77
- archive.finalize()
78
- })
79
- }
80
-
81
- export const exportGerbersToZipBuffer = async (
82
- params: {
83
- example_file_path: string
84
- export_name?: string
85
- },
86
- ctx: AppContext,
87
- ) => {
88
- const tempDir = Path.join(".tscircuit", "tmp-gerber-zip")
89
- fs.mkdirSync(tempDir, { recursive: true })
90
-
91
- await exportGerbersToFile(
92
- {
93
- example_file_path: params.example_file_path,
94
- export_name: params.export_name,
95
- output_zip_path: Path.join(tempDir, "gerbers.zip"),
96
- },
97
- ctx,
98
- )
99
-
100
- const buffer = fs.readFileSync(Path.join(tempDir, "gerbers.zip"))
101
-
102
- fs.rmSync(tempDir, { recursive: true })
103
-
104
- return buffer
105
- }
106
-
107
-
108
- import { AppContext } from "../util/app-context"
109
- import { soupify } from "cli/lib/soupify"
110
- import kleur from "kleur"
111
- import {
112
- convertCircuitJsonToBomRows,
113
- convertBomRowsToCsv,
114
- } from "circuit-json-to-bom-csv"
115
-
116
- export const exportBomCsvToBuffer = async (
117
- params: {
118
- example_file_path: string
119
- export_name?: string
120
- },
121
- ctx: AppContext,
122
- ) => {
123
- console.log(kleur.gray("[soupifying]..."))
124
- const circuitJson = await circuitJsonify(
125
- {
126
- filePath: params.example_file_path,
127
- exportName: params.export_name,
128
- },
129
- ctx,
130
- )
131
-
132
- console.log(kleur.gray("[circuitJson to bom rows]..."))
133
- const bom_rows = await convertCircuitJsonToBomRows({ circuitJson: circuitJson })
134
-
135
- console.log(kleur.gray("[bom rows to csv]..."))
136
- const bom_csv = await convertBomRowsToCsv(bom_rows)
137
-
138
- return Buffer.from(bom_csv, "utf-8")
139
- }
140
-
141
-
142
- import { AppContext } from "../util/app-context"
143
- import { z } from "zod"
144
- import * as Path from "path"
145
- import { unlink } from "node:fs/promises"
146
- import { soupify } from "cli/lib/soupify"
147
- import { convertCircuitJsonToPickAndPlaceCsv } from "circuit-json-to-pnp-csv"
148
- import * as fs from "fs"
149
- import kleur from "kleur"
150
- import archiver from "archiver"
151
-
152
- export const exportPnpCsvToBuffer = async (
153
- params: {
154
- example_file_path: string
155
- export_name?: string
156
- },
157
- ctx: AppContext,
158
- ) => {
159
- console.log(kleur.gray("[soupifying]..."))
160
- const circuitJson = await soupify(
161
- {
162
- filePath: params.example_file_path,
163
- exportName: params.export_name,
164
- },
165
- ctx,
166
- )
167
-
168
- console.log(kleur.gray("[circuitJson to pnp csv string]..."))
169
- const pnp_csv = await convertCircuitJsonToPickAndPlaceCsv(circuitJson)
170
-
171
- return Buffer.from(pnp_csv, "utf-8")
172
- }
173
-
174
-
175
-
176
- */
177
-
178
- import { AnyCircuitElement } from "circuit-json"
179
- import { saveAs } from "file-saver"
180
- import JSZip from "jszip"
181
- import {
182
- stringifyGerberCommandLayers,
183
- convertSoupToGerberCommands,
184
- convertSoupToExcellonDrillCommands,
185
- stringifyExcellonDrill,
186
- } from "circuit-json-to-gerber"
187
- import {
188
- convertCircuitJsonToBomRows,
189
- convertBomRowsToCsv,
190
- } from "circuit-json-to-bom-csv"
191
- import { convertCircuitJsonToPickAndPlaceCsv } from "circuit-json-to-pnp-csv"
192
-
193
- export const downloadFabricationFiles = async ({
194
- circuitJson,
195
- snippetUnscopedName,
196
- }: {
197
- circuitJson: AnyCircuitElement[]
198
- snippetUnscopedName: string
199
- }) => {
200
- const zip = new JSZip()
201
-
202
- // Generate Gerber files
203
- const gerberLayerCmds = convertSoupToGerberCommands(circuitJson, {
204
- flip_y_axis: false,
205
- })
206
- const gerberFileContents = stringifyGerberCommandLayers(gerberLayerCmds)
207
-
208
- for (const [fileName, fileContents] of Object.entries(gerberFileContents)) {
209
- zip.file(`gerber/${fileName}.gbr`, fileContents)
210
- }
211
-
212
- // Generate Drill files
213
- const drillCmds = convertSoupToExcellonDrillCommands({
214
- circuitJson,
215
- is_plated: true,
216
- flip_y_axis: false,
217
- })
218
- const drillFileContents = stringifyExcellonDrill(drillCmds)
219
- zip.file("gerber/drill.drl", drillFileContents)
220
-
221
- // Generate BOM CSV
222
- const bomRows = await convertCircuitJsonToBomRows({ circuitJson })
223
- const bomCsv = await convertBomRowsToCsv(bomRows)
224
- zip.file("bom.csv", bomCsv)
225
-
226
- // Generate Pick and Place CSV
227
- const pnpCsv = await convertCircuitJsonToPickAndPlaceCsv(circuitJson)
228
- zip.file("pick_and_place.csv", pnpCsv)
229
-
230
- // Generate and download the zip file
231
- const zipBlob = await zip.generateAsync({ type: "blob" })
232
- saveAs(zipBlob, `${snippetUnscopedName}_fabrication_files.zip`)
233
- }
@@ -1,44 +0,0 @@
1
- import { CircuitJson } from "circuit-json"
2
- import { saveAs } from "file-saver"
3
- import {
4
- convertCircuitJsonToGltf,
5
- type ConversionOptions,
6
- } from "circuit-json-to-gltf"
7
- export const downloadGltfFromCircuitJson = async (
8
- circuitJson: CircuitJson,
9
- fileName: string,
10
- options?: ConversionOptions,
11
- ) => {
12
- const result = await convertCircuitJsonToGltf(circuitJson, options)
13
-
14
- let blob: Blob
15
- let extension = options?.format === "glb" ? ".glb" : ".gltf"
16
-
17
- if (result instanceof ArrayBuffer) {
18
- blob = new Blob([result], { type: "model/gltf-binary" })
19
- extension = options?.format
20
- ? options.format === "glb"
21
- ? ".glb"
22
- : ".gltf"
23
- : ".glb"
24
- } else if (
25
- typeof ArrayBuffer !== "undefined" &&
26
- result &&
27
- typeof (result as any).buffer === "object" &&
28
- (result as any).byteLength !== undefined
29
- ) {
30
- const view = result as ArrayBuffer
31
- blob = new Blob([view], { type: "model/gltf-binary" })
32
- extension = options?.format
33
- ? options.format === "glb"
34
- ? ".glb"
35
- : ".gltf"
36
- : ".glb"
37
- } else if (typeof result === "string") {
38
- blob = new Blob([result], { type: "model/gltf+json" })
39
- } else {
40
- blob = new Blob([JSON.stringify(result)], { type: "model/gltf+json" })
41
- }
42
-
43
- saveAs(blob, fileName + extension)
44
- }
@@ -1,43 +0,0 @@
1
- import { GLTFExporter, type GLTFExporterOptions } from "three-stdlib"
2
- import { saveAs } from "file-saver"
3
- import * as THREE from "three"
4
-
5
- export const downloadGltf = async (fileName: string) => {
6
- const threeJsObject = window.TSCIRCUIT_3D_OBJECT_REF as THREE.Object3D
7
- if (!threeJsObject) {
8
- throw new Error(
9
- "To download the 3D model, please open the 3D view first and run the package",
10
- )
11
- }
12
-
13
- const exporter = new GLTFExporter()
14
-
15
- const options: GLTFExporterOptions = {
16
- binary: true,
17
- }
18
-
19
- const {
20
- promise: gltfPromise,
21
- resolve: resolveGltf,
22
- reject: rejectGltf,
23
- } = Promise.withResolvers<Blob>()
24
-
25
- exporter.parse(
26
- threeJsObject,
27
- (gltf) => {
28
- const type = options.binary ? "gltf-binary" : "gltf+json"
29
- const blob = new Blob(
30
- [gltf instanceof ArrayBuffer ? gltf : JSON.stringify(gltf)],
31
- { type: `model/${type}` },
32
- )
33
- resolveGltf(blob)
34
- },
35
- rejectGltf,
36
- options,
37
- )
38
-
39
- const gltfBlob = await gltfPromise
40
-
41
- const extension = options.binary ? ".glb" : ".gltf"
42
- saveAs(gltfBlob, fileName + extension)
43
- }
@@ -1,38 +0,0 @@
1
- import { saveAs } from "file-saver"
2
- import {
3
- CircuitJsonToKicadPcbConverter,
4
- CircuitJsonToKicadSchConverter,
5
- CircuitJsonToKicadProConverter,
6
- } from "circuit-json-to-kicad"
7
- import { AnyCircuitElement } from "circuit-json"
8
- import JSZip from "jszip"
9
-
10
- export const downloadKicadFiles = (
11
- circuitJson: AnyCircuitElement[],
12
- fileName: string,
13
- ) => {
14
- const pcbConverter = new CircuitJsonToKicadPcbConverter(circuitJson)
15
- pcbConverter.runUntilFinished()
16
- const kicadPcbContent = pcbConverter.getOutputString()
17
-
18
- const schConverter = new CircuitJsonToKicadSchConverter(circuitJson)
19
- schConverter.runUntilFinished()
20
- const kicadSchContent = schConverter.getOutputString()
21
-
22
- const proConverter = new CircuitJsonToKicadProConverter(circuitJson, {
23
- projectName: fileName,
24
- schematicFilename: `${fileName}.kicad_sch`,
25
- pcbFilename: `${fileName}.kicad_pcb`,
26
- })
27
- proConverter.runUntilFinished()
28
- const kicadProContent = proConverter.getOutputString()
29
-
30
- const zip = new JSZip()
31
- zip.file(`${fileName}.kicad_pcb`, kicadPcbContent)
32
- zip.file(`${fileName}.kicad_sch`, kicadSchContent)
33
- zip.file(`${fileName}.kicad_pro`, kicadProContent)
34
-
35
- zip.generateAsync({ type: "blob" }).then((content) => {
36
- saveAs(content, `${fileName}_kicad.zip`)
37
- })
38
- }
@@ -1,35 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { convertCircuitJsonToPcbSvg } from "circuit-to-svg"
3
- import { saveAs } from "file-saver"
4
-
5
- export interface DownloadPcbSvgOptions {
6
- layer?: "all" | "top" | "bottom"
7
- drawPaddingOutsideBoard?: boolean
8
- backgroundColor?: string
9
- matchAspectRatio?: boolean
10
- }
11
-
12
- export const downloadPcbSvg = (
13
- circuitJson: AnyCircuitElement[],
14
- fileName: string,
15
- options: DownloadPcbSvgOptions = {},
16
- ) => {
17
- const convertOptions: any = {}
18
- if (options.layer && options.layer !== "all") {
19
- convertOptions.layer = options.layer
20
- }
21
- if (options.matchAspectRatio) {
22
- convertOptions.matchBoardAspectRatio = true
23
- }
24
- if (typeof options.drawPaddingOutsideBoard === "boolean") {
25
- convertOptions.drawPaddingOutsideBoard = options.drawPaddingOutsideBoard
26
- }
27
- if (options.backgroundColor) {
28
- convertOptions.backgroundColor = options.backgroundColor
29
- }
30
-
31
- const svg = convertCircuitJsonToPcbSvg(circuitJson, convertOptions)
32
-
33
- const blob = new Blob([svg], { type: "image/svg+xml" })
34
- saveAs(blob, fileName + ".svg")
35
- }
@@ -1,31 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { downloadCircuitPng, ImageFormat } from "./download-circuit-png"
3
- import { toast } from "@/hooks/use-toast"
4
-
5
- interface DownloadPngOptions {
6
- circuitJson?: AnyCircuitElement[] | null
7
- unscopedName?: string
8
- author?: string
9
- format: ImageFormat
10
- }
11
-
12
- export const downloadPngImage = async ({
13
- circuitJson,
14
- unscopedName,
15
- format,
16
- }: DownloadPngOptions) => {
17
- try {
18
- if (!circuitJson) {
19
- throw new Error("Circuit JSON not available")
20
- }
21
- await downloadCircuitPng(circuitJson, unscopedName || "circuit", {
22
- format,
23
- })
24
- } catch (error: any) {
25
- toast({
26
- title: `Error Downloading ${format.charAt(0).toUpperCase() + format.slice(1)} PNG`,
27
- description: error.toString(),
28
- variant: "destructive",
29
- })
30
- }
31
- }
@@ -1,12 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { saveAs } from "file-saver"
3
- import { convertCircuitJsonToReadableNetlist } from "circuit-json-to-readable-netlist"
4
-
5
- export const downloadReadableNetlist = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const readableNetlistString = convertCircuitJsonToReadableNetlist(circuitJson)
10
- const blob = new Blob([readableNetlistString], { type: "text/plain" })
11
- saveAs(blob, fileName + ".txt")
12
- }
@@ -1,12 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { convertCircuitJsonToSchematicSvg } from "circuit-to-svg"
3
- import { saveAs } from "file-saver"
4
-
5
- export const downloadSchematicSvg = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const svg = convertCircuitJsonToSchematicSvg(circuitJson)
10
- const blob = new Blob([svg], { type: "image/svg" })
11
- saveAs(blob, fileName + ".svg")
12
- }
@@ -1,17 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { getSimpleRouteJsonFromCircuitJson } from "@tscircuit/core"
3
- import { saveAs } from "file-saver"
4
-
5
- export const downloadSimpleRouteJson = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const simpleRouteJson = getSimpleRouteJsonFromCircuitJson({
10
- circuitJson: circuitJson as any,
11
- minTraceWidth: 0.1,
12
- })
13
- const blob = new Blob([JSON.stringify(simpleRouteJson, null, 2)], {
14
- type: "application/json",
15
- })
16
- saveAs(blob, fileName + "_routes.json")
17
- }
@@ -1,13 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { saveAs } from "file-saver"
3
- import { circuitJsonToSpice } from "circuit-json-to-spice"
4
-
5
- export const downloadSpiceFile = (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const spiceNetlist = circuitJsonToSpice(circuitJson)
10
- const spiceString = spiceNetlist.toSpiceString()
11
- const blob = new Blob([spiceString], { type: "text/plain" })
12
- saveAs(blob, fileName + ".cir")
13
- }
@@ -1,12 +0,0 @@
1
- import { AnyCircuitElement } from "circuit-json"
2
- import { saveAs } from "file-saver"
3
- import { circuitJsonToStep } from "circuit-json-to-step"
4
-
5
- export const downloadStepFile = async (
6
- circuitJson: AnyCircuitElement[],
7
- fileName: string,
8
- ) => {
9
- const content = await circuitJsonToStep(circuitJson)
10
- const blob = new Blob([content], { type: "text/plain" })
11
- saveAs(blob, fileName + ".step")
12
- }
@@ -1,13 +0,0 @@
1
- import { gzipSync, strToU8 } from "fflate"
2
- import { bytesToBase64 } from "./bytesToBase64"
3
-
4
- export function encodeFsMapToUrlHash(
5
- fsMap: Record<string, string>,
6
- snippet_type?: string,
7
- ): string {
8
- const text = JSON.stringify(fsMap)
9
- const compressedData = gzipSync(strToU8(text))
10
- const base64Data = bytesToBase64(compressedData)
11
- const typeParam = snippet_type ? `&snippet_type=${snippet_type}` : ""
12
- return `${window.location.origin}/editor?${typeParam}#data:application/gzip;base64,${base64Data}`
13
- }
@@ -1,17 +0,0 @@
1
- import { gzipSync, strToU8 } from "fflate"
2
- import { bytesToBase64 } from "./bytesToBase64"
3
-
4
- export function encodeTextToUrlHash(
5
- text: string,
6
- snippet_type?: string,
7
- ): string {
8
- // Compress the input string
9
- const compressedData = gzipSync(strToU8(text))
10
-
11
- // Convert to base64
12
- const base64Data = bytesToBase64(compressedData)
13
-
14
- // Construct the URL
15
- const typeParam = snippet_type ? `&snippet_type=${snippet_type}` : ""
16
- return `${window.location.origin}/editor?${typeParam}#data:application/gzip;base64,${base64Data}`
17
- }