@base44-preview/cli 0.0.1-pr.5.e49d892 → 0.0.1-pr.7.00b57d1
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 +18 -14
- package/dist/cli/commands/auth/login.d.ts.map +1 -1
- package/dist/cli/commands/auth/login.js +28 -58
- package/dist/cli/commands/auth/login.js.map +1 -1
- package/dist/cli/commands/auth/logout.d.ts.map +1 -1
- package/dist/cli/commands/auth/logout.js +2 -12
- package/dist/cli/commands/auth/logout.js.map +1 -1
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
- package/dist/cli/commands/auth/whoami.js +2 -12
- package/dist/cli/commands/auth/whoami.js.map +1 -1
- package/dist/cli/commands/project/show-project.d.ts +3 -0
- package/dist/cli/commands/project/show-project.d.ts.map +1 -0
- package/dist/cli/commands/project/show-project.js +20 -0
- package/dist/cli/commands/project/show-project.js.map +1 -0
- package/dist/cli/index.js +10 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/index.d.ts +1 -0
- package/dist/cli/utils/index.d.ts.map +1 -1
- package/dist/cli/utils/index.js +1 -0
- package/dist/cli/utils/index.js.map +1 -1
- package/dist/cli/utils/packageVersion.js +3 -3
- package/dist/cli/utils/packageVersion.js.map +1 -1
- package/dist/cli/utils/runCommand.d.ts.map +1 -1
- package/dist/cli/utils/runCommand.js +11 -1
- package/dist/cli/utils/runCommand.js.map +1 -1
- package/dist/cli/utils/runTask.d.ts +14 -0
- package/dist/cli/utils/runTask.d.ts.map +1 -0
- package/dist/cli/utils/runTask.js +24 -0
- package/dist/cli/utils/runTask.js.map +1 -0
- package/dist/core/api/auth/client.d.ts +1 -1
- package/dist/core/api/auth/client.d.ts.map +1 -1
- package/dist/core/api/auth/client.js +4 -4
- package/dist/core/api/auth/client.js.map +1 -1
- package/dist/core/api/auth/index.d.ts +3 -3
- package/dist/core/api/auth/index.js +3 -3
- package/dist/core/api/auth/schema.d.ts +1 -1
- package/dist/core/api/auth/schema.js +8 -8
- package/dist/core/api/index.d.ts +1 -1
- package/dist/core/api/index.js +1 -1
- package/dist/core/config/auth.d.ts +1 -1
- package/dist/core/config/auth.d.ts.map +1 -1
- package/dist/core/config/auth.js +5 -5
- package/dist/core/config/auth.js.map +1 -1
- package/dist/core/config/entities.d.ts +3 -0
- package/dist/core/config/entities.d.ts.map +1 -0
- package/dist/core/config/entities.js +25 -0
- package/dist/core/config/entities.js.map +1 -0
- package/dist/core/config/functions.d.ts +4 -0
- package/dist/core/config/functions.d.ts.map +1 -0
- package/dist/core/config/functions.js +26 -0
- package/dist/core/config/functions.js.map +1 -0
- package/dist/core/config/index.d.ts +5 -2
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +5 -2
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/project.d.ts +15 -0
- package/dist/core/config/project.d.ts.map +1 -0
- package/dist/core/config/project.js +61 -0
- package/dist/core/config/project.js.map +1 -0
- package/dist/core/consts.d.ts +6 -0
- package/dist/core/consts.d.ts.map +1 -0
- package/dist/core/consts.js +19 -0
- package/dist/core/consts.js.map +1 -0
- package/dist/core/errors/index.d.ts +1 -1
- package/dist/core/errors/index.js +1 -1
- package/dist/core/index.d.ts +5 -5
- package/dist/core/index.js +5 -5
- package/dist/core/schemas/auth.d.ts +1 -1
- package/dist/core/schemas/auth.js +3 -3
- package/dist/core/schemas/config.d.ts +22 -0
- package/dist/core/schemas/config.d.ts.map +1 -0
- package/dist/core/schemas/config.js +14 -0
- package/dist/core/schemas/config.js.map +1 -0
- package/dist/core/schemas/entity.d.ts +47 -0
- package/dist/core/schemas/entity.d.ts.map +1 -0
- package/dist/core/schemas/entity.js +29 -0
- package/dist/core/schemas/entity.js.map +1 -0
- package/dist/core/schemas/function.d.ts +91 -0
- package/dist/core/schemas/function.d.ts.map +1 -0
- package/dist/core/schemas/function.js +36 -0
- package/dist/core/schemas/function.js.map +1 -0
- package/dist/core/schemas/index.d.ts +5 -1
- package/dist/core/schemas/index.d.ts.map +1 -1
- package/dist/core/schemas/index.js +5 -1
- package/dist/core/schemas/index.js.map +1 -1
- package/dist/core/schemas/project.d.ts +14 -0
- package/dist/core/schemas/project.d.ts.map +1 -0
- package/dist/core/schemas/project.js +9 -0
- package/dist/core/schemas/project.js.map +1 -0
- package/dist/core/utils/fs.d.ts +1 -1
- package/dist/core/utils/fs.d.ts.map +1 -1
- package/dist/core/utils/fs.js +21 -11
- package/dist/core/utils/fs.js.map +1 -1
- package/dist/core/utils/index.d.ts +1 -1
- package/dist/core/utils/index.js +1 -1
- package/package.json +11 -4
- package/dist/core/config/constants.d.ts +0 -4
- package/dist/core/config/constants.d.ts.map +0 -1
- package/dist/core/config/constants.js +0 -6
- package/dist/core/config/constants.js.map +0 -1
package/dist/core/config/auth.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AuthDataSchema } from "../schemas/auth.js";
|
|
2
|
-
import {
|
|
3
|
-
import { readJsonFile, writeJsonFile, deleteFile
|
|
2
|
+
import { getAuthFilePath } from "../consts.js";
|
|
3
|
+
import { readJsonFile, writeJsonFile, deleteFile } from "../utils/fs.js";
|
|
4
4
|
export async function readAuth() {
|
|
5
5
|
try {
|
|
6
|
-
const parsed = await readJsonFile(
|
|
6
|
+
const parsed = await readJsonFile(getAuthFilePath());
|
|
7
7
|
const result = AuthDataSchema.safeParse(parsed);
|
|
8
8
|
if (!result.success) {
|
|
9
9
|
throw new Error(`Invalid authentication data: ${result.error.issues
|
|
@@ -30,7 +30,7 @@ export async function writeAuth(authData) {
|
|
|
30
30
|
.join(", ")}`);
|
|
31
31
|
}
|
|
32
32
|
try {
|
|
33
|
-
await writeJsonFile(
|
|
33
|
+
await writeJsonFile(getAuthFilePath(), result.data);
|
|
34
34
|
}
|
|
35
35
|
catch (error) {
|
|
36
36
|
throw new Error(`Failed to write authentication file: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -38,7 +38,7 @@ export async function writeAuth(authData) {
|
|
|
38
38
|
}
|
|
39
39
|
export async function deleteAuth() {
|
|
40
40
|
try {
|
|
41
|
-
await deleteFile(
|
|
41
|
+
await deleteFile(getAuthFilePath());
|
|
42
42
|
}
|
|
43
43
|
catch (error) {
|
|
44
44
|
throw new Error(`Failed to delete authentication file: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IAChD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM;aAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/core/config/entities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAkBnD,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe5E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { globby } from "globby";
|
|
2
|
+
import { EntitySchema } from "../schemas/entity.js";
|
|
3
|
+
import { readJsonFile, pathExists } from "../utils/fs.js";
|
|
4
|
+
async function readEntityFile(entityPath) {
|
|
5
|
+
const parsed = await readJsonFile(entityPath);
|
|
6
|
+
const result = EntitySchema.safeParse(parsed);
|
|
7
|
+
if (!result.success) {
|
|
8
|
+
throw new Error(`Invalid entity configuration in ${entityPath}: ${result.error.issues
|
|
9
|
+
.map((e) => e.message)
|
|
10
|
+
.join(", ")}`);
|
|
11
|
+
}
|
|
12
|
+
return result.data;
|
|
13
|
+
}
|
|
14
|
+
export async function readAllEntities(entitiesDir) {
|
|
15
|
+
if (!(await pathExists(entitiesDir))) {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
const files = await globby("*.{json,jsonc}", {
|
|
19
|
+
cwd: entitiesDir,
|
|
20
|
+
absolute: true,
|
|
21
|
+
});
|
|
22
|
+
const entities = await Promise.all(files.map((filePath) => readEntityFile(filePath)));
|
|
23
|
+
return entities;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/core/config/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,KAAK,UAAU,cAAc,CAAC,UAAkB;IAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE;QAC3C,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FunctionConfig } from "../schemas/function.js";
|
|
2
|
+
export declare function readFunctionConfig(configPath: string): Promise<FunctionConfig>;
|
|
3
|
+
export declare function readAllFunctions(functionsDir: string): Promise<FunctionConfig[]>;
|
|
4
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/core/config/functions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC,CAe3B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { globby } from "globby";
|
|
2
|
+
import { FunctionConfigSchema } from "../schemas/function.js";
|
|
3
|
+
import { FUNCTION_CONFIG_FILE } from "../consts.js";
|
|
4
|
+
import { readJsonFile, pathExists } from "../utils/fs.js";
|
|
5
|
+
export async function readFunctionConfig(configPath) {
|
|
6
|
+
const parsed = await readJsonFile(configPath);
|
|
7
|
+
const result = FunctionConfigSchema.safeParse(parsed);
|
|
8
|
+
if (!result.success) {
|
|
9
|
+
throw new Error(`Invalid function configuration in ${configPath}: ${result.error.issues
|
|
10
|
+
.map((e) => e.message)
|
|
11
|
+
.join(", ")}`);
|
|
12
|
+
}
|
|
13
|
+
return result.data;
|
|
14
|
+
}
|
|
15
|
+
export async function readAllFunctions(functionsDir) {
|
|
16
|
+
if (!(await pathExists(functionsDir))) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
const configFiles = await globby(`*/${FUNCTION_CONFIG_FILE}`, {
|
|
20
|
+
cwd: functionsDir,
|
|
21
|
+
absolute: true,
|
|
22
|
+
});
|
|
23
|
+
const functionConfigs = await Promise.all(configFiles.map((configPath) => readFunctionConfig(configPath)));
|
|
24
|
+
return functionConfigs;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/core/config/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;aACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB;IAEpB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,oBAAoB,EAAE,EAAE;QAC5D,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAChE,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ProjectWithPaths } from "../schemas/project.js";
|
|
2
|
+
import type { Entity } from "../schemas/entity.js";
|
|
3
|
+
import type { FunctionConfig } from "../schemas/function.js";
|
|
4
|
+
export interface ProjectRoot {
|
|
5
|
+
root: string;
|
|
6
|
+
configPath: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ProjectData {
|
|
9
|
+
project: ProjectWithPaths;
|
|
10
|
+
entities: Entity[];
|
|
11
|
+
functions: FunctionConfig[];
|
|
12
|
+
}
|
|
13
|
+
export declare function findProjectRoot(startPath?: string): Promise<ProjectRoot | null>;
|
|
14
|
+
export declare function readProjectConfig(projectRoot?: string): Promise<ProjectData>;
|
|
15
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/core/config/project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAYD,wBAAsB,eAAe,CACnC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAY7B;AAED,wBAAsB,iBAAiB,CACrC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAyCtB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { join, dirname } from "node:path";
|
|
2
|
+
import { globby } from "globby";
|
|
3
|
+
import { ProjectConfigSchema } from "../schemas/project.js";
|
|
4
|
+
import { getProjectConfigPatterns, PROJECT_SUBDIR } from "../consts.js";
|
|
5
|
+
import { readJsonFile } from "../utils/fs.js";
|
|
6
|
+
import { readAllEntities } from "./entities.js";
|
|
7
|
+
import { readAllFunctions } from "./functions.js";
|
|
8
|
+
// Finds config file in a directory using globby, respecting priority order.
|
|
9
|
+
async function findConfigInDir(dir) {
|
|
10
|
+
const files = await globby(getProjectConfigPatterns(), {
|
|
11
|
+
cwd: dir,
|
|
12
|
+
absolute: true,
|
|
13
|
+
});
|
|
14
|
+
return files[0] ?? null;
|
|
15
|
+
}
|
|
16
|
+
// Walks up the directory tree to locate a Base44 project config file.
|
|
17
|
+
export async function findProjectRoot(startPath) {
|
|
18
|
+
let current = startPath || process.cwd();
|
|
19
|
+
while (current !== dirname(current)) {
|
|
20
|
+
const configPath = await findConfigInDir(current);
|
|
21
|
+
if (configPath) {
|
|
22
|
+
return { root: current, configPath };
|
|
23
|
+
}
|
|
24
|
+
current = dirname(current);
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
export async function readProjectConfig(projectRoot) {
|
|
29
|
+
let found;
|
|
30
|
+
if (projectRoot) {
|
|
31
|
+
const configPath = await findConfigInDir(projectRoot);
|
|
32
|
+
found = configPath ? { root: projectRoot, configPath } : null;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
found = await findProjectRoot();
|
|
36
|
+
}
|
|
37
|
+
if (!found) {
|
|
38
|
+
throw new Error(`Project root not found. Please ensure config.jsonc or config.json exists in the project directory or ${PROJECT_SUBDIR}/ subdirectory.`);
|
|
39
|
+
}
|
|
40
|
+
const { root, configPath } = found;
|
|
41
|
+
const parsed = await readJsonFile(configPath);
|
|
42
|
+
const result = ProjectConfigSchema.safeParse(parsed);
|
|
43
|
+
if (!result.success) {
|
|
44
|
+
const errors = result.error.issues.map((e) => e.message).join(", ");
|
|
45
|
+
throw new Error(`Invalid project configuration: ${errors}`);
|
|
46
|
+
}
|
|
47
|
+
const project = result.data;
|
|
48
|
+
const configDir = dirname(configPath);
|
|
49
|
+
const entitiesPath = join(configDir, project.entitySrc);
|
|
50
|
+
const functionsPath = join(configDir, project.functionSrc);
|
|
51
|
+
const [entities, functions] = await Promise.all([
|
|
52
|
+
readAllEntities(entitiesPath),
|
|
53
|
+
readAllFunctions(functionsPath),
|
|
54
|
+
]);
|
|
55
|
+
return {
|
|
56
|
+
project: { ...project, root, configPath },
|
|
57
|
+
entities,
|
|
58
|
+
functions,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/config/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const PROJECT_SUBDIR = "base44";
|
|
2
|
+
export declare const FUNCTION_CONFIG_FILE = "function.jsonc";
|
|
3
|
+
export declare function getBase44Dir(): string;
|
|
4
|
+
export declare function getAuthFilePath(): string;
|
|
5
|
+
export declare function getProjectConfigPatterns(): string[];
|
|
6
|
+
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/core/consts.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,wBAAgB,YAAY,WAE3B;AAED,wBAAgB,eAAe,WAE9B;AAED,wBAAgB,wBAAwB,aAOvC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
export const PROJECT_SUBDIR = "base44";
|
|
4
|
+
export const FUNCTION_CONFIG_FILE = "function.jsonc";
|
|
5
|
+
export function getBase44Dir() {
|
|
6
|
+
return join(homedir(), ".base44");
|
|
7
|
+
}
|
|
8
|
+
export function getAuthFilePath() {
|
|
9
|
+
return join(getBase44Dir(), "auth", "auth.json");
|
|
10
|
+
}
|
|
11
|
+
export function getProjectConfigPatterns() {
|
|
12
|
+
return [
|
|
13
|
+
`${PROJECT_SUBDIR}/config.jsonc`,
|
|
14
|
+
`${PROJECT_SUBDIR}/config.json`,
|
|
15
|
+
"config.jsonc",
|
|
16
|
+
"config.json",
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/core/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,GAAG,cAAc,eAAe;QAChC,GAAG,cAAc,cAAc;QAC/B,cAAc;QACd,aAAa;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./errors.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./errors.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
1
|
+
export * from "./schemas/index.js";
|
|
2
|
+
export * from "./config/index.js";
|
|
3
|
+
export * from "./utils/index.js";
|
|
4
|
+
export * from "./api/index.js";
|
|
5
|
+
export * from "./errors/index.js";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
1
|
+
export * from "./schemas/index.js";
|
|
2
|
+
export * from "./config/index.js";
|
|
3
|
+
export * from "./utils/index.js";
|
|
4
|
+
export * from "./api/index.js";
|
|
5
|
+
export * from "./errors/index.js";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
export const AuthDataSchema = z.object({
|
|
3
|
-
token: z.string().min(1,
|
|
3
|
+
token: z.string().min(1, "Token cannot be empty"),
|
|
4
4
|
email: z.email(),
|
|
5
|
-
name: z.string().min(1,
|
|
5
|
+
name: z.string().min(1, "Name cannot be empty"),
|
|
6
6
|
});
|
|
7
7
|
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const SiteConfigSchema: z.ZodObject<{
|
|
3
|
+
buildCommand: z.ZodOptional<z.ZodString>;
|
|
4
|
+
serveCommand: z.ZodOptional<z.ZodString>;
|
|
5
|
+
outputDirectory: z.ZodOptional<z.ZodString>;
|
|
6
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export declare const AppConfigSchema: z.ZodObject<{
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
description: z.ZodOptional<z.ZodString>;
|
|
11
|
+
site: z.ZodOptional<z.ZodObject<{
|
|
12
|
+
buildCommand: z.ZodOptional<z.ZodString>;
|
|
13
|
+
serveCommand: z.ZodOptional<z.ZodString>;
|
|
14
|
+
outputDirectory: z.ZodOptional<z.ZodString>;
|
|
15
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, z.core.$strip>>;
|
|
17
|
+
domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
export type SiteConfig = z.infer<typeof SiteConfigSchema>;
|
|
20
|
+
export type AppConfig = z.infer<typeof AppConfigSchema>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,gBAAgB;;;;;iBAKpB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;iBAK1B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const SiteConfigSchema = z.object({
|
|
3
|
+
buildCommand: z.string().optional(),
|
|
4
|
+
serveCommand: z.string().optional(),
|
|
5
|
+
outputDirectory: z.string().optional(),
|
|
6
|
+
installCommand: z.string().optional(),
|
|
7
|
+
});
|
|
8
|
+
export const AppConfigSchema = z.object({
|
|
9
|
+
name: z.string().min(1, "App name cannot be empty"),
|
|
10
|
+
description: z.string().optional(),
|
|
11
|
+
site: SiteConfigSchema.optional(),
|
|
12
|
+
domains: z.array(z.string()).optional(),
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const EntityPropertySchema: z.ZodObject<{
|
|
3
|
+
type: z.ZodString;
|
|
4
|
+
description: z.ZodOptional<z.ZodString>;
|
|
5
|
+
enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6
|
+
default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
7
|
+
format: z.ZodOptional<z.ZodString>;
|
|
8
|
+
items: z.ZodOptional<z.ZodAny>;
|
|
9
|
+
relation: z.ZodOptional<z.ZodObject<{
|
|
10
|
+
entity: z.ZodString;
|
|
11
|
+
type: z.ZodString;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
declare const EntityPoliciesSchema: z.ZodObject<{
|
|
15
|
+
read: z.ZodOptional<z.ZodString>;
|
|
16
|
+
create: z.ZodOptional<z.ZodString>;
|
|
17
|
+
update: z.ZodOptional<z.ZodString>;
|
|
18
|
+
delete: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const EntitySchema: z.ZodObject<{
|
|
21
|
+
name: z.ZodString;
|
|
22
|
+
type: z.ZodLiteral<"object">;
|
|
23
|
+
properties: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
24
|
+
type: z.ZodString;
|
|
25
|
+
description: z.ZodOptional<z.ZodString>;
|
|
26
|
+
enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
28
|
+
format: z.ZodOptional<z.ZodString>;
|
|
29
|
+
items: z.ZodOptional<z.ZodAny>;
|
|
30
|
+
relation: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
entity: z.ZodString;
|
|
32
|
+
type: z.ZodString;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
}, z.core.$strip>>;
|
|
35
|
+
required: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
|
+
policies: z.ZodOptional<z.ZodObject<{
|
|
37
|
+
read: z.ZodOptional<z.ZodString>;
|
|
38
|
+
create: z.ZodOptional<z.ZodString>;
|
|
39
|
+
update: z.ZodOptional<z.ZodString>;
|
|
40
|
+
delete: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
}, z.core.$strip>;
|
|
43
|
+
export type EntityProperty = z.infer<typeof EntityPropertySchema>;
|
|
44
|
+
export type EntityPolicies = z.infer<typeof EntityPoliciesSchema>;
|
|
45
|
+
export type Entity = z.infer<typeof EntitySchema>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,oBAAoB;;;;;;;;;;;iBAaxB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;iBAKxB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;iBAMvB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const EntityPropertySchema = z.object({
|
|
3
|
+
type: z.string(),
|
|
4
|
+
description: z.string().optional(),
|
|
5
|
+
enum: z.array(z.string()).optional(),
|
|
6
|
+
default: z.union([z.string(), z.number(), z.boolean()]).optional(),
|
|
7
|
+
format: z.string().optional(),
|
|
8
|
+
items: z.any().optional(),
|
|
9
|
+
relation: z
|
|
10
|
+
.object({
|
|
11
|
+
entity: z.string(),
|
|
12
|
+
type: z.string(),
|
|
13
|
+
})
|
|
14
|
+
.optional(),
|
|
15
|
+
});
|
|
16
|
+
const EntityPoliciesSchema = z.object({
|
|
17
|
+
read: z.string().optional(),
|
|
18
|
+
create: z.string().optional(),
|
|
19
|
+
update: z.string().optional(),
|
|
20
|
+
delete: z.string().optional(),
|
|
21
|
+
});
|
|
22
|
+
export const EntitySchema = z.object({
|
|
23
|
+
name: z.string().min(1, "Entity name cannot be empty"),
|
|
24
|
+
type: z.literal("object"),
|
|
25
|
+
properties: z.record(z.string(), EntityPropertySchema),
|
|
26
|
+
required: z.array(z.string()).optional(),
|
|
27
|
+
policies: EntityPoliciesSchema.optional(),
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/schemas/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACzB,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const HttpTriggerSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodOptional<z.ZodString>;
|
|
4
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5
|
+
description: z.ZodOptional<z.ZodString>;
|
|
6
|
+
type: z.ZodLiteral<"http">;
|
|
7
|
+
path: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
declare const ScheduleTriggerSchema: z.ZodObject<{
|
|
10
|
+
id: z.ZodOptional<z.ZodString>;
|
|
11
|
+
name: z.ZodOptional<z.ZodString>;
|
|
12
|
+
description: z.ZodOptional<z.ZodString>;
|
|
13
|
+
type: z.ZodLiteral<"schedule">;
|
|
14
|
+
scheduleMode: z.ZodOptional<z.ZodEnum<{
|
|
15
|
+
recurring: "recurring";
|
|
16
|
+
once: "once";
|
|
17
|
+
}>>;
|
|
18
|
+
cron: z.ZodString;
|
|
19
|
+
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
declare const EventTriggerSchema: z.ZodObject<{
|
|
23
|
+
id: z.ZodOptional<z.ZodString>;
|
|
24
|
+
name: z.ZodOptional<z.ZodString>;
|
|
25
|
+
description: z.ZodOptional<z.ZodString>;
|
|
26
|
+
type: z.ZodLiteral<"event">;
|
|
27
|
+
entity: z.ZodString;
|
|
28
|
+
event: z.ZodString;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
declare const TriggerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
31
|
+
id: z.ZodOptional<z.ZodString>;
|
|
32
|
+
name: z.ZodOptional<z.ZodString>;
|
|
33
|
+
description: z.ZodOptional<z.ZodString>;
|
|
34
|
+
type: z.ZodLiteral<"http">;
|
|
35
|
+
path: z.ZodString;
|
|
36
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
37
|
+
id: z.ZodOptional<z.ZodString>;
|
|
38
|
+
name: z.ZodOptional<z.ZodString>;
|
|
39
|
+
description: z.ZodOptional<z.ZodString>;
|
|
40
|
+
type: z.ZodLiteral<"schedule">;
|
|
41
|
+
scheduleMode: z.ZodOptional<z.ZodEnum<{
|
|
42
|
+
recurring: "recurring";
|
|
43
|
+
once: "once";
|
|
44
|
+
}>>;
|
|
45
|
+
cron: z.ZodString;
|
|
46
|
+
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
49
|
+
id: z.ZodOptional<z.ZodString>;
|
|
50
|
+
name: z.ZodOptional<z.ZodString>;
|
|
51
|
+
description: z.ZodOptional<z.ZodString>;
|
|
52
|
+
type: z.ZodLiteral<"event">;
|
|
53
|
+
entity: z.ZodString;
|
|
54
|
+
event: z.ZodString;
|
|
55
|
+
}, z.core.$strip>], "type">;
|
|
56
|
+
export declare const FunctionConfigSchema: z.ZodObject<{
|
|
57
|
+
entry: z.ZodString;
|
|
58
|
+
triggers: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
59
|
+
id: z.ZodOptional<z.ZodString>;
|
|
60
|
+
name: z.ZodOptional<z.ZodString>;
|
|
61
|
+
description: z.ZodOptional<z.ZodString>;
|
|
62
|
+
type: z.ZodLiteral<"http">;
|
|
63
|
+
path: z.ZodString;
|
|
64
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
65
|
+
id: z.ZodOptional<z.ZodString>;
|
|
66
|
+
name: z.ZodOptional<z.ZodString>;
|
|
67
|
+
description: z.ZodOptional<z.ZodString>;
|
|
68
|
+
type: z.ZodLiteral<"schedule">;
|
|
69
|
+
scheduleMode: z.ZodOptional<z.ZodEnum<{
|
|
70
|
+
recurring: "recurring";
|
|
71
|
+
once: "once";
|
|
72
|
+
}>>;
|
|
73
|
+
cron: z.ZodString;
|
|
74
|
+
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
75
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
77
|
+
id: z.ZodOptional<z.ZodString>;
|
|
78
|
+
name: z.ZodOptional<z.ZodString>;
|
|
79
|
+
description: z.ZodOptional<z.ZodString>;
|
|
80
|
+
type: z.ZodLiteral<"event">;
|
|
81
|
+
entity: z.ZodString;
|
|
82
|
+
event: z.ZodString;
|
|
83
|
+
}, z.core.$strip>], "type">>>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export type HttpTrigger = z.infer<typeof HttpTriggerSchema>;
|
|
86
|
+
export type ScheduleTrigger = z.infer<typeof ScheduleTriggerSchema>;
|
|
87
|
+
export type EventTrigger = z.infer<typeof EventTriggerSchema>;
|
|
88
|
+
export type Trigger = z.infer<typeof TriggerSchema>;
|
|
89
|
+
export type FunctionConfig = z.infer<typeof FunctionConfigSchema>;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,iBAAiB;;;;;;iBAMrB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;iBASzB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;iBAOtB,CAAC;AAEH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;2BAIjB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG/B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const HttpTriggerSchema = z.object({
|
|
3
|
+
id: z.string().optional(),
|
|
4
|
+
name: z.string().optional(),
|
|
5
|
+
description: z.string().optional(),
|
|
6
|
+
type: z.literal("http"),
|
|
7
|
+
path: z.string().min(1, "Path cannot be empty"),
|
|
8
|
+
});
|
|
9
|
+
const ScheduleTriggerSchema = z.object({
|
|
10
|
+
id: z.string().optional(),
|
|
11
|
+
name: z.string().optional(),
|
|
12
|
+
description: z.string().optional(),
|
|
13
|
+
type: z.literal("schedule"),
|
|
14
|
+
scheduleMode: z.enum(["recurring", "once"]).optional(),
|
|
15
|
+
cron: z.string().min(1, "Cron expression cannot be empty"),
|
|
16
|
+
isActive: z.boolean().optional(),
|
|
17
|
+
timezone: z.string().optional(),
|
|
18
|
+
});
|
|
19
|
+
const EventTriggerSchema = z.object({
|
|
20
|
+
id: z.string().optional(),
|
|
21
|
+
name: z.string().optional(),
|
|
22
|
+
description: z.string().optional(),
|
|
23
|
+
type: z.literal("event"),
|
|
24
|
+
entity: z.string().min(1, "Entity name cannot be empty"),
|
|
25
|
+
event: z.string().min(1, "Event type cannot be empty"),
|
|
26
|
+
});
|
|
27
|
+
const TriggerSchema = z.discriminatedUnion("type", [
|
|
28
|
+
HttpTriggerSchema,
|
|
29
|
+
ScheduleTriggerSchema,
|
|
30
|
+
EventTriggerSchema,
|
|
31
|
+
]);
|
|
32
|
+
export const FunctionConfigSchema = z.object({
|
|
33
|
+
entry: z.string().min(1, "Entry point cannot be empty"),
|
|
34
|
+
triggers: z.array(TriggerSchema).optional(),
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/core/schemas/function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACjD,iBAAiB;IACjB,qBAAqB;IACrB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|