@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.
- package/.github/workflows/formatbot.yml +1 -1
- package/.github/workflows/release.yml +6 -1
- package/.github/workflows/test.yml +2 -2
- package/.github/workflows/typecheck.yml +29 -0
- package/DEVELOPMENT.md +4 -1
- package/README.md +2 -6
- package/{dev-server-api/src → api}/db/generic-json-level.ts +2 -5
- package/{dev-server-api/src → api/lib}/middlewares/with-db.ts +2 -2
- package/{dev-server-api → api}/routes/api/db/download.ts +1 -1
- package/{dev-server-api → api}/routes/api/dev_package_examples/create.ts +1 -1
- package/{dev-server-api → api}/routes/api/dev_package_examples/get.ts +2 -2
- package/{dev-server-api → api}/routes/api/dev_package_examples/list.ts +1 -1
- package/{dev-server-api → api}/routes/api/dev_package_examples/update.ts +3 -3
- package/{dev-server-api → api}/routes/api/dev_server/reset.ts +1 -1
- package/{dev-server-api → api}/routes/api/export_files/create.ts +2 -6
- package/{dev-server-api → api}/routes/api/export_files/download.ts +1 -3
- package/{dev-server-api → api}/routes/api/export_requests/create.ts +3 -4
- package/{dev-server-api → api}/routes/api/export_requests/get.ts +3 -6
- package/{dev-server-api → api}/routes/api/export_requests/list.ts +2 -3
- package/{dev-server-api → api}/routes/api/export_requests/update.ts +3 -5
- package/{dev-server-api/routes → api/routes/api}/health.ts +1 -1
- package/{dev-server-api → api}/routes/api/package_info/create.ts +1 -1
- package/{dev-server-api → api}/routes/api/package_info/get.ts +3 -2
- package/{dev-server-api/routes/api → api/routes}/health.ts +1 -1
- package/{dev-server-api → api}/routes/index.ts +1 -1
- package/{dev-server-api → api}/server.ts +1 -1
- package/api/static-routes.ts +24 -0
- package/{dev-server-api → api}/tests/fixtures/get-test-server.ts +2 -1
- package/api/tests/fixtures/start-server.ts +41 -0
- package/{dev-server-api → api}/tests/routes/dev_package_examples/create.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/dev_package_examples/get.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/dev_package_examples/list.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/dev_package_examples/update.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/export_files/create.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/export_files/download.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/export_requests/create.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/export_requests/get.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/export_requests/list.test.ts +1 -1
- package/{dev-server-api → api}/tests/routes/export_requests/update.test.ts +1 -1
- package/biome.json +8 -3
- package/bun.lockb +0 -0
- package/{lib → cli/lib}/cmd-fns/add.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/dev/dev-server-request-handler.ts +2 -2
- package/{lib → cli/lib}/cmd-fns/dev/fulfill-export-requests.ts +13 -13
- package/{lib → cli/lib}/cmd-fns/dev/index.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/dev/soupify-and-upload-example-file.ts +3 -2
- package/{lib → cli/lib}/cmd-fns/dev/start-edit-event-watcher.ts +4 -4
- package/{lib → cli/lib}/cmd-fns/dev/start-export-request-watcher.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/dev/start-fs-watcher.ts +2 -1
- package/{lib → cli/lib}/cmd-fns/dev/upload-examples-from-directory.ts +3 -2
- package/{lib → cli/lib}/cmd-fns/export-gerbers.ts +1 -1
- package/cli/lib/cmd-fns/go.ts +14 -0
- package/{lib → cli/lib}/cmd-fns/index.ts +2 -0
- package/{lib → cli/lib}/cmd-fns/init/create-or-modify-npmrc.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/init/get-generated-npmrc.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/init/index.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/install.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/lint.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/open.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/package-examples-create.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/publish/index.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/remove.ts +1 -1
- package/cli/lib/cmd-fns/render.ts +45 -0
- package/{lib → cli/lib}/cmd-fns/soupify.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/uninstall.ts +1 -1
- package/{lib → cli/lib}/cmd-fns/version.ts +6 -7
- package/{lib → cli/lib}/export-fns/export-bom-csv.ts +1 -1
- package/{lib → cli/lib}/export-fns/export-gerbers.ts +1 -1
- package/{lib → cli/lib}/export-fns/export-pnp-csv.ts +1 -1
- package/{lib → cli/lib}/get-program.ts +20 -4
- package/{lib → cli/lib}/param-handlers/param-handler-type.ts +1 -1
- package/{lib → cli/lib}/util/app-context.ts +1 -1
- package/{lib → cli/lib}/util/create-context-and-run-program.ts +4 -4
- package/{lib → cli/lib}/util/get-all-package-files.ts +1 -1
- package/{tests → cli/tests}/open.test.ts +2 -1
- package/{tests → cli/tests}/soupify.test.ts +1 -1
- package/dist/cli.js +302 -308
- package/example-project/package.json +2 -11
- package/{dev-server-frontend/src → frontend}/components/command-k.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/dialogs/generic-export-dialog.tsx +3 -7
- package/{dev-server-frontend/src → frontend}/components/dialogs/gerber-export-dialog.tsx +2 -2
- package/{dev-server-frontend/src → frontend}/components/select-example-search.tsx +6 -6
- package/{dev-server-frontend/src → frontend}/components/ui/alert-dialog.tsx +2 -2
- package/{dev-server-frontend/src → frontend}/components/ui/alert.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/breadcrumb.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/button.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/card.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/command.tsx +2 -2
- package/{dev-server-frontend/src → frontend}/components/ui/context-menu.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/dialog.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/menubar.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/navigation-menu.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/popover.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/select.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/tabs.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/toggle-group.tsx +2 -2
- package/{dev-server-frontend/src → frontend}/components/ui/toggle.tsx +1 -1
- package/{dev-server-frontend/src → frontend}/components/ui/tooltip.tsx +1 -1
- package/{dev-server-frontend → frontend}/index.html +1 -1
- package/{dev-server-frontend/src → frontend}/main.tsx +1 -1
- package/{dev-server-frontend → frontend}/tailwind.config.js +3 -6
- package/frontend/views/App.tsx +22 -0
- package/{dev-server-frontend/src → frontend/views}/Header.tsx +5 -5
- package/{dev-server-frontend/src → frontend/views}/HeaderMenu.tsx +50 -17
- package/{dev-server-frontend/src/ExampleContentView.tsx → frontend/views/MainContentView.tsx} +5 -5
- package/frontend/vite.config.ts +50 -0
- package/package.json +55 -18
- package/scripts/build-cli.ts +12 -0
- package/tsconfig.json +5 -96
- package/.github/workflows/server-tests.yml +0 -31
- package/build-cli.ts +0 -14
- package/dev-server-api/bun.lockb +0 -0
- package/dev-server-api/edgespec.config.ts +0 -4
- package/dev-server-api/package.json +0 -23
- package/dev-server-api/src/db/create-schema.ts +0 -54
- package/dev-server-api/src/lib/public-mapping/public-map-export-file.ts +0 -17
- package/dev-server-api/src/lib/public-mapping/public-map-export-request.ts +0 -23
- package/dev-server-api/static-routes.ts +0 -24
- package/dev-server-api/tests/fixtures/start-server.ts +0 -20
- package/dev-server-api/tsconfig.json +0 -28
- package/dev-server-frontend/.eslintrc.cjs +0 -20
- package/dev-server-frontend/package-lock.json +0 -8970
- package/dev-server-frontend/package.json +0 -70
- package/dev-server-frontend/postcss.config.js +0 -6
- package/dev-server-frontend/src/App.tsx +0 -22
- package/dev-server-frontend/tsconfig.json +0 -29
- package/dev-server-frontend/tsconfig.node.json +0 -13
- package/dev-server-frontend/vite.config.ts +0 -23
- package/example-project/package-lock.json +0 -609
- /package/{dev-server-api → api}/README.md +0 -0
- /package/{dev-server-api/src → api}/db/get-db.ts +0 -0
- /package/{dev-server-api/src → api}/db/schema.ts +0 -0
- /package/{dev-server-api/src → api}/db/zod-level-db.ts +0 -0
- /package/{dev-server-api → api}/index.ts +0 -0
- /package/{dev-server-api/src → api/lib}/middlewares/with-debug-request-logging.ts +0 -0
- /package/{dev-server-api/src → api/lib}/middlewares/with-error-response.ts +0 -0
- /package/{dev-server-api/src → api/lib}/with-winter-spec.ts +0 -0
- /package/{dev-server-api/src → api}/lib/zod/export_parameters.ts +0 -0
- /package/{dev-server-api → api}/tests/routes/health.test.ts +0 -0
- /package/{cli.ts → cli/cli.ts} +0 -0
- /package/{lib → cli/lib}/cmd-fns/auth-login.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/auth-logout.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/auth-sessions-create.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/auth-sessions-get.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/auth-sessions-list.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-clear.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-print-config.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-reveal-location.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-set-log-requests.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-set-registry.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-set-runtime.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/config-set-session.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/check-if-initialized.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/derive-selector-from-pcb-component-id.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/find-available-port.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/get-dev-server-axios.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/infer-export-name-from-source.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/mark-all-examples-loading.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev/start-dev-server.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev-server-fulfill-export-requests.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/dev-server-upload.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/init/get-generated-readme.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/init/get-generated-tsconfig.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-examples-get.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-examples-list.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-files-create.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-files-download.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-files-get.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-files-list.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-files-upload-directory.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-releases-create.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-releases-get.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-releases-list.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/package-releases-update.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/packages-create.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/packages-get.ts +0 -0
- /package/{lib → cli/lib}/cmd-fns/packages-list.ts +0 -0
- /package/{lib → cli/lib}/create-config-manager.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/index.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-local-directory.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-local-file.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-package-example-id.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-package-name-with-version.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-package-name.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-package-release-id.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-registry-url.ts +0 -0
- /package/{lib → cli/lib}/param-handlers/interact-for-runtime.ts +0 -0
- /package/{lib → cli/lib}/posthog.ts +0 -0
- /package/{lib → cli/lib}/soupify.ts +0 -0
- /package/{lib → cli/lib}/util/lint-project.ts +0 -0
- /package/{tests → cli/tests}/init.test.ts +0 -0
- /package/example-project/examples/{basic-bug.tsx → basic-chip.tsx} +0 -0
- /package/{dev-server-frontend → frontend}/README.md +0 -0
- /package/{dev-server-frontend → frontend}/bun.lockb +0 -0
- /package/{dev-server-frontend/src → frontend}/components/global-context-providers.tsx +0 -0
- /package/{dev-server-frontend → frontend}/components.json +0 -0
- /package/{dev-server-frontend/src → frontend}/hooks/toast-if-api-not-connected.ts +0 -0
- /package/{dev-server-frontend/src → frontend}/hooks/use-active-dev-package-example-lite.ts +0 -0
- /package/{dev-server-frontend/src → frontend}/hooks/use-dev-package-examples.tsx +0 -0
- /package/{dev-server-frontend/src → frontend}/hooks/use-global-store.ts +0 -0
- /package/{dev-server-frontend/src → frontend}/index.css +0 -0
- /package/{dev-server-frontend/src → frontend}/lib/utils.ts +0 -0
- /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:
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-

