@supatype/cli 0.1.0-alpha.6 → 0.1.0-alpha.8
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +208 -1
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/app/proxy-dev-app.d.ts +13 -0
- package/dist/app/proxy-dev-app.d.ts.map +1 -0
- package/dist/app/proxy-dev-app.js +53 -0
- package/dist/app/proxy-dev-app.js.map +1 -0
- package/dist/app-config.d.ts +7 -0
- package/dist/app-config.d.ts.map +1 -0
- package/dist/app-config.js +113 -0
- package/dist/app-config.js.map +1 -0
- package/dist/augmentation-generator.d.ts +2 -0
- package/dist/augmentation-generator.d.ts.map +1 -0
- package/dist/augmentation-generator.js +111 -0
- package/dist/augmentation-generator.js.map +1 -0
- package/dist/binary-cache.d.ts +94 -0
- package/dist/binary-cache.d.ts.map +1 -0
- package/dist/binary-cache.js +669 -0
- package/dist/binary-cache.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/admin.d.ts.map +1 -1
- package/dist/commands/admin.js +4 -3
- package/dist/commands/admin.js.map +1 -1
- package/dist/commands/app.d.ts.map +1 -1
- package/dist/commands/app.js +56 -209
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/cache.d.ts +6 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +105 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/cloud.d.ts +20 -0
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +50 -52
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/db.d.ts.map +1 -1
- package/dist/commands/db.js +47 -54
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.d.ts +2 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +79 -52
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +11 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +759 -385
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +30 -15
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/engine.d.ts +1 -3
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +13 -85
- package/dist/commands/engine.js.map +1 -1
- package/dist/commands/functions.d.ts.map +1 -1
- package/dist/commands/functions.js +92 -105
- package/dist/commands/functions.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +22 -12
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +137 -410
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate-from-v1.d.ts +5 -0
- package/dist/commands/migrate-from-v1.d.ts.map +1 -0
- package/dist/commands/migrate-from-v1.js +125 -0
- package/dist/commands/migrate-from-v1.js.map +1 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +27 -23
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/pg.d.ts +8 -0
- package/dist/commands/pg.d.ts.map +1 -0
- package/dist/commands/pg.js +102 -0
- package/dist/commands/pg.js.map +1 -0
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +5 -66
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +128 -38
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/seed.d.ts +2 -0
- package/dist/commands/seed.d.ts.map +1 -1
- package/dist/commands/seed.js +44 -11
- package/dist/commands/seed.js.map +1 -1
- package/dist/commands/self-host.d.ts +7 -1
- package/dist/commands/self-host.d.ts.map +1 -1
- package/dist/commands/self-host.js +272 -758
- package/dist/commands/self-host.js.map +1 -1
- package/dist/commands/self-update.d.ts +9 -0
- package/dist/commands/self-update.d.ts.map +1 -0
- package/dist/commands/self-update.js +33 -0
- package/dist/commands/self-update.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +4 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/types.d.ts +3 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +62 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/update.d.ts +7 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +93 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/components.d.ts +5 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +3 -0
- package/dist/components.js.map +1 -0
- package/dist/config.d.ts +10 -51
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +101 -33
- package/dist/config.js.map +1 -1
- package/dist/dev-compose.d.ts +17 -0
- package/dist/dev-compose.d.ts.map +1 -0
- package/dist/dev-compose.js +374 -0
- package/dist/dev-compose.js.map +1 -0
- package/dist/diff-output.d.ts +4 -0
- package/dist/diff-output.d.ts.map +1 -0
- package/dist/diff-output.js +12 -0
- package/dist/diff-output.js.map +1 -0
- package/dist/docker-postgres.d.ts +57 -0
- package/dist/docker-postgres.d.ts.map +1 -0
- package/dist/docker-postgres.js +208 -0
- package/dist/docker-postgres.js.map +1 -0
- package/dist/engine-client.d.ts +69 -0
- package/dist/engine-client.d.ts.map +1 -0
- package/dist/engine-client.js +157 -0
- package/dist/engine-client.js.map +1 -0
- package/dist/ensure-binary.d.ts +7 -0
- package/dist/ensure-binary.d.ts.map +1 -0
- package/dist/ensure-binary.js +17 -0
- package/dist/ensure-binary.js.map +1 -0
- package/dist/functions-router-gen.d.ts +14 -0
- package/dist/functions-router-gen.d.ts.map +1 -0
- package/dist/functions-router-gen.js +199 -0
- package/dist/functions-router-gen.js.map +1 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/kong-config.d.ts +25 -0
- package/dist/kong-config.d.ts.map +1 -0
- package/dist/kong-config.js +71 -0
- package/dist/kong-config.js.map +1 -0
- package/dist/local-gateway.d.ts +7 -0
- package/dist/local-gateway.d.ts.map +1 -0
- package/dist/local-gateway.js +9 -0
- package/dist/local-gateway.js.map +1 -0
- package/dist/local-storage.d.ts +8 -0
- package/dist/local-storage.d.ts.map +1 -0
- package/dist/local-storage.js +14 -0
- package/dist/local-storage.js.map +1 -0
- package/dist/pgbouncer-userlist.d.ts +5 -0
- package/dist/pgbouncer-userlist.d.ts.map +1 -0
- package/dist/pgbouncer-userlist.js +14 -0
- package/dist/pgbouncer-userlist.js.map +1 -0
- package/dist/postgres-ctl.d.ts +44 -0
- package/dist/postgres-ctl.d.ts.map +1 -0
- package/dist/postgres-ctl.js +137 -0
- package/dist/postgres-ctl.js.map +1 -0
- package/dist/process-manager.d.ts +43 -0
- package/dist/process-manager.d.ts.map +1 -0
- package/dist/process-manager.js +135 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/project-config.d.ts +235 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +160 -0
- package/dist/project-config.js.map +1 -0
- package/dist/pull-utils.d.ts +15 -0
- package/dist/pull-utils.d.ts.map +1 -1
- package/dist/pull-utils.js +12 -0
- package/dist/pull-utils.js.map +1 -1
- package/dist/release-pins.d.ts +7 -0
- package/dist/release-pins.d.ts.map +1 -0
- package/dist/release-pins.js +27 -0
- package/dist/release-pins.js.map +1 -0
- package/dist/release-public-key.d.ts +8 -0
- package/dist/release-public-key.d.ts.map +1 -0
- package/dist/release-public-key.js +13 -0
- package/dist/release-public-key.js.map +1 -0
- package/dist/runtime-routes.d.ts +34 -0
- package/dist/runtime-routes.d.ts.map +1 -0
- package/dist/runtime-routes.js +252 -0
- package/dist/runtime-routes.js.map +1 -0
- package/dist/schema-ast-v2.d.ts +127 -0
- package/dist/schema-ast-v2.d.ts.map +1 -0
- package/dist/schema-ast-v2.js +226 -0
- package/dist/schema-ast-v2.js.map +1 -0
- package/dist/scripts/postinstall.d.ts +5 -6
- package/dist/scripts/postinstall.d.ts.map +1 -1
- package/dist/scripts/postinstall.js +36 -20
- package/dist/scripts/postinstall.js.map +1 -1
- package/dist/self-host-compose.d.ts +22 -0
- package/dist/self-host-compose.d.ts.map +1 -0
- package/dist/self-host-compose.js +347 -0
- package/dist/self-host-compose.js.map +1 -0
- package/dist/storage-provision.d.ts +24 -0
- package/dist/storage-provision.d.ts.map +1 -0
- package/dist/storage-provision.js +44 -0
- package/dist/storage-provision.js.map +1 -0
- package/dist/studio-admin-roles.d.ts +7 -0
- package/dist/studio-admin-roles.d.ts.map +1 -0
- package/dist/studio-admin-roles.js +14 -0
- package/dist/studio-admin-roles.js.map +1 -0
- package/dist/studio-dev-server.d.ts +22 -0
- package/dist/studio-dev-server.d.ts.map +1 -0
- package/dist/studio-dev-server.js +28 -0
- package/dist/studio-dev-server.js.map +1 -0
- package/dist/systemd.d.ts +26 -0
- package/dist/systemd.d.ts.map +1 -0
- package/dist/systemd.js +102 -0
- package/dist/systemd.js.map +1 -0
- package/dist/tsx-runner.d.ts.map +1 -1
- package/dist/tsx-runner.js +9 -2
- package/dist/tsx-runner.js.map +1 -1
- package/dist/type-extractor.d.ts +4 -0
- package/dist/type-extractor.d.ts.map +1 -0
- package/dist/type-extractor.js +1213 -0
- package/dist/type-extractor.js.map +1 -0
- package/dist/type-resolver.d.ts +33 -0
- package/dist/type-resolver.d.ts.map +1 -0
- package/dist/type-resolver.js +338 -0
- package/dist/type-resolver.js.map +1 -0
- package/package.json +4 -3
- package/releases/deno/VERSION +1 -0
- package/scripts/mirror-deno-release.sh +76 -0
- package/src/TYPE-RESOLUTION.md +294 -0
- package/src/app/proxy-dev-app.ts +67 -0
- package/src/app-config.ts +128 -0
- package/src/augmentation-generator.ts +126 -0
- package/src/binary-cache.ts +822 -0
- package/src/cli.ts +13 -8
- package/src/commands/admin.ts +4 -3
- package/src/commands/app.ts +67 -231
- package/src/commands/cache.ts +117 -0
- package/src/commands/cloud.ts +63 -64
- package/src/commands/db.ts +54 -63
- package/src/commands/deploy.ts +96 -62
- package/src/commands/dev.ts +933 -405
- package/src/commands/diff.ts +31 -29
- package/src/commands/engine.ts +13 -116
- package/src/commands/functions.ts +97 -115
- package/src/commands/generate.ts +23 -10
- package/src/commands/init.ts +149 -414
- package/src/commands/migrate-from-v1.ts +131 -0
- package/src/commands/migrate.ts +27 -23
- package/src/commands/pg.ts +133 -0
- package/src/commands/pull.ts +6 -85
- package/src/commands/push.ts +161 -56
- package/src/commands/seed.ts +54 -12
- package/src/commands/self-host.ts +312 -880
- package/src/commands/self-update.ts +45 -0
- package/src/commands/status.ts +4 -3
- package/src/commands/types.ts +76 -0
- package/src/commands/update.ts +109 -0
- package/src/components.ts +6 -0
- package/src/config.ts +127 -94
- package/src/dev-compose.ts +455 -0
- package/src/diff-output.ts +12 -0
- package/src/docker-postgres.ts +295 -0
- package/src/engine-client.ts +236 -0
- package/src/ensure-binary.ts +28 -0
- package/src/functions-router-gen.ts +224 -0
- package/src/index.ts +4 -12
- package/src/kong-config.ts +93 -0
- package/src/local-gateway.ts +9 -0
- package/src/local-storage.ts +14 -0
- package/src/pgbouncer-userlist.ts +15 -0
- package/src/postgres-ctl.ts +171 -0
- package/src/process-manager.ts +168 -0
- package/src/project-config.ts +386 -0
- package/src/pull-utils.ts +24 -0
- package/src/release-pins.ts +31 -0
- package/src/release-public-key.ts +12 -0
- package/src/runtime-routes.ts +291 -0
- package/src/schema-ast-v2.ts +324 -0
- package/src/scripts/postinstall.ts +36 -25
- package/src/self-host-compose.ts +389 -0
- package/src/storage-provision.ts +58 -0
- package/src/studio-admin-roles.ts +16 -0
- package/src/studio-dev-server.ts +53 -0
- package/src/systemd.ts +137 -0
- package/src/tsx-runner.ts +11 -1
- package/src/type-extractor.ts +1479 -0
- package/src/type-resolver.ts +457 -0
- package/tests/app-command.test.ts +54 -0
- package/tests/augmentation-generator.test.ts +59 -0
- package/tests/binary-cache-cloud-overrides.test.ts +123 -0
- package/tests/cached-artifact-format.test.ts +84 -0
- package/tests/cli-help.test.ts +40 -14
- package/tests/config.test.ts +171 -37
- package/tests/docker-postgres.test.ts +39 -0
- package/tests/engine-distribution.test.ts +3 -3
- package/tests/ensure-binary.test.ts +59 -0
- package/tests/init.test.ts +28 -86
- package/tests/migrate-from-v1.test.ts +29 -0
- package/tests/normalize-admin-config.test.ts +48 -0
- package/tests/pg-spawn-env.test.ts +18 -0
- package/tests/postgres-archive-tag.test.ts +9 -0
- package/tests/proxy-dev-app.test.ts +33 -0
- package/tests/pull-utils.test.ts +36 -1
- package/tests/release-pins.test.ts +28 -0
- package/tests/runtime-contract.test.ts +351 -0
- package/tests/seed-discover.test.ts +31 -0
- package/tests/studio-admin-roles.test.ts +27 -0
- package/tests/tsconfig.json +9 -0
- package/tests/type-extractor.test.ts +985 -0
- package/tests/type-resolver.test.ts +59 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vitest.config.ts +12 -0
- package/dist/engine/cache.d.ts +0 -37
- package/dist/engine/cache.d.ts.map +0 -1
- package/dist/engine/cache.js +0 -121
- package/dist/engine/cache.js.map +0 -1
- package/dist/engine/download.d.ts +0 -19
- package/dist/engine/download.d.ts.map +0 -1
- package/dist/engine/download.js +0 -108
- package/dist/engine/download.js.map +0 -1
- package/dist/engine/platform.d.ts +0 -24
- package/dist/engine/platform.d.ts.map +0 -1
- package/dist/engine/platform.js +0 -50
- package/dist/engine/platform.js.map +0 -1
- package/dist/engine/resolve.d.ts +0 -37
- package/dist/engine/resolve.d.ts.map +0 -1
- package/dist/engine/resolve.js +0 -133
- package/dist/engine/resolve.js.map +0 -1
- package/dist/engine/update-notify.d.ts +0 -11
- package/dist/engine/update-notify.d.ts.map +0 -1
- package/dist/engine/update-notify.js +0 -43
- package/dist/engine/update-notify.js.map +0 -1
- package/dist/engine/verify.d.ts +0 -50
- package/dist/engine/verify.d.ts.map +0 -1
- package/dist/engine/verify.js +0 -161
- package/dist/engine/verify.js.map +0 -1
- package/dist/engine-version.d.ts +0 -35
- package/dist/engine-version.d.ts.map +0 -1
- package/dist/engine-version.js +0 -35
- package/dist/engine-version.js.map +0 -1
- package/dist/engine.d.ts +0 -34
- package/dist/engine.d.ts.map +0 -1
- package/dist/engine.js +0 -76
- package/dist/engine.js.map +0 -1
- package/src/engine/cache.ts +0 -135
- package/src/engine/download.ts +0 -143
- package/src/engine/platform.ts +0 -66
- package/src/engine/resolve.ts +0 -197
- package/src/engine/update-notify.ts +0 -50
- package/src/engine/verify.ts +0 -206
- package/src/engine-version.ts +0 -39
- package/src/engine.ts +0 -99
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,7 +1,214 @@
|
|
|
1
1
|
|
|
2
|
-
> @supatype/cli@0.1.0-alpha.
|
|
2
|
+
> @supatype/cli@0.1.0-alpha.8 test /home/runner/work/supatype/supatype/packages/cli
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv4.0.18 [39m[90m/home/runner/work/supatype/supatype/packages/cli[39m
|
|
7
7
|
|
|
8
|
+
[32m✓[39m tests/type-extractor.test.ts [2m([22m[2m34 tests[22m[2m)[22m[32m 119[2mms[22m[39m
|
|
9
|
+
[32m✓[39m tests/runtime-contract.test.ts [2m([22m[2m28 tests[22m[2m)[22m[32m 105[2mms[22m[39m
|
|
10
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mcreates all expected files
|
|
11
|
+
[22m[39m created package.json
|
|
12
|
+
created supatype.config.ts
|
|
13
|
+
created schema/index.ts
|
|
14
|
+
created .env
|
|
15
|
+
created seed.ts
|
|
16
|
+
created seeds/.gitkeep
|
|
17
|
+
created public/.gitkeep
|
|
18
|
+
created .gitignore
|
|
19
|
+
|
|
20
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2msupatype.config.ts embeds the project name and exports defineConfig
|
|
21
|
+
[22m[39m created package.json
|
|
22
|
+
created supatype.config.ts
|
|
23
|
+
created schema/index.ts
|
|
24
|
+
created .env
|
|
25
|
+
created seed.ts
|
|
26
|
+
created seeds/.gitkeep
|
|
27
|
+
created public/.gitkeep
|
|
28
|
+
created .gitignore
|
|
29
|
+
|
|
30
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mpackage.json includes @supatype/cli and @supatype/types
|
|
31
|
+
[22m[39m created package.json
|
|
32
|
+
created supatype.config.ts
|
|
33
|
+
created schema/index.ts
|
|
34
|
+
created .env
|
|
35
|
+
created seed.ts
|
|
36
|
+
created seeds/.gitkeep
|
|
37
|
+
created public/.gitkeep
|
|
38
|
+
created .gitignore
|
|
39
|
+
|
|
40
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mskips package.json when it already exists
|
|
41
|
+
[22m[39m skipped package.json (already exists)
|
|
42
|
+
created supatype.config.ts
|
|
43
|
+
created schema/index.ts
|
|
44
|
+
created .env
|
|
45
|
+
created seed.ts
|
|
46
|
+
created seeds/.gitkeep
|
|
47
|
+
created public/.gitkeep
|
|
48
|
+
created .gitignore
|
|
49
|
+
|
|
50
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2msupatype.config.ts documents self-host workflow
|
|
51
|
+
[22m[39m created package.json
|
|
52
|
+
created supatype.config.ts
|
|
53
|
+
created schema/index.ts
|
|
54
|
+
created .env
|
|
55
|
+
created seed.ts
|
|
56
|
+
created seeds/.gitkeep
|
|
57
|
+
created public/.gitkeep
|
|
58
|
+
created .gitignore
|
|
59
|
+
|
|
60
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2m.env contains DATABASE_URL, JWT_SECRET, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB
|
|
61
|
+
[22m[39m created package.json
|
|
62
|
+
created supatype.config.ts
|
|
63
|
+
created schema/index.ts
|
|
64
|
+
created .env
|
|
65
|
+
created seed.ts
|
|
66
|
+
created seeds/.gitkeep
|
|
67
|
+
created public/.gitkeep
|
|
68
|
+
created .gitignore
|
|
69
|
+
|
|
70
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2m.env contains ANON_KEY, SERVICE_ROLE_KEY, and SITE_URL placeholders
|
|
71
|
+
[22m[39m created package.json
|
|
72
|
+
created supatype.config.ts
|
|
73
|
+
created schema/index.ts
|
|
74
|
+
created .env
|
|
75
|
+
created seed.ts
|
|
76
|
+
created seeds/.gitkeep
|
|
77
|
+
created public/.gitkeep
|
|
78
|
+
created .gitignore
|
|
79
|
+
|
|
80
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mschema/index.ts exports a User model using RFC v2 Model<>
|
|
81
|
+
[22m[39m created package.json
|
|
82
|
+
created supatype.config.ts
|
|
83
|
+
created schema/index.ts
|
|
84
|
+
created .env
|
|
85
|
+
created seed.ts
|
|
86
|
+
created seeds/.gitkeep
|
|
87
|
+
created public/.gitkeep
|
|
88
|
+
created .gitignore
|
|
89
|
+
|
|
90
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2m.gitignore excludes .env, node_modules, and engine binary
|
|
91
|
+
[22m[39m created package.json
|
|
92
|
+
created supatype.config.ts
|
|
93
|
+
created schema/index.ts
|
|
94
|
+
created .env
|
|
95
|
+
created seed.ts
|
|
96
|
+
created seeds/.gitkeep
|
|
97
|
+
created public/.gitkeep
|
|
98
|
+
created .gitignore
|
|
99
|
+
|
|
100
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mseed.ts references the project name
|
|
101
|
+
[22m[39m created package.json
|
|
102
|
+
created supatype.config.ts
|
|
103
|
+
created schema/index.ts
|
|
104
|
+
created .env
|
|
105
|
+
created seed.ts
|
|
106
|
+
created seeds/.gitkeep
|
|
107
|
+
created public/.gitkeep
|
|
108
|
+
created .gitignore
|
|
109
|
+
|
|
110
|
+
[90mstdout[2m | tests/init.test.ts[2m > [22m[2mscaffold()[2m > [22m[2mdifferent project names produce different config bodies
|
|
111
|
+
[22m[39m created package.json
|
|
112
|
+
created supatype.config.ts
|
|
113
|
+
created schema/index.ts
|
|
114
|
+
created .env
|
|
115
|
+
created seed.ts
|
|
116
|
+
created seeds/.gitkeep
|
|
117
|
+
created public/.gitkeep
|
|
118
|
+
created .gitignore
|
|
119
|
+
created package.json
|
|
120
|
+
created supatype.config.ts
|
|
121
|
+
created schema/index.ts
|
|
122
|
+
created .env
|
|
123
|
+
created seed.ts
|
|
124
|
+
created seeds/.gitkeep
|
|
125
|
+
created public/.gitkeep
|
|
126
|
+
created .gitignore
|
|
127
|
+
|
|
128
|
+
[32m✓[39m tests/init.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 37[2mms[22m[39m
|
|
129
|
+
[32m✓[39m tests/pull-utils.test.ts [2m([22m[2m49 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
|
130
|
+
[32m✓[39m tests/config.test.ts [2m([22m[2m16 tests[22m[2m)[22m[33m 4442[2mms[22m[39m
|
|
131
|
+
[33m[2m✓[22m[39m loads a valid supatype.config.ts (plain export default, no package imports) [33m 910[2mms[22m[39m
|
|
132
|
+
[33m[2m✓[22m[39m normalizes shorthand schema string to { path, pg_schema } [33m 519[2mms[22m[39m
|
|
133
|
+
[33m[2m✓[22m[39m loads a supatype.config.js (plain ESM) [33m 505[2mms[22m[39m
|
|
134
|
+
[33m[2m✓[22m[39m throws if config is missing the versions section [33m 487[2mms[22m[39m
|
|
135
|
+
[33m[2m✓[22m[39m prefers supatype.config.ts over supatype.config.js when both exist [33m 526[2mms[22m[39m
|
|
136
|
+
[33m[2m✓[22m[39m supports optional output field in config [33m 509[2mms[22m[39m
|
|
137
|
+
[33m[2m✓[22m[39m merges supatype.local.config.ts over base [33m 975[2mms[22m[39m
|
|
138
|
+
[32m✓[39m tests/binary-cache-cloud-overrides.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
139
|
+
[32m✓[39m tests/cached-artifact-format.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 14[2mms[22m[39m
|
|
140
|
+
[32m✓[39m tests/tsx-runner.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 2790[2mms[22m[39m
|
|
141
|
+
[33m[2m✓[22m[39m evaluates a simple expression and returns stdout [33m 365[2mms[22m[39m
|
|
142
|
+
[33m[2m✓[22m[39m evaluates TypeScript syntax (type annotations) [33m 381[2mms[22m[39m
|
|
143
|
+
[33m[2m✓[22m[39m can serialize a JSON object to stdout [33m 385[2mms[22m[39m
|
|
144
|
+
[33m[2m✓[22m[39m returns non-zero exit code on syntax error [33m 350[2mms[22m[39m
|
|
145
|
+
[33m[2m✓[22m[39m returns non-zero exit code on runtime error [33m 397[2mms[22m[39m
|
|
146
|
+
[33m[2m✓[22m[39m captures stderr separately from stdout [33m 398[2mms[22m[39m
|
|
147
|
+
[33m[2m✓[22m[39m runs a .ts file and returns its stdout [33m 508[2mms[22m[39m
|
|
148
|
+
[32m✓[39m tests/augmentation-generator.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
|
149
|
+
[32m✓[39m tests/type-resolver.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
150
|
+
[32m✓[39m tests/ensure-binary.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
151
|
+
[90mstdout[2m | tests/app-command.test.ts[2m > [22m[2msupatype app add --static[2m > [22m[2msets app.mode=static and static_dir in supatype.config.ts
|
|
152
|
+
[22m[39m created package.json
|
|
153
|
+
created supatype.config.ts
|
|
154
|
+
created schema/index.ts
|
|
155
|
+
created .env
|
|
156
|
+
created seed.ts
|
|
157
|
+
created seeds/.gitkeep
|
|
158
|
+
created public/.gitkeep
|
|
159
|
+
created .gitignore
|
|
160
|
+
|
|
161
|
+
[90mstdout[2m | tests/app-command.test.ts[2m > [22m[2msupatype app add --static[2m > [22m[2mcreates the static directory when missing
|
|
162
|
+
[22m[39m created package.json
|
|
163
|
+
created supatype.config.ts
|
|
164
|
+
created schema/index.ts
|
|
165
|
+
created .env
|
|
166
|
+
created seed.ts
|
|
167
|
+
created seeds/.gitkeep
|
|
168
|
+
created public/.gitkeep
|
|
169
|
+
created .gitignore
|
|
170
|
+
|
|
171
|
+
[32m✓[39m tests/app-command.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 2116[2mms[22m[39m
|
|
172
|
+
[33m[2m✓[22m[39m sets app.mode=static and static_dir in supatype.config.ts [33m 1065[2mms[22m[39m
|
|
173
|
+
[33m[2m✓[22m[39m creates the static directory when missing [33m 1049[2mms[22m[39m
|
|
174
|
+
[32m✓[39m tests/normalize-admin-config.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
175
|
+
[32m✓[39m tests/docker-postgres.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
176
|
+
[32m✓[39m tests/proxy-dev-app.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
177
|
+
[32m✓[39m tests/keys.test.ts [2m([22m[2m11 tests[22m[2m)[22m[33m 11219[2mms[22m[39m
|
|
178
|
+
[33m[2m✓[22m[39m exits 0 with --secret [33m 974[2mms[22m[39m
|
|
179
|
+
[33m[2m✓[22m[39m outputs ANON_KEY= line [33m 966[2mms[22m[39m
|
|
180
|
+
[33m[2m✓[22m[39m outputs SERVICE_ROLE_KEY= line [33m 946[2mms[22m[39m
|
|
181
|
+
[33m[2m✓[22m[39m ANON_KEY is a valid three-part JWT [33m 921[2mms[22m[39m
|
|
182
|
+
[33m[2m✓[22m[39m SERVICE_ROLE_KEY payload has role: service_role [33m 967[2mms[22m[39m
|
|
183
|
+
[33m[2m✓[22m[39m JWT has exp in the future [33m 920[2mms[22m[39m
|
|
184
|
+
[33m[2m✓[22m[39m --exp-years changes the expiry window [33m 1818[2mms[22m[39m
|
|
185
|
+
[33m[2m✓[22m[39m reads JWT_SECRET from environment variable [33m 983[2mms[22m[39m
|
|
186
|
+
[33m[2m✓[22m[39m reads JWT_SECRET from .env file [33m 869[2mms[22m[39m
|
|
187
|
+
[33m[2m✓[22m[39m exits non-zero when no secret is available [33m 917[2mms[22m[39m
|
|
188
|
+
[33m[2m✓[22m[39m keys --help shows --secret and --exp-years options [33m 931[2mms[22m[39m
|
|
189
|
+
[32m✓[39m tests/studio-admin-roles.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
190
|
+
[32m✓[39m tests/release-pins.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
191
|
+
[32m✓[39m tests/seed-discover.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 17[2mms[22m[39m
|
|
192
|
+
[32m✓[39m tests/pg-spawn-env.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
193
|
+
[32m✓[39m tests/postgres-archive-tag.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
194
|
+
[32m✓[39m tests/migrate-from-v1.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 14[2mms[22m[39m
|
|
195
|
+
[32m✓[39m tests/cli-help.test.ts [2m([22m[2m13 tests[22m[2m)[22m[33m 12029[2mms[22m[39m
|
|
196
|
+
[33m[2m✓[22m[39m --help lists all top-level commands [33m 945[2mms[22m[39m
|
|
197
|
+
[33m[2m✓[22m[39m --version prints a semver string [33m 969[2mms[22m[39m
|
|
198
|
+
[33m[2m✓[22m[39m self-update --help describes the command [33m 943[2mms[22m[39m
|
|
199
|
+
[33m[2m✓[22m[39m init --help describes the init command [33m 900[2mms[22m[39m
|
|
200
|
+
[33m[2m✓[22m[39m push --help describes the push command and --yes flag [33m 965[2mms[22m[39m
|
|
201
|
+
[33m[2m✓[22m[39m diff --help describes the diff command [33m 1002[2mms[22m[39m
|
|
202
|
+
[33m[2m✓[22m[39m pull --help describes deprecated pull command [33m 949[2mms[22m[39m
|
|
203
|
+
[33m[2m✓[22m[39m reset --help shows --yes flag [33m 921[2mms[22m[39m
|
|
204
|
+
[33m[2m✓[22m[39m app --help describes the app command with add/remove subcommands [33m 881[2mms[22m[39m
|
|
205
|
+
[33m[2m✓[22m[39m app add --help shows --static and --port options [33m 984[2mms[22m[39m
|
|
206
|
+
[33m[2m✓[22m[39m self-host --help shows compose only (legacy commands hidden) [33m 836[2mms[22m[39m
|
|
207
|
+
[33m[2m✓[22m[39m self-host compose --help shows compose subcommands [33m 938[2mms[22m[39m
|
|
208
|
+
[33m[2m✓[22m[39m unknown command exits non-zero [33m 792[2mms[22m[39m
|
|
209
|
+
|
|
210
|
+
[2m Test Files [22m [1m[32m23 passed[39m[22m[90m (23)[39m
|
|
211
|
+
[2m Tests [22m [1m[32m216 passed[39m[22m[90m (216)[39m
|
|
212
|
+
[2m Start at [22m 13:02:26
|
|
213
|
+
[2m Duration [22m 15.29s[2m (transform 2.28s, setup 0ms, import 7.63s, tests 33.00s, environment 4ms)[22m
|
|
214
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawn the frontend dev server during `supatype dev` when app.mode is proxy.
|
|
3
|
+
*/
|
|
4
|
+
import { ProcessManager } from "../process-manager.js";
|
|
5
|
+
import { type SupatypeProjectConfig } from "../project-config.js";
|
|
6
|
+
/** package.json script name to run (only when app.mode is proxy). */
|
|
7
|
+
export declare function resolveProxyDevScript(config: SupatypeProjectConfig): string | null;
|
|
8
|
+
/**
|
|
9
|
+
* Start the configured package.json script for proxy dev.
|
|
10
|
+
* Returns null when not in proxy mode or when the script is missing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function startProxyDevApp(cwd: string, config: SupatypeProjectConfig, pidDir: string): ProcessManager | null;
|
|
13
|
+
//# sourceMappingURL=proxy-dev-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-dev-app.d.ts","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAIxF,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CAuCvB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawn the frontend dev server during `supatype dev` when app.mode is proxy.
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { detectPackageManager } from "./framework.js";
|
|
7
|
+
import { ProcessManager } from "../process-manager.js";
|
|
8
|
+
import { projectRootFromConfig } from "../project-config.js";
|
|
9
|
+
const DEFAULT_PROXY_DEV_SCRIPT = "start";
|
|
10
|
+
/** package.json script name to run (only when app.mode is proxy). */
|
|
11
|
+
export function resolveProxyDevScript(config) {
|
|
12
|
+
if (config.app?.mode !== "proxy")
|
|
13
|
+
return null;
|
|
14
|
+
const script = config.app.start?.trim();
|
|
15
|
+
return script && script.length > 0 ? script : DEFAULT_PROXY_DEV_SCRIPT;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Start the configured package.json script for proxy dev.
|
|
19
|
+
* Returns null when not in proxy mode or when the script is missing.
|
|
20
|
+
*/
|
|
21
|
+
export function startProxyDevApp(cwd, config, pidDir) {
|
|
22
|
+
const script = resolveProxyDevScript(config);
|
|
23
|
+
if (!script)
|
|
24
|
+
return null;
|
|
25
|
+
const appDir = projectRootFromConfig(config, cwd);
|
|
26
|
+
const pkgPath = join(appDir, "package.json");
|
|
27
|
+
if (!existsSync(pkgPath)) {
|
|
28
|
+
console.warn(`[supatype] app.mode=proxy but no package.json at ${appDir}; skipping dev app`);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
32
|
+
if (!pkg.scripts?.[script]) {
|
|
33
|
+
console.warn(`[supatype] app.mode=proxy: package.json has no "${script}" script.\n` +
|
|
34
|
+
` Add "scripts.${script}" or set app.start in supatype.config.ts`);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const pm = detectPackageManager(appDir);
|
|
38
|
+
const bin = pm;
|
|
39
|
+
const args = pm === "yarn" ? [script] : ["run", script];
|
|
40
|
+
// pnpm/npm/yarn are .cmd shims on Windows — spawn via shell so PATH resolution works.
|
|
41
|
+
const useShell = process.platform === "win32";
|
|
42
|
+
console.log(`[supatype] Proxy mode: running ${bin} ${args.join(" ")} (${appDir})`);
|
|
43
|
+
const manager = new ProcessManager(bin, args, {
|
|
44
|
+
label: "app",
|
|
45
|
+
pidDir,
|
|
46
|
+
cwd: appDir,
|
|
47
|
+
colour: "\x1b[33m",
|
|
48
|
+
shell: useShell,
|
|
49
|
+
});
|
|
50
|
+
manager.start();
|
|
51
|
+
return manager;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=proxy-dev-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-dev-app.js","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAA8B,MAAM,sBAAsB,CAAA;AAExF,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAExC,qEAAqE;AACrE,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;IACvC,OAAO,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAA;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,MAA6B,EAC7B,MAAc;IAEd,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,oDAAoD,MAAM,oBAAoB,CAAC,CAAA;QAC5F,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAEnD,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CACV,mDAAmD,MAAM,aAAa;YACpE,kBAAkB,MAAM,0CAA0C,CACrE,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,MAAM,IAAI,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvD,sFAAsF;IACtF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;IAE7C,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,CAAA;IAElF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;QAC5C,KAAK,EAAE,KAAK;QACZ,MAAM;QACN,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IACF,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface UpdateAppConfigInput {
|
|
2
|
+
mode: "none" | "static" | "proxy";
|
|
3
|
+
staticDir?: string;
|
|
4
|
+
upstream?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function updateAppConfigInProject(cwd: string, input: UpdateAppConfigInput): string;
|
|
7
|
+
//# sourceMappingURL=app-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../src/app-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAQzF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { Node, Project, QuoteKind, SyntaxKind } from "ts-morph";
|
|
4
|
+
export function updateAppConfigInProject(cwd, input) {
|
|
5
|
+
const configPath = resolve(cwd, "supatype.config.ts");
|
|
6
|
+
if (!existsSync(configPath)) {
|
|
7
|
+
throw new Error("supatype.config.ts not found. Run: supatype init");
|
|
8
|
+
}
|
|
9
|
+
const next = updateAppConfigAst(configPath, input);
|
|
10
|
+
writeFileSync(configPath, next, "utf8");
|
|
11
|
+
return configPath;
|
|
12
|
+
}
|
|
13
|
+
function updateAppConfigAst(configPath, input) {
|
|
14
|
+
const project = new Project({
|
|
15
|
+
useInMemoryFileSystem: false,
|
|
16
|
+
skipAddingFilesFromTsConfig: true,
|
|
17
|
+
manipulationSettings: {
|
|
18
|
+
quoteKind: QuoteKind.Double,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
const srcText = readFileSync(configPath, "utf8");
|
|
22
|
+
const sourceFile = project.createSourceFile(configPath, srcText, { overwrite: true });
|
|
23
|
+
const rootObject = getRootConfigObject(sourceFile);
|
|
24
|
+
const appProperty = rootObject.getProperty("app");
|
|
25
|
+
if (appProperty === undefined) {
|
|
26
|
+
rootObject.addPropertyAssignment({
|
|
27
|
+
name: "app",
|
|
28
|
+
initializer: renderAppInitializer(input),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else if (Node.isPropertyAssignment(appProperty)) {
|
|
32
|
+
const init = appProperty.getInitializer();
|
|
33
|
+
if (init && Node.isObjectLiteralExpression(init)) {
|
|
34
|
+
patchAppObject(init, input);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
appProperty.setInitializer(renderAppInitializer(input));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
appProperty.remove();
|
|
42
|
+
rootObject.addPropertyAssignment({
|
|
43
|
+
name: "app",
|
|
44
|
+
initializer: renderAppInitializer(input),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return sourceFile.getFullText();
|
|
48
|
+
}
|
|
49
|
+
function getRootConfigObject(sourceFile) {
|
|
50
|
+
const exportAssignment = sourceFile.getFirstDescendantByKind(SyntaxKind.ExportAssignment);
|
|
51
|
+
if (!exportAssignment) {
|
|
52
|
+
throw new Error("Could not find default export in supatype.config.ts.");
|
|
53
|
+
}
|
|
54
|
+
const expr = exportAssignment.getExpression();
|
|
55
|
+
if (Node.isObjectLiteralExpression(expr)) {
|
|
56
|
+
return expr;
|
|
57
|
+
}
|
|
58
|
+
if (Node.isCallExpression(expr)) {
|
|
59
|
+
const [firstArg] = expr.getArguments();
|
|
60
|
+
if (firstArg && Node.isObjectLiteralExpression(firstArg)) {
|
|
61
|
+
return firstArg;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
throw new Error("supatype.config.ts must export an object literal or defineConfig({...}).");
|
|
65
|
+
}
|
|
66
|
+
function renderAppInitializer(input) {
|
|
67
|
+
if (input.mode === "proxy") {
|
|
68
|
+
return `{
|
|
69
|
+
mode: "proxy",
|
|
70
|
+
upstream: "${input.upstream ?? "http://localhost:3000"}",
|
|
71
|
+
}`;
|
|
72
|
+
}
|
|
73
|
+
if (input.mode === "static") {
|
|
74
|
+
return `{
|
|
75
|
+
mode: "static",
|
|
76
|
+
static_dir: "${input.staticDir ?? "./dist"}",
|
|
77
|
+
}`;
|
|
78
|
+
}
|
|
79
|
+
return `{
|
|
80
|
+
mode: "none",
|
|
81
|
+
}`;
|
|
82
|
+
}
|
|
83
|
+
function patchAppObject(appObj, input) {
|
|
84
|
+
upsertStringProperty(appObj, "mode", input.mode);
|
|
85
|
+
if (input.mode === "proxy") {
|
|
86
|
+
upsertStringProperty(appObj, "upstream", input.upstream ?? "http://localhost:3000");
|
|
87
|
+
removePropertyIfPresent(appObj, "static_dir");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (input.mode === "static") {
|
|
91
|
+
upsertStringProperty(appObj, "static_dir", input.staticDir ?? "./dist");
|
|
92
|
+
removePropertyIfPresent(appObj, "upstream");
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
removePropertyIfPresent(appObj, "upstream");
|
|
96
|
+
removePropertyIfPresent(appObj, "static_dir");
|
|
97
|
+
}
|
|
98
|
+
function upsertStringProperty(obj, key, value) {
|
|
99
|
+
const existing = obj.getProperty(key);
|
|
100
|
+
if (existing && Node.isPropertyAssignment(existing)) {
|
|
101
|
+
existing.setInitializer(`"${value}"`);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (existing)
|
|
105
|
+
existing.remove();
|
|
106
|
+
obj.addPropertyAssignment({ name: key, initializer: `"${value}"` });
|
|
107
|
+
}
|
|
108
|
+
function removePropertyIfPresent(obj, key) {
|
|
109
|
+
const prop = obj.getProperty(key);
|
|
110
|
+
if (prop)
|
|
111
|
+
prop.remove();
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=app-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../src/app-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAiD,MAAM,UAAU,CAAA;AAQ9G,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,KAA2B;IAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IACrD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAClD,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,KAA2B;IACzE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,qBAAqB,EAAE,KAAK;QAC5B,2BAA2B,EAAE,IAAI;QACjC,oBAAoB,EAAE;YACpB,SAAS,EAAE,SAAS,CAAC,MAAM;SAC5B;KACF,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACrF,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAElD,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAEjD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,UAAU,CAAC,qBAAqB,CAAC;YAC/B,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC;SACzC,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,EAAE,CAAA;QACzC,IAAI,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,MAAM,EAAE,CAAA;QACpB,UAAU,CAAC,qBAAqB,CAAC;YAC/B,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC;SACzC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,WAAW,EAAE,CAAA;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAsB;IACjD,MAAM,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACzF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAA;IAC7C,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACtC,IAAI,QAAQ,IAAI,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,OAAO,QAAQ,CAAA;QACjB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA2B;IACvD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO;;mBAEQ,KAAK,CAAC,QAAQ,IAAI,uBAAuB;MACtD,CAAA;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO;;qBAEU,KAAK,CAAC,SAAS,IAAI,QAAQ;MAC1C,CAAA;IACJ,CAAC;IACD,OAAO;;IAEL,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B,EAAE,KAA2B;IAClF,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,IAAI,uBAAuB,CAAC,CAAA;QACnF,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC7C,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAA;QACvE,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAC3C,OAAM;IACR,CAAC;IAED,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC3C,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,oBAAoB,CAAC,GAA4B,EAAE,GAAW,EAAE,KAAa;IACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IACD,IAAI,QAAQ;QAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IAC/B,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,uBAAuB,CAAC,GAA4B,EAAE,GAAW;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,IAAI;QAAE,IAAI,CAAC,MAAM,EAAE,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augmentation-generator.d.ts","sourceRoot":"","sources":["../src/augmentation-generator.ts"],"names":[],"mappings":"AASA,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAyB/D"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export function generateClientAugmentation(ast) {
|
|
2
|
+
const parsed = ast;
|
|
3
|
+
const models = [...(parsed.models ?? [])].sort((a, b) => a.tableName.localeCompare(b.tableName));
|
|
4
|
+
const lines = [];
|
|
5
|
+
lines.push("// Generated by supatype CLI — do not edit manually.");
|
|
6
|
+
lines.push("");
|
|
7
|
+
lines.push("declare module \"@supatype/client\" {");
|
|
8
|
+
lines.push(" interface SupatypeModels {");
|
|
9
|
+
for (const model of models) {
|
|
10
|
+
lines.push(` ${quoteKey(model.tableName)}: {`);
|
|
11
|
+
lines.push(` Row: ${generateRowType(model.fields)}`);
|
|
12
|
+
lines.push(` Insert: ${generateInsertType(model.fields)}`);
|
|
13
|
+
lines.push(` Update: ${generateUpdateType(model.fields)}`);
|
|
14
|
+
lines.push(" }");
|
|
15
|
+
}
|
|
16
|
+
lines.push(" }");
|
|
17
|
+
lines.push("}");
|
|
18
|
+
lines.push("");
|
|
19
|
+
lines.push("export {}");
|
|
20
|
+
lines.push("");
|
|
21
|
+
return lines.join("\n");
|
|
22
|
+
}
|
|
23
|
+
function generateRowType(fields) {
|
|
24
|
+
const entries = Object.entries(fields).sort(([a], [b]) => a.localeCompare(b));
|
|
25
|
+
if (entries.length === 0)
|
|
26
|
+
return "Record<string, unknown>";
|
|
27
|
+
const body = entries
|
|
28
|
+
.map(([name, meta]) => ` ${quoteKey(name)}: ${toTsType(meta)}`)
|
|
29
|
+
.join("\n");
|
|
30
|
+
return `{\n${body}\n}`;
|
|
31
|
+
}
|
|
32
|
+
function insertColumnOptionalOnInsert(meta) {
|
|
33
|
+
return meta["default"] !== undefined || meta["serverGenerated"] === true;
|
|
34
|
+
}
|
|
35
|
+
function generateInsertType(fields) {
|
|
36
|
+
const entries = Object.entries(fields).sort(([a], [b]) => a.localeCompare(b));
|
|
37
|
+
if (entries.length === 0)
|
|
38
|
+
return "Record<string, unknown>";
|
|
39
|
+
const body = entries
|
|
40
|
+
.map(([name, meta]) => {
|
|
41
|
+
const required = meta["required"] === true && !insertColumnOptionalOnInsert(meta);
|
|
42
|
+
return ` ${quoteKey(name)}${required ? "" : "?"}: ${toTsType(meta)}`;
|
|
43
|
+
})
|
|
44
|
+
.join("\n");
|
|
45
|
+
return `{\n${body}\n}`;
|
|
46
|
+
}
|
|
47
|
+
function generateUpdateType(fields) {
|
|
48
|
+
const entries = Object.entries(fields).sort(([a], [b]) => a.localeCompare(b));
|
|
49
|
+
if (entries.length === 0)
|
|
50
|
+
return "Record<string, unknown>";
|
|
51
|
+
const body = entries
|
|
52
|
+
.map(([name, meta]) => ` ${quoteKey(name)}?: ${toTsType(meta)}`)
|
|
53
|
+
.join("\n");
|
|
54
|
+
return `{\n${body}\n}`;
|
|
55
|
+
}
|
|
56
|
+
function toTsType(meta) {
|
|
57
|
+
const kind = typeof meta["kind"] === "string" ? meta["kind"] : "json";
|
|
58
|
+
const required = meta["required"] === true;
|
|
59
|
+
const base = (() => {
|
|
60
|
+
switch (kind) {
|
|
61
|
+
case "uuid":
|
|
62
|
+
case "slug":
|
|
63
|
+
case "text":
|
|
64
|
+
case "email":
|
|
65
|
+
case "url":
|
|
66
|
+
case "date":
|
|
67
|
+
case "timestamp":
|
|
68
|
+
case "datetime":
|
|
69
|
+
case "money":
|
|
70
|
+
case "xml":
|
|
71
|
+
case "interval":
|
|
72
|
+
return "string";
|
|
73
|
+
case "integer":
|
|
74
|
+
case "smallInt":
|
|
75
|
+
case "serial":
|
|
76
|
+
case "float":
|
|
77
|
+
case "decimal":
|
|
78
|
+
return "number";
|
|
79
|
+
case "bigSerial":
|
|
80
|
+
case "bigInt":
|
|
81
|
+
return "bigint";
|
|
82
|
+
case "boolean":
|
|
83
|
+
return "boolean";
|
|
84
|
+
case "json":
|
|
85
|
+
case "blocks":
|
|
86
|
+
case "geo":
|
|
87
|
+
case "vector":
|
|
88
|
+
case "relation":
|
|
89
|
+
case "array":
|
|
90
|
+
case "image":
|
|
91
|
+
case "file":
|
|
92
|
+
return "Record<string, unknown>";
|
|
93
|
+
case "richText":
|
|
94
|
+
return "(import(\"@supatype/types/lexical\").SerializedEditorState | string)";
|
|
95
|
+
case "enum": {
|
|
96
|
+
const values = Array.isArray(meta["values"]) ? meta["values"] : [];
|
|
97
|
+
const quoted = values
|
|
98
|
+
.filter((v) => typeof v === "string")
|
|
99
|
+
.map((v) => JSON.stringify(v));
|
|
100
|
+
return quoted.length > 0 ? quoted.join(" | ") : "string";
|
|
101
|
+
}
|
|
102
|
+
default:
|
|
103
|
+
return "unknown";
|
|
104
|
+
}
|
|
105
|
+
})();
|
|
106
|
+
return required ? base : `${base} | null`;
|
|
107
|
+
}
|
|
108
|
+
function quoteKey(key) {
|
|
109
|
+
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : JSON.stringify(key);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=augmentation-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augmentation-generator.js","sourceRoot":"","sources":["../src/augmentation-generator.ts"],"names":[],"mappings":"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"}
|