@supatype/cli 0.1.0-alpha.10
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 +4 -0
- package/.turbo/turbo-test.log +221 -0
- package/.turbo/turbo-typecheck.log +4 -0
- package/assets/supatype-logo-wordmark.ascii.txt +6 -0
- package/bin/dev-entry.ts +2 -0
- package/bin/supatype.js +5 -0
- package/dist/app/framework.d.ts +44 -0
- package/dist/app/framework.d.ts.map +1 -0
- package/dist/app/framework.js +200 -0
- package/dist/app/framework.js.map +1 -0
- 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 +54 -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/assets/supatype-logo-wordmark.ascii.txt +6 -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 +98 -0
- package/dist/binary-cache.d.ts.map +1 -0
- package/dist/binary-cache.js +687 -0
- package/dist/binary-cache.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +61 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/admin.d.ts +4 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +271 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/app.d.ts +3 -0
- package/dist/commands/app.d.ts.map +1 -0
- package/dist/commands/app.js +82 -0
- package/dist/commands/app.js.map +1 -0
- 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 +23 -0
- package/dist/commands/cloud.d.ts.map +1 -0
- package/dist/commands/cloud.js +254 -0
- package/dist/commands/cloud.js.map +1 -0
- package/dist/commands/db.d.ts +8 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +116 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/deploy-types.d.ts +14 -0
- package/dist/commands/deploy-types.d.ts.map +1 -0
- package/dist/commands/deploy-types.js +38 -0
- package/dist/commands/deploy-types.js.map +1 -0
- package/dist/commands/deploy.d.ts +15 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +322 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +14 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +806 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/diff.d.ts +3 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +54 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/engine.d.ts +7 -0
- package/dist/commands/engine.d.ts.map +1 -0
- package/dist/commands/engine.js +27 -0
- package/dist/commands/engine.js.map +1 -0
- package/dist/commands/functions.d.ts +3 -0
- package/dist/commands/functions.d.ts.map +1 -0
- package/dist/commands/functions.js +749 -0
- package/dist/commands/functions.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +38 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +228 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/keys.d.ts +4 -0
- package/dist/commands/keys.d.ts.map +1 -0
- package/dist/commands/keys.js +57 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/logs.d.ts +6 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +52 -0
- package/dist/commands/logs.js.map +1 -0
- 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 +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +75 -0
- package/dist/commands/migrate.js.map +1 -0
- 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/plugins.d.ts +3 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +431 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/pull.d.ts +3 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +12 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +3 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +179 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/seed.d.ts +5 -0
- package/dist/commands/seed.d.ts.map +1 -0
- package/dist/commands/seed.js +55 -0
- package/dist/commands/seed.js.map +1 -0
- package/dist/commands/self-host.d.ts +9 -0
- package/dist/commands/self-host.d.ts.map +1 -0
- package/dist/commands/self-host.js +310 -0
- package/dist/commands/self-host.js.map +1 -0
- 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 +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +70 -0
- package/dist/commands/status.js.map +1 -0
- 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 +118 -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 +65 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +134 -0
- package/dist/config.js.map +1 -0
- package/dist/dev-compose.d.ts +19 -0
- package/dist/dev-compose.d.ts.map +1 -0
- package/dist/dev-compose.js +468 -0
- package/dist/dev-compose.js.map +1 -0
- package/dist/dev-log-bus.d.ts +30 -0
- package/dist/dev-log-bus.d.ts.map +1 -0
- package/dist/dev-log-bus.js +87 -0
- package/dist/dev-log-bus.js.map +1 -0
- package/dist/dev-log-filter.d.ts +10 -0
- package/dist/dev-log-filter.d.ts.map +1 -0
- package/dist/dev-log-filter.js +36 -0
- package/dist/dev-log-filter.js.map +1 -0
- package/dist/dev-logo.d.ts +12 -0
- package/dist/dev-logo.d.ts.map +1 -0
- package/dist/dev-logo.js +57 -0
- package/dist/dev-logo.js.map +1 -0
- package/dist/dev-session.d.ts +26 -0
- package/dist/dev-session.d.ts.map +1 -0
- package/dist/dev-session.js +106 -0
- package/dist/dev-session.js.map +1 -0
- package/dist/dev-shutdown.d.ts +9 -0
- package/dist/dev-shutdown.d.ts.map +1 -0
- package/dist/dev-shutdown.js +50 -0
- package/dist/dev-shutdown.js.map +1 -0
- package/dist/dev-task-colors.d.ts +14 -0
- package/dist/dev-task-colors.d.ts.map +1 -0
- package/dist/dev-task-colors.js +44 -0
- package/dist/dev-task-colors.js.map +1 -0
- package/dist/dev-tui.d.ts +24 -0
- package/dist/dev-tui.d.ts.map +1 -0
- package/dist/dev-tui.js +188 -0
- package/dist/dev-tui.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/engine-push-output.d.ts +16 -0
- package/dist/engine-push-output.d.ts.map +1 -0
- package/dist/engine-push-output.js +61 -0
- package/dist/engine-push-output.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 +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/jwt.d.ts +3 -0
- package/dist/jwt.d.ts.map +1 -0
- package/dist/jwt.js +13 -0
- package/dist/jwt.js.map +1 -0
- 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 +49 -0
- package/dist/process-manager.d.ts.map +1 -0
- package/dist/process-manager.js +177 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/project-config.d.ts +238 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +159 -0
- package/dist/project-config.js.map +1 -0
- package/dist/pull-utils.d.ts +31 -0
- package/dist/pull-utils.d.ts.map +1 -0
- package/dist/pull-utils.js +77 -0
- package/dist/pull-utils.js.map +1 -0
- 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/restore-system-relation-targets.d.ts +3 -0
- package/dist/restore-system-relation-targets.d.ts.map +1 -0
- package/dist/restore-system-relation-targets.js +45 -0
- package/dist/restore-system-relation-targets.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 +11 -0
- package/dist/scripts/postinstall.d.ts.map +1 -0
- package/dist/scripts/postinstall.js +47 -0
- package/dist/scripts/postinstall.js.map +1 -0
- package/dist/seed.d.ts +8 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +32 -0
- package/dist/seed.js.map +1 -0
- package/dist/self-host-compose.d.ts +43 -0
- package/dist/self-host-compose.d.ts.map +1 -0
- package/dist/self-host-compose.js +400 -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/supatype-eval-1781522769253.d.mts +2 -0
- package/dist/supatype-eval-1781522769253.d.mts.map +1 -0
- package/dist/supatype-eval-1781522769253.mjs +3 -0
- package/dist/supatype-eval-1781522769253.mjs.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 +18 -0
- package/dist/tsx-runner.d.ts.map +1 -0
- package/dist/tsx-runner.js +69 -0
- package/dist/tsx-runner.js.map +1 -0
- 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 +41 -0
- package/releases/deno/VERSION +1 -0
- package/scripts/mirror-deno-release.sh +76 -0
- package/src/TYPE-RESOLUTION.md +294 -0
- package/src/app/framework.ts +249 -0
- package/src/app/proxy-dev-app.ts +68 -0
- package/src/app-config.ts +128 -0
- package/src/augmentation-generator.ts +126 -0
- package/src/binary-cache.ts +845 -0
- package/src/cli.ts +63 -0
- package/src/commands/admin.ts +372 -0
- package/src/commands/app.ts +97 -0
- package/src/commands/cache.ts +117 -0
- package/src/commands/cloud.ts +325 -0
- package/src/commands/db.ts +136 -0
- package/src/commands/deploy-types.ts +49 -0
- package/src/commands/deploy.ts +400 -0
- package/src/commands/dev.ts +1009 -0
- package/src/commands/diff.ts +63 -0
- package/src/commands/engine.ts +30 -0
- package/src/commands/functions.ts +901 -0
- package/src/commands/generate.ts +44 -0
- package/src/commands/init.ts +253 -0
- package/src/commands/keys.ts +66 -0
- package/src/commands/logs.ts +58 -0
- package/src/commands/migrate-from-v1.ts +131 -0
- package/src/commands/migrate.ts +87 -0
- package/src/commands/pg.ts +133 -0
- package/src/commands/plugins.ts +508 -0
- package/src/commands/pull.ts +17 -0
- package/src/commands/push.ts +226 -0
- package/src/commands/seed.ts +68 -0
- package/src/commands/self-host.ts +364 -0
- package/src/commands/self-update.ts +45 -0
- package/src/commands/status.ts +84 -0
- package/src/commands/types.ts +76 -0
- package/src/commands/update.ts +136 -0
- package/src/components.ts +6 -0
- package/src/config.ts +223 -0
- package/src/dev-compose.ts +583 -0
- package/src/dev-log-bus.ts +101 -0
- package/src/dev-log-filter.ts +32 -0
- package/src/dev-logo.ts +62 -0
- package/src/dev-session.ts +130 -0
- package/src/dev-shutdown.ts +54 -0
- package/src/dev-task-colors.ts +47 -0
- package/src/dev-tui.ts +232 -0
- package/src/diff-output.ts +12 -0
- package/src/docker-postgres.ts +295 -0
- package/src/engine-client.ts +236 -0
- package/src/engine-push-output.ts +71 -0
- package/src/ensure-binary.ts +28 -0
- package/src/functions-router-gen.ts +224 -0
- package/src/index.ts +11 -0
- package/src/jwt.ts +14 -0
- 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 +220 -0
- package/src/project-config.ts +388 -0
- package/src/pull-utils.ts +81 -0
- package/src/release-pins.ts +31 -0
- package/src/release-public-key.ts +12 -0
- package/src/restore-system-relation-targets.ts +45 -0
- package/src/runtime-routes.ts +291 -0
- package/src/schema-ast-v2.ts +324 -0
- package/src/scripts/postinstall.ts +51 -0
- package/src/seed.ts +43 -0
- package/src/self-host-compose.ts +452 -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/supatype-eval-1781522769253.mts +1 -0
- package/src/systemd.ts +137 -0
- package/src/tsx-runner.ts +89 -0
- 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 +133 -0
- package/tests/config.test.ts +252 -0
- package/tests/dev-ui.test.ts +139 -0
- package/tests/docker-postgres.test.ts +39 -0
- package/tests/engine-distribution.test.ts +418 -0
- package/tests/engine-push-output.test.ts +67 -0
- package/tests/ensure-binary.test.ts +59 -0
- package/tests/init.test.ts +127 -0
- package/tests/keys.test.ts +160 -0
- 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 +150 -0
- package/tests/release-pins.test.ts +28 -0
- package/tests/runtime-contract.test.ts +370 -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/tsx-runner.test.ts +66 -0
- package/tests/type-extractor.test.ts +985 -0
- package/tests/type-resolver.test.ts +59 -0
- package/tsconfig.json +10 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.config.ts +12 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Merge + validate
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* Merge each top-level section from `override` on top of `base`.
|
|
8
|
+
* Within each section, override values win. New optional sections in override are added.
|
|
9
|
+
*/
|
|
10
|
+
export function mergeProjectConfig(base, override) {
|
|
11
|
+
return {
|
|
12
|
+
...(base.provider !== undefined || override.provider !== undefined
|
|
13
|
+
? { provider: override.provider ?? base.provider }
|
|
14
|
+
: {}),
|
|
15
|
+
...(base.supatype !== undefined || override.supatype !== undefined
|
|
16
|
+
? { supatype: { ...base.supatype, ...override.supatype } }
|
|
17
|
+
: {}),
|
|
18
|
+
project: { ...base.project, ...override.project },
|
|
19
|
+
database: { ...base.database, ...override.database },
|
|
20
|
+
server: { ...base.server, ...override.server },
|
|
21
|
+
app: { ...base.app, ...override.app },
|
|
22
|
+
...(base.versions !== undefined || override.versions !== undefined
|
|
23
|
+
? { versions: { ...base.versions, ...override.versions } }
|
|
24
|
+
: {}),
|
|
25
|
+
...(base.overrides !== undefined || override.overrides !== undefined
|
|
26
|
+
? {
|
|
27
|
+
overrides: {
|
|
28
|
+
...base.overrides,
|
|
29
|
+
...override.overrides,
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
: {}),
|
|
33
|
+
...(base.email !== undefined || override.email !== undefined
|
|
34
|
+
? (() => {
|
|
35
|
+
const b = base.email;
|
|
36
|
+
const o = override.email;
|
|
37
|
+
const mergedSmtp = b?.smtp !== undefined || o?.smtp !== undefined
|
|
38
|
+
? { ...(b?.smtp ?? {}), ...(o?.smtp ?? {}) }
|
|
39
|
+
: undefined;
|
|
40
|
+
return {
|
|
41
|
+
email: {
|
|
42
|
+
...b,
|
|
43
|
+
...o,
|
|
44
|
+
...(mergedSmtp !== undefined ? { smtp: mergedSmtp } : {}),
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
})()
|
|
48
|
+
: {}),
|
|
49
|
+
...(base.storage !== undefined || override.storage !== undefined
|
|
50
|
+
? {
|
|
51
|
+
storage: {
|
|
52
|
+
...base.storage,
|
|
53
|
+
...override.storage,
|
|
54
|
+
},
|
|
55
|
+
}
|
|
56
|
+
: {}),
|
|
57
|
+
...(base.schema !== undefined || override.schema !== undefined
|
|
58
|
+
? { schema: { ...base.schema, ...override.schema } }
|
|
59
|
+
: {}),
|
|
60
|
+
...(base.functions !== undefined || override.functions !== undefined
|
|
61
|
+
? { functions: { ...base.functions, ...override.functions } }
|
|
62
|
+
: {}),
|
|
63
|
+
...(base.output !== undefined || override.output !== undefined
|
|
64
|
+
? { output: { ...base.output, ...override.output } }
|
|
65
|
+
: {}),
|
|
66
|
+
...(base.build !== undefined || override.build !== undefined
|
|
67
|
+
? { build: { ...base.build, ...override.build } }
|
|
68
|
+
: {}),
|
|
69
|
+
...(base.connection !== undefined || override.connection !== undefined
|
|
70
|
+
? { connection: override.connection ?? base.connection }
|
|
71
|
+
: {}),
|
|
72
|
+
...(base.admin !== undefined || override.admin !== undefined
|
|
73
|
+
? { admin: { ...base.admin, ...override.admin } }
|
|
74
|
+
: {}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export function validateProjectConfig(raw, filename) {
|
|
78
|
+
if (typeof raw !== "object" || raw === null) {
|
|
79
|
+
throw new Error(`${filename}: expected a config object at the root`);
|
|
80
|
+
}
|
|
81
|
+
const cfg = raw;
|
|
82
|
+
if (!cfg["project"] || typeof cfg["project"]["name"] !== "string") {
|
|
83
|
+
throw new Error(`${filename}: project.name is required`);
|
|
84
|
+
}
|
|
85
|
+
if (!cfg["database"]) {
|
|
86
|
+
throw new Error(`${filename}: database section is required`);
|
|
87
|
+
}
|
|
88
|
+
if (!cfg["server"]) {
|
|
89
|
+
throw new Error(`${filename}: server section is required`);
|
|
90
|
+
}
|
|
91
|
+
if (!cfg["app"]) {
|
|
92
|
+
throw new Error(`${filename}: app section is required`);
|
|
93
|
+
}
|
|
94
|
+
return raw;
|
|
95
|
+
}
|
|
96
|
+
/** Schema entry path (with fallback). */
|
|
97
|
+
export function schemaPathFromProject(cfg, cwd) {
|
|
98
|
+
return resolve(projectRootFromConfig(cfg, cwd), cfg.schema?.path ?? "schema/index.ts");
|
|
99
|
+
}
|
|
100
|
+
/** Resolve project root for schema/functions defaults. */
|
|
101
|
+
export function projectRootFromConfig(cfg, cwd) {
|
|
102
|
+
return resolve(cwd, cfg.supatype?.root ?? ".");
|
|
103
|
+
}
|
|
104
|
+
/** Candidate functions directories in lookup order. */
|
|
105
|
+
export function functionsPathCandidatesFromProject(cfg, cwd) {
|
|
106
|
+
const root = projectRootFromConfig(cfg, cwd);
|
|
107
|
+
if (cfg.functions?.path) {
|
|
108
|
+
return [resolve(root, cfg.functions.path)];
|
|
109
|
+
}
|
|
110
|
+
// Prefer modern default, but keep legacy fallback for compatibility.
|
|
111
|
+
return [resolve(root, "functions"), resolve(root, "supatype/functions")];
|
|
112
|
+
}
|
|
113
|
+
/** Preferred default functions path (used when creating new functions). */
|
|
114
|
+
export function preferredFunctionsPathFromProject(cfg, cwd) {
|
|
115
|
+
const candidates = functionsPathCandidatesFromProject(cfg, cwd);
|
|
116
|
+
for (const dir of candidates) {
|
|
117
|
+
if (existsSync(dir))
|
|
118
|
+
return dir;
|
|
119
|
+
}
|
|
120
|
+
return candidates[0] ?? resolve(projectRootFromConfig(cfg, cwd), "functions");
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Derive the supatype-server base URL from the project config.
|
|
124
|
+
* Returns undefined if the mode is "managed" (cloud controls the URL).
|
|
125
|
+
*/
|
|
126
|
+
export function serverBaseUrl(cfg) {
|
|
127
|
+
const port = cfg.server.port ?? 54321;
|
|
128
|
+
switch (cfg.server.mode) {
|
|
129
|
+
case "dev":
|
|
130
|
+
case "standalone":
|
|
131
|
+
if (cfg.server.mode === "dev" && resolveRuntimeProvider(cfg) === "docker") {
|
|
132
|
+
return `http://localhost:${COMPOSE_DEV_KONG_PORT}`;
|
|
133
|
+
}
|
|
134
|
+
return cfg.server.domain
|
|
135
|
+
? `https://${cfg.server.domain}`
|
|
136
|
+
: `http://localhost:${port}`;
|
|
137
|
+
case "managed":
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/** Resolved runtime provider (`config.provider` ?? `database.provider` ?? native). */
|
|
142
|
+
export function resolveRuntimeProvider(cfg) {
|
|
143
|
+
return cfg.provider ?? cfg.database.provider ?? "native";
|
|
144
|
+
}
|
|
145
|
+
/** Kong gateway port when `provider: docker` (self-host compose dev). */
|
|
146
|
+
export const COMPOSE_DEV_KONG_PORT = 18473;
|
|
147
|
+
/** The local Postgres DSN derived from project name (dev default). */
|
|
148
|
+
export function localDSN(cfg) {
|
|
149
|
+
const port = 5432; // standard; per-project state dir isolates data dirs
|
|
150
|
+
return `postgres://postgres:postgres@127.0.0.1:${port}/${cfg.project.name}?sslmode=disable`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Resolve the database connection string.
|
|
154
|
+
* Prefers optional `connection` in config, then `DATABASE_URL` env, then a local default DSN.
|
|
155
|
+
*/
|
|
156
|
+
export function connectionString(cfg) {
|
|
157
|
+
return cfg.connection ?? process.env["DATABASE_URL"] ?? localDSN(cfg);
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=project-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for the `pull` command — extracted for unit testability.
|
|
3
|
+
*/
|
|
4
|
+
export interface ColumnInfo {
|
|
5
|
+
name: string;
|
|
6
|
+
pgType: string;
|
|
7
|
+
nullable: boolean;
|
|
8
|
+
isPrimary: boolean;
|
|
9
|
+
isUnique: boolean;
|
|
10
|
+
hasDefault: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Engine `/introspect` column shape (see {@link IntrospectResult} in engine-client). */
|
|
13
|
+
export interface IntrospectColumn {
|
|
14
|
+
name: string;
|
|
15
|
+
type: string;
|
|
16
|
+
nullable: boolean;
|
|
17
|
+
default?: string;
|
|
18
|
+
primaryKey?: boolean;
|
|
19
|
+
unique?: boolean;
|
|
20
|
+
references?: {
|
|
21
|
+
table: string;
|
|
22
|
+
column: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Map engine introspection JSON to {@link ColumnInfo} for {@link pgTypeToField}. */
|
|
26
|
+
export declare function introspectColumnToColumnInfo(col: IntrospectColumn): ColumnInfo;
|
|
27
|
+
/** Map a Postgres column type to the corresponding field.X() call string. */
|
|
28
|
+
export declare function pgTypeToField(col: ColumnInfo): string;
|
|
29
|
+
/** Convert snake_case table name to PascalCase model export name. */
|
|
30
|
+
export declare function toCamelCase(s: string): string;
|
|
31
|
+
//# sourceMappingURL=pull-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-utils.d.ts","sourceRoot":"","sources":["../src/pull-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C;AAED,qFAAqF;AACrF,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAU9E;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAmCrD;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for the `pull` command — extracted for unit testability.
|
|
3
|
+
*/
|
|
4
|
+
/** Map engine introspection JSON to {@link ColumnInfo} for {@link pgTypeToField}. */
|
|
5
|
+
export function introspectColumnToColumnInfo(col) {
|
|
6
|
+
const def = col.default;
|
|
7
|
+
return {
|
|
8
|
+
name: col.name,
|
|
9
|
+
pgType: col.type,
|
|
10
|
+
nullable: col.nullable,
|
|
11
|
+
isPrimary: col.primaryKey ?? false,
|
|
12
|
+
isUnique: col.unique ?? false,
|
|
13
|
+
hasDefault: def !== undefined && def !== "",
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Map a Postgres column type to the corresponding field.X() call string. */
|
|
17
|
+
export function pgTypeToField(col) {
|
|
18
|
+
const opts = { required: !col.nullable };
|
|
19
|
+
if (col.isPrimary)
|
|
20
|
+
opts["primaryKey"] = true;
|
|
21
|
+
if (col.isUnique && !col.isPrimary)
|
|
22
|
+
opts["unique"] = true;
|
|
23
|
+
const optsStr = JSON.stringify(opts);
|
|
24
|
+
const type = col.pgType.toLowerCase();
|
|
25
|
+
if (type.includes("uuid"))
|
|
26
|
+
return `field.uuid(${optsStr})`;
|
|
27
|
+
if (type.includes("text") || type.includes("varchar") || type.includes("char"))
|
|
28
|
+
return `field.text(${optsStr})`;
|
|
29
|
+
if (type.includes("int8") || type.includes("bigint"))
|
|
30
|
+
return `field.bigInt(${optsStr})`;
|
|
31
|
+
if (type.includes("int2") || type.includes("smallint"))
|
|
32
|
+
return `field.smallInt(${optsStr})`;
|
|
33
|
+
if (type.includes("interval"))
|
|
34
|
+
return `field.interval(${optsStr})`;
|
|
35
|
+
if (type.includes("int") || type.includes("serial"))
|
|
36
|
+
return `field.integer(${optsStr})`;
|
|
37
|
+
if (type.includes("float") || type.includes("double") || type.includes("real"))
|
|
38
|
+
return `field.float(${optsStr})`;
|
|
39
|
+
if (type.includes("numeric") || type.includes("decimal"))
|
|
40
|
+
return `field.decimal(${optsStr})`;
|
|
41
|
+
if (type.includes("bool"))
|
|
42
|
+
return `field.boolean(${optsStr})`;
|
|
43
|
+
if (type.includes("timestamptz") || type.includes("timestamp with time zone"))
|
|
44
|
+
return `field.datetime(${optsStr})`;
|
|
45
|
+
if (type.includes("timestamp"))
|
|
46
|
+
return `field.timestamp(${optsStr})`;
|
|
47
|
+
if (type.includes("date"))
|
|
48
|
+
return `field.date(${optsStr})`;
|
|
49
|
+
if (type.includes("jsonb"))
|
|
50
|
+
return `field.json({ ...${optsStr}, jsonb: true })`;
|
|
51
|
+
if (type.includes("json"))
|
|
52
|
+
return `field.json(${optsStr})`;
|
|
53
|
+
if (type.includes("inet"))
|
|
54
|
+
return `field.ip(${optsStr})`;
|
|
55
|
+
if (type.includes("cidr"))
|
|
56
|
+
return `field.cidr(${optsStr})`;
|
|
57
|
+
if (type.includes("macaddr"))
|
|
58
|
+
return `field.macaddr(${optsStr})`;
|
|
59
|
+
if (type.includes("bytea"))
|
|
60
|
+
return `field.bytea(${optsStr})`;
|
|
61
|
+
if (type.includes("money"))
|
|
62
|
+
return `field.money(${optsStr})`;
|
|
63
|
+
if (type.includes("xml"))
|
|
64
|
+
return `field.xml(${optsStr})`;
|
|
65
|
+
if (type.includes("tsvector"))
|
|
66
|
+
return `field.tsvector(${optsStr})`;
|
|
67
|
+
if (type.includes("tsquery"))
|
|
68
|
+
return `field.tsquery(${optsStr})`;
|
|
69
|
+
return `field.text({ ...${optsStr} }) /* TODO: ${col.pgType} */`;
|
|
70
|
+
}
|
|
71
|
+
/** Convert snake_case table name to PascalCase model export name. */
|
|
72
|
+
export function toCamelCase(s) {
|
|
73
|
+
return s
|
|
74
|
+
.replace(/_([a-z])/g, (_, c) => c.toUpperCase())
|
|
75
|
+
.replace(/^([a-z])/, (c) => c.toUpperCase());
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=pull-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-utils.js","sourceRoot":"","sources":["../src/pull-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release pins read from files under packages/cli/releases/.
|
|
3
|
+
* CI (deno-releases workflow) uses the same paths — bump only releases/deno/VERSION.
|
|
4
|
+
*/
|
|
5
|
+
/** Pinned Deno runtime for edge functions (also published to CDN under /deno/v{version}/). */
|
|
6
|
+
export declare const DENO_RELEASE_PIN: string;
|
|
7
|
+
//# sourceMappingURL=release-pins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-pins.d.ts","sourceRoot":"","sources":["../src/release-pins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,QAAiC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release pins read from files under packages/cli/releases/.
|
|
3
|
+
* CI (deno-releases workflow) uses the same paths — bump only releases/deno/VERSION.
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync } from "node:fs";
|
|
6
|
+
import { dirname, join } from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
const CLI_PACKAGE_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
9
|
+
function readPinFile(...segments) {
|
|
10
|
+
const path = join(CLI_PACKAGE_ROOT, "releases", ...segments);
|
|
11
|
+
let raw;
|
|
12
|
+
try {
|
|
13
|
+
raw = readFileSync(path, "utf8");
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
throw new Error(`Missing release pin file: ${path}\n` +
|
|
17
|
+
"Expected packages/cli/releases/… — reinstall @supatype/cli or build from the monorepo.");
|
|
18
|
+
}
|
|
19
|
+
const version = raw.trim();
|
|
20
|
+
if (!/^\d+\.\d+\.\d+/.test(version)) {
|
|
21
|
+
throw new Error(`Invalid pin in ${path}: expected semver like 2.2.0, got ${JSON.stringify(raw)}`);
|
|
22
|
+
}
|
|
23
|
+
return version;
|
|
24
|
+
}
|
|
25
|
+
/** Pinned Deno runtime for edge functions (also published to CDN under /deno/v{version}/). */
|
|
26
|
+
export const DENO_RELEASE_PIN = readPinFile("deno", "VERSION");
|
|
27
|
+
//# sourceMappingURL=release-pins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-pins.js","sourceRoot":"","sources":["../src/release-pins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAE5E,SAAS,WAAW,CAAC,GAAG,QAAkB;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAA;IAC5D,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,IAAI;YACnC,wFAAwF,CAC3F,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,qCAAqC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnG,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minisign public key for CDN release verification.
|
|
3
|
+
* Populated at publish via scripts/embed-release-pubkey.mjs (MINISIGN_PUBLIC_KEY secret),
|
|
4
|
+
* or overridden at runtime with SUPATYPE_RELEASE_PUBLIC_KEY.
|
|
5
|
+
*/
|
|
6
|
+
export declare const EMBEDDED_RELEASE_PUBLIC_KEY = "untrusted comment: minisign public key DE133E99689AE71D\nRWQd55pomT4T3t+5FLZZ6+h0DoHrtiuU9RBUHHm9BcFHeGRvW7BXxBCr";
|
|
7
|
+
export declare function releasePublicKey(): string;
|
|
8
|
+
//# sourceMappingURL=release-public-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-public-key.d.ts","sourceRoot":"","sources":["../src/release-public-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,sHAAsH,CAAA;AAE9J,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minisign public key for CDN release verification.
|
|
3
|
+
* Populated at publish via scripts/embed-release-pubkey.mjs (MINISIGN_PUBLIC_KEY secret),
|
|
4
|
+
* or overridden at runtime with SUPATYPE_RELEASE_PUBLIC_KEY.
|
|
5
|
+
*/
|
|
6
|
+
export const EMBEDDED_RELEASE_PUBLIC_KEY = "untrusted comment: minisign public key DE133E99689AE71D\nRWQd55pomT4T3t+5FLZZ6+h0DoHrtiuU9RBUHHm9BcFHeGRvW7BXxBCr";
|
|
7
|
+
export function releasePublicKey() {
|
|
8
|
+
const fromEnv = process.env["SUPATYPE_RELEASE_PUBLIC_KEY"]?.trim();
|
|
9
|
+
if (fromEnv)
|
|
10
|
+
return fromEnv;
|
|
11
|
+
return EMBEDDED_RELEASE_PUBLIC_KEY.trim();
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=release-public-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-public-key.js","sourceRoot":"","sources":["../src/release-public-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,mHAAmH,CAAA;AAE9J,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,CAAA;IAClE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,OAAO,2BAA2B,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-system-relation-targets.d.ts","sourceRoot":"","sources":["../src/restore-system-relation-targets.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAS7F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAmC/E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Restore system relation targets (e.g. supatype:user) in engine-generated admin config. */
|
|
2
|
+
function fieldNameToForeignKey(fieldName) {
|
|
3
|
+
return fieldName
|
|
4
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
|
|
5
|
+
.replace(/([a-z\d])([A-Z])/g, "$1_$2")
|
|
6
|
+
.toLowerCase() + "_id";
|
|
7
|
+
}
|
|
8
|
+
export function restoreSystemRelationTargets(admin, ast) {
|
|
9
|
+
if (typeof admin !== "object" || admin === null || typeof ast !== "object" || ast === null)
|
|
10
|
+
return;
|
|
11
|
+
const astObj = ast;
|
|
12
|
+
if (!astObj.models)
|
|
13
|
+
return;
|
|
14
|
+
const cfg = admin;
|
|
15
|
+
if (!Array.isArray(cfg.models))
|
|
16
|
+
return;
|
|
17
|
+
const systemTargets = new Map();
|
|
18
|
+
for (const model of astObj.models) {
|
|
19
|
+
if (!model.fields)
|
|
20
|
+
continue;
|
|
21
|
+
for (const [fieldName, field] of Object.entries(model.fields)) {
|
|
22
|
+
if (field.kind === "relation" && field.target?.includes(":")) {
|
|
23
|
+
const key = model.name.toLowerCase();
|
|
24
|
+
if (!systemTargets.has(key))
|
|
25
|
+
systemTargets.set(key, new Map());
|
|
26
|
+
systemTargets.get(key).set(fieldNameToForeignKey(fieldName), field.target);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
for (const model of cfg.models) {
|
|
31
|
+
const modelTargets = systemTargets.get(model.tableName);
|
|
32
|
+
if (!modelTargets)
|
|
33
|
+
continue;
|
|
34
|
+
for (const field of model.fields) {
|
|
35
|
+
if (field.widget !== "relation" || !field.options)
|
|
36
|
+
continue;
|
|
37
|
+
const explicitFk = field.options["foreignKey"] ?? "";
|
|
38
|
+
const fk = explicitFk || fieldNameToForeignKey(field.name);
|
|
39
|
+
const systemTarget = modelTargets.get(fk);
|
|
40
|
+
if (systemTarget)
|
|
41
|
+
field.options["target"] = systemTarget;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=restore-system-relation-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore-system-relation-targets.js","sourceRoot":"","sources":["../src/restore-system-relation-targets.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,OAAO,SAAS;SACb,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC;SACrC,WAAW,EAAE,GAAG,KAAK,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc,EAAE,GAAY;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAM;IAClG,MAAM,MAAM,GAAG,GAAuG,CAAA;IACtH,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAM;IAC1B,MAAM,GAAG,GAAG,KAKX,CAAA;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAM;IAEtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAA;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAQ;QAC3B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBACpC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;gBAC9D,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY;YAAE,SAAQ;QAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAQ;YAC3D,MAAM,UAAU,GAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAY,IAAI,EAAE,CAAA;YAChE,MAAM,EAAE,GAAG,UAAU,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzC,IAAI,YAAY;gBAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;QAC1D,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface RuntimeRoute {
|
|
2
|
+
name: string;
|
|
3
|
+
serviceName: string;
|
|
4
|
+
serviceUrl: string;
|
|
5
|
+
paths: string[];
|
|
6
|
+
stripPath?: boolean;
|
|
7
|
+
protocols?: string[];
|
|
8
|
+
engineProtected?: boolean;
|
|
9
|
+
/** Route /graphql/v1 to PostgREST /rpc/graphql with graphql_public Content-Profile. */
|
|
10
|
+
graphqlPostgrest?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface RuntimeRouteOptions {
|
|
13
|
+
appUpstream?: string;
|
|
14
|
+
staticAppServiceUrl?: string;
|
|
15
|
+
/** Compose self-host: supatype-server container (functions proxy). */
|
|
16
|
+
functionsServiceUrl?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Self-host Compose: Kong forwards API traffic to supatype-server (unified gateway),
|
|
19
|
+
* which proxies to internal services — same model as `supatype dev`.
|
|
20
|
+
*/
|
|
21
|
+
unifiedGateway?: boolean;
|
|
22
|
+
/** Studio UI upstream (default: in-compose `studio:3002`). */
|
|
23
|
+
studioServiceUrl?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Strip `/studio/` before proxying to the Studio upstream.
|
|
26
|
+
* False for host Vite dev (`host.docker.internal`) where `base` is `/studio/`.
|
|
27
|
+
*/
|
|
28
|
+
studioStripPath?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Shared route contract used by local/self-host renderers.
|
|
32
|
+
*/
|
|
33
|
+
export declare function runtimeRouteSpec(opts?: RuntimeRouteOptions): RuntimeRoute[];
|
|
34
|
+
//# sourceMappingURL=runtime-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-routes.d.ts","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AA6PD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,YAAY,EAAE,CAK/E"}
|