@tscircuit/cli 0.0.117 → 0.0.120
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/release.yml +1 -1
- package/.github/workflows/server-tests.yml +31 -0
- package/.github/workflows/test.yml +4 -1
- package/README.md +1 -2
- package/bun.lockb +0 -0
- package/dev-server-api/bun.lockb +0 -0
- package/dev-server-api/package.json +2 -4
- package/dev-server-api/routes/api/db/download.ts +25 -0
- package/dev-server-api/routes/api/dev_package_examples/create.ts +15 -25
- package/dev-server-api/routes/api/dev_package_examples/get.ts +12 -21
- package/dev-server-api/routes/api/dev_package_examples/list.ts +17 -22
- package/dev-server-api/routes/api/dev_package_examples/update.ts +39 -37
- package/dev-server-api/routes/api/dev_server/reset.ts +6 -8
- package/dev-server-api/routes/api/export_files/create.ts +10 -13
- package/dev-server-api/routes/api/export_files/download.ts +10 -7
- package/dev-server-api/routes/api/export_requests/create.ts +11 -15
- package/dev-server-api/routes/api/export_requests/get.ts +24 -15
- package/dev-server-api/routes/api/export_requests/list.ts +9 -10
- package/dev-server-api/routes/api/export_requests/update.ts +18 -18
- package/dev-server-api/routes/api/package_info/create.ts +9 -11
- package/dev-server-api/routes/api/package_info/get.ts +5 -8
- package/dev-server-api/routes/index.ts +16 -0
- package/dev-server-api/server.ts +1 -1
- package/dev-server-api/src/db/get-db.ts +11 -102
- package/dev-server-api/src/db/schema.ts +65 -0
- package/dev-server-api/src/db/zod-level-db.ts +146 -0
- package/dev-server-api/src/middlewares/with-db.ts +7 -3
- package/dev-server-api/static-routes.ts +3 -1
- package/dev-server-api/tests/fixtures/get-test-server.ts +30 -0
- package/dev-server-api/tests/fixtures/start-server.ts +20 -0
- package/dev-server-api/tests/routes/dev_package_examples/create.test.ts +19 -0
- package/dev-server-api/tests/routes/dev_package_examples/get.test.ts +25 -0
- package/dev-server-api/tests/routes/dev_package_examples/list.test.ts +32 -0
- package/dev-server-api/tests/routes/dev_package_examples/update.test.ts +28 -0
- package/dev-server-api/tests/routes/export_files/create.test.ts +18 -0
- package/dev-server-api/tests/routes/export_files/download.test.ts +29 -0
- package/dev-server-api/tests/routes/export_requests/create.test.ts +24 -0
- package/dev-server-api/tests/routes/export_requests/get.test.ts +41 -0
- package/dev-server-api/tests/routes/export_requests/list.test.ts +35 -0
- package/dev-server-api/tests/routes/export_requests/update.test.ts +50 -0
- package/dev-server-api/tests/routes/health.test.ts +10 -0
- package/dist/cli.js +488 -368
- package/lib/cmd-fns/dev/index.ts +14 -11
- package/package.json +7 -8
- package/tests/open.test.ts +1 -2
- package/tests/soupify.test.ts +1 -1
- package/dev-server-api/src/lib/zod/export_file.ts +0 -8
- package/dev-server-api/src/lib/zod/export_package_info.ts +0 -5
- package/dev-server-api/src/lib/zod/export_request.ts +0 -21
- /package/{tests/assets/example-project → example-project}/README.md +0 -0
- /package/{tests/assets/example-project → example-project}/examples/basic-bug.tsx +0 -0
- /package/{tests/assets/example-project → example-project}/examples/basic-capacitor.tsx +0 -0
- /package/{tests/assets/example-project → example-project}/examples/basic-resistor.tsx +0 -0
- /package/{tests/assets/example-project → example-project}/index.ts +0 -0
- /package/{tests/assets/example-project → example-project}/package-lock.json +0 -0
- /package/{tests/assets/example-project → example-project}/package.json +0 -0
- /package/{tests/assets/example-project → example-project}/src/MyCircuit.tsx +0 -0
- /package/{tests/assets/example-project → example-project}/src/manual-edits.ts +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { it, expect } from "bun:test"
|
|
2
|
+
import { getTestFixture } from "tests/fixtures/get-test-server"
|
|
3
|
+
|
|
4
|
+
it("POST /api/export_requests/create", async () => {
|
|
5
|
+
const { axios } = await getTestFixture()
|
|
6
|
+
|
|
7
|
+
const res = await axios.post("/api/export_requests/create", {
|
|
8
|
+
example_file_path: "examples/test-example.tsx",
|
|
9
|
+
export_name: "default",
|
|
10
|
+
export_parameters: { should_export_gerber_zip: true },
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
expect(res.status).toBe(200)
|
|
14
|
+
expect(res.data.export_request).toBeDefined()
|
|
15
|
+
expect(res.data.export_request.example_file_path).toBe(
|
|
16
|
+
"examples/test-example.tsx"
|
|
17
|
+
)
|
|
18
|
+
expect(res.data.export_request.export_name).toBe("default")
|
|
19
|
+
expect(res.data.export_request.export_parameters).toMatchObject({
|
|
20
|
+
should_export_gerber_zip: true,
|
|
21
|
+
})
|
|
22
|
+
expect(res.data.export_request.is_complete).toBe(false)
|
|
23
|
+
expect(res.data.export_request.has_error).toBe(false)
|
|
24
|
+
})
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { it, expect } from "bun:test"
|
|
2
|
+
import { getTestFixture } from "tests/fixtures/get-test-server"
|
|
3
|
+
|
|
4
|
+
it("GET /api/export_requests/get", async () => {
|
|
5
|
+
const { axios } = await getTestFixture()
|
|
6
|
+
|
|
7
|
+
// First, create an export request
|
|
8
|
+
const createRes = await axios.post("/api/export_requests/create", {
|
|
9
|
+
example_file_path: "examples/test-example.tsx",
|
|
10
|
+
export_name: "default",
|
|
11
|
+
export_parameters: { should_export_gerber_zip: true },
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
const exportRequestId = createRes.data.export_request.export_request_id
|
|
15
|
+
|
|
16
|
+
// Now, get the export request
|
|
17
|
+
const getRes = await axios.post(`/api/export_requests/get`, {
|
|
18
|
+
export_request_id: exportRequestId,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
expect(getRes.status).toBe(200)
|
|
22
|
+
expect(getRes.data.export_request).toBeDefined()
|
|
23
|
+
expect(getRes.data.export_request.export_request_id).toBe(exportRequestId)
|
|
24
|
+
expect(getRes.data.export_request.example_file_path).toBe(
|
|
25
|
+
"examples/test-example.tsx"
|
|
26
|
+
)
|
|
27
|
+
expect(getRes.data.export_request.export_name).toBe("default")
|
|
28
|
+
expect(getRes.data.export_request.export_parameters).toMatchObject({
|
|
29
|
+
should_export_gerber_zip: true,
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
it("GET /api/export_requests/get - Not Found", async () => {
|
|
34
|
+
const { axios } = await getTestFixture()
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
await axios.post("/api/export_requests/get", { export_request_id: 999999 })
|
|
38
|
+
} catch (error: any) {
|
|
39
|
+
expect(error.status).toBe(404)
|
|
40
|
+
}
|
|
41
|
+
})
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { it, expect } from "bun:test"
|
|
2
|
+
import { getTestFixture } from "tests/fixtures/get-test-server"
|
|
3
|
+
|
|
4
|
+
it("GET /api/export_requests/list", async () => {
|
|
5
|
+
const { axios } = await getTestFixture()
|
|
6
|
+
|
|
7
|
+
// Create two export requests
|
|
8
|
+
await axios.post("/api/export_requests/create", {
|
|
9
|
+
example_file_path: "examples/test-example1.tsx",
|
|
10
|
+
export_name: "default",
|
|
11
|
+
export_parameters: { format: "gerber" },
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
await axios.post("/api/export_requests/create", {
|
|
15
|
+
example_file_path: "examples/test-example2.tsx",
|
|
16
|
+
export_name: "default",
|
|
17
|
+
export_parameters: { format: "svg" },
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
// List all export requests
|
|
21
|
+
const listRes = await axios.post("/api/export_requests/list", {})
|
|
22
|
+
|
|
23
|
+
expect(listRes.status).toBe(200)
|
|
24
|
+
expect(listRes.data.export_requests).toBeDefined()
|
|
25
|
+
expect(Array.isArray(listRes.data.export_requests)).toBe(true)
|
|
26
|
+
|
|
27
|
+
// List completed export requests (should be empty)
|
|
28
|
+
const completedRes = await axios.post("/api/export_requests/list", {
|
|
29
|
+
is_complete: true,
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
expect(completedRes.status).toBe(200)
|
|
33
|
+
expect(completedRes.data.export_requests).toBeDefined()
|
|
34
|
+
expect(Array.isArray(completedRes.data.export_requests)).toBe(true)
|
|
35
|
+
})
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { it, expect } from "bun:test"
|
|
2
|
+
import { getTestFixture } from "tests/fixtures/get-test-server"
|
|
3
|
+
|
|
4
|
+
it("POST /api/export_requests/update", async () => {
|
|
5
|
+
const { axios } = await getTestFixture()
|
|
6
|
+
|
|
7
|
+
// First, create an export request
|
|
8
|
+
const createRes = await axios.post("/api/export_requests/create", {
|
|
9
|
+
example_file_path: "examples/test-example.tsx",
|
|
10
|
+
export_name: "default",
|
|
11
|
+
export_parameters: { format: "gerber", should_export_gerber_zip: true },
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
const exportRequestId = createRes.data.export_request.export_request_id
|
|
15
|
+
|
|
16
|
+
// Now, update the export request
|
|
17
|
+
const updateRes = await axios.post("/api/export_requests/update", {
|
|
18
|
+
export_request_id: exportRequestId,
|
|
19
|
+
is_complete: true,
|
|
20
|
+
has_error: false,
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
expect(updateRes.status).toBe(200)
|
|
24
|
+
expect(updateRes.data.export_request).toBeDefined()
|
|
25
|
+
expect(updateRes.data.export_request.export_request_id).toBe(exportRequestId)
|
|
26
|
+
expect(updateRes.data.export_request.is_complete).toBe(true)
|
|
27
|
+
expect(updateRes.data.export_request.has_error).toBe(false)
|
|
28
|
+
|
|
29
|
+
// // Verify the update
|
|
30
|
+
const getRes = await axios.post(`/api/export_requests/get`, {
|
|
31
|
+
export_request_id: exportRequestId,
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
expect(getRes.status).toBe(200)
|
|
35
|
+
expect(getRes.data.export_request.is_complete).toBe(true)
|
|
36
|
+
expect(getRes.data.export_request.has_error).toBe(false)
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
it("POST /api/export_requests/update - Not Found", async () => {
|
|
40
|
+
const { axios } = await getTestFixture()
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
await axios.post("/api/export_requests/update", {
|
|
44
|
+
export_request_id: 999999,
|
|
45
|
+
is_complete: true,
|
|
46
|
+
})
|
|
47
|
+
} catch (error: any) {
|
|
48
|
+
expect(error.status).toBe(404)
|
|
49
|
+
}
|
|
50
|
+
})
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { it, expect } from "bun:test"
|
|
2
|
+
import { getTestFixture } from "../fixtures/get-test-server"
|
|
3
|
+
|
|
4
|
+
it("GET /health", async () => {
|
|
5
|
+
const { axios } = await getTestFixture()
|
|
6
|
+
|
|
7
|
+
expect(await axios.get("/health").then((r) => r.data)).toMatchObject({
|
|
8
|
+
ok: true,
|
|
9
|
+
})
|
|
10
|
+
})
|