@supacloud/cli 0.112.0 → 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
@@ -492,7 +492,7 @@ Example configuration write file:
492
492
  "configuration_id": "01234567-89ab-4def-8123-456789abcdef",
493
493
  "expected_configuration_id": null,
494
494
  "configuration": {
495
- "bun_version": "1.4.3",
495
+ "bun_version": "1.4.4",
496
496
  "targets": [
497
497
  {
498
498
  "name": "api",
@@ -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
@@ -6770,9 +6770,14 @@ function IsTime(value, strictTimeZone = true) {
6770
6770
  }
6771
6771
 
6772
6772
  // node_modules/typebox/build/format/date_time.mjs
6773
+ var DATE_TIME_SUFFIX = /^(?:\[!?(?:(?!\.{1,2}[/\]])[A-Za-z._][A-Za-z._0-9+-]{0,13}(?:\/(?!\.{1,2}[/\]])[A-Za-z._][A-Za-z._0-9+-]{0,13})*|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])\](?:\[!?[a-z_][a-z_0-9-]*=[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*\])*|(?:\[!?[a-z_][a-z_0-9-]*=[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*\])*)$/;
6773
6774
  function IsDateTime(value) {
6774
- const dateTime = value.split(/T/i);
6775
- return dateTime.length === 2 && IsDate2(dateTime[0]) && IsTime(dateTime[1]);
6775
+ const index = value.indexOf("[");
6776
+ const datetime = index === -1 ? value : value.slice(0, index);
6777
+ if (index !== -1 && !DATE_TIME_SUFFIX.test(value.slice(index)))
6778
+ return false;
6779
+ const split = datetime.split(/T/i);
6780
+ return split.length === 2 && IsDate2(split[0]) && IsTime(split[1]);
6776
6781
  }
6777
6782
 
6778
6783
  // node_modules/typebox/build/format/duration.mjs
@@ -9313,6 +9318,7 @@ var ACTION_POLICY = {
9313
9318
  "db_reset",
9314
9319
  "db_diff",
9315
9320
  "db_pull",
9321
+ "db_check",
9316
9322
  "snapshot_create",
9317
9323
  "snapshot_restore",
9318
9324
  "upgrade",
@@ -16371,6 +16377,16 @@ Actions: list, get_config, deploy, deploy_bundle, config, source, activate, dele
16371
16377
  const tmpFile = join5(tmpDir, "index.ts");
16372
16378
  writeFileSync(tmpFile, sourceCode);
16373
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
+ }
16374
16390
  await runBunBuild([tmpFile, "--external", "*"]);
16375
16391
  return { ok: true };
16376
16392
  } catch (error) {
@@ -21413,6 +21429,9 @@ function buildLiteArgs(request) {
21413
21429
  if (request.file)
21414
21430
  args.push(request.file);
21415
21431
  break;
21432
+ case "db_check":
21433
+ args.push("db", "check");
21434
+ break;
21416
21435
  case "snapshot_create":
21417
21436
  args.push("snapshot", "create");
21418
21437
  break;
@@ -21451,6 +21470,17 @@ function buildLiteArgs(request) {
21451
21470
  if (request.baseline && request.action !== "db_pull")
21452
21471
  throw new Error("baseline requires db_pull");
21453
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);
21454
21484
  return args;
21455
21485
  }
21456
21486
  async function spawnLiteCommand(command, workdir, environment, inheritOutput) {
@@ -21533,7 +21563,8 @@ function registerLiteCliTools(server, options = {}) {
21533
21563
  "snapshot_restore",
21534
21564
  "upgrade",
21535
21565
  "inspect",
21536
- "doctor"
21566
+ "doctor",
21567
+ "db_check"
21537
21568
  ]), "Lite CLI action"),
21538
21569
  workdir: optional(String2(), "[*] Process working directory (default: current directory)"),
21539
21570
  project_dir: optional(String2(), "[*] Project containing supabase/"),
@@ -21561,7 +21592,14 @@ function registerLiteCliTools(server, options = {}) {
21561
21592
  force: optional(Boolean2(), "[snapshot_restore] Replace non-empty restore targets"),
21562
21593
  memory: optional(Boolean2(), "[*] Use an in-memory PGlite database"),
21563
21594
  json: optional(Boolean2(), "[doctor] Emit machine-readable output"),
21564
- 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")
21565
21603
  }, async (request) => {
21566
21604
  buildLiteArgs(request);
21567
21605
  const execution = await execute(request);
@@ -21945,25 +21983,25 @@ var starter_metadata_default = {
21945
21983
  generatedBy: "supacloud/starter-metadata-v1",
21946
21984
  packages: {
21947
21985
  compiler: {
21948
- version: "0.52.0"
21986
+ version: "0.52.2"
21949
21987
  },
21950
21988
  app: {
21951
- version: "0.34.0",
21989
+ version: "0.35.0",
21952
21990
  dependencies: {
21953
21991
  rxjs: "7.8.2"
21954
21992
  }
21955
21993
  },
21956
21994
  elysia: {
21957
- version: "0.36.2"
21995
+ version: "0.37.0"
21958
21996
  },
21959
21997
  commands: {
21960
- version: "0.11.1"
21998
+ version: "0.11.2"
21961
21999
  },
21962
22000
  contracts: {
21963
- version: "0.15.1"
22001
+ version: "0.15.2"
21964
22002
  },
21965
22003
  db: {
21966
- version: "0.20.1",
22004
+ version: "0.20.3",
21967
22005
  peerDependencies: {
21968
22006
  "drizzle-orm": "1.0.0-rc.5-5935859"
21969
22007
  },
@@ -21972,7 +22010,7 @@ var starter_metadata_default = {
21972
22010
  }
21973
22011
  },
21974
22012
  sdk: {
21975
- version: "0.45.3",
22013
+ version: "0.45.5",
21976
22014
  peerDependencies: {
21977
22015
  "@supabase/supabase-js": "^2.118.0"
21978
22016
  }
@@ -22297,7 +22335,7 @@ function baseFiles(name, sdkDependencies) {
22297
22335
  version: "0.0.0",
22298
22336
  private: true,
22299
22337
  type: "module",
22300
- engines: { bun: ">=1.4.3" },
22338
+ engines: { bun: ">=1.4.4" },
22301
22339
  scripts: {
22302
22340
  compile: "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js compile",
22303
22341
  "check:generated": "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js check",
@@ -22321,7 +22359,7 @@ function baseFiles(name, sdkDependencies) {
22321
22359
  },
22322
22360
  devDependencies: {
22323
22361
  "@supacloud/compiler": `^${compilerMetadata.version}`,
22324
- "@types/bun": "^1.4.3",
22362
+ "@types/bun": "^1.4.4",
22325
22363
  typescript: "^7.0.2"
22326
22364
  }
22327
22365
  }),
@@ -25452,7 +25490,7 @@ function appStarterFiles(name) {
25452
25490
  version: "0.0.0",
25453
25491
  private: true,
25454
25492
  type: "module",
25455
- engines: { bun: ">=1.4.3" },
25493
+ engines: { bun: ">=1.4.4" },
25456
25494
  scripts: {
25457
25495
  compile: "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js compile",
25458
25496
  "check:generated": "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js check",
@@ -25488,7 +25526,7 @@ function appStarterFiles(name) {
25488
25526
  devDependencies: {
25489
25527
  "@supacloud/compiler": `^${compilerMetadata2.version}`,
25490
25528
  "drizzle-kit": dbMetadata.devDependencies["drizzle-kit"],
25491
- "@types/bun": "^1.4.3",
25529
+ "@types/bun": "^1.4.4",
25492
25530
  typescript: "^7.0.2"
25493
25531
  }
25494
25532
  }),
@@ -33581,7 +33619,7 @@ async function runProjectDeployment(http, args) {
33581
33619
  // package.json
33582
33620
  var package_default = {
33583
33621
  name: "@supacloud/cli",
33584
- version: "0.112.0",
33622
+ version: "0.112.2",
33585
33623
  description: "Project-scoped CLI for SupaCloud users",
33586
33624
  type: "module",
33587
33625
  main: "./dist/index.js",
@@ -33633,20 +33671,20 @@ var package_default = {
33633
33671
  directory: "packages/cli"
33634
33672
  },
33635
33673
  dependencies: {
33636
- "@supacloud/compiler": "^0.52.0",
33637
- "@supacloud/delivery": "0.23.0",
33638
- "@supacloud/db": "0.20.1",
33639
- typebox: "1.4.2"
33674
+ "@supacloud/compiler": "^0.52.2",
33675
+ "@supacloud/delivery": "0.23.1",
33676
+ "@supacloud/db": "0.20.3",
33677
+ typebox: "1.4.3"
33640
33678
  },
33641
33679
  overrides: {
33642
- "@supacloud/contracts": "0.15.1",
33643
- "@supacloud/delivery": "0.23.0",
33680
+ "@supacloud/contracts": "0.15.2",
33681
+ "@supacloud/delivery": "0.23.1",
33644
33682
  "@graphql-tools/utils": "^12.0.4"
33645
33683
  },
33646
33684
  devDependencies: {
33647
33685
  "@supabase/supabase-js": "2.118.0",
33648
- "@supacloud/elysia": "0.36.2",
33649
- "@types/bun": "^1.4.3",
33686
+ "@supacloud/elysia": "0.37.0",
33687
+ "@types/bun": "^1.4.4",
33650
33688
  effect: "4.0.5",
33651
33689
  elysia: "2.0.0-rc.0",
33652
33690
  typescript: "^7.0.2"
@@ -5,7 +5,7 @@ export declare const APPLICATION_PREVIEW_FIELDS: {
5
5
  preview_id: Type.TOptional<Type.TString>;
6
6
  branch_ref: Type.TOptional<Type.TString>;
7
7
  branch_name: Type.TOptional<Type.TString>;
8
- data_mode: Type.TOptional<Type.TEnum<("schema_only" | "full_clone")[]>>;
8
+ data_mode: Type.TOptional<Type.TEnum<("full_clone" | "schema_only")[]>>;
9
9
  ttl_seconds: Type.TOptional<Type.TInteger>;
10
10
  wait: Type.TOptional<Type.TBoolean>;
11
11
  timeout_seconds: Type.TOptional<Type.TInteger>;
@@ -18,40 +18,40 @@ declare const receiptSchema: Type.TObject<{
18
18
  environment_id: Type.TString;
19
19
  release_id: Type.TString;
20
20
  expires_at: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
21
- status: Type.TEnum<("ready" | "failed" | "cleaned" | "planned" | "provisioning")[]>;
21
+ status: Type.TEnum<("cleaned" | "failed" | "planned" | "provisioning" | "ready")[]>;
22
22
  resources: Type.TObject<{
23
23
  build_artifact: Type.TObject<{
24
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
24
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
25
25
  release_id: Type.TString;
26
26
  }>;
27
27
  database_branch: Type.TObject<{
28
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
28
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
29
29
  branch_ref: Type.TString;
30
- data_mode: Type.TEnum<("schema_only" | "full_clone")[]>;
30
+ data_mode: Type.TEnum<("full_clone" | "schema_only")[]>;
31
31
  }>;
32
32
  queue_namespace: Type.TObject<{
33
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
33
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
34
34
  namespace: Type.TString;
35
35
  }>;
36
36
  storage_namespace: Type.TObject<{
37
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
37
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
38
38
  namespace: Type.TString;
39
39
  }>;
40
40
  test_secret: Type.TObject<{
41
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
41
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
42
42
  name: Type.TString;
43
43
  value_issued: Type.TLiteral<false>;
44
44
  }>;
45
45
  configuration_revision: Type.TObject<{
46
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
46
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
47
47
  configuration_id: Type.TUnion<[Type.TString, Type.TNull]>;
48
48
  }>;
49
49
  application_activation: Type.TObject<{
50
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
50
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
51
51
  activation_id: Type.TUnion<[Type.TString, Type.TNull]>;
52
52
  }>;
53
53
  smoke_test: Type.TObject<{
54
- status: Type.TEnum<("pending" | "ready" | "failed" | "cleaned")[]>;
54
+ status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
55
55
  checks: Type.TArray<Type.TString>;
56
56
  passed: Type.TArray<Type.TString>;
57
57
  failed: Type.TArray<Type.TString>;
@@ -147,7 +147,7 @@ export declare const ApplicationPromotionPlanSchema: import("typebox").TObject<{
147
147
  confirmed: import("typebox").TLiteral<false>;
148
148
  }>;
149
149
  action: import("typebox").TUnion<[import("typebox").TLiteral<"promote">, import("typebox").TLiteral<"no-op">, import("typebox").TLiteral<"blocked">]>;
150
- blockers: import("typebox").TArray<import("typebox").TEnum<("SOURCE_NOT_ACTIVE" | "SOURCE_RECEIPT_UNCONFIRMED" | "SOURCE_NOT_READY" | "SOURCE_SMOKE_UNVERIFIED" | "TARGET_CONFIGURATION_MISSING" | "TARGET_CONFIGURATION_MISMATCH" | "MIGRATION_PENDING" | "MIGRATION_CONFLICT" | "OPERATOR_PROVISIONING_REQUIRED" | "BACKUP_REQUIRED")[]>>;
150
+ blockers: import("typebox").TArray<import("typebox").TEnum<("BACKUP_REQUIRED" | "MIGRATION_CONFLICT" | "MIGRATION_PENDING" | "OPERATOR_PROVISIONING_REQUIRED" | "SOURCE_NOT_ACTIVE" | "SOURCE_NOT_READY" | "SOURCE_RECEIPT_UNCONFIRMED" | "SOURCE_SMOKE_UNVERIFIED" | "TARGET_CONFIGURATION_MISMATCH" | "TARGET_CONFIGURATION_MISSING")[]>>;
151
151
  steps: import("typebox").TArray<import("typebox").TString>;
152
152
  execution_performed: import("typebox").TLiteral<false>;
153
153
  data_recovery: import("typebox").TLiteral<"separate-required">;
@@ -5,11 +5,11 @@ export declare const APPLICATION_TOOL_SCHEMA: {
5
5
  preview_id: Type.TOptional<Type.TString>;
6
6
  branch_ref: Type.TOptional<Type.TString>;
7
7
  branch_name: Type.TOptional<Type.TString>;
8
- data_mode: Type.TOptional<Type.TEnum<("schema_only" | "full_clone")[]>>;
8
+ data_mode: Type.TOptional<Type.TEnum<("full_clone" | "schema_only")[]>>;
9
9
  ttl_seconds: Type.TOptional<Type.TInteger>;
10
10
  wait: Type.TOptional<Type.TBoolean>;
11
11
  timeout_seconds: Type.TOptional<Type.TInteger>;
12
- action: Type.TEnum<("upload_release" | "activate_release" | "list_releases" | "get_release" | "logs" | "get_runtime" | "get_deployment_evidence" | "get_configuration" | "get_release_transfer_plan" | "get_promotion_plan" | "get_promotion_status" | "get_rollback_snapshot" | "get_history" | "get_deploy_plan" | "get_preview_plan" | "list_previews" | "get_preview" | "put_configuration" | "deploy_application" | "transfer_release" | "promote_application" | "reconcile_promotion" | "create_preview" | "reconcile_preview" | "cleanup_preview" | "deploy_release" | "rollback_release" | "reconcile_activation" | "retire_activation")[]>;
12
+ action: Type.TEnum<("activate_release" | "cleanup_preview" | "create_preview" | "deploy_application" | "deploy_release" | "get_configuration" | "get_deploy_plan" | "get_deployment_evidence" | "get_history" | "get_preview" | "get_preview_plan" | "get_promotion_plan" | "get_promotion_status" | "get_release" | "get_release_transfer_plan" | "get_rollback_snapshot" | "get_runtime" | "list_previews" | "list_releases" | "logs" | "promote_application" | "put_configuration" | "reconcile_activation" | "reconcile_preview" | "reconcile_promotion" | "retire_activation" | "rollback_release" | "transfer_release" | "upload_release")[]>;
13
13
  ref: Type.TString;
14
14
  id: Type.TString;
15
15
  environment_id: Type.TOptional<Type.TString>;
@@ -86,7 +86,7 @@ export declare const APPLICATION_TOOL_SCHEMA: {
86
86
  confirmed: Type.TLiteral<false>;
87
87
  }>;
88
88
  action: Type.TUnion<[Type.TLiteral<"promote">, Type.TLiteral<"no-op">, Type.TLiteral<"blocked">]>;
89
- blockers: Type.TArray<Type.TEnum<("SOURCE_NOT_ACTIVE" | "SOURCE_RECEIPT_UNCONFIRMED" | "SOURCE_NOT_READY" | "SOURCE_SMOKE_UNVERIFIED" | "TARGET_CONFIGURATION_MISSING" | "TARGET_CONFIGURATION_MISMATCH" | "MIGRATION_PENDING" | "MIGRATION_CONFLICT" | "OPERATOR_PROVISIONING_REQUIRED" | "BACKUP_REQUIRED")[]>>;
89
+ blockers: Type.TArray<Type.TEnum<("BACKUP_REQUIRED" | "MIGRATION_CONFLICT" | "MIGRATION_PENDING" | "OPERATOR_PROVISIONING_REQUIRED" | "SOURCE_NOT_ACTIVE" | "SOURCE_NOT_READY" | "SOURCE_RECEIPT_UNCONFIRMED" | "SOURCE_SMOKE_UNVERIFIED" | "TARGET_CONFIGURATION_MISMATCH" | "TARGET_CONFIGURATION_MISSING")[]>>;
90
90
  steps: Type.TArray<Type.TString>;
91
91
  execution_performed: Type.TLiteral<false>;
92
92
  data_recovery: Type.TLiteral<"separate-required">;
@@ -1,15 +1,18 @@
1
1
  import { Type } from "typebox";
2
2
  export declare const ApplicationPromotionResultSchema: Type.TObject<{
3
+ project_ref: Type.TString;
4
+ application_id: Type.TString;
5
+ environment_id: Type.TString;
3
6
  mutation_id: Type.TString;
4
7
  activation_id: Type.TString;
5
8
  plan_sha256: Type.TString;
6
9
  action: Type.TLiteral<"promote">;
7
10
  replayed: Type.TBoolean;
11
+ }>;
12
+ export declare const ApplicationPromotionStatusSchema: Type.TObject<{
8
13
  project_ref: Type.TString;
9
14
  application_id: Type.TString;
10
15
  environment_id: Type.TString;
11
- }>;
12
- export declare const ApplicationPromotionStatusSchema: Type.TObject<{
13
16
  mutation: Type.TUnknown;
14
17
  promotion: Type.TObject<{
15
18
  phase: Type.TUnion<[Type.TLiteral<"prepared">, Type.TLiteral<"transferring">, Type.TLiteral<"migrating">, Type.TLiteral<"activating">, Type.TLiteral<"verifying">, Type.TNull]>;
@@ -20,11 +23,12 @@ export declare const ApplicationPromotionStatusSchema: Type.TObject<{
20
23
  backup_id: Type.TUnion<[Type.TString, Type.TNull]>;
21
24
  data_recovery: Type.TLiteral<"separate-required">;
22
25
  }>;
26
+ }>;
27
+ export declare const ApplicationPreviewReceiptSchema: Type.TObject<{
23
28
  project_ref: Type.TString;
24
29
  application_id: Type.TString;
25
30
  environment_id: Type.TString;
26
- }>;
27
- export declare const ApplicationPreviewReceiptSchema: Type.TObject<{
31
+ schema: Type.TLiteral<"supacloud.application-preview.v1">;
28
32
  preview_id: Type.TString;
29
33
  release_id: Type.TString;
30
34
  expires_at: Type.TUnion<[Type.TString, Type.TNull]>;
@@ -78,10 +82,6 @@ export declare const ApplicationPreviewReceiptSchema: Type.TObject<{
78
82
  source_configuration_id: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
79
83
  created_at: Type.TOptional<Type.TString>;
80
84
  updated_at: Type.TOptional<Type.TString>;
81
- project_ref: Type.TString;
82
- application_id: Type.TString;
83
- environment_id: Type.TString;
84
- schema: Type.TLiteral<"supacloud.application-preview.v1">;
85
85
  }>;
86
86
  export interface ApplicationWorkflowScope {
87
87
  project_ref: string;
@@ -91,19 +91,19 @@ export interface ApplicationWorkflowScope {
91
91
  export declare function parsePromotionStatus(value: unknown, identity: ApplicationWorkflowScope & {
92
92
  mutation_id: string;
93
93
  }): {
94
- mutation: import("../mutation-protocol").SafeMutationStatus;
95
94
  project_ref: string;
96
95
  application_id: string;
97
96
  environment_id: string;
98
97
  promotion: {
99
- backup_id: string | null;
98
+ phase: "activating" | "migrating" | "prepared" | "transferring" | "verifying" | null;
99
+ plan_sha256: string | null;
100
100
  activation_id: string | null;
101
101
  release_id: string | null;
102
102
  configuration_id: string | null;
103
- plan_sha256: string | null;
103
+ backup_id: string | null;
104
104
  data_recovery: "separate-required";
105
- phase: "prepared" | "transferring" | "migrating" | "activating" | "verifying" | null;
106
105
  };
106
+ mutation: import("../mutation-protocol").SafeMutationStatus;
107
107
  };
108
108
  export declare function parsePreviewReceipt(value: unknown, identity: ApplicationWorkflowScope & {
109
109
  preview_id?: string;
@@ -112,125 +112,125 @@ export declare function parsePreviewReceipt(value: unknown, identity: Applicatio
112
112
  data_mode?: string;
113
113
  configuration_id?: string;
114
114
  }): {
115
- created_at?: string | undefined;
116
- updated_at?: string | undefined;
117
- branch_name?: string | undefined;
118
- queue_name?: string | undefined;
119
- test_secret_name?: string | undefined;
120
- source_configuration_id?: string | null | undefined;
121
115
  project_ref: string;
122
116
  application_id: string;
123
117
  environment_id: string;
124
- status: "ready" | "failed" | "cleaned" | "planned" | "provisioning";
125
118
  schema: "supacloud.application-preview.v1";
119
+ preview_id: string;
120
+ release_id: string;
121
+ expires_at: string | null;
122
+ status: "cleaned" | "failed" | "planned" | "provisioning" | "ready";
126
123
  resources: {
127
124
  build_artifact: {
128
- status: "pending" | "ready" | "failed" | "cleaned";
125
+ status: "cleaned" | "failed" | "pending" | "ready";
129
126
  release_id: string;
130
127
  };
131
128
  database_branch: {
132
- status: "pending" | "ready" | "failed" | "cleaned";
129
+ status: "cleaned" | "failed" | "pending" | "ready";
133
130
  branch_ref: string;
134
- data_mode: "schema_only" | "full_clone";
131
+ data_mode: "full_clone" | "schema_only";
135
132
  };
136
133
  queue_namespace: {
137
- status: "pending" | "ready" | "failed" | "cleaned";
134
+ status: "cleaned" | "failed" | "pending" | "ready";
138
135
  namespace: string;
139
136
  };
140
137
  storage_namespace: {
141
- status: "pending" | "ready" | "failed" | "cleaned";
138
+ status: "cleaned" | "failed" | "pending" | "ready";
142
139
  namespace: string;
143
140
  };
144
141
  test_secret: {
142
+ status: "cleaned" | "failed" | "pending" | "ready";
145
143
  name: string;
146
- status: "pending" | "ready" | "failed" | "cleaned";
147
144
  value_issued: false;
148
145
  };
149
146
  configuration_revision: {
150
- status: "pending" | "ready" | "failed" | "cleaned";
147
+ status: "cleaned" | "failed" | "pending" | "ready";
151
148
  configuration_id: string | null;
152
149
  };
153
150
  application_activation: {
154
- status: "pending" | "ready" | "failed" | "cleaned";
151
+ status: "cleaned" | "failed" | "pending" | "ready";
155
152
  activation_id: string | null;
156
153
  };
157
154
  smoke_test: {
158
- status: "pending" | "ready" | "failed" | "cleaned";
155
+ status: "cleaned" | "failed" | "pending" | "ready";
159
156
  checks: string[];
160
- failed: string[];
161
157
  passed: string[];
158
+ failed: string[];
162
159
  };
163
160
  };
164
- release_id: string;
165
- preview_id: string;
166
- expires_at: string | null;
167
161
  cleanup: {
168
162
  required: boolean;
169
- error: string | null;
170
163
  completed: boolean;
164
+ error: string | null;
171
165
  };
166
+ branch_name?: string | undefined;
167
+ queue_name?: string | undefined;
168
+ test_secret_name?: string | undefined;
169
+ source_configuration_id?: string | null | undefined;
170
+ created_at?: string | undefined;
171
+ updated_at?: string | undefined;
172
172
  };
173
173
  export declare function parsePreviewList(value: unknown, identity: ApplicationWorkflowScope): {
174
174
  project_ref: string;
175
175
  application_id: string;
176
176
  environment_id: string;
177
177
  previews: {
178
- created_at?: string | undefined;
179
- updated_at?: string | undefined;
180
- branch_name?: string | undefined;
181
- queue_name?: string | undefined;
182
- test_secret_name?: string | undefined;
183
- source_configuration_id?: string | null | undefined;
184
178
  project_ref: string;
185
179
  application_id: string;
186
180
  environment_id: string;
187
- status: "ready" | "failed" | "cleaned" | "planned" | "provisioning";
188
181
  schema: "supacloud.application-preview.v1";
182
+ preview_id: string;
183
+ release_id: string;
184
+ expires_at: string | null;
185
+ status: "cleaned" | "failed" | "planned" | "provisioning" | "ready";
189
186
  resources: {
190
187
  build_artifact: {
191
- status: "pending" | "ready" | "failed" | "cleaned";
188
+ status: "cleaned" | "failed" | "pending" | "ready";
192
189
  release_id: string;
193
190
  };
194
191
  database_branch: {
195
- status: "pending" | "ready" | "failed" | "cleaned";
192
+ status: "cleaned" | "failed" | "pending" | "ready";
196
193
  branch_ref: string;
197
- data_mode: "schema_only" | "full_clone";
194
+ data_mode: "full_clone" | "schema_only";
198
195
  };
199
196
  queue_namespace: {
200
- status: "pending" | "ready" | "failed" | "cleaned";
197
+ status: "cleaned" | "failed" | "pending" | "ready";
201
198
  namespace: string;
202
199
  };
203
200
  storage_namespace: {
204
- status: "pending" | "ready" | "failed" | "cleaned";
201
+ status: "cleaned" | "failed" | "pending" | "ready";
205
202
  namespace: string;
206
203
  };
207
204
  test_secret: {
205
+ status: "cleaned" | "failed" | "pending" | "ready";
208
206
  name: string;
209
- status: "pending" | "ready" | "failed" | "cleaned";
210
207
  value_issued: false;
211
208
  };
212
209
  configuration_revision: {
213
- status: "pending" | "ready" | "failed" | "cleaned";
210
+ status: "cleaned" | "failed" | "pending" | "ready";
214
211
  configuration_id: string | null;
215
212
  };
216
213
  application_activation: {
217
- status: "pending" | "ready" | "failed" | "cleaned";
214
+ status: "cleaned" | "failed" | "pending" | "ready";
218
215
  activation_id: string | null;
219
216
  };
220
217
  smoke_test: {
221
- status: "pending" | "ready" | "failed" | "cleaned";
218
+ status: "cleaned" | "failed" | "pending" | "ready";
222
219
  checks: string[];
223
- failed: string[];
224
220
  passed: string[];
221
+ failed: string[];
225
222
  };
226
223
  };
227
- release_id: string;
228
- preview_id: string;
229
- expires_at: string | null;
230
224
  cleanup: {
231
225
  required: boolean;
232
- error: string | null;
233
226
  completed: boolean;
227
+ error: string | null;
234
228
  };
229
+ branch_name?: string | undefined;
230
+ queue_name?: string | undefined;
231
+ test_secret_name?: string | undefined;
232
+ source_configuration_id?: string | null | undefined;
233
+ created_at?: string | undefined;
234
+ updated_at?: string | undefined;
235
235
  }[];
236
236
  };
@@ -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;
@@ -19,8 +19,8 @@ export interface RemoteDevToolOptions {
19
19
  runDatabase?: DatabaseCallback;
20
20
  }
21
21
  export declare const remoteDevToolSchema: {
22
- action: Type.TEnum<("status" | "migrate" | "watch" | "sync")[]>;
23
- target: Type.TOptional<Type.TEnum<("frontend" | "project" | "db" | "functions")[]>>;
22
+ action: Type.TEnum<("migrate" | "status" | "sync" | "watch")[]>;
23
+ target: Type.TOptional<Type.TEnum<("db" | "frontend" | "functions" | "project")[]>>;
24
24
  project_dir: Type.TOptional<Type.TString>;
25
25
  remote_root: Type.TOptional<Type.TString>;
26
26
  remote_host: Type.TOptional<Type.TString>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supacloud/cli",
3
- "version": "0.112.0",
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,20 +52,20 @@
52
52
  "directory": "packages/cli"
53
53
  },
54
54
  "dependencies": {
55
- "@supacloud/compiler": "^0.52.0",
56
- "@supacloud/delivery": "0.23.0",
57
- "@supacloud/db": "0.20.1",
58
- "typebox": "1.4.2"
55
+ "@supacloud/compiler": "^0.52.2",
56
+ "@supacloud/delivery": "0.23.1",
57
+ "@supacloud/db": "0.20.3",
58
+ "typebox": "1.4.3"
59
59
  },
60
60
  "overrides": {
61
- "@supacloud/contracts": "0.15.1",
62
- "@supacloud/delivery": "0.23.0",
61
+ "@supacloud/contracts": "0.15.2",
62
+ "@supacloud/delivery": "0.23.1",
63
63
  "@graphql-tools/utils": "^12.0.4"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@supabase/supabase-js": "2.118.0",
67
- "@supacloud/elysia": "0.36.2",
68
- "@types/bun": "^1.4.3",
67
+ "@supacloud/elysia": "0.37.0",
68
+ "@types/bun": "^1.4.4",
69
69
  "effect": "4.0.5",
70
70
  "elysia": "2.0.0-rc.0",
71
71
  "typescript": "^7.0.2"
@@ -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 |