@tscircuit/cli 0.0.145 → 0.0.161

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 (203) hide show
  1. package/.github/workflows/formatbot.yml +1 -1
  2. package/.github/workflows/release.yml +6 -1
  3. package/.github/workflows/test.yml +2 -2
  4. package/.github/workflows/typecheck.yml +29 -0
  5. package/DEVELOPMENT.md +4 -1
  6. package/README.md +2 -6
  7. package/{dev-server-api/src → api}/db/generic-json-level.ts +2 -5
  8. package/{dev-server-api/src → api/lib}/middlewares/with-db.ts +2 -2
  9. package/{dev-server-api → api}/routes/api/db/download.ts +1 -1
  10. package/{dev-server-api → api}/routes/api/dev_package_examples/create.ts +1 -1
  11. package/{dev-server-api → api}/routes/api/dev_package_examples/get.ts +2 -2
  12. package/{dev-server-api → api}/routes/api/dev_package_examples/list.ts +1 -1
  13. package/{dev-server-api → api}/routes/api/dev_package_examples/update.ts +3 -3
  14. package/{dev-server-api → api}/routes/api/dev_server/reset.ts +1 -1
  15. package/{dev-server-api → api}/routes/api/export_files/create.ts +2 -6
  16. package/{dev-server-api → api}/routes/api/export_files/download.ts +1 -3
  17. package/{dev-server-api → api}/routes/api/export_requests/create.ts +3 -4
  18. package/{dev-server-api → api}/routes/api/export_requests/get.ts +3 -6
  19. package/{dev-server-api → api}/routes/api/export_requests/list.ts +2 -3
  20. package/{dev-server-api → api}/routes/api/export_requests/update.ts +3 -5
  21. package/{dev-server-api/routes → api/routes/api}/health.ts +1 -1
  22. package/{dev-server-api → api}/routes/api/package_info/create.ts +1 -1
  23. package/{dev-server-api → api}/routes/api/package_info/get.ts +3 -2
  24. package/{dev-server-api/routes/api → api/routes}/health.ts +1 -1
  25. package/{dev-server-api → api}/routes/index.ts +1 -1
  26. package/{dev-server-api → api}/server.ts +1 -1
  27. package/api/static-routes.ts +24 -0
  28. package/{dev-server-api → api}/tests/fixtures/get-test-server.ts +2 -1
  29. package/api/tests/fixtures/start-server.ts +41 -0
  30. package/{dev-server-api → api}/tests/routes/dev_package_examples/create.test.ts +1 -1
  31. package/{dev-server-api → api}/tests/routes/dev_package_examples/get.test.ts +1 -1
  32. package/{dev-server-api → api}/tests/routes/dev_package_examples/list.test.ts +1 -1
  33. package/{dev-server-api → api}/tests/routes/dev_package_examples/update.test.ts +1 -1
  34. package/{dev-server-api → api}/tests/routes/export_files/create.test.ts +1 -1
  35. package/{dev-server-api → api}/tests/routes/export_files/download.test.ts +1 -1
  36. package/{dev-server-api → api}/tests/routes/export_requests/create.test.ts +1 -1
  37. package/{dev-server-api → api}/tests/routes/export_requests/get.test.ts +1 -1
  38. package/{dev-server-api → api}/tests/routes/export_requests/list.test.ts +1 -1
  39. package/{dev-server-api → api}/tests/routes/export_requests/update.test.ts +1 -1
  40. package/biome.json +8 -3
  41. package/bun.lockb +0 -0
  42. package/{lib → cli/lib}/cmd-fns/add.ts +1 -1
  43. package/{lib → cli/lib}/cmd-fns/dev/dev-server-request-handler.ts +2 -2
  44. package/{lib → cli/lib}/cmd-fns/dev/fulfill-export-requests.ts +13 -13
  45. package/{lib → cli/lib}/cmd-fns/dev/index.ts +1 -1
  46. package/{lib → cli/lib}/cmd-fns/dev/soupify-and-upload-example-file.ts +3 -2
  47. package/{lib → cli/lib}/cmd-fns/dev/start-edit-event-watcher.ts +4 -4
  48. package/{lib → cli/lib}/cmd-fns/dev/start-export-request-watcher.ts +1 -1
  49. package/{lib → cli/lib}/cmd-fns/dev/start-fs-watcher.ts +2 -1
  50. package/{lib → cli/lib}/cmd-fns/dev/upload-examples-from-directory.ts +3 -2
  51. package/{lib → cli/lib}/cmd-fns/export-gerbers.ts +1 -1
  52. package/cli/lib/cmd-fns/go.ts +14 -0
  53. package/{lib → cli/lib}/cmd-fns/index.ts +2 -0
  54. package/{lib → cli/lib}/cmd-fns/init/create-or-modify-npmrc.ts +1 -1
  55. package/{lib → cli/lib}/cmd-fns/init/get-generated-npmrc.ts +1 -1
  56. package/{lib → cli/lib}/cmd-fns/init/index.ts +1 -1
  57. package/{lib → cli/lib}/cmd-fns/install.ts +1 -1
  58. package/{lib → cli/lib}/cmd-fns/lint.ts +1 -1
  59. package/{lib → cli/lib}/cmd-fns/open.ts +1 -1
  60. package/{lib → cli/lib}/cmd-fns/package-examples-create.ts +1 -1
  61. package/{lib → cli/lib}/cmd-fns/publish/index.ts +1 -1
  62. package/{lib → cli/lib}/cmd-fns/remove.ts +1 -1
  63. package/cli/lib/cmd-fns/render.ts +45 -0
  64. package/{lib → cli/lib}/cmd-fns/soupify.ts +1 -1
  65. package/{lib → cli/lib}/cmd-fns/uninstall.ts +1 -1
  66. package/{lib → cli/lib}/cmd-fns/version.ts +6 -7
  67. package/{lib → cli/lib}/export-fns/export-bom-csv.ts +1 -1
  68. package/{lib → cli/lib}/export-fns/export-gerbers.ts +1 -1
  69. package/{lib → cli/lib}/export-fns/export-pnp-csv.ts +1 -1
  70. package/{lib → cli/lib}/get-program.ts +20 -4
  71. package/{lib → cli/lib}/param-handlers/param-handler-type.ts +1 -1
  72. package/{lib → cli/lib}/util/app-context.ts +1 -1
  73. package/{lib → cli/lib}/util/create-context-and-run-program.ts +4 -4
  74. package/{lib → cli/lib}/util/get-all-package-files.ts +1 -1
  75. package/{tests → cli/tests}/open.test.ts +2 -1
  76. package/{tests → cli/tests}/soupify.test.ts +1 -1
  77. package/dist/cli.js +302 -308
  78. package/example-project/package.json +2 -11
  79. package/{dev-server-frontend/src → frontend}/components/command-k.tsx +1 -1
  80. package/{dev-server-frontend/src → frontend}/components/dialogs/generic-export-dialog.tsx +3 -7
  81. package/{dev-server-frontend/src → frontend}/components/dialogs/gerber-export-dialog.tsx +2 -2
  82. package/{dev-server-frontend/src → frontend}/components/select-example-search.tsx +6 -6
  83. package/{dev-server-frontend/src → frontend}/components/ui/alert-dialog.tsx +2 -2
  84. package/{dev-server-frontend/src → frontend}/components/ui/alert.tsx +1 -1
  85. package/{dev-server-frontend/src → frontend}/components/ui/breadcrumb.tsx +1 -1
  86. package/{dev-server-frontend/src → frontend}/components/ui/button.tsx +1 -1
  87. package/{dev-server-frontend/src → frontend}/components/ui/card.tsx +1 -1
  88. package/{dev-server-frontend/src → frontend}/components/ui/command.tsx +2 -2
  89. package/{dev-server-frontend/src → frontend}/components/ui/context-menu.tsx +1 -1
  90. package/{dev-server-frontend/src → frontend}/components/ui/dialog.tsx +1 -1
  91. package/{dev-server-frontend/src → frontend}/components/ui/menubar.tsx +1 -1
  92. package/{dev-server-frontend/src → frontend}/components/ui/navigation-menu.tsx +1 -1
  93. package/{dev-server-frontend/src → frontend}/components/ui/popover.tsx +1 -1
  94. package/{dev-server-frontend/src → frontend}/components/ui/select.tsx +1 -1
  95. package/{dev-server-frontend/src → frontend}/components/ui/tabs.tsx +1 -1
  96. package/{dev-server-frontend/src → frontend}/components/ui/toggle-group.tsx +2 -2
  97. package/{dev-server-frontend/src → frontend}/components/ui/toggle.tsx +1 -1
  98. package/{dev-server-frontend/src → frontend}/components/ui/tooltip.tsx +1 -1
  99. package/{dev-server-frontend → frontend}/index.html +1 -1
  100. package/{dev-server-frontend/src → frontend}/main.tsx +1 -1
  101. package/{dev-server-frontend → frontend}/tailwind.config.js +3 -6
  102. package/frontend/views/App.tsx +22 -0
  103. package/{dev-server-frontend/src → frontend/views}/Header.tsx +5 -5
  104. package/{dev-server-frontend/src → frontend/views}/HeaderMenu.tsx +50 -17
  105. package/{dev-server-frontend/src/ExampleContentView.tsx → frontend/views/MainContentView.tsx} +5 -5
  106. package/frontend/vite.config.ts +50 -0
  107. package/package.json +55 -18
  108. package/scripts/build-cli.ts +12 -0
  109. package/tsconfig.json +5 -96
  110. package/.github/workflows/server-tests.yml +0 -31
  111. package/build-cli.ts +0 -14
  112. package/dev-server-api/bun.lockb +0 -0
  113. package/dev-server-api/edgespec.config.ts +0 -4
  114. package/dev-server-api/package.json +0 -23
  115. package/dev-server-api/src/db/create-schema.ts +0 -54
  116. package/dev-server-api/src/lib/public-mapping/public-map-export-file.ts +0 -17
  117. package/dev-server-api/src/lib/public-mapping/public-map-export-request.ts +0 -23
  118. package/dev-server-api/static-routes.ts +0 -24
  119. package/dev-server-api/tests/fixtures/start-server.ts +0 -20
  120. package/dev-server-api/tsconfig.json +0 -28
  121. package/dev-server-frontend/.eslintrc.cjs +0 -20
  122. package/dev-server-frontend/package-lock.json +0 -8970
  123. package/dev-server-frontend/package.json +0 -70
  124. package/dev-server-frontend/postcss.config.js +0 -6
  125. package/dev-server-frontend/src/App.tsx +0 -22
  126. package/dev-server-frontend/tsconfig.json +0 -29
  127. package/dev-server-frontend/tsconfig.node.json +0 -13
  128. package/dev-server-frontend/vite.config.ts +0 -23
  129. package/example-project/package-lock.json +0 -609
  130. /package/{dev-server-api → api}/README.md +0 -0
  131. /package/{dev-server-api/src → api}/db/get-db.ts +0 -0
  132. /package/{dev-server-api/src → api}/db/schema.ts +0 -0
  133. /package/{dev-server-api/src → api}/db/zod-level-db.ts +0 -0
  134. /package/{dev-server-api → api}/index.ts +0 -0
  135. /package/{dev-server-api/src → api/lib}/middlewares/with-debug-request-logging.ts +0 -0
  136. /package/{dev-server-api/src → api/lib}/middlewares/with-error-response.ts +0 -0
  137. /package/{dev-server-api/src → api/lib}/with-winter-spec.ts +0 -0
  138. /package/{dev-server-api/src → api}/lib/zod/export_parameters.ts +0 -0
  139. /package/{dev-server-api → api}/tests/routes/health.test.ts +0 -0
  140. /package/{cli.ts → cli/cli.ts} +0 -0
  141. /package/{lib → cli/lib}/cmd-fns/auth-login.ts +0 -0
  142. /package/{lib → cli/lib}/cmd-fns/auth-logout.ts +0 -0
  143. /package/{lib → cli/lib}/cmd-fns/auth-sessions-create.ts +0 -0
  144. /package/{lib → cli/lib}/cmd-fns/auth-sessions-get.ts +0 -0
  145. /package/{lib → cli/lib}/cmd-fns/auth-sessions-list.ts +0 -0
  146. /package/{lib → cli/lib}/cmd-fns/config-clear.ts +0 -0
  147. /package/{lib → cli/lib}/cmd-fns/config-print-config.ts +0 -0
  148. /package/{lib → cli/lib}/cmd-fns/config-reveal-location.ts +0 -0
  149. /package/{lib → cli/lib}/cmd-fns/config-set-log-requests.ts +0 -0
  150. /package/{lib → cli/lib}/cmd-fns/config-set-registry.ts +0 -0
  151. /package/{lib → cli/lib}/cmd-fns/config-set-runtime.ts +0 -0
  152. /package/{lib → cli/lib}/cmd-fns/config-set-session.ts +0 -0
  153. /package/{lib → cli/lib}/cmd-fns/dev/check-if-initialized.ts +0 -0
  154. /package/{lib → cli/lib}/cmd-fns/dev/derive-selector-from-pcb-component-id.ts +0 -0
  155. /package/{lib → cli/lib}/cmd-fns/dev/find-available-port.ts +0 -0
  156. /package/{lib → cli/lib}/cmd-fns/dev/get-dev-server-axios.ts +0 -0
  157. /package/{lib → cli/lib}/cmd-fns/dev/infer-export-name-from-source.ts +0 -0
  158. /package/{lib → cli/lib}/cmd-fns/dev/mark-all-examples-loading.ts +0 -0
  159. /package/{lib → cli/lib}/cmd-fns/dev/start-dev-server.ts +0 -0
  160. /package/{lib → cli/lib}/cmd-fns/dev-server-fulfill-export-requests.ts +0 -0
  161. /package/{lib → cli/lib}/cmd-fns/dev-server-upload.ts +0 -0
  162. /package/{lib → cli/lib}/cmd-fns/init/get-generated-readme.ts +0 -0
  163. /package/{lib → cli/lib}/cmd-fns/init/get-generated-tsconfig.ts +0 -0
  164. /package/{lib → cli/lib}/cmd-fns/package-examples-get.ts +0 -0
  165. /package/{lib → cli/lib}/cmd-fns/package-examples-list.ts +0 -0
  166. /package/{lib → cli/lib}/cmd-fns/package-files-create.ts +0 -0
  167. /package/{lib → cli/lib}/cmd-fns/package-files-download.ts +0 -0
  168. /package/{lib → cli/lib}/cmd-fns/package-files-get.ts +0 -0
  169. /package/{lib → cli/lib}/cmd-fns/package-files-list.ts +0 -0
  170. /package/{lib → cli/lib}/cmd-fns/package-files-upload-directory.ts +0 -0
  171. /package/{lib → cli/lib}/cmd-fns/package-releases-create.ts +0 -0
  172. /package/{lib → cli/lib}/cmd-fns/package-releases-get.ts +0 -0
  173. /package/{lib → cli/lib}/cmd-fns/package-releases-list.ts +0 -0
  174. /package/{lib → cli/lib}/cmd-fns/package-releases-update.ts +0 -0
  175. /package/{lib → cli/lib}/cmd-fns/packages-create.ts +0 -0
  176. /package/{lib → cli/lib}/cmd-fns/packages-get.ts +0 -0
  177. /package/{lib → cli/lib}/cmd-fns/packages-list.ts +0 -0
  178. /package/{lib → cli/lib}/create-config-manager.ts +0 -0
  179. /package/{lib → cli/lib}/param-handlers/index.ts +0 -0
  180. /package/{lib → cli/lib}/param-handlers/interact-for-local-directory.ts +0 -0
  181. /package/{lib → cli/lib}/param-handlers/interact-for-local-file.ts +0 -0
  182. /package/{lib → cli/lib}/param-handlers/interact-for-package-example-id.ts +0 -0
  183. /package/{lib → cli/lib}/param-handlers/interact-for-package-name-with-version.ts +0 -0
  184. /package/{lib → cli/lib}/param-handlers/interact-for-package-name.ts +0 -0
  185. /package/{lib → cli/lib}/param-handlers/interact-for-package-release-id.ts +0 -0
  186. /package/{lib → cli/lib}/param-handlers/interact-for-registry-url.ts +0 -0
  187. /package/{lib → cli/lib}/param-handlers/interact-for-runtime.ts +0 -0
  188. /package/{lib → cli/lib}/posthog.ts +0 -0
  189. /package/{lib → cli/lib}/soupify.ts +0 -0
  190. /package/{lib → cli/lib}/util/lint-project.ts +0 -0
  191. /package/{tests → cli/tests}/init.test.ts +0 -0
  192. /package/example-project/examples/{basic-bug.tsx → basic-chip.tsx} +0 -0
  193. /package/{dev-server-frontend → frontend}/README.md +0 -0
  194. /package/{dev-server-frontend → frontend}/bun.lockb +0 -0
  195. /package/{dev-server-frontend/src → frontend}/components/global-context-providers.tsx +0 -0
  196. /package/{dev-server-frontend → frontend}/components.json +0 -0
  197. /package/{dev-server-frontend/src → frontend}/hooks/toast-if-api-not-connected.ts +0 -0
  198. /package/{dev-server-frontend/src → frontend}/hooks/use-active-dev-package-example-lite.ts +0 -0
  199. /package/{dev-server-frontend/src → frontend}/hooks/use-dev-package-examples.tsx +0 -0
  200. /package/{dev-server-frontend/src → frontend}/hooks/use-global-store.ts +0 -0
  201. /package/{dev-server-frontend/src → frontend}/index.css +0 -0
  202. /package/{dev-server-frontend/src → frontend}/lib/utils.ts +0 -0
  203. /package/{dev-server-frontend/src → frontend}/vite-env.d.ts +0 -0