|
|
52
|
-
|
|
53
|
-

|
|
54
|
-
|
|
55
51
|

|
|
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
|
-
|
|
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 "
|
|
3
|
-
import type { ZodLevelDatabase } from "
|
|
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,5 +1,5 @@
|
|
|
1
|
-
import { withWinterSpec } from "
|
|
2
|
-
import { NotFoundError } from "
|
|
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,7 +1,7 @@
|
|
|
1
|
-
import { withWinterSpec } from "
|
|
2
|
-
import { NotFoundError } from "
|
|
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 "
|
|
4
|
+
import { DevPackageExampleSchema } from "api/db/schema"
|
|
5
5
|
|
|
6
6
|
export default withWinterSpec({
|
|
7
7
|
methods: ["POST"],
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { ExportFileSchema } from "
|
|
2
|
-
import {
|
|
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 {
|
|
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 "
|
|
1
|
+
import { withWinterSpec } from "api/lib/with-winter-spec"
|
|
2
2
|
import { z } from "zod"
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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 "
|
|
1
|
+
import { withWinterSpec } from "api/lib/with-winter-spec"
|
|
2
2
|
import { z } from "zod"
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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 "
|
|
1
|
+
import { withWinterSpec } from "api/lib/with-winter-spec"
|
|
2
2
|
import { z } from "zod"
|
|
3
|
-
import {
|
|
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 "
|
|
2
|
-
import { NotFoundError } from "
|
|
1
|
+
import { withWinterSpec } from "api/lib/with-winter-spec"
|
|
2
|
+
import { NotFoundError } from "winterspec/middleware"
|
|
3
3
|
import { z } from "zod"
|
|
4
|
-
import {
|
|
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,5 +1,6 @@
|
|
|
1
|
-
import { PackageInfoSchema } from "
|
|
2
|
-
|
|
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({
|
|
@@ -6,7 +6,7 @@ const serverFetch = await createFetchHandlerFromDir(
|
|
|
6
6
|
join(import.meta.dir, "./routes"),
|
|
7
7
|
)
|
|
8
8
|
|
|
9
|
-
console.log("starting dev
|
|
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
|
|
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/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": [
|
|
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":
|
|
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
|
-
import apiServer from "
|
|
2
|
-
import frontendVfs from "
|
|
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 {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
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,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:
|
|
19
|
+
ctx: Pick<AppContext, "runtime" | "params">,
|
|
19
20
|
) => {
|
|
20
21
|
try {
|
|
21
22
|
const startTime = Date.now()
|