@supacloud/cli 0.111.0 → 0.112.1
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 +1 -1
- package/dist/index.js +194 -29
- package/dist/shared/tools/application-preview-tools.d.ts +11 -11
- package/dist/shared/tools/application-schemas.d.ts +1 -1
- package/dist/shared/tools/application-tools.d.ts +3 -3
- package/dist/shared/tools/application-workflow-schemas.d.ts +54 -54
- package/dist/shared/tools/frontend-release-control.d.ts +1 -0
- package/dist/shared/tools/remote-dev-tools.d.ts +2 -2
- package/package.json +9 -9
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.
|
|
495
|
+
"bun_version": "1.4.4",
|
|
496
496
|
"targets": [
|
|
497
497
|
{
|
|
498
498
|
"name": "api",
|
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
|
|
6775
|
-
|
|
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
|
|
@@ -9346,7 +9351,7 @@ var ACTION_POLICY = {
|
|
|
9346
9351
|
},
|
|
9347
9352
|
secrets: { read: ["list"], write: ["upsert", "delete"] },
|
|
9348
9353
|
frontend: {
|
|
9349
|
-
read: ["list", "get", "build_logs", "list_frameworks", "list_records", "list_releases", "get_active_release", "get_release"],
|
|
9354
|
+
read: ["list", "get", "build_logs", "list_frameworks", "list_records", "list_releases", "get_active_release", "get_release", "verify_release"],
|
|
9350
9355
|
write: ["create", "update", "delete", "deploy_git", "deploy_upload", "redeploy", "add_domain", "remove_domain", "set_env", "upload_release", "activate_release", "rollback"]
|
|
9351
9356
|
},
|
|
9352
9357
|
task_events: { read: ["inspect_webhook"], write: ["register_webhook", "unregister_webhook"] },
|
|
@@ -16919,6 +16924,8 @@ var TIMESTAMP_PATTERN2 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u;
|
|
|
16919
16924
|
var ARCHIVE_MAX_BYTES = 100 * 1024 * 1024;
|
|
16920
16925
|
var ARCHIVE_CHUNK_BYTES = 64 * 1024;
|
|
16921
16926
|
var RESPONSE_MAX_BYTES = 1024 * 1024;
|
|
16927
|
+
var LIVE_RESPONSE_MAX_BYTES = 1024 * 1024;
|
|
16928
|
+
var LIVE_CHECK_TIMEOUT_MS = 1e4;
|
|
16922
16929
|
var UPLOAD_REQUEST_TIMEOUT_MS = 10 * 60000;
|
|
16923
16930
|
var MUTATION_RESPONSE_TIMEOUT_MS = 5000;
|
|
16924
16931
|
var RELEASE_LIST_LIMIT_MAX = 100;
|
|
@@ -17276,6 +17283,129 @@ async function getActiveFrontendRelease(http, projectRef, deploymentId) {
|
|
|
17276
17283
|
const snapshot = await readActiveFrontendRelease(http, projectRef, deploymentId);
|
|
17277
17284
|
return "failure" in snapshot ? snapshot.failure : toolResponse(snapshot.inventory);
|
|
17278
17285
|
}
|
|
17286
|
+
function deploymentLiveUrl(candidate) {
|
|
17287
|
+
if (!candidate || typeof candidate !== "object" || Array.isArray(candidate))
|
|
17288
|
+
return null;
|
|
17289
|
+
const value = candidate.deployment_url;
|
|
17290
|
+
if (typeof value !== "string" || !value.trim())
|
|
17291
|
+
return null;
|
|
17292
|
+
try {
|
|
17293
|
+
const url = new URL(value.trim());
|
|
17294
|
+
return url.protocol === "https:" || url.protocol === "http:" ? url.toString() : null;
|
|
17295
|
+
} catch {
|
|
17296
|
+
return null;
|
|
17297
|
+
}
|
|
17298
|
+
}
|
|
17299
|
+
async function verifyLiveDeployment(url) {
|
|
17300
|
+
try {
|
|
17301
|
+
const response = await fetch(url, {
|
|
17302
|
+
method: "GET",
|
|
17303
|
+
redirect: "follow",
|
|
17304
|
+
cache: "no-store",
|
|
17305
|
+
signal: AbortSignal.timeout(LIVE_CHECK_TIMEOUT_MS)
|
|
17306
|
+
});
|
|
17307
|
+
const contentLength = Number(response.headers.get("content-length") ?? "");
|
|
17308
|
+
if (Number.isFinite(contentLength) && contentLength > LIVE_RESPONSE_MAX_BYTES) {
|
|
17309
|
+
response.body?.cancel().catch(() => {
|
|
17310
|
+
return;
|
|
17311
|
+
});
|
|
17312
|
+
return {
|
|
17313
|
+
ok: false,
|
|
17314
|
+
status: response.status,
|
|
17315
|
+
content_type: response.headers.get("content-type"),
|
|
17316
|
+
bytes: contentLength,
|
|
17317
|
+
error_code: "LIVE_RESPONSE_TOO_LARGE"
|
|
17318
|
+
};
|
|
17319
|
+
}
|
|
17320
|
+
let bytes = 0;
|
|
17321
|
+
const reader = response.body?.getReader();
|
|
17322
|
+
if (reader) {
|
|
17323
|
+
try {
|
|
17324
|
+
while (true) {
|
|
17325
|
+
const { done, value } = await reader.read();
|
|
17326
|
+
if (done)
|
|
17327
|
+
break;
|
|
17328
|
+
bytes += value.byteLength;
|
|
17329
|
+
if (bytes > LIVE_RESPONSE_MAX_BYTES) {
|
|
17330
|
+
reader.cancel().catch(() => {
|
|
17331
|
+
return;
|
|
17332
|
+
});
|
|
17333
|
+
break;
|
|
17334
|
+
}
|
|
17335
|
+
}
|
|
17336
|
+
} finally {
|
|
17337
|
+
reader.releaseLock();
|
|
17338
|
+
}
|
|
17339
|
+
}
|
|
17340
|
+
const ok = response.status === 200 && bytes > 0 && bytes <= LIVE_RESPONSE_MAX_BYTES;
|
|
17341
|
+
return {
|
|
17342
|
+
ok,
|
|
17343
|
+
status: response.status,
|
|
17344
|
+
content_type: response.headers.get("content-type"),
|
|
17345
|
+
bytes,
|
|
17346
|
+
error_code: bytes > LIVE_RESPONSE_MAX_BYTES ? "LIVE_RESPONSE_TOO_LARGE" : ok ? null : bytes === 0 ? "LIVE_RESPONSE_EMPTY" : "LIVE_RESPONSE_INVALID"
|
|
17347
|
+
};
|
|
17348
|
+
} catch (error) {
|
|
17349
|
+
const timedOut = error instanceof Error && (error.name === "TimeoutError" || error.name === "AbortError");
|
|
17350
|
+
return {
|
|
17351
|
+
ok: false,
|
|
17352
|
+
status: 0,
|
|
17353
|
+
content_type: null,
|
|
17354
|
+
bytes: 0,
|
|
17355
|
+
error_code: timedOut ? "LIVE_CHECK_TIMEOUT" : "LIVE_CHECK_FAILED"
|
|
17356
|
+
};
|
|
17357
|
+
}
|
|
17358
|
+
}
|
|
17359
|
+
async function verifyFrontendRelease(http, projectRef, deploymentId) {
|
|
17360
|
+
const snapshot = await readActiveFrontendRelease(http, projectRef, deploymentId);
|
|
17361
|
+
if ("failure" in snapshot)
|
|
17362
|
+
return snapshot.failure;
|
|
17363
|
+
const inventory = snapshot.inventory;
|
|
17364
|
+
const release = inventory.releases[0];
|
|
17365
|
+
if (!release)
|
|
17366
|
+
return releaseFailure("frontend.verify_release", "NO_ACTIVE_RELEASE", 200);
|
|
17367
|
+
const deployment = await http.get(deploymentEndpoint(projectRef, deploymentId), {
|
|
17368
|
+
maxJsonBytes: RESPONSE_MAX_BYTES
|
|
17369
|
+
});
|
|
17370
|
+
const liveUrl = deployment.ok && deployment.status === 200 ? deploymentLiveUrl(deployment.data) : null;
|
|
17371
|
+
const live = liveUrl ? await verifyLiveDeployment(liveUrl) : { ok: false, status: 0, content_type: null, bytes: 0, error_code: "LIVE_URL_UNAVAILABLE" };
|
|
17372
|
+
let errorCode = live.error_code;
|
|
17373
|
+
if (live.ok) {
|
|
17374
|
+
try {
|
|
17375
|
+
const readback = await readActiveFrontendRelease(http, projectRef, deploymentId);
|
|
17376
|
+
if ("failure" in readback)
|
|
17377
|
+
errorCode = "ACTIVE_RELEASE_READBACK_FAILED";
|
|
17378
|
+
else if (readback.inventory.active_release_id !== inventory.active_release_id || readback.inventory.active_activation_id !== inventory.active_activation_id) {
|
|
17379
|
+
errorCode = "STALE_AUTHORITY";
|
|
17380
|
+
}
|
|
17381
|
+
} catch {
|
|
17382
|
+
errorCode = "ACTIVE_RELEASE_READBACK_FAILED";
|
|
17383
|
+
}
|
|
17384
|
+
}
|
|
17385
|
+
const ok = errorCode === null;
|
|
17386
|
+
const receipt = {
|
|
17387
|
+
schema: "supacloud.frontend-release-verification.v1",
|
|
17388
|
+
ok,
|
|
17389
|
+
error_code: errorCode,
|
|
17390
|
+
project_ref: projectRef,
|
|
17391
|
+
deployment_id: deploymentId,
|
|
17392
|
+
active_release_id: inventory.active_release_id,
|
|
17393
|
+
active_activation_id: inventory.active_activation_id,
|
|
17394
|
+
release,
|
|
17395
|
+
live: {
|
|
17396
|
+
url: liveUrl,
|
|
17397
|
+
status: live.status,
|
|
17398
|
+
content_type: live.content_type,
|
|
17399
|
+
bytes: live.bytes,
|
|
17400
|
+
error_code: live.error_code
|
|
17401
|
+
},
|
|
17402
|
+
checked_at: new Date().toISOString()
|
|
17403
|
+
};
|
|
17404
|
+
return {
|
|
17405
|
+
content: [{ type: "text", text: JSON.stringify(receipt, null, 2) }],
|
|
17406
|
+
...ok ? {} : { isError: true }
|
|
17407
|
+
};
|
|
17408
|
+
}
|
|
17279
17409
|
async function publishFrontendRelease(http, projectRef, deploymentId, archiveSource, expectedTreeSha256) {
|
|
17280
17410
|
const authority = await readActiveFrontendRelease(http, projectRef, deploymentId);
|
|
17281
17411
|
if ("failure" in authority)
|
|
@@ -17565,7 +17695,7 @@ async function activationReadback(http, input, mutationId, activationStatus) {
|
|
|
17565
17695
|
// src/shared/tools/frontend-tools.ts
|
|
17566
17696
|
function registerFrontendTools(server, http) {
|
|
17567
17697
|
registerTool(server, "frontend", `Frontend hosting and immutable prebuilt releases. Supports: static, react, vue, svelte, sveltekit, sveltekit-static, nextjs, nuxt, astro.
|
|
17568
|
-
Actions: list, get, create, update, delete, build_logs, add_domain, remove_domain, set_env, list_frameworks, list_records, list_releases, get_active_release, get_release, rollback. Publish with supacloud deploy.`, {
|
|
17698
|
+
Actions: list, get, create, update, delete, build_logs, add_domain, remove_domain, set_env, list_frameworks, list_records, list_releases, get_active_release, get_release, verify_release, rollback. Publish with supacloud deploy.`, {
|
|
17569
17699
|
action: withDescription(stringEnum2([
|
|
17570
17700
|
"list",
|
|
17571
17701
|
"get",
|
|
@@ -17581,6 +17711,7 @@ Actions: list, get, create, update, delete, build_logs, add_domain, remove_domai
|
|
|
17581
17711
|
"list_releases",
|
|
17582
17712
|
"get_active_release",
|
|
17583
17713
|
"get_release",
|
|
17714
|
+
"verify_release",
|
|
17584
17715
|
"rollback"
|
|
17585
17716
|
]), "Action"),
|
|
17586
17717
|
ref: optional(String2(), "Project ref"),
|
|
@@ -17711,6 +17842,10 @@ Actions: list, get, create, update, delete, build_logs, add_domain, remove_domai
|
|
|
17711
17842
|
need("ref", ref);
|
|
17712
17843
|
need("id", id);
|
|
17713
17844
|
return getActiveFrontendRelease(http, ref, id);
|
|
17845
|
+
case "verify_release":
|
|
17846
|
+
need("ref", ref);
|
|
17847
|
+
need("id", id);
|
|
17848
|
+
return verifyFrontendRelease(http, ref, id);
|
|
17714
17849
|
case "rollback":
|
|
17715
17850
|
need("ref", ref);
|
|
17716
17851
|
need("id", id);
|
|
@@ -20671,8 +20806,23 @@ var VALID_VERSION = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;
|
|
|
20671
20806
|
var VALID_MIGRATION_NAME = /^[A-Za-z0-9][A-Za-z0-9_-]{0,100}$/;
|
|
20672
20807
|
var VALID_SCHEMA = /^[A-Za-z_][A-Za-z0-9_$]*$/;
|
|
20673
20808
|
var VALID_PROJECT_REF = /^[A-Za-z0-9_-]{1,64}$/;
|
|
20809
|
+
var OFFICIAL_CLI_PG_TLS_ENV = new Set([
|
|
20810
|
+
"PGSSLMODE",
|
|
20811
|
+
"PGSSLROOTCERT",
|
|
20812
|
+
"PGSSLCERT",
|
|
20813
|
+
"PGSSLKEY",
|
|
20814
|
+
"PGSSLCRL",
|
|
20815
|
+
"PGSSLCRLDIR",
|
|
20816
|
+
"PGSSLSNI",
|
|
20817
|
+
"PGSSLNEGOTIATION",
|
|
20818
|
+
"PGSSLCOMPRESSION",
|
|
20819
|
+
"PGREQUIRESSL"
|
|
20820
|
+
]);
|
|
20674
20821
|
function isSensitiveEnvironmentKey(key) {
|
|
20675
|
-
|
|
20822
|
+
const upper = key.toUpperCase();
|
|
20823
|
+
if (OFFICIAL_CLI_PG_TLS_ENV.has(upper))
|
|
20824
|
+
return false;
|
|
20825
|
+
return upper.startsWith("PG") || SENSITIVE_ENV_KEY.test(upper);
|
|
20676
20826
|
}
|
|
20677
20827
|
function requireMigrationName(name) {
|
|
20678
20828
|
if (!name || !VALID_MIGRATION_NAME.test(name)) {
|
|
@@ -20959,7 +21109,7 @@ function resolveOfficialSupabaseCommand(workdir, environment = process.env) {
|
|
|
20959
21109
|
const version = environment.SUPABASE_CLI_VERSION?.trim();
|
|
20960
21110
|
if (version) {
|
|
20961
21111
|
if (!VALID_VERSION.test(version))
|
|
20962
|
-
throw new Error("Invalid SUPABASE_CLI_VERSION; use an exact version such as 2.
|
|
21112
|
+
throw new Error("Invalid SUPABASE_CLI_VERSION; use an exact version such as 2.122.0");
|
|
20963
21113
|
if (process.versions.bun)
|
|
20964
21114
|
return [process.execPath, "x", `supabase@${version}`];
|
|
20965
21115
|
if (process.platform === "win32") {
|
|
@@ -21800,25 +21950,25 @@ var starter_metadata_default = {
|
|
|
21800
21950
|
generatedBy: "supacloud/starter-metadata-v1",
|
|
21801
21951
|
packages: {
|
|
21802
21952
|
compiler: {
|
|
21803
|
-
version: "0.52.
|
|
21953
|
+
version: "0.52.1"
|
|
21804
21954
|
},
|
|
21805
21955
|
app: {
|
|
21806
|
-
version: "0.34.
|
|
21956
|
+
version: "0.34.1",
|
|
21807
21957
|
dependencies: {
|
|
21808
21958
|
rxjs: "7.8.2"
|
|
21809
21959
|
}
|
|
21810
21960
|
},
|
|
21811
21961
|
elysia: {
|
|
21812
|
-
version: "0.36.
|
|
21962
|
+
version: "0.36.3"
|
|
21813
21963
|
},
|
|
21814
21964
|
commands: {
|
|
21815
|
-
version: "0.11.
|
|
21965
|
+
version: "0.11.2"
|
|
21816
21966
|
},
|
|
21817
21967
|
contracts: {
|
|
21818
|
-
version: "0.15.
|
|
21968
|
+
version: "0.15.2"
|
|
21819
21969
|
},
|
|
21820
21970
|
db: {
|
|
21821
|
-
version: "0.20.
|
|
21971
|
+
version: "0.20.2",
|
|
21822
21972
|
peerDependencies: {
|
|
21823
21973
|
"drizzle-orm": "1.0.0-rc.5-5935859"
|
|
21824
21974
|
},
|
|
@@ -21827,9 +21977,9 @@ var starter_metadata_default = {
|
|
|
21827
21977
|
}
|
|
21828
21978
|
},
|
|
21829
21979
|
sdk: {
|
|
21830
|
-
version: "0.45.
|
|
21980
|
+
version: "0.45.4",
|
|
21831
21981
|
peerDependencies: {
|
|
21832
|
-
"@supabase/supabase-js": "^2.
|
|
21982
|
+
"@supabase/supabase-js": "^2.118.0"
|
|
21833
21983
|
}
|
|
21834
21984
|
}
|
|
21835
21985
|
}
|
|
@@ -22152,7 +22302,7 @@ function baseFiles(name, sdkDependencies) {
|
|
|
22152
22302
|
version: "0.0.0",
|
|
22153
22303
|
private: true,
|
|
22154
22304
|
type: "module",
|
|
22155
|
-
engines: { bun: ">=1.4.
|
|
22305
|
+
engines: { bun: ">=1.4.4" },
|
|
22156
22306
|
scripts: {
|
|
22157
22307
|
compile: "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js compile",
|
|
22158
22308
|
"check:generated": "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js check",
|
|
@@ -22176,7 +22326,7 @@ function baseFiles(name, sdkDependencies) {
|
|
|
22176
22326
|
},
|
|
22177
22327
|
devDependencies: {
|
|
22178
22328
|
"@supacloud/compiler": `^${compilerMetadata.version}`,
|
|
22179
|
-
"@types/bun": "^1.4.
|
|
22329
|
+
"@types/bun": "^1.4.4",
|
|
22180
22330
|
typescript: "^7.0.2"
|
|
22181
22331
|
}
|
|
22182
22332
|
}),
|
|
@@ -25307,7 +25457,7 @@ function appStarterFiles(name) {
|
|
|
25307
25457
|
version: "0.0.0",
|
|
25308
25458
|
private: true,
|
|
25309
25459
|
type: "module",
|
|
25310
|
-
engines: { bun: ">=1.4.
|
|
25460
|
+
engines: { bun: ">=1.4.4" },
|
|
25311
25461
|
scripts: {
|
|
25312
25462
|
compile: "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js compile",
|
|
25313
25463
|
"check:generated": "bun --no-env-file node_modules/@supacloud/compiler/dist/cli.js check",
|
|
@@ -25343,7 +25493,7 @@ function appStarterFiles(name) {
|
|
|
25343
25493
|
devDependencies: {
|
|
25344
25494
|
"@supacloud/compiler": `^${compilerMetadata2.version}`,
|
|
25345
25495
|
"drizzle-kit": dbMetadata.devDependencies["drizzle-kit"],
|
|
25346
|
-
"@types/bun": "^1.4.
|
|
25496
|
+
"@types/bun": "^1.4.4",
|
|
25347
25497
|
typescript: "^7.0.2"
|
|
25348
25498
|
}
|
|
25349
25499
|
}),
|
|
@@ -29688,8 +29838,23 @@ var VALID_VERSION2 = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;
|
|
|
29688
29838
|
var VALID_MIGRATION_NAME2 = /^[A-Za-z0-9][A-Za-z0-9_-]{0,100}$/;
|
|
29689
29839
|
var VALID_SCHEMA2 = /^[A-Za-z_][A-Za-z0-9_$]*$/;
|
|
29690
29840
|
var VALID_PROJECT_REF2 = /^[A-Za-z0-9_-]{1,64}$/;
|
|
29841
|
+
var OFFICIAL_CLI_PG_TLS_ENV2 = new Set([
|
|
29842
|
+
"PGSSLMODE",
|
|
29843
|
+
"PGSSLROOTCERT",
|
|
29844
|
+
"PGSSLCERT",
|
|
29845
|
+
"PGSSLKEY",
|
|
29846
|
+
"PGSSLCRL",
|
|
29847
|
+
"PGSSLCRLDIR",
|
|
29848
|
+
"PGSSLSNI",
|
|
29849
|
+
"PGSSLNEGOTIATION",
|
|
29850
|
+
"PGSSLCOMPRESSION",
|
|
29851
|
+
"PGREQUIRESSL"
|
|
29852
|
+
]);
|
|
29691
29853
|
function isSensitiveEnvironmentKey2(key) {
|
|
29692
|
-
|
|
29854
|
+
const upper = key.toUpperCase();
|
|
29855
|
+
if (OFFICIAL_CLI_PG_TLS_ENV2.has(upper))
|
|
29856
|
+
return false;
|
|
29857
|
+
return upper.startsWith("PG") || SENSITIVE_ENV_KEY2.test(upper);
|
|
29693
29858
|
}
|
|
29694
29859
|
function requireMigrationName2(name) {
|
|
29695
29860
|
if (!name || !VALID_MIGRATION_NAME2.test(name)) {
|
|
@@ -29941,7 +30106,7 @@ function resolveOfficialSupabaseCommand2(workdir, environment = process.env) {
|
|
|
29941
30106
|
const version = environment.SUPABASE_CLI_VERSION?.trim();
|
|
29942
30107
|
if (version) {
|
|
29943
30108
|
if (!VALID_VERSION2.test(version))
|
|
29944
|
-
throw new Error("Invalid SUPABASE_CLI_VERSION; use an exact version such as 2.
|
|
30109
|
+
throw new Error("Invalid SUPABASE_CLI_VERSION; use an exact version such as 2.122.0");
|
|
29945
30110
|
if (process.versions.bun)
|
|
29946
30111
|
return [process.execPath, "x", `supabase@${version}`];
|
|
29947
30112
|
if (process.platform === "win32") {
|
|
@@ -33421,7 +33586,7 @@ async function runProjectDeployment(http, args) {
|
|
|
33421
33586
|
// package.json
|
|
33422
33587
|
var package_default = {
|
|
33423
33588
|
name: "@supacloud/cli",
|
|
33424
|
-
version: "0.
|
|
33589
|
+
version: "0.112.1",
|
|
33425
33590
|
description: "Project-scoped CLI for SupaCloud users",
|
|
33426
33591
|
type: "module",
|
|
33427
33592
|
main: "./dist/index.js",
|
|
@@ -33473,20 +33638,20 @@ var package_default = {
|
|
|
33473
33638
|
directory: "packages/cli"
|
|
33474
33639
|
},
|
|
33475
33640
|
dependencies: {
|
|
33476
|
-
"@supacloud/compiler": "^0.52.
|
|
33477
|
-
"@supacloud/delivery": "0.23.
|
|
33478
|
-
"@supacloud/db": "0.20.
|
|
33479
|
-
typebox: "1.4.
|
|
33641
|
+
"@supacloud/compiler": "^0.52.1",
|
|
33642
|
+
"@supacloud/delivery": "0.23.1",
|
|
33643
|
+
"@supacloud/db": "0.20.2",
|
|
33644
|
+
typebox: "1.4.3"
|
|
33480
33645
|
},
|
|
33481
33646
|
overrides: {
|
|
33482
|
-
"@supacloud/contracts": "0.15.
|
|
33483
|
-
"@supacloud/delivery": "0.23.
|
|
33647
|
+
"@supacloud/contracts": "0.15.2",
|
|
33648
|
+
"@supacloud/delivery": "0.23.1",
|
|
33484
33649
|
"@graphql-tools/utils": "^12.0.4"
|
|
33485
33650
|
},
|
|
33486
33651
|
devDependencies: {
|
|
33487
33652
|
"@supabase/supabase-js": "2.118.0",
|
|
33488
|
-
"@supacloud/elysia": "0.36.
|
|
33489
|
-
"@types/bun": "^1.4.
|
|
33653
|
+
"@supacloud/elysia": "0.36.3",
|
|
33654
|
+
"@types/bun": "^1.4.4",
|
|
33490
33655
|
effect: "4.0.5",
|
|
33491
33656
|
elysia: "2.0.0-rc.0",
|
|
33492
33657
|
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<("
|
|
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<("
|
|
21
|
+
status: Type.TEnum<("cleaned" | "failed" | "planned" | "provisioning" | "ready")[]>;
|
|
22
22
|
resources: Type.TObject<{
|
|
23
23
|
build_artifact: Type.TObject<{
|
|
24
|
-
status: Type.TEnum<("
|
|
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<("
|
|
28
|
+
status: Type.TEnum<("cleaned" | "failed" | "pending" | "ready")[]>;
|
|
29
29
|
branch_ref: Type.TString;
|
|
30
|
-
data_mode: Type.TEnum<("
|
|
30
|
+
data_mode: Type.TEnum<("full_clone" | "schema_only")[]>;
|
|
31
31
|
}>;
|
|
32
32
|
queue_namespace: Type.TObject<{
|
|
33
|
-
status: Type.TEnum<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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<("
|
|
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
|
-
|
|
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
|
-
|
|
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: "
|
|
125
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
129
126
|
release_id: string;
|
|
130
127
|
};
|
|
131
128
|
database_branch: {
|
|
132
|
-
status: "
|
|
129
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
133
130
|
branch_ref: string;
|
|
134
|
-
data_mode: "
|
|
131
|
+
data_mode: "full_clone" | "schema_only";
|
|
135
132
|
};
|
|
136
133
|
queue_namespace: {
|
|
137
|
-
status: "
|
|
134
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
138
135
|
namespace: string;
|
|
139
136
|
};
|
|
140
137
|
storage_namespace: {
|
|
141
|
-
status: "
|
|
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: "
|
|
147
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
151
148
|
configuration_id: string | null;
|
|
152
149
|
};
|
|
153
150
|
application_activation: {
|
|
154
|
-
status: "
|
|
151
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
155
152
|
activation_id: string | null;
|
|
156
153
|
};
|
|
157
154
|
smoke_test: {
|
|
158
|
-
status: "
|
|
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: "
|
|
188
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
192
189
|
release_id: string;
|
|
193
190
|
};
|
|
194
191
|
database_branch: {
|
|
195
|
-
status: "
|
|
192
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
196
193
|
branch_ref: string;
|
|
197
|
-
data_mode: "
|
|
194
|
+
data_mode: "full_clone" | "schema_only";
|
|
198
195
|
};
|
|
199
196
|
queue_namespace: {
|
|
200
|
-
status: "
|
|
197
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
201
198
|
namespace: string;
|
|
202
199
|
};
|
|
203
200
|
storage_namespace: {
|
|
204
|
-
status: "
|
|
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: "
|
|
210
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
214
211
|
configuration_id: string | null;
|
|
215
212
|
};
|
|
216
213
|
application_activation: {
|
|
217
|
-
status: "
|
|
214
|
+
status: "cleaned" | "failed" | "pending" | "ready";
|
|
218
215
|
activation_id: string | null;
|
|
219
216
|
};
|
|
220
217
|
smoke_test: {
|
|
221
|
-
status: "
|
|
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
|
};
|
|
@@ -45,6 +45,7 @@ export declare function uploadFrontendRelease(http: FrontendReleaseHttp, project
|
|
|
45
45
|
export declare function uploadProjectWebRelease(http: FrontendReleaseHttp, projectRef: string, environmentId: string, deploymentId: string, archivePath: string): Promise<ToolResponse>;
|
|
46
46
|
export declare function uploadFrontendSource(http: FrontendReleaseHttp, projectRef: string, deploymentId: string, archivePath: string): Promise<ToolResponse>;
|
|
47
47
|
export declare function getActiveFrontendRelease(http: FrontendReleaseHttp, projectRef: string, deploymentId: string): Promise<ToolResponse>;
|
|
48
|
+
export declare function verifyFrontendRelease(http: FrontendReleaseHttp, projectRef: string, deploymentId: string): Promise<ToolResponse>;
|
|
48
49
|
export declare function readFrontendReleaseAuthority(http: FrontendReleaseHttp, projectRef: string, deploymentId: string): Promise<ToolResponse>;
|
|
49
50
|
export declare function publishFrontendRelease(http: FrontendReleaseHttp, projectRef: string, deploymentId: string, archiveSource: string | (() => Promise<{
|
|
50
51
|
archivePath: string;
|
|
@@ -19,8 +19,8 @@ export interface RemoteDevToolOptions {
|
|
|
19
19
|
runDatabase?: DatabaseCallback;
|
|
20
20
|
}
|
|
21
21
|
export declare const remoteDevToolSchema: {
|
|
22
|
-
action: Type.TEnum<("
|
|
23
|
-
target: Type.TOptional<Type.TEnum<("
|
|
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.
|
|
3
|
+
"version": "0.112.1",
|
|
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.
|
|
56
|
-
"@supacloud/delivery": "0.23.
|
|
57
|
-
"@supacloud/db": "0.20.
|
|
58
|
-
"typebox": "1.4.
|
|
55
|
+
"@supacloud/compiler": "^0.52.1",
|
|
56
|
+
"@supacloud/delivery": "0.23.1",
|
|
57
|
+
"@supacloud/db": "0.20.2",
|
|
58
|
+
"typebox": "1.4.3"
|
|
59
59
|
},
|
|
60
60
|
"overrides": {
|
|
61
|
-
"@supacloud/contracts": "0.15.
|
|
62
|
-
"@supacloud/delivery": "0.23.
|
|
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.
|
|
68
|
-
"@types/bun": "^1.4.
|
|
67
|
+
"@supacloud/elysia": "0.36.3",
|
|
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"
|