@supatype/cli 0.1.6 → 0.1.9
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 +152 -102
- package/.turbo/turbo-typecheck.log +1 -1
- package/LICENSE +202 -0
- package/deno.d.ts +52 -0
- package/dist/app/framework.js +1 -1
- package/dist/app/framework.js.map +1 -1
- package/dist/augmentation-generator.d.ts +22 -0
- package/dist/augmentation-generator.d.ts.map +1 -1
- package/dist/augmentation-generator.js +19 -5
- package/dist/augmentation-generator.js.map +1 -1
- package/dist/binary-cache.d.ts +42 -6
- package/dist/binary-cache.d.ts.map +1 -1
- package/dist/binary-cache.js +76 -44
- package/dist/binary-cache.js.map +1 -1
- package/dist/cache-clean.d.ts +15 -0
- package/dist/cache-clean.d.ts.map +1 -0
- package/dist/cache-clean.js +76 -0
- package/dist/cache-clean.js.map +1 -0
- package/dist/cache-pins.d.ts +51 -0
- package/dist/cache-pins.d.ts.map +1 -0
- package/dist/cache-pins.js +184 -0
- package/dist/cache-pins.js.map +1 -0
- package/dist/cli-artifacts.d.ts +32 -0
- package/dist/cli-artifacts.d.ts.map +1 -0
- package/dist/cli-artifacts.js +49 -0
- package/dist/cli-artifacts.js.map +1 -0
- package/dist/cli-install-method.d.ts +27 -0
- package/dist/cli-install-method.d.ts.map +1 -0
- package/dist/cli-install-method.js +78 -0
- package/dist/cli-install-method.js.map +1 -0
- package/dist/cli-package-version.d.ts +1 -1
- package/dist/cli-package-version.d.ts.map +1 -1
- package/dist/cli-package-version.js +6 -1
- package/dist/cli-package-version.js.map +1 -1
- package/dist/cli-standalone.d.ts +13 -4
- package/dist/cli-standalone.d.ts.map +1 -1
- package/dist/cli-standalone.js +86 -31
- package/dist/cli-standalone.js.map +1 -1
- package/dist/cli-version-embedded.d.ts +10 -0
- package/dist/cli-version-embedded.d.ts.map +1 -0
- package/dist/cli-version-embedded.js +13 -0
- package/dist/cli-version-embedded.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/cloud-credentials.d.ts +34 -0
- package/dist/cloud-credentials.d.ts.map +1 -0
- package/dist/cloud-credentials.js +139 -0
- package/dist/cloud-credentials.js.map +1 -0
- package/dist/commands/add.js +1 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/admin.d.ts +11 -0
- package/dist/commands/admin.d.ts.map +1 -1
- package/dist/commands/admin.js +123 -21
- package/dist/commands/admin.js.map +1 -1
- package/dist/commands/adopt.js +1 -1
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/app.js +2 -2
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/cache.d.ts +1 -1
- package/dist/commands/cache.d.ts.map +1 -1
- package/dist/commands/cache.js +69 -73
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +32 -8
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/db.d.ts +3 -2
- package/dist/commands/db.d.ts.map +1 -1
- package/dist/commands/db.js +149 -3
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.d.ts +9 -9
- package/dist/commands/deploy.js +12 -12
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +3 -3
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +63 -23
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +28 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +60 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/engine.d.ts +1 -1
- package/dist/commands/engine.js +1 -1
- package/dist/commands/functions.d.ts +7 -0
- package/dist/commands/functions.d.ts.map +1 -1
- package/dist/commands/functions.js +45 -11
- package/dist/commands/functions.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +5 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/hooks.d.ts +12 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +118 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +64 -30
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/internal.d.ts +6 -0
- package/dist/commands/internal.d.ts.map +1 -0
- package/dist/commands/internal.js +22 -0
- package/dist/commands/internal.js.map +1 -0
- package/dist/commands/link-helpers.d.ts.map +1 -1
- package/dist/commands/link-helpers.js +8 -2
- package/dist/commands/link-helpers.js.map +1 -1
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +110 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logs.d.ts +1 -1
- package/dist/commands/migrate.js +5 -5
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/pg.d.ts +1 -1
- package/dist/commands/pg.js +1 -1
- package/dist/commands/plugins.js +1 -1
- package/dist/commands/plugins.js.map +1 -1
- package/dist/commands/pull.js +2 -2
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +110 -7
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/self-host.d.ts +1 -1
- package/dist/commands/self-host.js +1 -1
- package/dist/commands/self-update.d.ts +3 -2
- package/dist/commands/self-update.d.ts.map +1 -1
- package/dist/commands/self-update.js +31 -16
- package/dist/commands/self-update.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.js +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -4
- package/dist/config.js.map +1 -1
- package/dist/db-preflight.d.ts +78 -0
- package/dist/db-preflight.d.ts.map +1 -0
- package/dist/db-preflight.js +452 -0
- package/dist/db-preflight.js.map +1 -0
- package/dist/dev-compose.d.ts +4 -4
- package/dist/dev-compose.d.ts.map +1 -1
- package/dist/dev-compose.js +143 -88
- package/dist/dev-compose.js.map +1 -1
- package/dist/dev-log-filter.d.ts +1 -1
- package/dist/dev-log-filter.d.ts.map +1 -1
- package/dist/dev-log-filter.js +1 -1
- package/dist/dev-log-filter.js.map +1 -1
- package/dist/dev-ports.d.ts +2 -2
- package/dist/dev-ports.d.ts.map +1 -1
- package/dist/dev-ports.js +2 -2
- package/dist/dev-ports.js.map +1 -1
- package/dist/dev-session.d.ts +5 -5
- package/dist/dev-session.d.ts.map +1 -1
- package/dist/dev-session.js +6 -6
- package/dist/dev-session.js.map +1 -1
- package/dist/dev-shutdown.d.ts +5 -5
- package/dist/dev-shutdown.d.ts.map +1 -1
- package/dist/dev-shutdown.js +7 -7
- package/dist/dev-shutdown.js.map +1 -1
- package/dist/dev-task-colors.d.ts +1 -1
- package/dist/dev-task-colors.d.ts.map +1 -1
- package/dist/dev-task-colors.js +1 -1
- package/dist/dev-task-colors.js.map +1 -1
- package/dist/docker-postgres.d.ts +5 -5
- package/dist/docker-postgres.d.ts.map +1 -1
- package/dist/docker-postgres.js +5 -5
- package/dist/docker-postgres.js.map +1 -1
- package/dist/docker-runtime.d.ts +2 -2
- package/dist/docker-runtime.d.ts.map +1 -1
- package/dist/docker-runtime.js +5 -5
- package/dist/docker-runtime.js.map +1 -1
- package/dist/engine-client.d.ts +1 -1
- package/dist/engine-client.js +3 -3
- package/dist/engine-client.js.map +1 -1
- package/dist/engine-push-output.js +1 -1
- package/dist/engine-push-output.js.map +1 -1
- package/dist/ensure-binary.d.ts.map +1 -1
- package/dist/ensure-binary.js +17 -0
- package/dist/ensure-binary.js.map +1 -1
- package/dist/ensure-component-binaries.js +1 -1
- package/dist/ensure-component-binaries.js.map +1 -1
- package/dist/env-file.d.ts +40 -2
- package/dist/env-file.d.ts.map +1 -1
- package/dist/env-file.js +132 -11
- package/dist/env-file.js.map +1 -1
- package/dist/field-masking-tier.d.ts +50 -0
- package/dist/field-masking-tier.d.ts.map +1 -0
- package/dist/field-masking-tier.js +91 -0
- package/dist/field-masking-tier.js.map +1 -0
- package/dist/functions-deno-types.d.ts +24 -0
- package/dist/functions-deno-types.d.ts.map +1 -0
- package/dist/functions-deno-types.js +155 -0
- package/dist/functions-deno-types.js.map +1 -0
- package/dist/functions-router-gen.js +1 -1
- package/dist/gitignore.d.ts +2 -2
- package/dist/gitignore.d.ts.map +1 -1
- package/dist/gitignore.js +3 -3
- package/dist/gitignore.js.map +1 -1
- package/dist/hook-upload.d.ts +30 -0
- package/dist/hook-upload.d.ts.map +1 -0
- package/dist/hook-upload.js +86 -0
- package/dist/hook-upload.js.map +1 -0
- package/dist/hooks-generator.d.ts +8 -0
- package/dist/hooks-generator.d.ts.map +1 -0
- package/dist/hooks-generator.js +332 -0
- package/dist/hooks-generator.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/init-project-detect.d.ts +1 -1
- package/dist/init-project-detect.d.ts.map +1 -1
- package/dist/init-project-detect.js +1 -1
- package/dist/init-project-detect.js.map +1 -1
- package/dist/link.d.ts +4 -0
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +2 -0
- package/dist/link.js.map +1 -1
- package/dist/local-secrets.d.ts +71 -0
- package/dist/local-secrets.d.ts.map +1 -0
- package/dist/local-secrets.js +100 -0
- package/dist/local-secrets.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +20 -0
- package/dist/main.js.map +1 -0
- package/dist/model-hooks.d.ts +73 -0
- package/dist/model-hooks.d.ts.map +1 -0
- package/dist/model-hooks.js +211 -0
- package/dist/model-hooks.js.map +1 -0
- package/dist/pgbouncer-userlist.d.ts +1 -1
- package/dist/pgbouncer-userlist.d.ts.map +1 -1
- package/dist/pgbouncer-userlist.js +2 -2
- package/dist/pgbouncer-userlist.js.map +1 -1
- package/dist/postgres-ctl.d.ts +12 -1
- package/dist/postgres-ctl.d.ts.map +1 -1
- package/dist/postgres-ctl.js +28 -5
- package/dist/postgres-ctl.js.map +1 -1
- package/dist/process-manager.d.ts +2 -2
- package/dist/process-manager.d.ts.map +1 -1
- package/dist/process-manager.js +4 -4
- package/dist/process-manager.js.map +1 -1
- package/dist/project-config.d.ts +122 -2
- package/dist/project-config.d.ts.map +1 -1
- package/dist/project-config.js +150 -1
- package/dist/project-config.js.map +1 -1
- package/dist/pull-utils.d.ts +2 -2
- package/dist/pull-utils.d.ts.map +1 -1
- package/dist/pull-utils.js +4 -4
- package/dist/pull-utils.js.map +1 -1
- package/dist/realtime-launch.js +1 -1
- package/dist/realtime-launch.js.map +1 -1
- package/dist/release-pins.d.ts +1 -1
- package/dist/release-pins.js +2 -2
- package/dist/release-pins.js.map +1 -1
- package/dist/resolve-api-url.js +1 -1
- package/dist/resolve-api-url.js.map +1 -1
- package/dist/resolve-target.d.ts +4 -0
- package/dist/resolve-target.d.ts.map +1 -1
- package/dist/resolve-target.js +69 -73
- package/dist/resolve-target.js.map +1 -1
- package/dist/rest-cache-admin.js +2 -2
- package/dist/rest-cache-admin.js.map +1 -1
- package/dist/runtime-routes.d.ts +1 -1
- package/dist/runtime-routes.js +1 -1
- package/dist/schema-ast-v2.d.ts +5 -4
- package/dist/schema-ast-v2.d.ts.map +1 -1
- package/dist/schema-ast-v2.js +5 -3
- package/dist/schema-ast-v2.js.map +1 -1
- package/dist/schema-push-lock.d.ts.map +1 -1
- package/dist/schema-push-lock.js +43 -16
- package/dist/schema-push-lock.js.map +1 -1
- package/dist/scripts/postinstall.d.ts +1 -1
- package/dist/scripts/postinstall.js +1 -1
- package/dist/self-host-compose.d.ts +26 -2
- package/dist/self-host-compose.d.ts.map +1 -1
- package/dist/self-host-compose.js +305 -73
- package/dist/self-host-compose.js.map +1 -1
- package/dist/service-role-check.d.ts +21 -0
- package/dist/service-role-check.d.ts.map +1 -0
- package/dist/service-role-check.js +85 -0
- package/dist/service-role-check.js.map +1 -0
- package/dist/storage-provision.d.ts +1 -1
- package/dist/storage-provision.js +3 -3
- package/dist/storage-provision.js.map +1 -1
- package/dist/studio-dev-server.d.ts +1 -1
- package/dist/studio-dev-server.d.ts.map +1 -1
- package/dist/systemd.d.ts +1 -1
- package/dist/systemd.js +1 -1
- package/dist/target-client.d.ts +17 -0
- package/dist/target-client.d.ts.map +1 -1
- package/dist/target-client.js +69 -17
- package/dist/target-client.js.map +1 -1
- package/dist/tsx-runner.js +1 -1
- package/dist/tsx-runner.js.map +1 -1
- package/dist/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor.js +738 -34
- package/dist/type-extractor.js.map +1 -1
- package/dist/type-resolver.js +1 -1
- package/dist/type-resolver.js.map +1 -1
- package/dist/ui/brand.d.ts +1 -1
- package/dist/ui/brand.js +1 -1
- package/dist/ui/components/LogoWordmark.d.ts +1 -1
- package/dist/ui/components/LogoWordmark.d.ts.map +1 -1
- package/dist/ui/components/LogoWordmark.js +1 -1
- package/dist/ui/components/LogoWordmark.js.map +1 -1
- package/dist/ui/components/SelectField.js +1 -1
- package/dist/ui/components/SelectField.js.map +1 -1
- package/dist/ui/confirm.d.ts +1 -1
- package/dist/ui/confirm.js +1 -1
- package/dist/ui/fatal.d.ts +1 -1
- package/dist/ui/fatal.d.ts.map +1 -1
- package/dist/ui/fatal.js +1 -1
- package/dist/ui/fatal.js.map +1 -1
- package/dist/ui/flows/prompt-fields.js +1 -1
- package/dist/ui/flows/prompt-fields.js.map +1 -1
- package/dist/ui/interactive.d.ts +1 -1
- package/dist/ui/interactive.d.ts.map +1 -1
- package/dist/ui/interactive.js +1 -1
- package/dist/ui/interactive.js.map +1 -1
- package/dist/ui/progress.d.ts +1 -1
- package/dist/ui/progress.js +1 -1
- package/dist/ui/runtime/command-chrome.js +2 -2
- package/dist/ui/runtime/command-chrome.js.map +1 -1
- package/dist/ui/runtime/run-clack-flow.js +1 -1
- package/dist/ui/runtime/run-clack-flow.js.map +1 -1
- package/dist/ui/runtime/stdin-after-ink.d.ts.map +1 -1
- package/dist/ui/runtime/stdin-after-ink.js +4 -2
- package/dist/ui/runtime/stdin-after-ink.js.map +1 -1
- package/dist/ui/theme.d.ts +1 -1
- package/dist/ui/theme.js +1 -1
- package/dist/valkey-sidecar.d.ts +1 -1
- package/dist/valkey-sidecar.d.ts.map +1 -1
- package/dist/valkey-sidecar.js +2 -2
- package/dist/valkey-sidecar.js.map +1 -1
- package/package.json +6 -2
- package/scripts/build-release-artifacts.sh +112 -0
- package/scripts/generate-homebrew-formula.mjs +123 -0
- package/scripts/mirror-deno-release.sh +1 -1
- package/src/TYPE-RESOLUTION.md +31 -31
- package/src/app/framework.ts +1 -1
- package/src/augmentation-generator.ts +19 -6
- package/src/binary-cache.ts +94 -47
- package/src/cache-clean.ts +81 -0
- package/src/cache-pins.ts +243 -0
- package/src/cli-artifacts.ts +65 -0
- package/src/cli-install-method.ts +87 -0
- package/src/cli-package-version.ts +5 -1
- package/src/cli-standalone.ts +116 -34
- package/src/cli-version-embedded.ts +12 -0
- package/src/cli.ts +7 -1
- package/src/cloud-credentials.ts +183 -0
- package/src/commands/add.ts +1 -1
- package/src/commands/admin.ts +142 -27
- package/src/commands/adopt.ts +1 -1
- package/src/commands/app.ts +2 -2
- package/src/commands/cache.ts +92 -77
- package/src/commands/cloud.ts +32 -8
- package/src/commands/db.ts +164 -3
- package/src/commands/deploy.ts +12 -12
- package/src/commands/dev.ts +72 -23
- package/src/commands/doctor.ts +69 -3
- package/src/commands/engine.ts +1 -1
- package/src/commands/functions.ts +47 -10
- package/src/commands/generate.ts +5 -1
- package/src/commands/hooks.ts +138 -0
- package/src/commands/init.ts +65 -31
- package/src/commands/internal.ts +23 -0
- package/src/commands/link-helpers.ts +9 -2
- package/src/commands/login.ts +127 -0
- package/src/commands/logs.ts +1 -1
- package/src/commands/migrate.ts +5 -5
- package/src/commands/pg.ts +1 -1
- package/src/commands/plugins.ts +1 -1
- package/src/commands/pull.ts +2 -2
- package/src/commands/push.ts +124 -7
- package/src/commands/self-host.ts +1 -1
- package/src/commands/self-update.ts +41 -19
- package/src/commands/status.ts +1 -1
- package/src/commands/update.ts +1 -1
- package/src/config.ts +23 -4
- package/src/db-preflight.ts +575 -0
- package/src/dev-compose.ts +158 -89
- package/src/dev-log-filter.ts +1 -1
- package/src/dev-ports.ts +3 -3
- package/src/dev-session.ts +6 -6
- package/src/dev-shutdown.ts +8 -8
- package/src/dev-task-colors.ts +1 -1
- package/src/docker-postgres.ts +6 -6
- package/src/docker-runtime.ts +5 -5
- package/src/engine-client.ts +3 -3
- package/src/engine-push-output.ts +1 -1
- package/src/ensure-binary.ts +20 -0
- package/src/ensure-component-binaries.ts +1 -1
- package/src/env-file.ts +157 -11
- package/src/field-masking-tier.ts +107 -0
- package/src/functions-deno-types.ts +188 -0
- package/src/functions-router-gen.ts +1 -1
- package/src/gitignore.ts +3 -3
- package/src/hook-upload.ts +107 -0
- package/src/hooks-generator.ts +352 -0
- package/src/index.ts +1 -1
- package/src/init-project-detect.ts +1 -1
- package/src/link.ts +7 -0
- package/src/local-secrets.ts +104 -0
- package/src/main.ts +20 -0
- package/src/model-hooks.ts +260 -0
- package/src/pgbouncer-userlist.ts +2 -2
- package/src/postgres-ctl.ts +32 -5
- package/src/process-manager.ts +4 -4
- package/src/project-config.ts +237 -3
- package/src/pull-utils.ts +4 -4
- package/src/realtime-launch.ts +1 -1
- package/src/release-pins.ts +2 -2
- package/src/resolve-api-url.ts +1 -1
- package/src/resolve-target.ts +113 -68
- package/src/rest-cache-admin.ts +2 -2
- package/src/runtime-routes.ts +2 -2
- package/src/schema-ast-v2.ts +8 -5
- package/src/schema-push-lock.ts +56 -17
- package/src/scripts/postinstall.ts +1 -1
- package/src/self-host-compose.ts +348 -72
- package/src/service-role-check.ts +111 -0
- package/src/storage-provision.ts +3 -3
- package/src/studio-dev-server.ts +1 -1
- package/src/systemd.ts +1 -1
- package/src/target-client.ts +105 -18
- package/src/tsx-runner.ts +1 -1
- package/src/type-extractor.ts +885 -30
- package/src/type-resolver.ts +1 -1
- package/src/ui/README.md +1 -1
- package/src/ui/brand.ts +1 -1
- package/src/ui/components/LogoWordmark.tsx +1 -1
- package/src/ui/components/SelectField.tsx +1 -1
- package/src/ui/confirm.ts +1 -1
- package/src/ui/fatal.ts +1 -1
- package/src/ui/flows/prompt-fields.tsx +1 -1
- package/src/ui/interactive.ts +1 -1
- package/src/ui/progress.ts +1 -1
- package/src/ui/runtime/command-chrome.ts +2 -2
- package/src/ui/runtime/run-clack-flow.tsx +1 -1
- package/src/ui/runtime/stdin-after-ink.ts +4 -2
- package/src/ui/theme.ts +1 -1
- package/src/valkey-sidecar.ts +2 -2
- package/tests/access-composition.test.ts +667 -0
- package/tests/admin-studio-membership.test.ts +121 -0
- package/tests/api-schemas.test.ts +83 -0
- package/tests/archive-name-alias.test.ts +42 -0
- package/tests/augmentation-generator.test.ts +28 -0
- package/tests/cache-clean.test.ts +206 -0
- package/tests/cli-help.test.ts +11 -2
- package/tests/cli-install-method.test.ts +66 -0
- package/tests/command-chrome-coverage.test.ts +31 -26
- package/tests/command-chrome-wrap.test.ts +1 -0
- package/tests/db-preflight.test.ts +72 -0
- package/tests/doctor-render.test.ts +62 -0
- package/tests/doctor-service-role.test.ts +55 -0
- package/tests/engine-push-output.test.ts +1 -1
- package/tests/env-file.test.ts +121 -0
- package/tests/external-database-compose.test.ts +184 -0
- package/tests/external-database-config.test.ts +154 -0
- package/tests/field-masking-tier.test.ts +184 -0
- package/tests/functions-deno-types.test.ts +197 -0
- package/tests/homebrew-formula.test.ts +100 -0
- package/tests/hook-upload.test.ts +125 -0
- package/tests/hooks-generator.test.ts +212 -0
- package/tests/init.test.ts +5 -2
- package/tests/keys.test.ts +8 -2
- package/tests/local-secrets.test.ts +92 -0
- package/tests/model-hooks.test.ts +322 -0
- package/tests/runtime-contract.test.ts +113 -1
- package/tests/service-role-check.test.ts +109 -0
- package/tests/service-role-routes.test.ts +51 -0
- package/tests/storage-provision.test.ts +1 -1
- package/tests/target-client-refresh.test.ts +94 -0
- package/tests/type-extractor.test.ts +187 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vitest.config.ts +7 -1
- package/scripts/build-release-bundle.mjs +0 -27
- package/tests/engine-distribution.test.ts +0 -418
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for the standalone binary.
|
|
3
|
+
*
|
|
4
|
+
* `bin/supatype.js` stays the npm entry: it loads the CLI with a dynamic import, which Bun
|
|
5
|
+
* cannot follow when compiling. Given `import("../dist/cli.js")` it emits a binary that
|
|
6
|
+
* bundles one module and then fails at runtime with
|
|
7
|
+
* `Cannot find module '../dist/cli.js' from '/$bunfs/root/supatype'`. The import below is
|
|
8
|
+
* static, so the whole graph is embedded.
|
|
9
|
+
*/
|
|
10
|
+
import { run } from "./cli.js";
|
|
11
|
+
import { reportCliFatal } from "./ui/fatal.js";
|
|
12
|
+
// reportCliFatal rather than console.error: it is what run() already uses for a failed
|
|
13
|
+
// command, and it prints a stack under SUPATYPE_DEBUG=1. Open-coding the message here would
|
|
14
|
+
// make a crash report from a curl | bash user less useful than one from an npm user. This
|
|
15
|
+
// only fires for a throw during command registration, since run() catches everything after.
|
|
16
|
+
run().catch((err) => {
|
|
17
|
+
reportCliFatal(err);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,uFAAuF;AACvF,4FAA4F;AAC5F,0FAA0F;AAC1F,4FAA4F;AAC5F,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC3B,cAAc,CAAC,GAAG,CAAC,CAAA;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export interface DeclaredHook {
|
|
2
|
+
model: string;
|
|
3
|
+
event: string;
|
|
4
|
+
function: string;
|
|
5
|
+
}
|
|
6
|
+
/** Every hook declared across the schema, in a stable order for reporting. */
|
|
7
|
+
export declare function declaredHooks(ast: unknown): DeclaredHook[];
|
|
8
|
+
/**
|
|
9
|
+
* Lines describing every hook whose function is missing, empty when all resolve.
|
|
10
|
+
*
|
|
11
|
+
* Returns the message rather than throwing so the caller decides how to fail: `push` stops, while
|
|
12
|
+
* `doctor` can report several problems at once.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateModelHooks(ast: unknown, functionsDir: string, cwd: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Write `functions/_supatype/hooks.ts`, or remove a stale one when no hooks remain.
|
|
17
|
+
*
|
|
18
|
+
* Removal matters as much as writing: deleting the last hook from a schema should leave no typed
|
|
19
|
+
* module behind claiming tables are hooked, and a handler importing it should start failing to
|
|
20
|
+
* compile rather than sitting there dead.
|
|
21
|
+
*
|
|
22
|
+
* Returns the project-relative path written, or null when there was nothing to write.
|
|
23
|
+
*/
|
|
24
|
+
export declare function writeHooksModule(cwd: string, functionsDir: string, ast: unknown): string | null;
|
|
25
|
+
/** Per-table hook config, in the shape `proxy.RouteManifest` reads. */
|
|
26
|
+
export interface ManifestHookEntry {
|
|
27
|
+
function: string;
|
|
28
|
+
timeout?: number;
|
|
29
|
+
onUnavailable?: "reject" | "log";
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The hook map for `.supatype/manifest.json`, keyed by **table name**, because that is what the
|
|
33
|
+
* server matches a request path against, not the model name.
|
|
34
|
+
*
|
|
35
|
+
* Defaults are resolved here rather than in the server: one place decides that a `before*` hook
|
|
36
|
+
* rejects when it cannot be reached and an `after*` hook only logs, so the two implementations
|
|
37
|
+
* cannot disagree about the safe direction.
|
|
38
|
+
*/
|
|
39
|
+
export declare function manifestHooks(ast: unknown): Record<string, Record<string, ManifestHookEntry>>;
|
|
40
|
+
/** Well below the 10s edge-function ceiling, so a hung hook fails fast instead of holding a slot. */
|
|
41
|
+
export declare const DEFAULT_HOOK_TIMEOUT_MS = 2000;
|
|
42
|
+
/**
|
|
43
|
+
* Merge the hook map into an existing `.supatype/manifest.json`.
|
|
44
|
+
*
|
|
45
|
+
* **Only updates a manifest that is already there.** Creating one from scratch here would be a
|
|
46
|
+
* hazard: `functions_enabled` is a plain bool on the server's side, so a manifest carrying only
|
|
47
|
+
* hooks would read as functions *disabled*, the exact defect this repo fixed a commit ago, arriving
|
|
48
|
+
* by a different door. The compose path owns creation; this owns one key.
|
|
49
|
+
*
|
|
50
|
+
* Returns true when the file was rewritten.
|
|
51
|
+
*/
|
|
52
|
+
export declare function syncManifestHooks(cwd: string, ast: unknown): boolean;
|
|
53
|
+
export interface HooksReport {
|
|
54
|
+
declared: DeclaredHook[];
|
|
55
|
+
/** Hooks whose function directory is missing. */
|
|
56
|
+
missing: DeclaredHook[];
|
|
57
|
+
/** True when a manifest exists and says the functions subsystem is off. */
|
|
58
|
+
functionsDisabled: boolean;
|
|
59
|
+
/** True when a manifest exists but carries no hook map, so the server has nothing to call. */
|
|
60
|
+
mapMissing: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* What `supatype doctor` needs to answer "will my hooks actually run?".
|
|
64
|
+
*
|
|
65
|
+
* Local facts only: the schema, the functions on disk, and the manifest the server reads. No probe
|
|
66
|
+
* of a running worker, so the answer is the same whether or not the stack is up, and a report that
|
|
67
|
+
* needs a stack is a report nobody runs before deploying.
|
|
68
|
+
*
|
|
69
|
+
* The case worth catching: hooks declared while `functions_enabled` is false. Nothing fails, no error
|
|
70
|
+
* appears, and every hook silently never fires.
|
|
71
|
+
*/
|
|
72
|
+
export declare function hooksReport(cwd: string, functionsDir: string, ast: unknown): HooksReport;
|
|
73
|
+
//# sourceMappingURL=model-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-hooks.d.ts","sourceRoot":"","sources":["../src/model-hooks.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,CAqB1D;AAeD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,MAAM,EAAE,CAoBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAa/F;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAoC7F;AAED,qGAAqG;AACrG,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAwBpE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,iDAAiD;IACjD,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,2EAA2E;IAC3E,iBAAiB,EAAE,OAAO,CAAA;IAC1B,8FAA8F;IAC9F,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,WAAW,CAkCxF"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate the lifecycle hooks a schema declares against the functions that exist.
|
|
3
|
+
*
|
|
4
|
+
* A hook names a function directory. If the name is wrong, the honest failure is at push time with
|
|
5
|
+
* the path we searched, not at runtime, where the symptom is a hook that never fires and a write
|
|
6
|
+
* that quietly succeeds unvalidated. That silence is the whole reason this check exists.
|
|
7
|
+
*
|
|
8
|
+
* Kept out of the extractor on purpose: resolving the functions directory needs the project config,
|
|
9
|
+
* and the extractor is a leaf that reads type syntax and nothing else.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
12
|
+
import { join, relative } from "node:path";
|
|
13
|
+
import { generateHooksModule } from "./hooks-generator.js";
|
|
14
|
+
/** Every hook declared across the schema, in a stable order for reporting. */
|
|
15
|
+
export function declaredHooks(ast) {
|
|
16
|
+
const models = ast?.models;
|
|
17
|
+
if (!Array.isArray(models))
|
|
18
|
+
return [];
|
|
19
|
+
const out = [];
|
|
20
|
+
for (const model of models) {
|
|
21
|
+
const shaped = model;
|
|
22
|
+
const hooks = shaped.annotations?.platform?.hooks;
|
|
23
|
+
if (typeof hooks !== "object" || hooks === null)
|
|
24
|
+
continue;
|
|
25
|
+
for (const [event, value] of Object.entries(hooks)) {
|
|
26
|
+
const fn = value?.function;
|
|
27
|
+
if (typeof fn === "string" && fn.length > 0) {
|
|
28
|
+
out.push({ model: shaped.name ?? "?", event, function: fn });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return out.sort((a, b) => `${a.model}.${a.event}`.localeCompare(`${b.model}.${b.event}`));
|
|
33
|
+
}
|
|
34
|
+
/** Function directory names available to be used as hooks. */
|
|
35
|
+
function availableFunctions(functionsDir) {
|
|
36
|
+
if (!existsSync(functionsDir))
|
|
37
|
+
return [];
|
|
38
|
+
return readdirSync(functionsDir)
|
|
39
|
+
.filter((entry) => !entry.startsWith("_") && !entry.startsWith("."))
|
|
40
|
+
.filter((entry) => {
|
|
41
|
+
const full = join(functionsDir, entry);
|
|
42
|
+
// A function is a directory with an index.ts, matching how the worker discovers them.
|
|
43
|
+
return statSync(full).isDirectory() && existsSync(join(full, "index.ts"));
|
|
44
|
+
})
|
|
45
|
+
.sort();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Lines describing every hook whose function is missing, empty when all resolve.
|
|
49
|
+
*
|
|
50
|
+
* Returns the message rather than throwing so the caller decides how to fail: `push` stops, while
|
|
51
|
+
* `doctor` can report several problems at once.
|
|
52
|
+
*/
|
|
53
|
+
export function validateModelHooks(ast, functionsDir, cwd) {
|
|
54
|
+
const hooks = declaredHooks(ast);
|
|
55
|
+
if (hooks.length === 0)
|
|
56
|
+
return [];
|
|
57
|
+
const available = availableFunctions(functionsDir);
|
|
58
|
+
const known = new Set(available);
|
|
59
|
+
const missing = hooks.filter((hook) => !known.has(hook.function));
|
|
60
|
+
if (missing.length === 0)
|
|
61
|
+
return [];
|
|
62
|
+
const where = relative(cwd, functionsDir) || functionsDir;
|
|
63
|
+
const lines = missing.map((hook) => ` ${hook.model}.${hook.event} → "${hook.function}" (no ${where}/${hook.function}/index.ts)`);
|
|
64
|
+
lines.push("");
|
|
65
|
+
lines.push(available.length > 0
|
|
66
|
+
? `Hooks found in ${where}: ${available.join(", ")}`
|
|
67
|
+
: `No hooks found in ${where}. Create one with: supatype hooks new <name>`);
|
|
68
|
+
return lines;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Write `functions/_supatype/hooks.ts`, or remove a stale one when no hooks remain.
|
|
72
|
+
*
|
|
73
|
+
* Removal matters as much as writing: deleting the last hook from a schema should leave no typed
|
|
74
|
+
* module behind claiming tables are hooked, and a handler importing it should start failing to
|
|
75
|
+
* compile rather than sitting there dead.
|
|
76
|
+
*
|
|
77
|
+
* Returns the project-relative path written, or null when there was nothing to write.
|
|
78
|
+
*/
|
|
79
|
+
export function writeHooksModule(cwd, functionsDir, ast) {
|
|
80
|
+
const module = generateHooksModule(ast);
|
|
81
|
+
const dir = join(functionsDir, "_supatype");
|
|
82
|
+
const file = join(dir, "hooks.ts");
|
|
83
|
+
if (module === null) {
|
|
84
|
+
if (existsSync(file))
|
|
85
|
+
rmSync(file, { force: true });
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
mkdirSync(dir, { recursive: true });
|
|
89
|
+
writeFileSync(file, module, "utf8");
|
|
90
|
+
return relative(cwd, file) || file;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The hook map for `.supatype/manifest.json`, keyed by **table name**, because that is what the
|
|
94
|
+
* server matches a request path against, not the model name.
|
|
95
|
+
*
|
|
96
|
+
* Defaults are resolved here rather than in the server: one place decides that a `before*` hook
|
|
97
|
+
* rejects when it cannot be reached and an `after*` hook only logs, so the two implementations
|
|
98
|
+
* cannot disagree about the safe direction.
|
|
99
|
+
*/
|
|
100
|
+
export function manifestHooks(ast) {
|
|
101
|
+
const models = ast?.models;
|
|
102
|
+
if (!Array.isArray(models))
|
|
103
|
+
return {};
|
|
104
|
+
const out = {};
|
|
105
|
+
for (const model of models) {
|
|
106
|
+
const shaped = model;
|
|
107
|
+
const table = shaped.annotations?.db?.tableName;
|
|
108
|
+
const hooks = shaped.annotations?.platform?.hooks;
|
|
109
|
+
if (typeof table !== "string" || table.length === 0)
|
|
110
|
+
continue;
|
|
111
|
+
if (typeof hooks !== "object" || hooks === null)
|
|
112
|
+
continue;
|
|
113
|
+
const entries = {};
|
|
114
|
+
for (const [event, value] of Object.entries(hooks)) {
|
|
115
|
+
const fn = value?.function;
|
|
116
|
+
if (typeof fn !== "string" || fn.length === 0)
|
|
117
|
+
continue;
|
|
118
|
+
const onUnavailable = value.onUnavailable === "reject" || value.onUnavailable === "log"
|
|
119
|
+
? value.onUnavailable
|
|
120
|
+
: event.startsWith("before")
|
|
121
|
+
? "reject"
|
|
122
|
+
: "log";
|
|
123
|
+
entries[event] = {
|
|
124
|
+
function: fn,
|
|
125
|
+
timeout: typeof value.timeout === "number" ? value.timeout : DEFAULT_HOOK_TIMEOUT_MS,
|
|
126
|
+
onUnavailable,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (Object.keys(entries).length > 0)
|
|
130
|
+
out[table] = entries;
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
/** Well below the 10s edge-function ceiling, so a hung hook fails fast instead of holding a slot. */
|
|
135
|
+
export const DEFAULT_HOOK_TIMEOUT_MS = 2000;
|
|
136
|
+
/**
|
|
137
|
+
* Merge the hook map into an existing `.supatype/manifest.json`.
|
|
138
|
+
*
|
|
139
|
+
* **Only updates a manifest that is already there.** Creating one from scratch here would be a
|
|
140
|
+
* hazard: `functions_enabled` is a plain bool on the server's side, so a manifest carrying only
|
|
141
|
+
* hooks would read as functions *disabled*, the exact defect this repo fixed a commit ago, arriving
|
|
142
|
+
* by a different door. The compose path owns creation; this owns one key.
|
|
143
|
+
*
|
|
144
|
+
* Returns true when the file was rewritten.
|
|
145
|
+
*/
|
|
146
|
+
export function syncManifestHooks(cwd, ast) {
|
|
147
|
+
const manifestPath = join(cwd, ".supatype", "manifest.json");
|
|
148
|
+
if (!existsSync(manifestPath))
|
|
149
|
+
return false;
|
|
150
|
+
let parsed;
|
|
151
|
+
try {
|
|
152
|
+
parsed = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return false; // Malformed: the server will complain about it far more clearly than we can here.
|
|
156
|
+
}
|
|
157
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
158
|
+
return false;
|
|
159
|
+
const hooks = manifestHooks(ast);
|
|
160
|
+
const next = JSON.stringify(hooks);
|
|
161
|
+
const current = JSON.stringify(parsed["hooks"] ?? {});
|
|
162
|
+
if (next === current)
|
|
163
|
+
return false;
|
|
164
|
+
if (Object.keys(hooks).length === 0) {
|
|
165
|
+
delete parsed["hooks"];
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
parsed["hooks"] = hooks;
|
|
169
|
+
}
|
|
170
|
+
writeFileSync(manifestPath, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* What `supatype doctor` needs to answer "will my hooks actually run?".
|
|
175
|
+
*
|
|
176
|
+
* Local facts only: the schema, the functions on disk, and the manifest the server reads. No probe
|
|
177
|
+
* of a running worker, so the answer is the same whether or not the stack is up, and a report that
|
|
178
|
+
* needs a stack is a report nobody runs before deploying.
|
|
179
|
+
*
|
|
180
|
+
* The case worth catching: hooks declared while `functions_enabled` is false. Nothing fails, no error
|
|
181
|
+
* appears, and every hook silently never fires.
|
|
182
|
+
*/
|
|
183
|
+
export function hooksReport(cwd, functionsDir, ast) {
|
|
184
|
+
const declared = declaredHooks(ast);
|
|
185
|
+
const manifestPath = join(cwd, ".supatype", "manifest.json");
|
|
186
|
+
let functionsDisabled = false;
|
|
187
|
+
let mapMissing = false;
|
|
188
|
+
if (declared.length > 0 && existsSync(manifestPath)) {
|
|
189
|
+
try {
|
|
190
|
+
const parsed = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
191
|
+
functionsDisabled = parsed["functions_enabled"] === false;
|
|
192
|
+
mapMissing = parsed["hooks"] === undefined;
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// Unparseable: the server reports that far better than a doctor line could.
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
const known = new Set(existsSync(functionsDir)
|
|
199
|
+
? readdirSync(functionsDir).filter((entry) => !entry.startsWith("_") &&
|
|
200
|
+
!entry.startsWith(".") &&
|
|
201
|
+
statSync(join(functionsDir, entry)).isDirectory() &&
|
|
202
|
+
existsSync(join(functionsDir, entry, "index.ts")))
|
|
203
|
+
: []);
|
|
204
|
+
return {
|
|
205
|
+
declared,
|
|
206
|
+
missing: declared.filter((hook) => !known.has(hook.function)),
|
|
207
|
+
functionsDisabled,
|
|
208
|
+
mapMissing,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=model-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-hooks.js","sourceRoot":"","sources":["../src/model-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** PgBouncer md5 auth: "md5" + md5(password + username)
|
|
1
|
+
/** PgBouncer md5 auth: "md5" + md5(password + username), same as supatype-cloud / self-host. */
|
|
2
2
|
export declare function pgbouncerMd5Hash(password: string, username: string): string;
|
|
3
3
|
/** Two roles used by local compose: superuser pools (GoTrue, engine) and PostgREST. */
|
|
4
4
|
export declare function pgbouncerUserlistContent(pgPassword: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgbouncer-userlist.d.ts","sourceRoot":"","sources":["../src/pgbouncer-userlist.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"pgbouncer-userlist.d.ts","sourceRoot":"","sources":["../src/pgbouncer-userlist.ts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnE"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
/** PgBouncer md5 auth: "md5" + md5(password + username)
|
|
2
|
+
/** PgBouncer md5 auth: "md5" + md5(password + username), same as supatype-cloud / self-host. */
|
|
3
3
|
export function pgbouncerMd5Hash(password, username) {
|
|
4
4
|
return "md5" + createHash("md5").update(password + username).digest("hex");
|
|
5
5
|
}
|
|
6
6
|
/** Two roles used by local compose: superuser pools (GoTrue, engine) and PostgREST. */
|
|
7
7
|
export function pgbouncerUserlistContent(pgPassword) {
|
|
8
|
-
return `# PgBouncer md5 userlist
|
|
8
|
+
return `# PgBouncer md5 userlist, matches supatype-cloud transaction pool (auth_type = md5).
|
|
9
9
|
# Regenerated by supatype dev --local / init from POSTGRES_PASSWORD.
|
|
10
10
|
"supatype_admin" "${pgbouncerMd5Hash(pgPassword, "supatype_admin")}"
|
|
11
11
|
"authenticator" "${pgbouncerMd5Hash(pgPassword, "authenticator")}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgbouncer-userlist.js","sourceRoot":"","sources":["../src/pgbouncer-userlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,
|
|
1
|
+
{"version":3,"file":"pgbouncer-userlist.js","sourceRoot":"","sources":["../src/pgbouncer-userlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,gGAAgG;AAChG,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;IACjE,OAAO,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC5E,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO;;oBAEW,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC;mBAC/C,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC;CAC/D,CAAA;AACD,CAAC"}
|
package/dist/postgres-ctl.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* postgres-ctl
|
|
2
|
+
* postgres-ctl: wrappers around pg_ctl, initdb, and pg_isready for managing
|
|
3
3
|
* a native Postgres installation.
|
|
4
4
|
*/
|
|
5
5
|
export interface PgOptions {
|
|
@@ -26,6 +26,17 @@ export declare function initdb(opts: PgOptions): void;
|
|
|
26
26
|
* Start Postgres using pg_ctl.
|
|
27
27
|
* Returns immediately once pg_ctl has handed off to the server process.
|
|
28
28
|
*/
|
|
29
|
+
/**
|
|
30
|
+
* Whether a native Postgres install carries the masking library.
|
|
31
|
+
*
|
|
32
|
+
* Asked of the filesystem rather than assumed from the provider, because a developer with an archive
|
|
33
|
+
* downloaded before the library was bundled has a native Postgres *without* it. Assuming otherwise
|
|
34
|
+
* would select tier 1 and their next push would be refused by the capability probe.
|
|
35
|
+
*
|
|
36
|
+
* Two layouts: Linux and macOS put extension libraries in `lib/`, the Windows archive in
|
|
37
|
+
* `lib/postgresql/`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function nativeMaskLibraryPresent(pgBinDir: string | null | undefined): boolean;
|
|
29
40
|
export declare function start(opts: PgOptions): void;
|
|
30
41
|
/**
|
|
31
42
|
* Stop Postgres using pg_ctl (fast mode).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-ctl.d.ts","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAWnB;AAMD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAgB5C;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"postgres-ctl.d.ts","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAWnB;AAMD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAgB5C;AAMD;;;GAGG;AACH;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOrF;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CA4B3C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAS1C;AAMD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBlF;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAahE"}
|
package/dist/postgres-ctl.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* postgres-ctl
|
|
2
|
+
* postgres-ctl: wrappers around pg_ctl, initdb, and pg_isready for managing
|
|
3
3
|
* a native Postgres installation.
|
|
4
4
|
*/
|
|
5
5
|
import { spawnSync } from "node:child_process";
|
|
6
6
|
import { existsSync, mkdirSync } from "node:fs";
|
|
7
|
-
import { dirname, join } from "node:path";
|
|
7
|
+
import { dirname, join, resolve as resolvePath } from "node:path";
|
|
8
8
|
/**
|
|
9
9
|
* Native Postgres bundles are built with prefix /usr/local/supatype-pg; dyld/ld
|
|
10
10
|
* must load libpq and friends from the extracted lib/ next to bin/.
|
|
@@ -51,14 +51,37 @@ export function initdb(opts) {
|
|
|
51
51
|
* Start Postgres using pg_ctl.
|
|
52
52
|
* Returns immediately once pg_ctl has handed off to the server process.
|
|
53
53
|
*/
|
|
54
|
+
/**
|
|
55
|
+
* Whether a native Postgres install carries the masking library.
|
|
56
|
+
*
|
|
57
|
+
* Asked of the filesystem rather than assumed from the provider, because a developer with an archive
|
|
58
|
+
* downloaded before the library was bundled has a native Postgres *without* it. Assuming otherwise
|
|
59
|
+
* would select tier 1 and their next push would be refused by the capability probe.
|
|
60
|
+
*
|
|
61
|
+
* Two layouts: Linux and macOS put extension libraries in `lib/`, the Windows archive in
|
|
62
|
+
* `lib/postgresql/`.
|
|
63
|
+
*/
|
|
64
|
+
export function nativeMaskLibraryPresent(pgBinDir) {
|
|
65
|
+
if (!pgBinDir)
|
|
66
|
+
return false;
|
|
67
|
+
const prefix = resolvePath(pgBinDir, "..");
|
|
68
|
+
return ["supatype_mask.so", "supatype_mask.dylib", "supatype_mask.dll"].some((lib) => existsSync(join(prefix, "lib", lib)) || existsSync(join(prefix, "lib", "postgresql", lib)));
|
|
69
|
+
}
|
|
54
70
|
export function start(opts) {
|
|
55
71
|
const bin = pgBin(opts.pgBinDir, "pg_ctl");
|
|
56
72
|
const logPath = opts.logPath ?? join(opts.dataDir, "postgres.log");
|
|
73
|
+
// `supatype_mask` is a planner hook, so it has to be preloaded, `CREATE EXTENSION` alone does
|
|
74
|
+
// nothing without it. Only when the archive actually carries the library: an install downloaded
|
|
75
|
+
// before it was bundled would fail to start with "could not access file".
|
|
76
|
+
//
|
|
77
|
+
// Native Postgres was started with no preloaded libraries at all until now, which is why field
|
|
78
|
+
// rules could not be enforced on the default `supatype dev`.
|
|
79
|
+
const preload = nativeMaskLibraryPresent(opts.pgBinDir) ? " -c shared_preload_libraries=supatype_mask" : "";
|
|
57
80
|
const args = [
|
|
58
81
|
"start",
|
|
59
82
|
"-D", opts.dataDir,
|
|
60
83
|
"-l", logPath,
|
|
61
|
-
"-o", `-p ${opts.port}`,
|
|
84
|
+
"-o", `-p ${opts.port}${preload}`,
|
|
62
85
|
"--wait",
|
|
63
86
|
];
|
|
64
87
|
const result = spawnSync(bin, args, {
|
|
@@ -80,7 +103,7 @@ export function stop(opts) {
|
|
|
80
103
|
encoding: "utf8",
|
|
81
104
|
env: pgSpawnEnv(opts.pgBinDir),
|
|
82
105
|
});
|
|
83
|
-
// Ignore exit code
|
|
106
|
+
// Ignore exit code: Postgres may already be stopped.
|
|
84
107
|
void result;
|
|
85
108
|
}
|
|
86
109
|
// ---------------------------------------------------------------------------
|
|
@@ -116,7 +139,7 @@ export async function isPortInUse(port) {
|
|
|
116
139
|
return new Promise((resolve) => {
|
|
117
140
|
const server = createServer();
|
|
118
141
|
server.once("error", (err) => {
|
|
119
|
-
// EADDRINUSE
|
|
142
|
+
// EADDRINUSE: something is listening. EACCES, Windows excluded/reserved port range.
|
|
120
143
|
resolve(err.code === "EADDRINUSE" || err.code === "EACCES");
|
|
121
144
|
});
|
|
122
145
|
server.once("listening", () => {
|
package/dist/postgres-ctl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-ctl.js","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"postgres-ctl.js","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ProcessManager
|
|
2
|
+
* ProcessManager: spawn a child process, write its PID, stream logs with a
|
|
3
3
|
* colored prefix, and restart on crash with exponential backoff.
|
|
4
4
|
*/
|
|
5
5
|
export interface ProcessOptions {
|
|
@@ -38,7 +38,7 @@ export declare class ProcessManager {
|
|
|
38
38
|
/** Skip immediate duplicate lines (npm prints script banners to both streams). */
|
|
39
39
|
private lastLoggedLine;
|
|
40
40
|
constructor(bin: string, args: string[], opts: ProcessOptions);
|
|
41
|
-
/** Start the process. Returns immediately
|
|
41
|
+
/** Start the process. Returns immediately, the process runs in the background. */
|
|
42
42
|
start(): void;
|
|
43
43
|
/** Stop the process and clear the PID file. */
|
|
44
44
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAA;IAC5D,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACzC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAID,qBAAa,cAAc;IAiBvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBvB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,IAAI,CAQX;IACD,kFAAkF;IAClF,OAAO,CAAC,cAAc,CAAK;gBAGR,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EAC/B,IAAI,EAAE,cAAc;IAgBtB,
|
|
1
|
+
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAA;IAC5D,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACzC,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAID,qBAAa,cAAc;IAiBvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBvB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,IAAI,CAQX;IACD,kFAAkF;IAClF,OAAO,CAAC,cAAc,CAAK;gBAGR,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EAC/B,IAAI,EAAE,cAAc;IAgBtB,kFAAkF;IAClF,KAAK,IAAI,IAAI;IAKb,+CAA+C;IACzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC3B,OAAO,CAAC,KAAK;IAoFb,OAAO,CAAC,QAAQ;YASF,QAAQ;CAOvB;AAED,mEAAmE;AACnE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMpE"}
|
package/dist/process-manager.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ProcessManager
|
|
2
|
+
* ProcessManager: spawn a child process, write its PID, stream logs with a
|
|
3
3
|
* colored prefix, and restart on crash with exponential backoff.
|
|
4
4
|
*/
|
|
5
5
|
import { spawn, spawnSync } from "node:child_process";
|
|
@@ -33,7 +33,7 @@ export class ProcessManager {
|
|
|
33
33
|
};
|
|
34
34
|
this.backoffMs = this.opts.initialBackoffMs;
|
|
35
35
|
}
|
|
36
|
-
/** Start the process. Returns immediately
|
|
36
|
+
/** Start the process. Returns immediately, the process runs in the background. */
|
|
37
37
|
start() {
|
|
38
38
|
this.stopped = false;
|
|
39
39
|
this.spawn();
|
|
@@ -155,7 +155,7 @@ export class ProcessManager {
|
|
|
155
155
|
writeFileSync(join(this.opts.pidDir, `${this.opts.label}.pid`), String(pid));
|
|
156
156
|
}
|
|
157
157
|
catch {
|
|
158
|
-
// Non-fatal
|
|
158
|
+
// Non-fatal: PID tracking is best-effort.
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
async clearPid() {
|
|
@@ -163,7 +163,7 @@ export class ProcessManager {
|
|
|
163
163
|
await unlink(join(this.opts.pidDir, `${this.opts.label}.pid`));
|
|
164
164
|
}
|
|
165
165
|
catch {
|
|
166
|
-
// Ignore
|
|
166
|
+
// Ignore: file may already be gone.
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AA6BxD,MAAM,KAAK,GAAG,SAAS,CAAA;AAEvB,MAAM,OAAO,cAAc;IAiBN;IACA;IAjBX,KAAK,GAAwB,IAAI,CAAA;IACjC,OAAO,GAAG,KAAK,CAAA;IACf,SAAS,CAAQ;IACjB,IAAI,CAQX;IACD,kFAAkF;IAC1E,cAAc,GAAG,EAAE,CAAA;IAE3B,YACmB,GAAW,EACX,IAAc,EAC/B,IAAoB;QAFH,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAU;QAG/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG;YACV,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE,EAAE;YACP,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;YAChB,KAAK,EAAE,KAAK;YACZ,GAAG,MAAM;SACV,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAA;IAC7C,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"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"}
|