@base44-preview/cli 0.0.1-pr.5.e49d892 → 0.0.1-pr.7.1d9f5eb
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 +1 -1
- package/dist/core/config/auth.js.map +1 -1
- package/dist/core/config/constants.d.ts +3 -0
- package/dist/core/config/constants.d.ts.map +1 -1
- package/dist/core/config/constants.js +8 -5
- package/dist/core/config/constants.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 +64 -0
- package/dist/core/config/project.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/entity.d.ts +16 -0
- package/dist/core/schemas/entity.d.ts.map +1 -0
- package/dist/core/schemas/entity.js +10 -0
- package/dist/core/schemas/entity.js.map +1 -0
- package/dist/core/schemas/function.d.ts +53 -0
- package/dist/core/schemas/function.d.ts.map +1 -0
- package/dist/core/schemas/function.js +19 -0
- package/dist/core/schemas/function.js.map +1 -0
- package/dist/core/schemas/index.d.ts +4 -1
- package/dist/core/schemas/index.d.ts.map +1 -1
- package/dist/core/schemas/index.js +4 -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 +6 -2
package/dist/core/config/auth.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AuthDataSchema } from "../schemas/auth.js";
|
|
2
2
|
import { AUTH_FILE_PATH } from "./constants.js";
|
|
3
|
-
import { readJsonFile, writeJsonFile, deleteFile
|
|
3
|
+
import { readJsonFile, writeJsonFile, deleteFile } from "../utils/fs.js";
|
|
4
4
|
export async function readAuth() {
|
|
5
5
|
try {
|
|
6
6
|
const parsed = await readJsonFile(AUTH_FILE_PATH);
|
|
@@ -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,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,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,cAAc,CAAC,CAAC;QAClD,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,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,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,cAAc,CAAC,CAAC;IACnC,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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare const BASE44_DIR: string;
|
|
2
2
|
export declare const AUTH_DIR: string;
|
|
3
3
|
export declare const AUTH_FILE_PATH: string;
|
|
4
|
+
export declare const PROJECT_SUBDIR = ".base44";
|
|
5
|
+
export declare const PROJECT_CONFIG_FILE = "config.jsonc";
|
|
6
|
+
export declare const FUNCTION_CONFIG_FILE = "function.jsonc";
|
|
4
7
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/config/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,QAAQ,QAA2B,CAAC;AACjD,eAAO,MAAM,cAAc,QAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/config/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,QAAQ,QAA2B,CAAC;AACjD,eAAO,MAAM,cAAc,QAA8B,CAAC;AAE1D,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { join } from
|
|
2
|
-
import { homedir } from
|
|
3
|
-
export const BASE44_DIR = join(homedir(),
|
|
4
|
-
export const AUTH_DIR = join(BASE44_DIR,
|
|
5
|
-
export const AUTH_FILE_PATH = join(AUTH_DIR,
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
export const BASE44_DIR = join(homedir(), ".base44");
|
|
4
|
+
export const AUTH_DIR = join(BASE44_DIR, "auth");
|
|
5
|
+
export const AUTH_FILE_PATH = join(AUTH_DIR, "auth.json");
|
|
6
|
+
export const PROJECT_SUBDIR = ".base44";
|
|
7
|
+
export const PROJECT_CONFIG_FILE = "config.jsonc";
|
|
8
|
+
export const FUNCTION_CONFIG_FILE = "function.jsonc";
|
|
6
9
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/config/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,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
|
+
throw new Error(`Entities directory not found: ${entitiesDir}`);
|
|
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,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;IAClE,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 "./constants.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
|
+
throw new Error(`Functions directory not found: ${functionsDir}`);
|
|
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,gBAAgB,CAAC;AACtD,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,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;IACpE,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,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,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,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,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":"AACA,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;AAkBD,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,64 @@
|
|
|
1
|
+
import { join, dirname } from "node:path";
|
|
2
|
+
import { ProjectConfigSchema } from "../schemas/project.js";
|
|
3
|
+
import { PROJECT_CONFIG_FILE, PROJECT_SUBDIR } from "./constants.js";
|
|
4
|
+
import { readJsonFile, pathExists } from "../utils/fs.js";
|
|
5
|
+
import { readAllEntities } from "./entities.js";
|
|
6
|
+
import { readAllFunctions } from "./functions.js";
|
|
7
|
+
// Checks for config file in a directory, prioritizing .base44/ subdirectory.
|
|
8
|
+
async function findConfigInDir(dir) {
|
|
9
|
+
const subdirPath = join(dir, PROJECT_SUBDIR, PROJECT_CONFIG_FILE);
|
|
10
|
+
if (await pathExists(subdirPath)) {
|
|
11
|
+
return subdirPath;
|
|
12
|
+
}
|
|
13
|
+
const rootPath = join(dir, PROJECT_CONFIG_FILE);
|
|
14
|
+
if (await pathExists(rootPath)) {
|
|
15
|
+
return rootPath;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
// Walks up the directory tree to locate a Base44 project config file.
|
|
20
|
+
export async function findProjectRoot(startPath) {
|
|
21
|
+
let current = startPath || process.cwd();
|
|
22
|
+
while (current !== dirname(current)) {
|
|
23
|
+
const configPath = await findConfigInDir(current);
|
|
24
|
+
if (configPath) {
|
|
25
|
+
return { root: current, configPath };
|
|
26
|
+
}
|
|
27
|
+
current = dirname(current);
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
export async function readProjectConfig(projectRoot) {
|
|
32
|
+
let found;
|
|
33
|
+
if (projectRoot) {
|
|
34
|
+
const configPath = await findConfigInDir(projectRoot);
|
|
35
|
+
found = configPath ? { root: projectRoot, configPath } : null;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
found = await findProjectRoot();
|
|
39
|
+
}
|
|
40
|
+
if (!found) {
|
|
41
|
+
throw new Error(`Project root not found. Please ensure ${PROJECT_CONFIG_FILE} exists in the project directory or .base44/ subdirectory.`);
|
|
42
|
+
}
|
|
43
|
+
const { root, configPath } = found;
|
|
44
|
+
const parsed = await readJsonFile(configPath);
|
|
45
|
+
const result = ProjectConfigSchema.safeParse(parsed);
|
|
46
|
+
if (!result.success) {
|
|
47
|
+
const errors = result.error.issues.map((e) => e.message).join(", ");
|
|
48
|
+
throw new Error(`Invalid project configuration: ${errors}`);
|
|
49
|
+
}
|
|
50
|
+
const project = result.data;
|
|
51
|
+
const configDir = dirname(configPath);
|
|
52
|
+
const entitiesPath = join(configDir, project.entitySrc);
|
|
53
|
+
const functionsPath = join(configDir, project.functionSrc);
|
|
54
|
+
const [entities, functions] = await Promise.all([
|
|
55
|
+
(await pathExists(entitiesPath)) ? readAllEntities(entitiesPath) : [],
|
|
56
|
+
(await pathExists(functionsPath)) ? readAllFunctions(functionsPath) : [],
|
|
57
|
+
]);
|
|
58
|
+
return {
|
|
59
|
+
project: { ...project, root, configPath },
|
|
60
|
+
entities,
|
|
61
|
+
functions,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# 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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"}
|
|
@@ -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,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const FieldSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
type: z.ZodString;
|
|
5
|
+
}, z.core.$loose>;
|
|
6
|
+
export declare const EntitySchema: z.ZodObject<{
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
type: z.ZodString;
|
|
11
|
+
}, z.core.$loose>>;
|
|
12
|
+
}, z.core.$loose>;
|
|
13
|
+
export type Entity = z.infer<typeof EntitySchema>;
|
|
14
|
+
export type EntityField = z.infer<typeof FieldSchema>;
|
|
15
|
+
export {};
|
|
16
|
+
//# 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,WAAW;;;iBAGf,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;iBAGvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const FieldSchema = z.looseObject({
|
|
3
|
+
name: z.string().min(1, "Field name cannot be empty"),
|
|
4
|
+
type: z.string().min(1, "Field type cannot be empty"),
|
|
5
|
+
});
|
|
6
|
+
export const EntitySchema = z.looseObject({
|
|
7
|
+
name: z.string().min(1, "Entity name cannot be empty"),
|
|
8
|
+
fields: z.array(FieldSchema).min(0),
|
|
9
|
+
});
|
|
10
|
+
//# 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,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const HttpTriggerSchema: z.ZodObject<{
|
|
3
|
+
type: z.ZodLiteral<"http">;
|
|
4
|
+
route: z.ZodString;
|
|
5
|
+
method: z.ZodEnum<{
|
|
6
|
+
GET: "GET";
|
|
7
|
+
POST: "POST";
|
|
8
|
+
PUT: "PUT";
|
|
9
|
+
PATCH: "PATCH";
|
|
10
|
+
DELETE: "DELETE";
|
|
11
|
+
}>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
declare const ScheduleTriggerSchema: z.ZodObject<{
|
|
14
|
+
type: z.ZodLiteral<"schedule">;
|
|
15
|
+
crontab: z.ZodString;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
declare const TriggerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
18
|
+
type: z.ZodLiteral<"http">;
|
|
19
|
+
route: z.ZodString;
|
|
20
|
+
method: z.ZodEnum<{
|
|
21
|
+
GET: "GET";
|
|
22
|
+
POST: "POST";
|
|
23
|
+
PUT: "PUT";
|
|
24
|
+
PATCH: "PATCH";
|
|
25
|
+
DELETE: "DELETE";
|
|
26
|
+
}>;
|
|
27
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
28
|
+
type: z.ZodLiteral<"schedule">;
|
|
29
|
+
crontab: z.ZodString;
|
|
30
|
+
}, z.core.$strip>], "type">;
|
|
31
|
+
export declare const FunctionConfigSchema: z.ZodObject<{
|
|
32
|
+
name: z.ZodString;
|
|
33
|
+
triggers: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
34
|
+
type: z.ZodLiteral<"http">;
|
|
35
|
+
route: z.ZodString;
|
|
36
|
+
method: z.ZodEnum<{
|
|
37
|
+
GET: "GET";
|
|
38
|
+
POST: "POST";
|
|
39
|
+
PUT: "PUT";
|
|
40
|
+
PATCH: "PATCH";
|
|
41
|
+
DELETE: "DELETE";
|
|
42
|
+
}>;
|
|
43
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
44
|
+
type: z.ZodLiteral<"schedule">;
|
|
45
|
+
crontab: z.ZodString;
|
|
46
|
+
}, z.core.$strip>], "type">>>;
|
|
47
|
+
}, z.core.$loose>;
|
|
48
|
+
export type HttpTrigger = z.infer<typeof HttpTriggerSchema>;
|
|
49
|
+
export type ScheduleTrigger = z.infer<typeof ScheduleTriggerSchema>;
|
|
50
|
+
export type Trigger = z.infer<typeof TriggerSchema>;
|
|
51
|
+
export type FunctionConfig = z.infer<typeof FunctionConfigSchema>;
|
|
52
|
+
export {};
|
|
53
|
+
//# 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;;;;;;;;;;iBAIrB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;iBAGzB,CAAC;AAEH,QAAA,MAAM,aAAa;;;;;;;;;;;;;2BAGjB,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,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,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const HttpTriggerSchema = z.object({
|
|
3
|
+
type: z.literal("http"),
|
|
4
|
+
route: z.string().min(1, "Route cannot be empty"),
|
|
5
|
+
method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]),
|
|
6
|
+
});
|
|
7
|
+
const ScheduleTriggerSchema = z.object({
|
|
8
|
+
type: z.literal("schedule"),
|
|
9
|
+
crontab: z.string().min(1, "Crontab expression cannot be empty"),
|
|
10
|
+
});
|
|
11
|
+
const TriggerSchema = z.discriminatedUnion("type", [
|
|
12
|
+
HttpTriggerSchema,
|
|
13
|
+
ScheduleTriggerSchema,
|
|
14
|
+
]);
|
|
15
|
+
export const FunctionConfigSchema = z.looseObject({
|
|
16
|
+
name: z.string().min(1, "Function name cannot be empty"),
|
|
17
|
+
triggers: z.array(TriggerSchema).optional(),
|
|
18
|
+
});
|
|
19
|
+
//# 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,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;CACjE,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACjD,iBAAiB;IACjB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;IACxD,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,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const ProjectConfigSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
createdAt: z.ZodString;
|
|
6
|
+
entitySrc: z.ZodDefault<z.ZodString>;
|
|
7
|
+
functionSrc: z.ZodDefault<z.ZodString>;
|
|
8
|
+
}, z.core.$loose>;
|
|
9
|
+
export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
|
|
10
|
+
export interface ProjectWithPaths extends ProjectConfig {
|
|
11
|
+
root: string;
|
|
12
|
+
configPath: string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const ProjectConfigSchema = z.looseObject({
|
|
3
|
+
id: z.string().min(1, "Project ID cannot be empty"),
|
|
4
|
+
name: z.string().min(1, "Project name cannot be empty"),
|
|
5
|
+
createdAt: z.string(),
|
|
6
|
+
entitySrc: z.string().default("./entities"),
|
|
7
|
+
functionSrc: z.string().default("./functions"),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/schemas/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;CAC/C,CAAC,CAAC"}
|
package/dist/core/utils/fs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function pathExists(path: string): Promise<boolean>;
|
|
2
2
|
export declare function readJsonFile(filePath: string): Promise<unknown>;
|
|
3
3
|
export declare function writeJsonFile(filePath: string, data: unknown): Promise<void>;
|
|
4
4
|
export declare function deleteFile(filePath: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/core/utils/fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/core/utils/fs.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,oBAItC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BrE;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAchE"}
|
package/dist/core/utils/fs.js
CHANGED
|
@@ -1,20 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export function
|
|
5
|
-
return
|
|
1
|
+
import { readFile, writeFile, mkdir, unlink, access } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { parse, printParseErrorCode } from "jsonc-parser";
|
|
4
|
+
export function pathExists(path) {
|
|
5
|
+
return access(path)
|
|
6
|
+
.then(() => true)
|
|
7
|
+
.catch(() => false);
|
|
6
8
|
}
|
|
7
9
|
export async function readJsonFile(filePath) {
|
|
8
|
-
if (!
|
|
10
|
+
if (!(await pathExists(filePath))) {
|
|
9
11
|
throw new Error(`File not found: ${filePath}`);
|
|
10
12
|
}
|
|
11
13
|
try {
|
|
12
14
|
const fileContent = await readFile(filePath, "utf-8");
|
|
13
|
-
|
|
15
|
+
const errors = [];
|
|
16
|
+
const result = parse(fileContent, errors, { allowTrailingComma: true });
|
|
17
|
+
if (errors.length > 0) {
|
|
18
|
+
const errorMessages = errors
|
|
19
|
+
.map((e) => `${printParseErrorCode(e.error)} at offset ${e.offset}`)
|
|
20
|
+
.join(", ");
|
|
21
|
+
throw new Error(`File contains invalid JSONC: ${filePath} (${errorMessages})`);
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
14
24
|
}
|
|
15
25
|
catch (error) {
|
|
16
|
-
if (error instanceof
|
|
17
|
-
throw
|
|
26
|
+
if (error instanceof Error && error.message.includes("invalid JSONC")) {
|
|
27
|
+
throw error;
|
|
18
28
|
}
|
|
19
29
|
throw new Error(`Failed to read file ${filePath}: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
20
30
|
}
|
|
@@ -22,7 +32,7 @@ export async function readJsonFile(filePath) {
|
|
|
22
32
|
export async function writeJsonFile(filePath, data) {
|
|
23
33
|
try {
|
|
24
34
|
const dir = dirname(filePath);
|
|
25
|
-
if (!
|
|
35
|
+
if (!(await pathExists(dir))) {
|
|
26
36
|
await mkdir(dir, { recursive: true });
|
|
27
37
|
}
|
|
28
38
|
const jsonContent = JSON.stringify(data, null, 2);
|
|
@@ -33,7 +43,7 @@ export async function writeJsonFile(filePath, data) {
|
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
45
|
export async function deleteFile(filePath) {
|
|
36
|
-
if (!
|
|
46
|
+
if (!(await pathExists(filePath))) {
|
|
37
47
|
return;
|
|
38
48
|
}
|
|
39
49
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/core/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/core/utils/fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./fs.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./fs.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|