@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,18 +0,0 @@
1
- import { withRouteSpec } from "fake-snippets-api/lib/middleware/with-winter-spec"
2
- import { z } from "zod"
3
- import { snippetSchema } from "fake-snippets-api/lib/db/schema"
4
-
5
- export default withRouteSpec({
6
- methods: ["GET"],
7
- auth: "none",
8
- queryParams: z.object({
9
- q: z.string(),
10
- }),
11
- jsonResponse: z.object({
12
- snippets: z.array(snippetSchema),
13
- }),
14
- })(async (req, ctx) => {
15
- const { q } = req.query
16
- const snippets = ctx.db.searchSnippets(q)
17
- return ctx.json({ snippets })
18
- })
@@ -1,114 +0,0 @@
1
- import { z } from "zod"
2
- import { snippetSchema } from "../../../lib/db/schema"
3
- import { withRouteSpec } from "../../../lib/middleware/with-winter-spec"
4
-
5
- export default withRouteSpec({
6
- methods: ["POST"],
7
- auth: "session",
8
- jsonBody: z.object({
9
- snippet_id: z.string(),
10
- code: z.string().optional(),
11
- description: z.string().optional(),
12
- unscoped_name: z.string().optional(),
13
- dts: z.string().optional(),
14
- compiled_js: z.string().optional().nullable(),
15
- circuit_json: z.array(z.record(z.any())).optional().nullable(),
16
- manual_edits_json_content: z.string().optional().nullable(),
17
- snippet_type: z.enum(["board", "package", "model", "footprint"]).optional(),
18
- is_private: z.boolean().optional(),
19
- is_unlisted: z.boolean().optional(),
20
- }),
21
- jsonResponse: z.object({
22
- ok: z.boolean(),
23
- snippet: snippetSchema,
24
- }),
25
- })(async (req, ctx) => {
26
- const {
27
- snippet_id,
28
- code,
29
- description,
30
- unscoped_name,
31
- dts,
32
- compiled_js,
33
- circuit_json,
34
- snippet_type,
35
- manual_edits_json_content,
36
- is_private,
37
- is_unlisted,
38
- } = req.jsonBody
39
-
40
- const packageIndex = ctx.db.packages.findIndex(
41
- (s) => s.package_id === snippet_id,
42
- )
43
-
44
- if (packageIndex === -1) {
45
- return ctx.error(404, {
46
- error_code: "snippet_not_found",
47
- message: "Snippet not found",
48
- })
49
- }
50
-
51
- const _package = ctx.db.packages[packageIndex]
52
- const packageRelease = ctx.db.packageReleases.find(
53
- (r) => r.package_release_id === _package.latest_package_release_id,
54
- )
55
- const packageFiles = ctx.db.packageFiles.filter(
56
- (f) => f.package_release_id === packageRelease?.package_release_id,
57
- )
58
- const codeFile = packageFiles.find(
59
- (f) => f.file_path === "index.tsx" || f.file_path === "index.ts",
60
- )
61
- const dtsFile = packageFiles.find((f) => f.file_path === "/dist/index.d.ts")
62
- const compiledJsFile = packageFiles.find(
63
- (f) => f.file_path === "/dist/index.js",
64
- )
65
- const manualEditsJsonFile = packageFiles.find(
66
- (f) => f.file_path === "manual-edits.json",
67
- )
68
- const circuitJsonFile = packageFiles.find(
69
- (f) => f.file_path === "/dist/circuit.json",
70
- )
71
-
72
- if (_package.owner_github_username !== ctx.auth.github_username) {
73
- return ctx.error(403, {
74
- error_code: "forbidden",
75
- message: "You don't have permission to update this snippet",
76
- })
77
- }
78
-
79
- const updatedSnippet = ctx.db.updateSnippet(snippet_id, {
80
- code: code ?? codeFile?.content_text ?? "",
81
- description: description ?? _package.description ?? "",
82
- unscoped_name: unscoped_name ?? _package.unscoped_name,
83
- name: unscoped_name
84
- ? `${ctx.auth.github_username}/${unscoped_name}`
85
- : _package.name,
86
- dts: dts ?? dtsFile?.content_text ?? "",
87
- compiled_js: compiled_js ?? compiledJsFile?.content_text ?? "",
88
- manual_edits_json_content:
89
- manual_edits_json_content !== undefined
90
- ? manual_edits_json_content
91
- : (manualEditsJsonFile?.content_text ?? ""),
92
- circuit_json:
93
- circuit_json ??
94
- (circuitJsonFile?.content_text
95
- ? JSON.parse(circuitJsonFile.content_text)
96
- : []),
97
- snippet_type: snippet_type ?? _package.snippet_type,
98
- is_private: is_private ?? _package.is_private ?? false,
99
- is_unlisted: is_unlisted ?? _package.is_unlisted ?? false,
100
- updated_at: new Date().toISOString(),
101
- })
102
-
103
- if (!updatedSnippet) {
104
- return ctx.error(500, {
105
- error_code: "update_failed",
106
- message: "Failed to update snippet",
107
- })
108
- }
109
-
110
- return ctx.json({
111
- ok: true,
112
- snippet: updatedSnippet,
113
- })
114
- })
@@ -1,60 +0,0 @@
1
- const RESTRICTED_DIRS = ["/node_modules/", "/dist/", "/.git/"]
2
-
3
- /**
4
- * A normalized project path always starts with "./" and never ends with a slash.
5
- * It has no backwards slashes and no double slashes. It does not go to parent
6
- * directories. It is not a directory (must have a file extension)
7
- *
8
- * GOOD:
9
- * - src/index.ts
10
- * - README.md
11
- *
12
- * BAD:
13
- * - ./README.md
14
- * - ./src/index.ts
15
- * - src\index.ts
16
- * - ../README.md
17
- * - ./src/
18
- * - ./src
19
- *
20
- * Additionally, throw on directories that should never be included, e.g.
21
- * - node_modules
22
- * - dist
23
- * - .git
24
- */
25
- export const normalizeProjectFilePathAndValidate = (rawPath: string) => {
26
- const normalizedPath = normalizeProjectFilePath(rawPath)
27
-
28
- if (normalizedPath.includes("../")) {
29
- throw new Error(
30
- "Invalid project file path. Parent directories are not allowed.",
31
- )
32
- }
33
-
34
- if (RESTRICTED_DIRS.some((dir) => normalizedPath.includes(dir))) {
35
- throw new Error(
36
- `Invalid project file path. Restricted directories (${RESTRICTED_DIRS.map(
37
- (rd) => rd.slice(1, -1),
38
- ).join(", ")}) are not allowed.`,
39
- )
40
- }
41
-
42
- if (!normalizedPath.includes(".")) {
43
- throw new Error(
44
- `Invalid project file path. Must have a file extension. Given "${rawPath}"`,
45
- )
46
- }
47
-
48
- return normalizedPath
49
- }
50
-
51
- export const normalizeProjectFilePath = (rawPath: string) => {
52
- let normalizedPath = rawPath.trim() // Remove leading/trailing whitespace
53
- normalizedPath = normalizedPath.replace(/\/+/g, "/") // Replace multiple consecutive slashes with a single slash
54
- normalizedPath = normalizedPath.replace(/^\.\//, "") // Remove leading "./"
55
- normalizedPath = normalizedPath.replace(/\/$/, "") // Remove trailing slash
56
- normalizedPath = normalizedPath.replace(/\\/g, "/") // Replace backslashes with forward slashes
57
- normalizedPath = normalizedPath.replace(/^\//, "") // Remove leading "/"
58
-
59
- return normalizedPath
60
- }
@@ -1,20 +0,0 @@
1
- export const orderSteps = [
2
- "are_gerbers_generated",
3
- "are_gerbers_uploaded",
4
- "is_gerber_analyzed",
5
- "are_initial_costs_calculated",
6
- "is_pcb_added_to_cart",
7
- "is_bom_uploaded",
8
- "is_pnp_uploaded",
9
- "is_bom_pnp_analyzed",
10
- "is_bom_parsing_complete",
11
- "are_components_available",
12
- "is_patch_map_generated",
13
- "is_json_merge_file_created",
14
- "is_dfm_result_generated",
15
- "are_files_downloaded",
16
- "are_product_categories_fetched",
17
- "are_final_costs_calculated",
18
- "is_json_merge_file_updated",
19
- "is_added_to_cart",
20
- ] as const
package/favicon.ico DELETED
Binary file
package/index.html DELETED
@@ -1,125 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <meta name="robots" content="index, follow, NOODP" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- <link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16" />
9
- <!-- SEO_START -->
10
- <title>tscircuit - Code Electronics with React</title>
11
- <meta name="description"
12
- content="tscircuit is an open-source electronics design tool that lets you create circuits using React components. Design schematics, generate PCB layouts, export and manufacture PCBs online!" />
13
- <meta name="keywords"
14
- content="electronic design, PCB design, schematic capture, React components, circuit design, electronics CAD, open source EDA" />
15
- <meta property="og:title" content="tscircuit - Design Electronics with React Components" />
16
- <meta property="og:description"
17
- content="Create electronic circuits using React components. Design schematics, generate PCB layouts, and manufacture custom PCBs with this free open-source tool." />
18
- <meta property="og:type" content="website" />
19
- <meta name="twitter:card" content="summary_large_image" />
20
- <meta name="twitter:title" content="tscircuit - Design Electronics with React Components" />
21
- <meta name="twitter:description"
22
- content="Create electronic circuits using React components. Free open-source electronics design tool." />
23
- <meta property="og:image" content="https://tscircuit.com/assets/editor_example_1_more_square-2000w.webp" />
24
- <meta property="og:image:width" content="2000" />
25
- <meta property="og:image:height" content="2000" />
26
- <meta name="twitter:image" content="https://tscircuit.com/assets/editor_example_1_more_square-2000w.webp" />
27
- <link rel="canonical" href="https://tscircuit.com" />
28
- <!-- SEO_END -->
29
-
30
- <!-- SSR_START -->
31
- <!-- SSR_END -->
32
-
33
- <style>
34
- /* Loader Styles */
35
- .loading-overlay {
36
- position: fixed;
37
- top: 0;
38
- left: 0;
39
- width: 100%;
40
- height: 100%;
41
- background: rgba(255, 255, 255, 0.7);
42
- display: flex;
43
- justify-content: center;
44
- align-items: center;
45
- z-index: 9999;
46
- }
47
-
48
- .loading-container {
49
- display: flex;
50
- flex-direction: column;
51
- align-items: center;
52
- gap: 1em;
53
- }
54
-
55
- .loading {
56
- background-color: lightgrey;
57
- height: 2px;
58
- overflow: hidden;
59
- position: relative;
60
- width: 12em;
61
- border-radius: 2px;
62
- }
63
-
64
- .loading-bar {
65
- animation: side2side 2s ease-in-out infinite;
66
- background-color: dodgerblue;
67
- height: 100%;
68
- position: absolute;
69
- width: 45%;
70
- }
71
-
72
- @keyframes side2side {
73
- 0%, 100% {
74
- transform: translateX(-50%);
75
- }
76
- 50% {
77
- transform: translateX(150%);
78
- }
79
- }
80
- </style>
81
-
82
- <script>
83
- window.onload = function() {
84
- const loader = document.getElementById("loader");
85
- const root = document.getElementById("root");
86
-
87
- // Hide the loader and show the root when the page has fully loaded
88
- loader.style.transition = "opacity 0.3s ease";
89
- loader.style.opacity = "0"; // Fade out the loader
90
- setTimeout(function() {
91
- loader.style.display = "none"; // Hide loader completely
92
- root.style.visibility = "visible"; // Show the root content
93
- }, 300); // Match the opacity transition duration
94
- };
95
- </script>
96
-
97
- <!-- Google tag (gtag.js) -->
98
- <script async src="https://www.googletagmanager.com/gtag/js?id=AW-16607843883">
99
- </script>
100
- <script>
101
- window.dataLayer = window.dataLayer || [];
102
- function gtag(){dataLayer.push(arguments);}
103
- gtag('js', new Date());
104
-
105
- gtag('config', 'AW-16607843883');
106
- </script>
107
- </head>
108
-
109
- <body>
110
- <div class="loaderanimation">
111
- <div id="loader" class="loading-overlay">
112
- <div class="loading-container">
113
- <div class="loading">
114
- <div class="loading-bar"></div>
115
- </div>
116
- </div>
117
- </div>
118
- </div>
119
-
120
- <div id="root" class="loaderanimation" style="visibility: hidden;"></div> <!-- Initially hidden -->
121
-
122
- <script type="module" src="./src/main.tsx"></script>
123
- </body>
124
-
125
- </html>
package/landing.html DELETED
@@ -1,23 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="robots" content="index, follow, NOODP" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16">
8
- <title>tscircuit - Code Electronics with React</title>
9
- <meta name="description" content="tscircuit is an open-source electronics design tool that lets you create circuits using React components. Design schematics, generate PCB layouts, export and manufacture PCBs online!" />
10
- <meta name="keywords" content="electronic design, PCB design, schematic capture, React components, circuit design, electronics CAD, open source EDA" />
11
- <meta property="og:title" content="tscircuit - Design Electronics with React Components" />
12
- <meta property="og:description" content="Create electronic circuits using React components. Design schematics, generate PCB layouts, and manufacture custom PCBs with this free open-source tool." />
13
- <meta property="og:type" content="website" />
14
- <meta name="twitter:card" content="summary_large_image" />
15
- <meta name="twitter:title" content="tscircuit - Design Electronics with React Components" />
16
- <meta name="twitter:description" content="Create electronic circuits using React components. Free open-source electronics design tool." />
17
- <link rel="canonical" href="https://tscircuit.com" />
18
- </head>
19
- <body>
20
- <div id="root"></div>
21
- <script type="module" src="/src/pages/landing.tsx"></script>
22
- </body>
23
- </html>
@@ -1,19 +0,0 @@
1
- import { test, expect } from "@playwright/test"
2
- import { viewports } from "./viewports"
3
-
4
- for (const [size, viewport] of Object.entries(viewports)) {
5
- test(`AI Page on ${size} screen`, async ({ page }) => {
6
- await page.setViewportSize(viewport)
7
- await page.goto("http://127.0.0.1:5177/ai")
8
-
9
- // it is only working for desktop beacuse fake testuser login is not appearing for mobile
10
-
11
- // await page.goto("http://127.0.0.1:5177");
12
- // await page.click("text='Fake testuser Login'");
13
- // await page.waitForSelector(".login-avatar");
14
- // await page.click(".header-button[href='/ai']");
15
- // await page.waitForSelector("text='Submit a prompt to get started!'");
16
-
17
- await expect(page).toHaveScreenshot(`AI-Page-${size}.png`)
18
- })
19
- }
@@ -1,133 +0,0 @@
1
- import { test, expect } from "@playwright/test"
2
- import { exampleCircuitJson } from "./exampleCircuitJson"
3
-
4
- async function loginToSite(page) {
5
- const loginButton = page.getByRole("button", { name: "Log in" })
6
- if (await loginButton.isVisible()) {
7
- await loginButton.click()
8
- await page.waitForLoadState("networkidle")
9
- }
10
- }
11
-
12
- test.beforeEach(async ({ page }) => {
13
- await page.goto("http://127.0.0.1:5177/quickstart")
14
- await page.waitForTimeout(3000)
15
- await loginToSite(page).catch(() => {})
16
- })
17
-
18
- test("should open and close the Circuit Json Import Dialog", async ({
19
- page,
20
- }) => {
21
- const importButton = page.locator('button:has-text("Import Circuit JSON")')
22
- await importButton.click()
23
-
24
- const dialog = page.getByRole("dialog")
25
- await expect(dialog).toBeVisible()
26
-
27
- const closeButton = dialog.getByRole("button", { name: "Close" })
28
- await closeButton.click()
29
-
30
- await expect(dialog).not.toBeVisible()
31
- })
32
-
33
- test("should handle valid Circuit JSON input", async ({ page }) => {
34
- const importButton = page.getByRole("button", { name: "Import Circuit JSON" })
35
- await importButton.click()
36
- const textarea = page.locator(
37
- 'textarea[placeholder="Paste the Circuit JSON."]',
38
- )
39
- await textarea.fill(JSON.stringify(exampleCircuitJson))
40
-
41
- const importDialogButton = page.getByRole("button", { name: "Import" })
42
- await importDialogButton.click()
43
-
44
- const successToast = page.locator(
45
- 'div.text-sm.font-semibold:has-text("Import Successful")',
46
- )
47
- await successToast.waitFor({ state: "visible", timeout: 5000 })
48
- await expect(successToast).toBeVisible()
49
- })
50
-
51
- test("should handle valid Circuit JSON file upload", async ({ page }) => {
52
- const importButton = page.locator('button:has-text("Import Circuit JSON")')
53
- await importButton.click()
54
-
55
- const fileInput = page.locator('input[type="file"]')
56
-
57
- await fileInput.setInputFiles({
58
- name: "circuit.json",
59
- mimeType: "application/json",
60
- // @ts-expect-error didnt add node types to tsconfig
61
- buffer: Buffer.from(JSON.stringify(exampleCircuitJson)),
62
- })
63
-
64
- const importDialogButton = page.getByRole("button", { name: "Import" })
65
- await importDialogButton.click()
66
- const successToast = page.locator(
67
- 'div.text-sm.font-semibold:has-text("Import Successful")',
68
- )
69
- await successToast.waitFor({ state: "visible", timeout: 5000 })
70
- await expect(successToast).toBeVisible()
71
- })
72
-
73
- test("should handle invalid Circuit JSON input", async ({ page }) => {
74
- const importButton = page.locator('button:has-text("Import Circuit JSON")')
75
- await importButton.click()
76
-
77
- const textarea = page.locator(
78
- 'textarea[placeholder="Paste the Circuit JSON."]',
79
- )
80
- await textarea.fill("invalid json content")
81
-
82
- const importDialogButton = page.getByRole("button", { name: "Import" })
83
- await importDialogButton.click()
84
-
85
- const errorToast = page.locator(
86
- 'div.text-sm.font-semibold:has-text("Invalid Input")',
87
- )
88
- await errorToast.waitFor({ state: "visible", timeout: 5000 })
89
- await expect(errorToast).toBeVisible()
90
- })
91
-
92
- test("should handle invalid Circuit JSON file upload", async ({ page }) => {
93
- const importButton = page.locator('button:has-text("Import Circuit JSON")')
94
- await importButton.click()
95
-
96
- const fileInput = page.locator('input[type="file"]')
97
- await fileInput.setInputFiles({
98
- name: "circuit.json",
99
- mimeType: "application/json",
100
- // @ts-expect-error didnt add node types to tsconfig
101
- buffer: Buffer.from(JSON.stringify({})),
102
- })
103
-
104
- const importDialogButton = page.getByRole("button", { name: "Import" })
105
- await importDialogButton.click()
106
-
107
- const errorToast = page.locator(
108
- 'div.text-sm.font-semibold:has-text("Import Failed")',
109
- )
110
- await errorToast.waitFor({ state: "visible", timeout: 5000 })
111
- await expect(errorToast).toBeVisible()
112
- })
113
-
114
- test("should handle non-JSON file upload", async ({ page }) => {
115
- const importButton = page.locator('button:has-text("Import Circuit JSON")')
116
- await importButton.click()
117
-
118
- const fileInput = page.locator('input[type="file"]')
119
- await fileInput.setInputFiles({
120
- name: "circuit.txt",
121
- mimeType: "application/text",
122
- // @ts-expect-error didnt add node types to tsconfig
123
- buffer: Buffer.from(""),
124
- })
125
-
126
- const importDialogButton = page.getByRole("button", { name: "Import" })
127
- await importDialogButton.click()
128
-
129
- const errorToast = page.locator(
130
- 'div.pb-4 > p:has-text("Please select a valid JSON file.")',
131
- )
132
- await expect(errorToast).toBeVisible()
133
- })
@@ -1,43 +0,0 @@
1
- import { test, expect } from "@playwright/test"
2
-
3
- test("Editor handles imports with underlining and cmd+click", async ({
4
- page,
5
- }) => {
6
- await page.goto("http://127.0.0.1:5177/editor?snippet_id=snippet_3")
7
-
8
- await page.waitForLoadState("networkidle")
9
-
10
- // Wait for and verify the underlined import
11
- const underlinedText = await page.locator(".cm-underline")
12
- await expect(underlinedText).toBeVisible()
13
-
14
- // Verify the styling matches our expectations
15
- const styles = await underlinedText.evaluate((el) => {
16
- const computed = window.getComputedStyle(el)
17
- return {
18
- textDecoration: computed.textDecoration,
19
- cursor: computed.cursor,
20
- }
21
- })
22
-
23
- expect(styles.textDecoration).toContain("underline")
24
- expect(styles.cursor).toBe("pointer")
25
-
26
- // Test cmd+click behavior
27
- const popupPromise = page.waitForEvent("popup")
28
- await underlinedText.click({
29
- modifiers: process.platform === "darwin" ? ["Meta"] : ["Control"],
30
- })
31
-
32
- // Verify new tab opens with correct URL
33
- const popup = await popupPromise
34
- const popupUrl = popup.url()
35
-
36
- // URL validation
37
- expect(popupUrl).toMatch(
38
- /^http:\/\/127\.0\.0\.1:5177\/[a-zA-Z0-9-]+\/[a-zA-Z0-9-]+$/,
39
- )
40
-
41
- // Take a snapshot of the editor showing underlined imports
42
- await expect(page).toHaveScreenshot("underlined-imports.png")
43
- })
@@ -1,10 +0,0 @@
1
- import { test, expect } from "@playwright/test"
2
- import { viewports } from "./viewports"
3
-
4
- for (const [size, viewport] of Object.entries(viewports)) {
5
- test(`Dashboard Page on ${size} screen`, async ({ page }) => {
6
- await page.setViewportSize(viewport)
7
- await page.goto("http://127.0.0.1:5177/dashboard")
8
- await expect(page).toHaveScreenshot(`Dashboard-page-${size}.png`)
9
- })
10
- }
@@ -1,15 +0,0 @@
1
- import { test, expect } from "@playwright/test"
2
- import { viewports } from "./viewports"
3
-
4
- test("Editor loads snippet correctly", async ({ page }) => {
5
- await page.goto("http://127.0.0.1:5177/editor?snippet_id=snippet_5")
6
-
7
- // Wait for network requests to complete
8
- // await page.waitForLoadState("networkidle")
9
-
10
- // Check for specific text that should be present
11
- await expect(page.getByText("A555Timer").first()).toBeVisible()
12
-
13
- // Take a snapshot
14
- await expect(page).toHaveScreenshot("editor-with-snippet.png")
15
- })