@supacloud/cli 0.112.1 → 0.112.2

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/README.md CHANGED
@@ -1002,10 +1002,14 @@ supacloud lite db_pull --project_dir . --file remote_schema
1002
1002
  supacloud lite db_pull --project_dir . --file reviewed_schema --baseline
1003
1003
  supacloud lite gen_types --project_dir . --output src/database.types.ts
1004
1004
  supacloud lite snapshot_create --project_dir . --output backups/lite.tar.gz
1005
- supacloud lite doctor --project_dir . --json
1006
- supacloud lite start --project_dir . --port 54321
1005
+ supacloud lite doctor --project_dir . --json --production --runtime_mode strict
1006
+ supacloud lite db_check --project_dir . --module_file supabase/db/modules.ts
1007
+ supacloud lite start --project_dir . --port 54321 --runtime_mode strict
1007
1008
  ```
1008
1009
 
1010
+ `auth create-user` is not exposed here. The standalone `supacloud-lite` binary
1011
+ reads the password from stdin and rejects password arguments.
1012
+
1009
1013
  The adapter resolves the executable in this order:
1010
1014
 
1011
1015
  1. `SUPACLOUD_LITE_CLI_BIN`
package/dist/index.js CHANGED
@@ -9318,6 +9318,7 @@ var ACTION_POLICY = {
9318
9318
  "db_reset",
9319
9319
  "db_diff",
9320
9320
  "db_pull",
9321
+ "db_check",
9321
9322
  "snapshot_create",
9322
9323
  "snapshot_restore",
9323
9324
  "upgrade",
@@ -16376,6 +16377,16 @@ Actions: list, get_config, deploy, deploy_bundle, config, source, activate, dele
16376
16377
  const tmpFile = join5(tmpDir, "index.ts");
16377
16378
  writeFileSync(tmpFile, sourceCode);
16378
16379
  try {
16380
+ if (/@ts-(?:ignore|nocheck|expect-error)\b/.test(sourceCode)) {
16381
+ const { scanProductionSource } = await import("@supacloud/compiler");
16382
+ const suppression = scanProductionSource({ rootDir: tmpDir, include: ["index.ts"] }).find((diagnostic) => diagnostic.code === "source-type-suppression");
16383
+ if (suppression) {
16384
+ return {
16385
+ ok: false,
16386
+ err: `Vibecoding guardrail violation: Type suppression directive at line ${suppression.line} is disallowed in Edge Functions. Please fix the underlying type mismatch instead of suppressing it.`
16387
+ };
16388
+ }
16389
+ }
16379
16390
  await runBunBuild([tmpFile, "--external", "*"]);
16380
16391
  return { ok: true };
16381
16392
  } catch (error) {
@@ -21418,6 +21429,9 @@ function buildLiteArgs(request) {
21418
21429
  if (request.file)
21419
21430
  args.push(request.file);
21420
21431
  break;
21432
+ case "db_check":
21433
+ args.push("db", "check");
21434
+ break;
21421
21435
  case "snapshot_create":
21422
21436
  args.push("snapshot", "create");
21423
21437
  break;
@@ -21456,6 +21470,17 @@ function buildLiteArgs(request) {
21456
21470
  if (request.baseline && request.action !== "db_pull")
21457
21471
  throw new Error("baseline requires db_pull");
21458
21472
  booleanFlag(args, "--baseline", request.baseline);
21473
+ if (request.production && request.action !== "doctor")
21474
+ throw new Error("production requires doctor");
21475
+ booleanFlag(args, "--production", request.production);
21476
+ if (request.module_file && request.action !== "db_check")
21477
+ throw new Error("module_file requires db_check");
21478
+ optionalFlag(args, "--module-file", request.module_file);
21479
+ optionalFlag(args, "--runtime-mode", request.runtime_mode);
21480
+ optionalFlag(args, "--postgres-dir", request.postgres_dir);
21481
+ optionalFlag(args, "--identity-module", request.identity_module);
21482
+ optionalFlag(args, "--external-auth-proxy-issuer", request.external_auth_proxy_issuer);
21483
+ optionalFlag(args, "--external-auth-proxy-redirect-origin", request.external_auth_proxy_redirect_origin);
21459
21484
  return args;
21460
21485
  }
21461
21486
  async function spawnLiteCommand(command, workdir, environment, inheritOutput) {
@@ -21538,7 +21563,8 @@ function registerLiteCliTools(server, options = {}) {
21538
21563
  "snapshot_restore",
21539
21564
  "upgrade",
21540
21565
  "inspect",
21541
- "doctor"
21566
+ "doctor",
21567
+ "db_check"
21542
21568
  ]), "Lite CLI action"),
21543
21569
  workdir: optional(String2(), "[*] Process working directory (default: current directory)"),
21544
21570
  project_dir: optional(String2(), "[*] Project containing supabase/"),
@@ -21566,7 +21592,14 @@ function registerLiteCliTools(server, options = {}) {
21566
21592
  force: optional(Boolean2(), "[snapshot_restore] Replace non-empty restore targets"),
21567
21593
  memory: optional(Boolean2(), "[*] Use an in-memory PGlite database"),
21568
21594
  json: optional(Boolean2(), "[doctor] Emit machine-readable output"),
21569
- baseline: optional(Boolean2(), "[db_pull] Record already-present schema in local migration history after review")
21595
+ baseline: optional(Boolean2(), "[db_pull] Record already-present schema in local migration history after review"),
21596
+ production: optional(Boolean2(), "[doctor] Add single-node production readiness checks"),
21597
+ runtime_mode: optional(stringEnum2(["development", "strict"]), "[*] Lite runtime mode"),
21598
+ postgres_dir: optional(String2(), "[native] Operator-managed PostgreSQL installation"),
21599
+ identity_module: optional(String2(), "[*] Trusted external identity bridge module"),
21600
+ external_auth_proxy_issuer: optional(String2(), "[start] Same-origin OAuth proxy issuer"),
21601
+ external_auth_proxy_redirect_origin: optional(String2(), "[start] Allowed logout redirect origins"),
21602
+ module_file: optional(String2(), "[db_check] Database module manifest")
21570
21603
  }, async (request) => {
21571
21604
  buildLiteArgs(request);
21572
21605
  const execution = await execute(request);
@@ -21950,16 +21983,16 @@ var starter_metadata_default = {
21950
21983
  generatedBy: "supacloud/starter-metadata-v1",
21951
21984
  packages: {
21952
21985
  compiler: {
21953
- version: "0.52.1"
21986
+ version: "0.52.2"
21954
21987
  },
21955
21988
  app: {
21956
- version: "0.34.1",
21989
+ version: "0.35.0",
21957
21990
  dependencies: {
21958
21991
  rxjs: "7.8.2"
21959
21992
  }
21960
21993
  },
21961
21994
  elysia: {
21962
- version: "0.36.3"
21995
+ version: "0.37.0"
21963
21996
  },
21964
21997
  commands: {
21965
21998
  version: "0.11.2"
@@ -21968,7 +22001,7 @@ var starter_metadata_default = {
21968
22001
  version: "0.15.2"
21969
22002
  },
21970
22003
  db: {
21971
- version: "0.20.2",
22004
+ version: "0.20.3",
21972
22005
  peerDependencies: {
21973
22006
  "drizzle-orm": "1.0.0-rc.5-5935859"
21974
22007
  },
@@ -21977,7 +22010,7 @@ var starter_metadata_default = {
21977
22010
  }
21978
22011
  },
21979
22012
  sdk: {
21980
- version: "0.45.4",
22013
+ version: "0.45.5",
21981
22014
  peerDependencies: {
21982
22015
  "@supabase/supabase-js": "^2.118.0"
21983
22016
  }
@@ -33586,7 +33619,7 @@ async function runProjectDeployment(http, args) {
33586
33619
  // package.json
33587
33620
  var package_default = {
33588
33621
  name: "@supacloud/cli",
33589
- version: "0.112.1",
33622
+ version: "0.112.2",
33590
33623
  description: "Project-scoped CLI for SupaCloud users",
33591
33624
  type: "module",
33592
33625
  main: "./dist/index.js",
@@ -33638,9 +33671,9 @@ var package_default = {
33638
33671
  directory: "packages/cli"
33639
33672
  },
33640
33673
  dependencies: {
33641
- "@supacloud/compiler": "^0.52.1",
33674
+ "@supacloud/compiler": "^0.52.2",
33642
33675
  "@supacloud/delivery": "0.23.1",
33643
- "@supacloud/db": "0.20.2",
33676
+ "@supacloud/db": "0.20.3",
33644
33677
  typebox: "1.4.3"
33645
33678
  },
33646
33679
  overrides: {
@@ -33650,7 +33683,7 @@ var package_default = {
33650
33683
  },
33651
33684
  devDependencies: {
33652
33685
  "@supabase/supabase-js": "2.118.0",
33653
- "@supacloud/elysia": "0.36.3",
33686
+ "@supacloud/elysia": "0.37.0",
33654
33687
  "@types/bun": "^1.4.4",
33655
33688
  effect: "4.0.5",
33656
33689
  elysia: "2.0.0-rc.0",
@@ -1,6 +1,6 @@
1
1
  export { resolveLiteCommand } from "./lite-cli-command";
2
2
  import { type ToolServer } from "../tool-server";
3
- export type LiteCliAction = "version" | "start" | "migrate" | "status" | "keys" | "gen_types" | "db_reset" | "db_diff" | "db_pull" | "snapshot_create" | "snapshot_restore" | "upgrade" | "inspect" | "doctor";
3
+ export type LiteCliAction = "version" | "start" | "migrate" | "status" | "keys" | "gen_types" | "db_reset" | "db_diff" | "db_pull" | "db_check" | "snapshot_create" | "snapshot_restore" | "upgrade" | "inspect" | "doctor";
4
4
  export interface LiteCliArgs {
5
5
  action: LiteCliAction;
6
6
  workdir?: string;
@@ -30,6 +30,13 @@ export interface LiteCliArgs {
30
30
  memory?: boolean;
31
31
  json?: boolean;
32
32
  baseline?: boolean;
33
+ production?: boolean;
34
+ runtime_mode?: "development" | "strict";
35
+ postgres_dir?: string;
36
+ identity_module?: string;
37
+ external_auth_proxy_issuer?: string;
38
+ external_auth_proxy_redirect_origin?: string;
39
+ module_file?: string;
33
40
  }
34
41
  export interface LiteCliExecutionResult {
35
42
  exitCode: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supacloud/cli",
3
- "version": "0.112.1",
3
+ "version": "0.112.2",
4
4
  "description": "Project-scoped CLI for SupaCloud users",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -52,9 +52,9 @@
52
52
  "directory": "packages/cli"
53
53
  },
54
54
  "dependencies": {
55
- "@supacloud/compiler": "^0.52.1",
55
+ "@supacloud/compiler": "^0.52.2",
56
56
  "@supacloud/delivery": "0.23.1",
57
- "@supacloud/db": "0.20.2",
57
+ "@supacloud/db": "0.20.3",
58
58
  "typebox": "1.4.3"
59
59
  },
60
60
  "overrides": {
@@ -64,7 +64,7 @@
64
64
  },
65
65
  "devDependencies": {
66
66
  "@supabase/supabase-js": "2.118.0",
67
- "@supacloud/elysia": "0.36.3",
67
+ "@supacloud/elysia": "0.37.0",
68
68
  "@types/bun": "^1.4.4",
69
69
  "effect": "4.0.5",
70
70
  "elysia": "2.0.0-rc.0",
@@ -19,7 +19,7 @@ Load this reference when selecting a command surface or when a user asks an AI t
19
19
  | Pull official Supabase configuration | `supabase config_pull` | Preview by default; local write requires `dry_run=false` and `yes`; not SupaCloud settings |
20
20
  | Run the official local stack | `supabase stack_start`, `stack_prepare`, `stack_status`, `stack_stop` | Docker default; native alpha requires `SUPACLOUD_ENABLE_NATIVE_STACK=1` |
21
21
  | Remove the official local stack | `supabase stack_destroy` | Local data loss; requires `confirm_destroy` and `yes` |
22
- | Capture Lite drift | `lite db_diff`, `lite db_pull` | Draft outside migrations; only reviewed already-present DDL may use `baseline` |
22
+ | Capture Lite drift | `lite db_diff`, `lite db_pull`, `lite db_check` | Draft outside migrations; only reviewed already-present DDL may use `baseline`; `db_check` is read-only |
23
23
  | Rebuild local database | `supabase db_reset` | Local only; preserve required seed behavior |
24
24
  | Inspect or back up a remote database | `supabase db_pull`, `migration_list`, `db_dump`, `gen_types` | Requires explicit PostgreSQL DSN; redact it |
25
25
  | Replay the release-canary fixture stage receipt | `release release_canary_fixture_stage_replay` | Dual-bind Management project context and that project's service-role application origin; accepts only the exact subject/request UUID pair and a strict idempotent receipt |