@@ -29,7 +29,7 @@ jobs:
29
29
  run: npm install @biomejs/biome@${{ steps.get-biome-version.outputs.BIOME_VERSION }}
30
30
 
31
31
  - name: Run formatter
32
- run: npx @biomejs/biome format .
32
+ run: npx @biomejs/biome format . --write
33
33
 
34
34
  - name: Commit changes
35
35
  uses: stefanzweifel/git-auto-commit-action@v4
@@ -24,7 +24,12 @@ jobs:
24
24
  bun-version: latest
25
25
 
26
26
  - name: Install project dependencies
27
- run: bun run bootstrap:ci
27
+ run: |
28
+ bun install
29
+
30
+ # Undo changes to the lockfile that might block release
31
+ # when this project is more mature use "bun install --frozen-lockfile"
32
+ git checkout -- bun.lockb
28
33
 
29
34
  - name: Build project
30
35
  run: bun run build
@@ -9,7 +9,7 @@ on:
9
9
  - main
10
10
 
11
11
  jobs:
12
- build:
12
+ tests:
13
13
  runs-on: ubuntu-latest
14
14
 
15
15
  steps:
@@ -22,7 +22,7 @@ jobs:
22
22
  bun-version: latest
23
23
 
24
24
  - name: Install dependencies
