@supacloud/cli 0.105.0 → 0.106.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/dist/index.js
CHANGED
|
@@ -21588,16 +21588,16 @@ var starter_metadata_default = {
|
|
|
21588
21588
|
generatedBy: "supacloud/starter-metadata-v1",
|
|
21589
21589
|
packages: {
|
|
21590
21590
|
compiler: {
|
|
21591
|
-
version: "0.
|
|
21591
|
+
version: "0.50.0"
|
|
21592
21592
|
},
|
|
21593
21593
|
app: {
|
|
21594
|
-
version: "0.
|
|
21594
|
+
version: "0.31.0",
|
|
21595
21595
|
dependencies: {
|
|
21596
21596
|
rxjs: "7.8.2"
|
|
21597
21597
|
}
|
|
21598
21598
|
},
|
|
21599
21599
|
elysia: {
|
|
21600
|
-
version: "0.35.
|
|
21600
|
+
version: "0.35.1"
|
|
21601
21601
|
},
|
|
21602
21602
|
commands: {
|
|
21603
21603
|
version: "0.11.0"
|
|
@@ -21615,7 +21615,7 @@ var starter_metadata_default = {
|
|
|
21615
21615
|
}
|
|
21616
21616
|
},
|
|
21617
21617
|
sdk: {
|
|
21618
|
-
version: "0.45.
|
|
21618
|
+
version: "0.45.1",
|
|
21619
21619
|
peerDependencies: {
|
|
21620
21620
|
"@supabase/supabase-js": "^2.117.3"
|
|
21621
21621
|
}
|
|
@@ -26253,7 +26253,7 @@ test("${name} controller preserves an asynchronous read failure", async () => {
|
|
|
26253
26253
|
// src/shared/tools/app-feature.ts
|
|
26254
26254
|
function featureScaffold(name, className, governance) {
|
|
26255
26255
|
const commandName = `${name}.approve`;
|
|
26256
|
-
const { permission, rpc } = governance;
|
|
26256
|
+
const { permission, rpc, database } = governance;
|
|
26257
26257
|
return {
|
|
26258
26258
|
[`${name}.contracts.ts`]: `import { t } from "elysia";
|
|
26259
26259
|
|
|
@@ -26449,6 +26449,7 @@ import type {
|
|
|
26449
26449
|
export const featureSpec = defineFeatureSpec({
|
|
26450
26450
|
name: ${JSON.stringify(name)},
|
|
26451
26451
|
states: ["draft", "approved"],
|
|
26452
|
+
database: ${JSON.stringify(database)},
|
|
26452
26453
|
tenantField: "tenant_id",
|
|
26453
26454
|
transitions: {
|
|
26454
26455
|
approve: {
|
|
@@ -27415,6 +27416,12 @@ function requireFeatureCapability(value, flag) {
|
|
|
27415
27416
|
}
|
|
27416
27417
|
return value;
|
|
27417
27418
|
}
|
|
27419
|
+
function requireFeatureDatabase(value, flag, pattern) {
|
|
27420
|
+
if (typeof value !== "string" || !pattern.test(value)) {
|
|
27421
|
+
throw new ScaffoldError("SCAFFOLD_OPTION_INVALID", `feature requires an explicit valid --${flag}`);
|
|
27422
|
+
}
|
|
27423
|
+
return value;
|
|
27424
|
+
}
|
|
27418
27425
|
function moduleScaffold(name) {
|
|
27419
27426
|
return `import { Module } from "@supacloud/app";
|
|
27420
27427
|
|
|
@@ -27513,7 +27520,12 @@ async function generateScaffold(args) {
|
|
|
27513
27520
|
}
|
|
27514
27521
|
const featureGovernance = kind === "feature" ? {
|
|
27515
27522
|
permission: requireFeatureCapability(args.permission, "permission"),
|
|
27516
|
-
rpc: requireFeatureCapability(args.rpc, "rpc")
|
|
27523
|
+
rpc: requireFeatureCapability(args.rpc, "rpc"),
|
|
27524
|
+
database: {
|
|
27525
|
+
source: requireFeatureDatabase(args.database_source, "database-source", /^(?!\/)(?!.*\\)(?!.*(?:^|\/)\.\.(?:\/|$))[A-Za-z0-9._/-]+$/),
|
|
27526
|
+
table: requireFeatureDatabase(args.database_table, "database-table", /^[A-Za-z_][A-Za-z0-9_]*\.[A-Za-z_][A-Za-z0-9_]*$/),
|
|
27527
|
+
rowType: requireFeatureDatabase(args.database_type, "database-type", /^[A-Za-z_$][A-Za-z0-9_$]*(?:\.[A-Za-z_$][A-Za-z0-9_$]*)*$/)
|
|
27528
|
+
}
|
|
27517
27529
|
} : undefined;
|
|
27518
27530
|
const writes = [];
|
|
27519
27531
|
let modulePath;
|
|
@@ -28791,7 +28803,7 @@ Execution: skipped`);
|
|
|
28791
28803
|
return format === "json" || json ? result : formatPromotionExecution(result);
|
|
28792
28804
|
}
|
|
28793
28805
|
async function runAppTool(request, options = {}) {
|
|
28794
|
-
if (request.dry_run !== undefined && request["dry-run"] !== undefined || request.register_in !== undefined && request["register-in"] !== undefined || request.database_url !== undefined && request["database-url"] !== undefined || request.request_id !== undefined && request["request-id"] !== undefined) {
|
|
28806
|
+
if (request.dry_run !== undefined && request["dry-run"] !== undefined || request.register_in !== undefined && request["register-in"] !== undefined || request.database_url !== undefined && request["database-url"] !== undefined || request.database_source !== undefined && request["database-source"] !== undefined || request.database_table !== undefined && request["database-table"] !== undefined || request.database_type !== undefined && request["database-type"] !== undefined || request.request_id !== undefined && request["request-id"] !== undefined) {
|
|
28795
28807
|
throw new ScaffoldError("SCAFFOLD_OPTION_INVALID", "Do not combine hyphenated and underscored aliases of the same flag");
|
|
28796
28808
|
}
|
|
28797
28809
|
request = {
|
|
@@ -28799,6 +28811,9 @@ async function runAppTool(request, options = {}) {
|
|
|
28799
28811
|
...request["dry-run"] === undefined ? {} : { dry_run: request["dry-run"] },
|
|
28800
28812
|
...request["register-in"] === undefined ? {} : { register_in: request["register-in"] },
|
|
28801
28813
|
...request["database-url"] === undefined ? {} : { database_url: request["database-url"] },
|
|
28814
|
+
...request["database-source"] === undefined ? {} : { database_source: request["database-source"] },
|
|
28815
|
+
...request["database-table"] === undefined ? {} : { database_table: request["database-table"] },
|
|
28816
|
+
...request["database-type"] === undefined ? {} : { database_type: request["database-type"] },
|
|
28802
28817
|
...request["request-id"] === undefined ? {} : { request_id: request["request-id"] }
|
|
28803
28818
|
};
|
|
28804
28819
|
if (request.events !== undefined || request.request_id !== undefined) {
|
|
@@ -28974,6 +28989,12 @@ function registerAppTools(server, options = {}) {
|
|
|
28974
28989
|
module: optional(String2(), "[generate] Target feature module (required for command/query/controller)"),
|
|
28975
28990
|
permission: optional(String2(), "[generate feature] Explicit approval permission; not inferred from name"),
|
|
28976
28991
|
rpc: optional(String2(), "[generate feature] Explicit durable RPC capability; must be registered by the host"),
|
|
28992
|
+
database_source: optional(String2(), "[generate feature] Project-relative database source path"),
|
|
28993
|
+
database_table: optional(String2(), "[generate feature] Schema-qualified table owned by the feature"),
|
|
28994
|
+
database_type: optional(String2(), "[generate feature] Exported row type derived from the database source"),
|
|
28995
|
+
"database-source": optional(String2(), "[generate feature] CLI alias of database_source"),
|
|
28996
|
+
"database-table": optional(String2(), "[generate feature] CLI alias of database_table"),
|
|
28997
|
+
"database-type": optional(String2(), "[generate feature] CLI alias of database_type"),
|
|
28977
28998
|
dir: optional(String2(), "[generate] Feature root directory (default: src/features)"),
|
|
28978
28999
|
force: optional(Boolean2(), "[generate] Overwrite a single regular file; resource/feature/controller never overwrite"),
|
|
28979
29000
|
dry_run: optional(Boolean2(), "[generate] Validate and preview the complete change set without writing"),
|
|
@@ -29008,6 +29029,12 @@ function registerAppAliases(server) {
|
|
|
29008
29029
|
module: optional(String2(), "[generate] Target feature module"),
|
|
29009
29030
|
permission: optional(String2(), "[generate feature] Explicit approval permission; not inferred from name"),
|
|
29010
29031
|
rpc: optional(String2(), "[generate feature] Explicit durable RPC capability; must be registered by the host"),
|
|
29032
|
+
database_source: optional(String2(), "[generate feature] Project-relative database source path"),
|
|
29033
|
+
database_table: optional(String2(), "[generate feature] Schema-qualified table owned by the feature"),
|
|
29034
|
+
database_type: optional(String2(), "[generate feature] Exported row type derived from the database source"),
|
|
29035
|
+
"database-source": optional(String2(), "[generate feature] CLI alias of database_source"),
|
|
29036
|
+
"database-table": optional(String2(), "[generate feature] CLI alias of database_table"),
|
|
29037
|
+
"database-type": optional(String2(), "[generate feature] CLI alias of database_type"),
|
|
29011
29038
|
dir: optional(String2(), "[generate] Feature root directory (default: src/features)"),
|
|
29012
29039
|
force: optional(Boolean2(), "[generate] Overwrite a single regular file; resource/feature/controller never overwrite"),
|
|
29013
29040
|
dry_run: optional(Boolean2(), "[generate] Validate and preview the complete change set without writing"),
|
|
@@ -32726,7 +32753,7 @@ async function runProjectDeployment(http, args) {
|
|
|
32726
32753
|
// package.json
|
|
32727
32754
|
var package_default = {
|
|
32728
32755
|
name: "@supacloud/cli",
|
|
32729
|
-
version: "0.
|
|
32756
|
+
version: "0.106.1",
|
|
32730
32757
|
description: "Project-scoped CLI for SupaCloud users",
|
|
32731
32758
|
type: "module",
|
|
32732
32759
|
main: "./dist/index.js",
|
|
@@ -32778,7 +32805,7 @@ var package_default = {
|
|
|
32778
32805
|
directory: "packages/cli"
|
|
32779
32806
|
},
|
|
32780
32807
|
dependencies: {
|
|
32781
|
-
"@supacloud/compiler": "^0.
|
|
32808
|
+
"@supacloud/compiler": "^0.50.0",
|
|
32782
32809
|
"@supacloud/delivery": "0.21.0",
|
|
32783
32810
|
"@supacloud/db": "0.20.0",
|
|
32784
32811
|
typebox: "1.3.37"
|
|
@@ -32789,8 +32816,8 @@ var package_default = {
|
|
|
32789
32816
|
"@graphql-tools/utils": "^12.0.4"
|
|
32790
32817
|
},
|
|
32791
32818
|
devDependencies: {
|
|
32792
|
-
"@supabase/supabase-js": "2.
|
|
32793
|
-
"@supacloud/elysia": "0.35.
|
|
32819
|
+
"@supabase/supabase-js": "2.118.0",
|
|
32820
|
+
"@supacloud/elysia": "0.35.1",
|
|
32794
32821
|
"@types/bun": "^1.4.3",
|
|
32795
32822
|
effect: "4.0.5",
|
|
32796
32823
|
elysia: "2.0.0-beta.32",
|
|
@@ -72,6 +72,12 @@ export interface AppToolArguments {
|
|
|
72
72
|
module?: string;
|
|
73
73
|
permission?: string;
|
|
74
74
|
rpc?: string;
|
|
75
|
+
database_source?: string;
|
|
76
|
+
database_table?: string;
|
|
77
|
+
database_type?: string;
|
|
78
|
+
"database-source"?: string;
|
|
79
|
+
"database-table"?: string;
|
|
80
|
+
"database-type"?: string;
|
|
75
81
|
dir?: string;
|
|
76
82
|
force?: boolean;
|
|
77
83
|
dry_run?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supacloud/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.106.1",
|
|
4
4
|
"description": "Project-scoped CLI for SupaCloud users",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"directory": "packages/cli"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@supacloud/compiler": "^0.
|
|
55
|
+
"@supacloud/compiler": "^0.50.0",
|
|
56
56
|
"@supacloud/delivery": "0.21.0",
|
|
57
57
|
"@supacloud/db": "0.20.0",
|
|
58
58
|
"typebox": "1.3.37"
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"@graphql-tools/utils": "^12.0.4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@supabase/supabase-js": "2.
|
|
67
|
-
"@supacloud/elysia": "0.35.
|
|
66
|
+
"@supabase/supabase-js": "2.118.0",
|
|
67
|
+
"@supacloud/elysia": "0.35.1",
|
|
68
68
|
"@types/bun": "^1.4.3",
|
|
69
69
|
"effect": "4.0.5",
|
|
70
70
|
"elysia": "2.0.0-beta.32",
|