@supatype/cli 0.1.0-alpha.6 → 0.1.0-alpha.7
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 +203 -1
- package/.turbo/turbo-typecheck.log +1 -1
- 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 +89 -0
- package/dist/binary-cache.d.ts.map +1 -0
- package/dist/binary-cache.js +656 -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 +12 -0
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +36 -46
- 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 +92 -51
- 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 +751 -384
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +20 -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 +124 -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 +99 -39
- 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 +77 -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/docker-postgres.d.ts +39 -0
- package/dist/docker-postgres.d.ts.map +1 -0
- package/dist/docker-postgres.js +96 -0
- package/dist/docker-postgres.js.map +1 -0
- package/dist/engine-client.d.ts +67 -0
- package/dist/engine-client.d.ts.map +1 -0
- package/dist/engine-client.js +156 -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 +21 -0
- package/dist/kong-config.d.ts.map +1 -0
- package/dist/kong-config.js +60 -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 +41 -0
- package/dist/process-manager.d.ts.map +1 -0
- package/dist/process-manager.js +120 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/project-config.d.ts +215 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +145 -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 +25 -0
- package/dist/runtime-routes.d.ts.map +1 -0
- package/dist/runtime-routes.js +189 -0
- package/dist/runtime-routes.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 +14 -0
- package/dist/self-host-compose.d.ts.map +1 -0
- package/dist/self-host-compose.js +236 -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/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 +31 -0
- package/dist/type-extractor.d.ts.map +1 -0
- package/dist/type-extractor.js +876 -0
- package/dist/type-extractor.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/app-config.ts +128 -0
- package/src/augmentation-generator.ts +126 -0
- package/src/binary-cache.ts +802 -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 +46 -57
- package/src/commands/db.ts +54 -63
- package/src/commands/deploy.ts +110 -61
- package/src/commands/dev.ts +930 -405
- package/src/commands/diff.ts +21 -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 +136 -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 +128 -59
- 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 +92 -0
- package/src/components.ts +6 -0
- package/src/config.ts +127 -94
- package/src/docker-postgres.ts +138 -0
- package/src/engine-client.ts +231 -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 +78 -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 +151 -0
- package/src/project-config.ts +353 -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 +216 -0
- package/src/scripts/postinstall.ts +36 -25
- package/src/self-host-compose.ts +257 -0
- package/src/storage-provision.ts +58 -0
- package/src/systemd.ts +137 -0
- package/src/tsx-runner.ts +11 -1
- package/src/type-extractor.ts +1016 -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 +140 -37
- 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/pg-spawn-env.test.ts +18 -0
- package/tests/postgres-archive-tag.test.ts +9 -0
- package/tests/pull-utils.test.ts +36 -1
- package/tests/release-pins.test.ts +28 -0
- package/tests/runtime-contract.test.ts +236 -0
- package/tests/seed-discover.test.ts +31 -0
- package/tests/tsconfig.json +9 -0
- package/tests/type-extractor.test.ts +401 -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,209 @@
|
|
|
1
1
|
|
|
2
|
-
> @supatype/cli@0.1.0-alpha.
|
|
2
|
+
> @supatype/cli@0.1.0-alpha.7 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[2m13 tests[22m[2m)[22m[32m 79[2mms[22m[39m
|
|
9
|
+
[32m✓[39m tests/runtime-contract.test.ts [2m([22m[2m15 tests[22m[2m)[22m[32m 100[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 39[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[2m13 tests[22m[2m)[22m[33m 4586[2mms[22m[39m
|
|
131
|
+
[33m[2m✓[22m[39m loads a valid supatype.config.ts (plain export default, no package imports) [33m 764[2mms[22m[39m
|
|
132
|
+
[33m[2m✓[22m[39m normalizes shorthand schema string to { path, pg_schema } [33m 501[2mms[22m[39m
|
|
133
|
+
[33m[2m✓[22m[39m loads a supatype.config.js (plain ESM) [33m 559[2mms[22m[39m
|
|
134
|
+
[33m[2m✓[22m[39m throws if config is missing the versions section [33m 585[2mms[22m[39m
|
|
135
|
+
[33m[2m✓[22m[39m prefers supatype.config.ts over supatype.config.js when both exist [33m 557[2mms[22m[39m
|
|
136
|
+
[33m[2m✓[22m[39m supports optional output field in config [33m 526[2mms[22m[39m
|
|
137
|
+
[33m[2m✓[22m[39m merges supatype.local.config.ts over base [33m 1081[2mms[22m[39m
|
|
138
|
+
[32m✓[39m tests/binary-cache-cloud-overrides.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
|
139
|
+
[32m✓[39m tests/cached-artifact-format.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
140
|
+
[32m✓[39m tests/tsx-runner.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 2799[2mms[22m[39m
|
|
141
|
+
[33m[2m✓[22m[39m evaluates a simple expression and returns stdout [33m 390[2mms[22m[39m
|
|
142
|
+
[33m[2m✓[22m[39m evaluates TypeScript syntax (type annotations) [33m 393[2mms[22m[39m
|
|
143
|
+
[33m[2m✓[22m[39m can serialize a JSON object to stdout [33m 377[2mms[22m[39m
|
|
144
|
+
[33m[2m✓[22m[39m returns non-zero exit code on syntax error [33m 379[2mms[22m[39m
|
|
145
|
+
[33m[2m✓[22m[39m returns non-zero exit code on runtime error [33m 395[2mms[22m[39m
|
|
146
|
+
[33m[2m✓[22m[39m captures stderr separately from stdout [33m 383[2mms[22m[39m
|
|
147
|
+
[33m[2m✓[22m[39m runs a .ts file and returns its stdout [33m 477[2mms[22m[39m
|
|
148
|
+
[32m✓[39m tests/augmentation-generator.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
|
149
|
+
[32m✓[39m tests/ensure-binary.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
150
|
+
[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
|
|
151
|
+
[22m[39m created package.json
|
|
152
|
+
created supatype.config.ts
|
|
153
|
+
created schema/index.ts
|
|
154
|
+
created .env
|
|
155
|
+
created seed.ts
|
|
156
|
+
created seeds/.gitkeep
|
|
157
|
+
created public/.gitkeep
|
|
158
|
+
created .gitignore
|
|
159
|
+
|
|
160
|
+
[90mstdout[2m | tests/app-command.test.ts[2m > [22m[2msupatype app add --static[2m > [22m[2mcreates the static directory when missing
|
|
161
|
+
[22m[39m created package.json
|
|
162
|
+
created supatype.config.ts
|
|
163
|
+
created schema/index.ts
|
|
164
|
+
created .env
|
|
165
|
+
created seed.ts
|
|
166
|
+
created seeds/.gitkeep
|
|
167
|
+
created public/.gitkeep
|
|
168
|
+
created .gitignore
|
|
169
|
+
|
|
170
|
+
[32m✓[39m tests/app-command.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 2030[2mms[22m[39m
|
|
171
|
+
[33m[2m✓[22m[39m sets app.mode=static and static_dir in supatype.config.ts [33m 1053[2mms[22m[39m
|
|
172
|
+
[33m[2m✓[22m[39m creates the static directory when missing [33m 976[2mms[22m[39m
|
|
173
|
+
[32m✓[39m tests/seed-discover.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
174
|
+
[32m✓[39m tests/release-pins.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
175
|
+
[32m✓[39m tests/migrate-from-v1.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
176
|
+
[32m✓[39m tests/keys.test.ts [2m([22m[2m11 tests[22m[2m)[22m[33m 12253[2mms[22m[39m
|
|
177
|
+
[33m[2m✓[22m[39m exits 0 with --secret [33m 1115[2mms[22m[39m
|
|
178
|
+
[33m[2m✓[22m[39m outputs ANON_KEY= line [33m 993[2mms[22m[39m
|
|
179
|
+
[33m[2m✓[22m[39m outputs SERVICE_ROLE_KEY= line [33m 1030[2mms[22m[39m
|
|
180
|
+
[33m[2m✓[22m[39m ANON_KEY is a valid three-part JWT [33m 1055[2mms[22m[39m
|
|
181
|
+
[33m[2m✓[22m[39m SERVICE_ROLE_KEY payload has role: service_role [33m 998[2mms[22m[39m
|
|
182
|
+
[33m[2m✓[22m[39m JWT has exp in the future [33m 1016[2mms[22m[39m
|
|
183
|
+
[33m[2m✓[22m[39m --exp-years changes the expiry window [33m 2129[2mms[22m[39m
|
|
184
|
+
[33m[2m✓[22m[39m reads JWT_SECRET from environment variable [33m 934[2mms[22m[39m
|
|
185
|
+
[33m[2m✓[22m[39m reads JWT_SECRET from .env file [33m 1006[2mms[22m[39m
|
|
186
|
+
[33m[2m✓[22m[39m exits non-zero when no secret is available [33m 950[2mms[22m[39m
|
|
187
|
+
[33m[2m✓[22m[39m keys --help shows --secret and --exp-years options [33m 1020[2mms[22m[39m
|
|
188
|
+
[32m✓[39m tests/pg-spawn-env.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
189
|
+
[32m✓[39m tests/postgres-archive-tag.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
190
|
+
[32m✓[39m tests/cli-help.test.ts [2m([22m[2m13 tests[22m[2m)[22m[33m 12560[2mms[22m[39m
|
|
191
|
+
[33m[2m✓[22m[39m --help lists all top-level commands [33m 973[2mms[22m[39m
|
|
192
|
+
[33m[2m✓[22m[39m --version prints a semver string [33m 980[2mms[22m[39m
|
|
193
|
+
[33m[2m✓[22m[39m self-update --help describes the command [33m 1043[2mms[22m[39m
|
|
194
|
+
[33m[2m✓[22m[39m init --help describes the init command [33m 992[2mms[22m[39m
|
|
195
|
+
[33m[2m✓[22m[39m push --help describes the push command and --yes flag [33m 987[2mms[22m[39m
|
|
196
|
+
[33m[2m✓[22m[39m diff --help describes the diff command [33m 1018[2mms[22m[39m
|
|
197
|
+
[33m[2m✓[22m[39m pull --help describes deprecated pull command [33m 979[2mms[22m[39m
|
|
198
|
+
[33m[2m✓[22m[39m reset --help shows --yes flag [33m 991[2mms[22m[39m
|
|
199
|
+
[33m[2m✓[22m[39m app --help describes the app command with add/remove subcommands [33m 1029[2mms[22m[39m
|
|
200
|
+
[33m[2m✓[22m[39m app add --help shows --static and --port options [33m 969[2mms[22m[39m
|
|
201
|
+
[33m[2m✓[22m[39m self-host --help shows compose only (legacy commands hidden) [33m 1021[2mms[22m[39m
|
|
202
|
+
[33m[2m✓[22m[39m self-host compose --help shows compose subcommands [33m 886[2mms[22m[39m
|
|
203
|
+
[33m[2m✓[22m[39m unknown command exits non-zero [33m 686[2mms[22m[39m
|
|
204
|
+
|
|
205
|
+
[2m Test Files [22m [1m[32m18 passed[39m[22m[90m (18)[39m
|
|
206
|
+
[2m Tests [22m [1m[32m165 passed[39m[22m[90m (165)[39m
|
|
207
|
+
[2m Start at [22m 21:02:06
|
|
208
|
+
[2m Duration [22m 15.85s[2m (transform 2.36s, setup 0ms, import 7.59s, tests 34.55s, environment 3ms)[22m
|
|
209
|
+
|
|
@@ -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":"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"}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary cache — manages supatype component binaries.
|
|
3
|
+
*
|
|
4
|
+
* Components: engine, server, postgres, deno.
|
|
5
|
+
* Cache root: ~/.supatype/cache/{component}/{version}/
|
|
6
|
+
* Override path: config.overrides?.{component} (local build path).
|
|
7
|
+
*
|
|
8
|
+
* Security model:
|
|
9
|
+
* 1. Download checksums.sha256 + checksums.sha256.minisig from CDN.
|
|
10
|
+
* 2. Verify Ed25519 minisign signature on the checksum file using the
|
|
11
|
+
* embedded public key (SUPATYPE_RELEASE_PUBLIC_KEY).
|
|
12
|
+
* 3. Verify SHA256 of the downloaded binary against the signed checksum.
|
|
13
|
+
* Both checks are mandatory when SUPATYPE_RELEASE_PUBLIC_KEY is set.
|
|
14
|
+
*/
|
|
15
|
+
import type { SupatypeProjectConfig } from "./project-config.js";
|
|
16
|
+
/**
|
|
17
|
+
* Set `versions.{engine|server|postgres|deno}: VERSION_PIN_LOCAL` to mean “use `overrides.*` only”
|
|
18
|
+
* without duplicating the path string (Phase 10.7). Requires the matching `overrides` entry.
|
|
19
|
+
*/
|
|
20
|
+
export declare const VERSION_PIN_LOCAL = "local";
|
|
21
|
+
/** True if `overrides` contains any non-empty string path (contributor local builds). */
|
|
22
|
+
export declare function hasMeaningfulOverrides(config: SupatypeProjectConfig): boolean;
|
|
23
|
+
/** Lines for a startup banner — non-empty override paths only. */
|
|
24
|
+
export declare function describeActiveOverrides(config: SupatypeProjectConfig): string[];
|
|
25
|
+
/**
|
|
26
|
+
* True when this working tree is associated with a remote Supatype Cloud project:
|
|
27
|
+
* `project.ref`, `.supatype/cloud.json` (schema deploy link), or `.supatype/linked.json` (functions link).
|
|
28
|
+
*/
|
|
29
|
+
export declare function isLinkedToCloudProject(cwd: string, config: SupatypeProjectConfig): boolean;
|
|
30
|
+
export type { Component, ComponentVersions } from "./components.js";
|
|
31
|
+
export { BINARY_COMPONENTS } from "./components.js";
|
|
32
|
+
import { type Component } from "./components.js";
|
|
33
|
+
export interface PlatformId {
|
|
34
|
+
os: "linux" | "darwin" | "windows";
|
|
35
|
+
arch: "amd64" | "arm64";
|
|
36
|
+
}
|
|
37
|
+
/** Postgres CDN archives use PG major in the basename (17.2 → `supatype-pg-17-…`). */
|
|
38
|
+
export declare function postgresArchiveTag(version: string): string;
|
|
39
|
+
export declare function cacheRoot(): string;
|
|
40
|
+
export declare function cachePath(component: Component, version: string): string;
|
|
41
|
+
export declare function cachedBinaryPath(component: Component, version: string, platform: PlatformId): string;
|
|
42
|
+
export declare function currentPlatform(): PlatformId;
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the binary path for a component.
|
|
45
|
+
*
|
|
46
|
+
* Resolution order:
|
|
47
|
+
* 1. config.overrides?.[component] — local build path (must exist)
|
|
48
|
+
* 2. Cached binary at ~/.supatype/cache/{component}/{version}/
|
|
49
|
+
* 3. Throws — caller should call download() first.
|
|
50
|
+
*
|
|
51
|
+
* Hard error if any meaningful `overrides` entry is set while the project is linked to cloud
|
|
52
|
+
* (`project.ref`, `.supatype/cloud.json`, or `.supatype/linked.json`).
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveBinary(component: Component, config: SupatypeProjectConfig): Promise<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Download a component binary to the cache.
|
|
57
|
+
*
|
|
58
|
+
* Verification order:
|
|
59
|
+
* 1. Fetch checksums.sha256 + checksums.sha256.minisig from CDN.
|
|
60
|
+
* 2. If SUPATYPE_RELEASE_PUBLIC_KEY is set: verify minisign signature.
|
|
61
|
+
* 3. Verify SHA256 of downloaded binary against signed checksum.
|
|
62
|
+
*/
|
|
63
|
+
export declare function download(component: Component, version: string, platform: PlatformId): Promise<string>;
|
|
64
|
+
/** Confirm a downloaded/cached artifact matches the expected CDN format (tests, CI). */
|
|
65
|
+
export declare function validateArtifactFormat(component: Component, filePath: string, platform: PlatformId): void;
|
|
66
|
+
/**
|
|
67
|
+
* On Windows, Git Bash represents paths as /c/Users/... — convert to C:\Users\...
|
|
68
|
+
*/
|
|
69
|
+
export declare function normalisePlatformPath(p: string): string;
|
|
70
|
+
export declare function versionFor(component: Component, config: SupatypeProjectConfig): string;
|
|
71
|
+
/**
|
|
72
|
+
* Fetch the latest available version for a component.
|
|
73
|
+
* Each component directory on the CDN exposes `latest.json` → `{"version":"x.y.z"}`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function fetchLatestVersion(component: Component): Promise<string>;
|
|
76
|
+
/** Fetch the latest version for all components concurrently. */
|
|
77
|
+
export declare function fetchAllLatestVersions(): Promise<Record<Component, string>>;
|
|
78
|
+
/**
|
|
79
|
+
* Download all component binaries for the current platform.
|
|
80
|
+
* Skips components that are already cached.
|
|
81
|
+
* Fails gracefully when graceful=true (suitable for postinstall).
|
|
82
|
+
*/
|
|
83
|
+
/**
|
|
84
|
+
* Verify all cached binaries for the current platform (used by integration CI).
|
|
85
|
+
* Throws if any cached component is missing or fails format checks.
|
|
86
|
+
*/
|
|
87
|
+
export declare function verifyCachedBinaries(versions: SupatypeProjectConfig["versions"]): void;
|
|
88
|
+
export declare function downloadAll(versions: SupatypeProjectConfig["versions"], graceful?: boolean): Promise<void>;
|
|
89
|
+
//# sourceMappingURL=binary-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-cache.d.ts","sourceRoot":"","sources":["../src/binary-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAGhE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAA;AAExC,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAO7E;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAgB/E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAqB1F;AAMD,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEnE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;IAClC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CACxB;AAQD,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AA6BD,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,CAEpG;AAgBD,wBAAgB,eAAe,IAAI,UAAU,CAY5C;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA+DjB;AAMD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC,CAwDjB;AAmMD,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,UAAU,GACnB,IAAI,CAEN;AAsJD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAMtF;AAMD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9E;AAED,gEAAgE;AAChE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAKjF;AAMD;;;;GAIG;AACH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,GAAG,IAAI,CAetF;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,EAC3C,QAAQ,UAAQ,GACf,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|