25
- run: bun run bootstrap
25
+ run: bun install
26
26
 
27
27
  - name: Install dependencies
28
28
  run: bun run build
@@ -0,0 +1,29 @@
1
+ # Created using @tscircuit/plop (npm install -g @tscircuit/plop)
2
+ name: Type Check
3
+
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ jobs:
11
+ type-check:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v3
16
+
17
+ - name: Setup bun
18
+ uses: oven-sh/setup-bun@v1
19
+ with:
20
+ bun-version: latest
21
+
22
+ - name: Install dependencies
23
+ run: bun i
24
+
25
+ - name: Build (required for dist imports)
26
+ run: bun run build
27
+
28
+ - name: Run format check
29
+ run: bunx tsc --noEmit
package/DEVELOPMENT.md CHANGED
@@ -1,4 +1,7 @@
1
1
  # Getting Started with Development for @tscircuit/cli
2
2
 
3
3
  1. Run `bun install`
4
- 2. Run `bun bootstrap`
4
+ 2. Run `bun run dev`
5
+
6
+ You now have a development server running on http://localhost:5173 (don't use
7
+ the one on port 3020, it won't auto-reload frontend changes)
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # `tsci` - The TSCircuit Command Line Tool
1
+ # `tsci` - The TSCircuit Command Line & Development Tools
2
2
 
3
3
  Command line tool for developing tscircuit projects and interacting with the
4
4
  tscircuit registry.
@@ -41,17 +41,13 @@ tsci publish
41
41
  This project is developed with [bun](https://bun.sh/), make sure you have
42
42
  that installed.
43
43
 
44
- Run `bun bootstrap` to install dependencies and `bun cli.ts` to run test the cli in development.
44
+ Run `bun install` to install dependencies and `bun cli/cli.ts` to run test the cli in development, or `bun run dev` to run the dev server.
45
45
 
46
46
  To run tests, run `bun test`
47
47
 
48
48
  If you want to test developing, run `bun dev` and visit http://127.0.0.1:5173. The project being
49
49
  loaded is inside `example-project`
50
50
 
51
- ![image](https://github.com/tscircuit/cli/assets/1910070/cabb180d-a64f-4fe5-a6af-26f990af39b3)
52
-
53
- ![image](https://github.com/tscircuit/cli/assets/1910070/9350c52c-4263-4ba2-b06b-61130b1aab3b)
54
-
55
51
  ![image](https://github.com/tscircuit/cli/assets/1910070/d6facd4d-0887-4871-8aa1-e525c519c50d)
56
52
 
57
53
  ## Features Coming Soon
@@ -108,7 +108,7 @@ class GenericJsonLevel extends AbstractLevel<string, any> {
108
108
  return undefined
109
109
  }
110
110
 
111
- return [entry.key, entry.value]
111
+ return [entry.key, entry.value] as [string, any]
112
112
  },
113
113
  async seek(target: string) {
114
114
  index = files.findIndex((file) => file.startsWith(target))
@@ -116,10 +116,7 @@ class GenericJsonLevel extends AbstractLevel<string, any> {
116
116
  index = files.length
117
117
  }
118
118
  },
119
- async end() {
120
- // No resources to clean up
121
- },
122
- }
119
+ } as any
123
120
  }
124
121
  }
125
122
 
@@ -1,6 +1,6 @@
1
1
  import type { Middleware } from "winterspec"
2
- import { getDb } from "../db/get-db"
3
- import type { ZodLevelDatabase } from "src/db/zod-level-db"
2
+ import { getDb } from "api/db/get-db"
3
+ import type { ZodLevelDatabase } from "api/db/zod-level-db"
4
4
 
5
5
  export const withDb: Middleware<
6
6
  {},
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -1,5 +1,5 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
2
- import { NotFoundError } from "edgespec/middleware"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
+ import { NotFoundError } from "winterspec/middleware"
3
3
  import { z } from "zod"
4
4
 
5
5
  export default withWinterSpec({
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -1,7 +1,7 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
2
- import { NotFoundError } from "edgespec/middleware"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
+ import { NotFoundError } from "winterspec/middleware"
3
3
  import { z } from "zod"
4
- import { DevPackageExampleSchema } from "src/db/schema"
4
+ import { DevPackageExampleSchema } from "api/db/schema"
5
5
 
6
6
  export default withWinterSpec({
7
7
  methods: ["POST"],
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
 
3
3
  export default withWinterSpec({
4
4
  methods: ["GET", "POST"],
@@ -1,7 +1,5 @@
1
- import { ExportFileSchema } from "src/db/schema"
2
- import { publicMapExportFile } from "src/lib/public-mapping/public-map-export-file"
3
- import { export_file } from "src/lib/zod/export_file"
4
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { ExportFileSchema } from "api/db/schema"
2
+ import { withWinterSpec } from "api/lib/with-winter-spec"
5
3
  import { z } from "zod"
6
4
 
7
5
  export default withWinterSpec({
@@ -16,7 +14,6 @@ export default withWinterSpec({
16
14
  }),
17
15
  auth: "none",
18
16
  })(async (req, ctx) => {
19
- console.log("putting file")
20
17
  const export_file = await ctx.db.put("export_file", {
21
18
  export_request_id: req.jsonBody.export_request_id,
22
19
  file_name: req.jsonBody.file_name,
@@ -24,7 +21,6 @@ export default withWinterSpec({
24
21
  created_at: new Date().toISOString(),
25
22
  })
26
23
  console.log("done putting file")
27
-
28
24
  return ctx.json({
29
25
  export_file,
30
26
  })
@@ -1,6 +1,4 @@
1
- import { publicMapExportFile } from "src/lib/public-mapping/public-map-export-file"
2
- import { export_file } from "src/lib/zod/export_file"
3
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
4
2
  import { NotFoundError } from "winterspec/middleware"
5
3
  import { z } from "zod"
6
4
 
@@ -1,8 +1,7 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
- import { publicMapExportRequest } from "src/lib/public-mapping/public-map-export-request"
4
- import { export_parameters } from "../../../src/lib/zod/export_parameters"
5
- import { ExportRequestSchema } from "src/db/schema"
3
+ import { export_parameters } from "api/lib/zod/export_parameters"
4
+ import { ExportRequestSchema } from "api/db/schema"
6
5
 
7
6
  export default withWinterSpec({
8
7
  methods: ["POST"],
@@ -1,10 +1,7 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
- import { export_request } from "src/lib/zod/export_request"
4
- import { publicMapExportRequest } from "src/lib/public-mapping/public-map-export-request"
5
- import { NotFoundError } from "edgespec/middleware"
6
- import { ExportRequestSchema } from "src/db/schema"
7
- import { file } from "bun"
3
+ import { NotFoundError } from "winterspec/middleware"
4
+ import { ExportRequestSchema } from "api/db/schema"
8
5
 
9
6
  export default withWinterSpec({
10
7
  methods: ["GET", "POST"],
@@ -1,7 +1,6 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
- import { publicMapExportRequest } from "src/lib/public-mapping/public-map-export-request"
4
- import { ExportRequestSchema } from "src/db/schema"
3
+ import { ExportRequestSchema } from "api/db/schema"
5
4
 
6
5
  export default withWinterSpec({
7
6
  methods: ["GET", "POST"],
@@ -1,9 +1,7 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
2
- import { NotFoundError } from "edgespec/middleware"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
+ import { NotFoundError } from "winterspec/middleware"
3
3
  import { z } from "zod"
4
- import { export_request } from "src/lib/zod/export_request"
5
- import { publicMapExportRequest } from "src/lib/public-mapping/public-map-export-request"
6
- import { ExportRequestSchema } from "src/db/schema"
4
+ import { ExportRequestSchema } from "api/db/schema"
7
5
 
8
6
  export default withWinterSpec({
9
7
  methods: ["POST"],
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "../src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -1,5 +1,6 @@
1
- import { PackageInfoSchema } from "src/db/schema"
2
- import { withWinterSpec } from "src/with-winter-spec"
1
+ import { PackageInfoSchema } from "api/db/schema"
2
+
3
+ import { withWinterSpec } from "api/lib/with-winter-spec"
3
4
  import { z } from "zod"
4
5
 
5
6
  export default withWinterSpec({
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "../../src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -1,4 +1,4 @@
1
- import { withWinterSpec } from "../src/with-winter-spec"
1
+ import { withWinterSpec } from "api/lib/with-winter-spec"
2
2
  import { z } from "zod"
3
3
 
4
4
  export default withWinterSpec({
@@ -6,7 +6,7 @@ const serverFetch = await createFetchHandlerFromDir(
6
6
  join(import.meta.dir, "./routes"),
7
7
  )
8
8
 
9
- console.log("starting dev-server-api on http://127.0.0.1:3021")
9
+ console.log("starting dev server api on http://127.0.0.1:3021")
10
10
  Bun.serve({
11
11
  fetch: (bunReq) => {
12
12
  const req = new EdgeRuntimeRequest(bunReq.url, {
@@ -0,0 +1,24 @@
1
+
2
+ // import { WinterSpecRouteMap } from "@winterspec/types"
3
+
4
+ const routeMap = {
5
+ "/api/db/download": (await import('./routes/api/db/download.ts')).default,
6
+ "/api/dev_package_examples/create": (await import('./routes/api/dev_package_examples/create.ts')).default,
7
+ "/api/dev_package_examples/get": (await import('./routes/api/dev_package_examples/get.ts')).default,
8
+ "/api/dev_package_examples/list": (await import('./routes/api/dev_package_examples/list.ts')).default,
9
+ "/api/dev_package_examples/update": (await import('./routes/api/dev_package_examples/update.ts')).default,
10
+ "/api/dev_server/reset": (await import('./routes/api/dev_server/reset.ts')).default,
11
+ "/api/export_files/create": (await import('./routes/api/export_files/create.ts')).default,
12
+ "/api/export_files/download": (await import('./routes/api/export_files/download.ts')).default,
13
+ "/api/export_requests/create": (await import('./routes/api/export_requests/create.ts')).default,
14
+ "/api/export_requests/get": (await import('./routes/api/export_requests/get.ts')).default,
15
+ "/api/export_requests/list": (await import('./routes/api/export_requests/list.ts')).default,
16
+ "/api/export_requests/update": (await import('./routes/api/export_requests/update.ts')).default,
17
+ "/api/health": (await import('./routes/api/health.ts')).default,
18
+ "/api/package_info/create": (await import('./routes/api/package_info/create.ts')).default,
19
+ "/api/package_info/get": (await import('./routes/api/package_info/get.ts')).default,
20
+ "/health": (await import('./routes/health.ts')).default,
21
+ "/": (await import('./routes/index.ts')).default
22
+ }
23
+
24
+ export default routeMap
@@ -12,7 +12,8 @@ interface TestFixture {
12
12
  export const getTestFixture = async (): Promise<TestFixture> => {
13
13
  process.env.TSCI_DEV_SERVER_DB = tmpdir() + `/${Math.random()}` + "/devdb"
14
14
  const port = 3001 + Math.floor(Math.random() * 999)
15
- const server = startServer({ port })
15
+ const testInstanceId = Math.random().toString(36).substring(2, 15)
16
+ const server = await startServer({ port })
16
17
  const url = `http://127.0.0.1:${port}`
17
18
  const axios = defaultAxios.create({
18
19
  baseURL: url,
@@ -0,0 +1,41 @@
1
+ import {
2
+ createFetchHandlerFromDir,
3
+ createWinterSpecBundleFromDir,
4
+ } from "winterspec/adapters/node"
5
+ import { Request as EdgeRuntimeRequest } from "@edge-runtime/primitives"
6
+ import { join } from "node:path"
7
+ import { ZodLevelDatabase } from "api/db/zod-level-db"
8
+ import os from "node:os"
9
+ import { Middleware } from "winterspec"
10
+
11
+ export const startServer = async ({ port }: { port: number }) => {
12
+ const db = new ZodLevelDatabase(os.tmpdir() + "/devdb")
13
+
14
+ const winterspecBundle = await createWinterSpecBundleFromDir(
15
+ join(import.meta.dir, "../../routes"),
16
+ )
17
+
18
+ const middleware: Middleware[] = [
19
+ async (req: any, ctx: any, next: any) => {
20
+ ;(ctx as any).db = db
21
+
22
+ return next(req, ctx)
23
+ },
24
+ ]
25
+
26
+ const server = Bun.serve({
27
+ fetch: (bunReq) => {
28
+ const req = new EdgeRuntimeRequest(bunReq.url, {
29
+ headers: bunReq.headers,
30
+ method: bunReq.method,
31
+ body: bunReq.body,
32
+ })
33
+ return winterspecBundle.makeRequest(req as any, {
34
+ middleware,
35
+ })
36
+ },
37
+ port,
38
+ })
39
+
40
+ return server
41
+ }
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("POST /api/dev_package_examples/create", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("POST /api/dev_package_examples/create", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("GET /api/dev_package_examples/list", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("POST /api/dev_package_examples/update", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("POST /api/export_files/create", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("GET /api/export_files/download", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("POST /api/export_requests/create", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("GET /api/export_requests/get", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("GET /api/export_requests/list", async () => {
5
5
  const { axios } = await getTestFixture()
@@ -1,5 +1,5 @@
1
1
  import { it, expect } from "bun:test"
2
- import { getTestFixture } from "tests/fixtures/get-test-server"
2
+ import { getTestFixture } from "api/tests/fixtures/get-test-server"
3
3
 
4
4
  it("POST /api/export_requests/update", async () => {
5
5
  const { axios } = await getTestFixture()
package/biome.json CHANGED
@@ -8,7 +8,13 @@
8
8
  "indentStyle": "space"
9
9
  },
10
10
  "files": {
11
- "ignore": ["cosmos-export", "dist", "package.json"]
11
+ "ignore": [
12
+ "cosmos-export",
13
+ "dist",
14
+ "package.json",
15
+ "tsconfig.json",
16
+ "static-routes.ts"
17
+ ]
12
18
  },
13
19
  "javascript": {
14
20
  "formatter": {
@@ -22,9 +28,8 @@
22
28
  }
23
29
  },
24
30
  "linter": {
25
- "enabled": true,
31
+ "enabled": false,
26
32
  "rules": {
27
- "recommended": true,
28
33
  "suspicious": {
29
34
  "noExplicitAny": "off"
30
35
  },
package/bun.lockb CHANGED
Binary file
@@ -1,5 +1,5 @@
1
1
  import kleur from "kleur"
2
- import { AppContext } from "lib/util/app-context"
2
+ import { AppContext } from "cli/lib/util/app-context"
3
3
  import { z } from "zod"
4
4
  import { createOrModifyNpmrc } from "./init/create-or-modify-npmrc"
5
5
  import $ from "dax-sh"
@@ -1,5 +1,5 @@
1
- import apiServer from "../../../dev-server-api"
2
- import frontendVfs from "../../../dev-server-frontend/dist/bundle"
1
+ import apiServer from "api/index"
2
+ import frontendVfs from "frontend/dist/bundle"
3
3
  import EdgeRuntimePrimitives from "@edge-runtime/primitives"
4
4
  import mime from "mime-types"
5
5
 
@@ -1,11 +1,11 @@
1
1
  import { AppContext } from "../../util/app-context"
2
2
  import kleur from "kleur"
3
- import { exportGerbersToZipBuffer } from "lib/export-fns/export-gerbers"
3
+ import { exportGerbersToZipBuffer } from "cli/lib/export-fns/export-gerbers"
4
4
  import { AxiosInstance } from "axios"
5
- import { ExportRequest } from "@server/lib/zod/export_request"
6
- import { exportPnpCsvToBuffer } from "lib/export-fns/export-pnp-csv"
7
- import { exportBomCsvToBuffer } from "lib/export-fns/export-bom-csv"
8
- import { soupify } from "lib/soupify"
5
+ import { exportPnpCsvToBuffer } from "cli/lib/export-fns/export-pnp-csv"
6
+ import { exportBomCsvToBuffer } from "cli/lib/export-fns/export-bom-csv"
7
+ import { soupify } from "cli/lib/soupify"
8
+ import { ExportRequest } from "api/db/schema"
9
9
 
10
10
  export const uploadBufferToExportFile = async ({
11
11
  dev_server_axios,
@@ -73,8 +73,8 @@ export const fulfillExportRequests = async (
73
73
  }
74
74
  const zip_buffer = await exportGerbersToZipBuffer(
75
75
  {
76
- example_file_path: export_request.example_file_path,
77
- export_name: export_request.export_name,
76
+ example_file_path: export_request.example_file_path!,
77
+ export_name: export_request.export_name!,
78
78
  },
79
79
  ctx,
80
80
  )
@@ -97,8 +97,8 @@ export const fulfillExportRequests = async (
97
97
  console.log(kleur.gray(`\n exporting pick'n'place...`))
98
98
  const csv_buffer = await exportPnpCsvToBuffer(
99
99
  {
100
- example_file_path: export_request.example_file_path,
101
- export_name: export_request.export_name,
100
+ example_file_path: export_request.example_file_path!,
101
+ export_name: export_request.export_name!,
102
102
  },
103
103
  ctx,
104
104
  )
@@ -117,8 +117,8 @@ export const fulfillExportRequests = async (
117
117
  console.log(kleur.gray(`\n exporting bill of materials...`))
118
118
  const csv_buffer = await exportBomCsvToBuffer(
119
119
  {
120
- example_file_path: export_request.example_file_path,
121
- export_name: export_request.export_name,
120
+ example_file_path: export_request.example_file_path!,
121
+ export_name: export_request.export_name!,
122
122
  },
123
123
  ctx,
124
124
  )
@@ -137,8 +137,8 @@ export const fulfillExportRequests = async (
137
137
  console.log(kleur.gray(`\n exporting soup...`))
138
138
  const soup = await soupify(
139
139
  {
140
- filePath: export_request.example_file_path,
141
- exportName: export_request.export_name,
140
+ filePath: export_request.example_file_path!,
141
+ exportName: export_request.export_name!,
142
142
  },
143
143
  ctx,
144
144
  )
@@ -2,7 +2,7 @@ import crypto from "crypto"
2
2
  import $ from "dax-sh"
3
3
  import fs from "fs"
4
4
  import kleur from "kleur"
5
- import posthog from "lib/posthog"
5
+ import posthog from "cli/lib/posthog"
6
6
  import open from "open"
7
7
  import * as Path from "path"
8
8
  import prompts from "prompts"
@@ -2,8 +2,9 @@ import kleur from "kleur"
2
2
  import { join as joinPath } from "path"
3
3
  import { AxiosInstance } from "axios"
4
4
  import { readdirSync, readFileSync } from "fs"
5
- import { soupify } from "lib/soupify"
5
+ import { soupify } from "cli/lib/soupify"
6
6
  import { inferExportNameFromSource } from "./infer-export-name-from-source"
7
+ import { AppContext } from "cli/lib/util/app-context"
7
8
 
8
9
  export const soupifyAndUploadExampleFile = async (
9
10
  {
@@ -15,7 +16,7 @@ export const soupifyAndUploadExampleFile = async (
15
16
  exampleFileName: string
16
17
  devServerAxios: AxiosInstance
17
18
  },
18
- ctx: { runtime: "node" | "bun" },
19
+ ctx: Pick<AppContext, "runtime" | "params">,
19
20
  ) => {
20
21
  try {
21
22
  const startTime = Date.now()