@base44-preview/cli 0.0.1-pr.10.77d2052
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 +49 -0
- package/dist/cli/commands/auth/login.d.ts +3 -0
- package/dist/cli/commands/auth/login.d.ts.map +1 -0
- package/dist/cli/commands/auth/login.js +69 -0
- package/dist/cli/commands/auth/login.js.map +1 -0
- package/dist/cli/commands/auth/logout.d.ts +3 -0
- package/dist/cli/commands/auth/logout.d.ts.map +1 -0
- package/dist/cli/commands/auth/logout.js +14 -0
- package/dist/cli/commands/auth/logout.js.map +1 -0
- package/dist/cli/commands/auth/whoami.d.ts +3 -0
- package/dist/cli/commands/auth/whoami.d.ts.map +1 -0
- package/dist/cli/commands/auth/whoami.js +14 -0
- package/dist/cli/commands/auth/whoami.js.map +1 -0
- 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.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +21 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/index.d.ts +4 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +4 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/packageVersion.d.ts +2 -0
- package/dist/cli/utils/packageVersion.d.ts.map +1 -0
- package/dist/cli/utils/packageVersion.js +12 -0
- package/dist/cli/utils/packageVersion.js.map +1 -0
- package/dist/cli/utils/runCommand.d.ts +8 -0
- package/dist/cli/utils/runCommand.d.ts.map +1 -0
- package/dist/cli/utils/runCommand.js +25 -0
- package/dist/cli/utils/runCommand.js.map +1 -0
- 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/auth/api.d.ts +5 -0
- package/dist/core/auth/api.d.ts.map +1 -0
- package/dist/core/auth/api.js +81 -0
- package/dist/core/auth/api.js.map +1 -0
- package/dist/core/auth/authClient.d.ts +7 -0
- package/dist/core/auth/authClient.d.ts.map +1 -0
- package/dist/core/auth/authClient.js +14 -0
- package/dist/core/auth/authClient.js.map +1 -0
- package/dist/core/auth/config.d.ts +11 -0
- package/dist/core/auth/config.d.ts.map +1 -0
- package/dist/core/auth/config.js +70 -0
- package/dist/core/auth/config.js.map +1 -0
- package/dist/core/auth/index.d.ts +4 -0
- package/dist/core/auth/index.d.ts.map +1 -0
- package/dist/core/auth/index.js +4 -0
- package/dist/core/auth/index.js.map +1 -0
- package/dist/core/auth/schema.d.ts +63 -0
- package/dist/core/auth/schema.d.ts.map +1 -0
- package/dist/core/auth/schema.js +62 -0
- package/dist/core/auth/schema.js.map +1 -0
- package/dist/core/config/app.d.ts +22 -0
- package/dist/core/config/app.d.ts.map +1 -0
- package/dist/core/config/app.js +14 -0
- package/dist/core/config/app.js.map +1 -0
- package/dist/core/config/index.d.ts +4 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +3 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/project.d.ts +25 -0
- package/dist/core/config/project.d.ts.map +1 -0
- package/dist/core/config/project.js +62 -0
- package/dist/core/config/project.js.map +1 -0
- package/dist/core/config/resource.d.ts +4 -0
- package/dist/core/config/resource.d.ts.map +1 -0
- package/dist/core/config/resource.js +2 -0
- package/dist/core/config/resource.js.map +1 -0
- package/dist/core/consts.d.ts +8 -0
- package/dist/core/consts.d.ts.map +1 -0
- package/dist/core/consts.js +24 -0
- package/dist/core/consts.js.map +1 -0
- package/dist/core/errors.d.ts +8 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +15 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/resources/entity/config.d.ts +3 -0
- package/dist/core/resources/entity/config.d.ts.map +1 -0
- package/dist/core/resources/entity/config.js +25 -0
- package/dist/core/resources/entity/config.js.map +1 -0
- package/dist/core/resources/entity/index.d.ts +4 -0
- package/dist/core/resources/entity/index.d.ts.map +1 -0
- package/dist/core/resources/entity/index.js +4 -0
- package/dist/core/resources/entity/index.js.map +1 -0
- package/dist/core/resources/entity/resource.d.ts +4 -0
- package/dist/core/resources/entity/resource.d.ts.map +1 -0
- package/dist/core/resources/entity/resource.js +5 -0
- package/dist/core/resources/entity/resource.js.map +1 -0
- package/dist/core/resources/entity/schema.d.ts +47 -0
- package/dist/core/resources/entity/schema.d.ts.map +1 -0
- package/dist/core/resources/entity/schema.js +29 -0
- package/dist/core/resources/entity/schema.js.map +1 -0
- package/dist/core/resources/function/config.d.ts +4 -0
- package/dist/core/resources/function/config.d.ts.map +1 -0
- package/dist/core/resources/function/config.js +26 -0
- package/dist/core/resources/function/config.js.map +1 -0
- package/dist/core/resources/function/index.d.ts +4 -0
- package/dist/core/resources/function/index.d.ts.map +1 -0
- package/dist/core/resources/function/index.js +4 -0
- package/dist/core/resources/function/index.js.map +1 -0
- package/dist/core/resources/function/resource.d.ts +4 -0
- package/dist/core/resources/function/resource.d.ts.map +1 -0
- package/dist/core/resources/function/resource.js +5 -0
- package/dist/core/resources/function/resource.js.map +1 -0
- package/dist/core/resources/function/schema.d.ts +91 -0
- package/dist/core/resources/function/schema.d.ts.map +1 -0
- package/dist/core/resources/function/schema.js +36 -0
- package/dist/core/resources/function/schema.js.map +1 -0
- package/dist/core/resources/index.d.ts +3 -0
- package/dist/core/resources/index.d.ts.map +1 -0
- package/dist/core/resources/index.js +3 -0
- package/dist/core/resources/index.js.map +1 -0
- package/dist/core/utils/fs.d.ts +5 -0
- package/dist/core/utils/fs.d.ts.map +1 -0
- package/dist/core/utils/fs.js +56 -0
- package/dist/core/utils/fs.js.map +1 -0
- package/dist/core/utils/httpClient.d.ts +3 -0
- package/dist/core/utils/httpClient.d.ts.map +1 -0
- package/dist/core/utils/httpClient.js +41 -0
- package/dist/core/utils/httpClient.js.map +1 -0
- package/dist/core/utils/index.d.ts +3 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/index.js +3 -0
- package/dist/core/utils/index.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const AuthDataSchema: z.ZodObject<{
|
|
3
|
+
accessToken: z.ZodString;
|
|
4
|
+
refreshToken: z.ZodString;
|
|
5
|
+
email: z.ZodEmail;
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export type AuthData = z.infer<typeof AuthDataSchema>;
|
|
9
|
+
export declare const DeviceCodeResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
10
|
+
device_code: z.ZodString;
|
|
11
|
+
user_code: z.ZodString;
|
|
12
|
+
verification_uri: z.ZodURL;
|
|
13
|
+
verification_uri_complete: z.ZodURL;
|
|
14
|
+
expires_in: z.ZodNumber;
|
|
15
|
+
interval: z.ZodNumber;
|
|
16
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
17
|
+
deviceCode: string;
|
|
18
|
+
userCode: string;
|
|
19
|
+
verificationUri: string;
|
|
20
|
+
verificationUriComplete: string;
|
|
21
|
+
expiresIn: number;
|
|
22
|
+
interval: number;
|
|
23
|
+
}, {
|
|
24
|
+
device_code: string;
|
|
25
|
+
user_code: string;
|
|
26
|
+
verification_uri: string;
|
|
27
|
+
verification_uri_complete: string;
|
|
28
|
+
expires_in: number;
|
|
29
|
+
interval: number;
|
|
30
|
+
}>>;
|
|
31
|
+
export type DeviceCodeResponse = z.infer<typeof DeviceCodeResponseSchema>;
|
|
32
|
+
export declare const TokenResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
33
|
+
access_token: z.ZodString;
|
|
34
|
+
token_type: z.ZodString;
|
|
35
|
+
expires_in: z.ZodNumber;
|
|
36
|
+
refresh_token: z.ZodString;
|
|
37
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
39
|
+
accessToken: string;
|
|
40
|
+
tokenType: string;
|
|
41
|
+
expiresIn: number;
|
|
42
|
+
refreshToken: string;
|
|
43
|
+
scope: string | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
access_token: string;
|
|
46
|
+
token_type: string;
|
|
47
|
+
expires_in: number;
|
|
48
|
+
refresh_token: string;
|
|
49
|
+
scope?: string | undefined;
|
|
50
|
+
}>>;
|
|
51
|
+
export type TokenResponse = z.infer<typeof TokenResponseSchema>;
|
|
52
|
+
export declare const OAuthErrorSchema: z.ZodObject<{
|
|
53
|
+
error: z.ZodEnum<{
|
|
54
|
+
authorization_pending: "authorization_pending";
|
|
55
|
+
slow_down: "slow_down";
|
|
56
|
+
expired_token: "expired_token";
|
|
57
|
+
access_denied: "access_denied";
|
|
58
|
+
invalid_grant: "invalid_grant";
|
|
59
|
+
}>;
|
|
60
|
+
error_description: z.ZodOptional<z.ZodString>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export type OAuthError = z.infer<typeof OAuthErrorSchema>;
|
|
63
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/auth/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAGtD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;GAsBhC,CAAC;AAEN,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;GAiB3B,CAAC;AAEN,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,eAAO,MAAM,gBAAgB;;;;;;;;;iBAS3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// Auth data schema (stored locally)
|
|
3
|
+
export const AuthDataSchema = z.object({
|
|
4
|
+
accessToken: z.string().min(1, "Token cannot be empty"),
|
|
5
|
+
refreshToken: z.string().min(1, "Refresh token cannot be empty"),
|
|
6
|
+
email: z.email(),
|
|
7
|
+
name: z.string().min(1, "Name cannot be empty"),
|
|
8
|
+
});
|
|
9
|
+
// API response schemas
|
|
10
|
+
export const DeviceCodeResponseSchema = z
|
|
11
|
+
.object({
|
|
12
|
+
device_code: z.string().min(1, "Device code cannot be empty"),
|
|
13
|
+
user_code: z.string().min(1, "User code cannot be empty"),
|
|
14
|
+
verification_uri: z.url("Invalid verification URL"),
|
|
15
|
+
verification_uri_complete: z.url("Invalid complete verification URL"),
|
|
16
|
+
expires_in: z
|
|
17
|
+
.number()
|
|
18
|
+
.int()
|
|
19
|
+
.positive("Expires in must be a positive integer"),
|
|
20
|
+
interval: z
|
|
21
|
+
.number()
|
|
22
|
+
.int()
|
|
23
|
+
.positive("Interval in must be a positive integer"),
|
|
24
|
+
})
|
|
25
|
+
.transform((data) => ({
|
|
26
|
+
deviceCode: data.device_code,
|
|
27
|
+
userCode: data.user_code,
|
|
28
|
+
verificationUri: data.verification_uri,
|
|
29
|
+
verificationUriComplete: data.verification_uri_complete,
|
|
30
|
+
expiresIn: data.expires_in,
|
|
31
|
+
interval: data.interval,
|
|
32
|
+
}));
|
|
33
|
+
export const TokenResponseSchema = z
|
|
34
|
+
.object({
|
|
35
|
+
access_token: z.string().min(1, "Token cannot be empty"),
|
|
36
|
+
token_type: z.string().min(1, "Token type cannot be empty"),
|
|
37
|
+
expires_in: z
|
|
38
|
+
.number()
|
|
39
|
+
.int()
|
|
40
|
+
.positive("Expires in must be a positive integer"),
|
|
41
|
+
refresh_token: z.string().min(1, "Refresh token cannot be empty"),
|
|
42
|
+
scope: z.string().optional(),
|
|
43
|
+
})
|
|
44
|
+
.transform((data) => ({
|
|
45
|
+
accessToken: data.access_token,
|
|
46
|
+
tokenType: data.token_type,
|
|
47
|
+
expiresIn: data.expires_in,
|
|
48
|
+
refreshToken: data.refresh_token,
|
|
49
|
+
scope: data.scope,
|
|
50
|
+
}));
|
|
51
|
+
// OAuth error response schema
|
|
52
|
+
export const OAuthErrorSchema = z.object({
|
|
53
|
+
error: z.enum([
|
|
54
|
+
"authorization_pending",
|
|
55
|
+
"slow_down",
|
|
56
|
+
"expired_token",
|
|
57
|
+
"access_denied",
|
|
58
|
+
"invalid_grant",
|
|
59
|
+
]),
|
|
60
|
+
error_description: z.string().optional(),
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/auth/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oCAAoC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACvD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;IAChE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;CAChD,CAAC,CAAC;AAIH,uBAAuB;AACvB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;IACzD,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACnD,yBAAyB,EAAE,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC;IACrE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,CAAC,uCAAuC,CAAC;IACpD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC;KACD,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC,WAAW;IAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;IACxB,eAAe,EAAE,IAAI,CAAC,gBAAgB;IACtC,uBAAuB,EAAE,IAAI,CAAC,yBAAyB;IACvD,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;CACxB,CAAC,CAAC,CAAC;AAIN,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;IAC3D,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,CAAC,uCAAuC,CAAC;IACpD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;IACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,WAAW,EAAE,IAAI,CAAC,YAAY;IAC9B,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,YAAY,EAAE,IAAI,CAAC,aAAa;IAChC,KAAK,EAAE,IAAI,CAAC,KAAK;CAClB,CAAC,CAAC,CAAC;AAIN,8BAA8B;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;QACZ,uBAAuB;QACvB,WAAW;QACX,eAAe;QACf,eAAe;QACf,eAAe;KAChB,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC"}
|
|
@@ -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=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/core/config/app.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=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/core/config/app.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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { Entity } from "../resources/entity/index.js";
|
|
3
|
+
import type { FunctionConfig } from "../resources/function/index.js";
|
|
4
|
+
export declare const ProjectConfigSchema: z.ZodObject<{
|
|
5
|
+
name: 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
|
+
export interface ProjectRoot {
|
|
15
|
+
root: string;
|
|
16
|
+
configPath: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ProjectData {
|
|
19
|
+
project: ProjectWithPaths;
|
|
20
|
+
entities: Entity[];
|
|
21
|
+
functions: FunctionConfig[];
|
|
22
|
+
}
|
|
23
|
+
export declare function findProjectRoot(startPath?: string): Promise<ProjectRoot | null>;
|
|
24
|
+
export declare function readProjectConfig(projectRoot?: string): Promise<ProjectData>;
|
|
25
|
+
//# 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,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,mBAAmB;;;;iBAI9B,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;AAED,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;AAUD,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,CAuCtB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { join, dirname } from "node:path";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { globby } from "globby";
|
|
4
|
+
import { getProjectConfigPatterns, PROJECT_SUBDIR } from "../consts.js";
|
|
5
|
+
import { readJsonFile } from "../utils/fs.js";
|
|
6
|
+
import { entityResource } from "../resources/entity/index.js";
|
|
7
|
+
import { functionResource } from "../resources/function/index.js";
|
|
8
|
+
export const ProjectConfigSchema = z.looseObject({
|
|
9
|
+
name: z.string().min(1, "Project name cannot be empty"),
|
|
10
|
+
entitySrc: z.string().default("./entities"),
|
|
11
|
+
functionSrc: z.string().default("./functions"),
|
|
12
|
+
});
|
|
13
|
+
async function findConfigInDir(dir) {
|
|
14
|
+
const files = await globby(getProjectConfigPatterns(), {
|
|
15
|
+
cwd: dir,
|
|
16
|
+
absolute: true,
|
|
17
|
+
});
|
|
18
|
+
return files[0] ?? null;
|
|
19
|
+
}
|
|
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 config.jsonc or config.json exists in the project directory or ${PROJECT_SUBDIR}/ 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 [entities, functions] = await Promise.all([
|
|
53
|
+
entityResource.readAll(join(configDir, project.entitySrc)),
|
|
54
|
+
functionResource.readAll(join(configDir, project.functionSrc)),
|
|
55
|
+
]);
|
|
56
|
+
return {
|
|
57
|
+
project: { ...project, root, configPath },
|
|
58
|
+
entities,
|
|
59
|
+
functions,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/core/config/resource.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/core/config/resource.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
+
export declare const AUTH_CLIENT_ID = "base44_cli";
|
|
7
|
+
export declare function getBase44ApiUrl(): string;
|
|
8
|
+
//# 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;AAED,eAAO,MAAM,cAAc,eAAe,CAAC;AAI3C,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
export const AUTH_CLIENT_ID = "base44_cli";
|
|
20
|
+
const DEFAULT_API_URL = "https://app.base44.com";
|
|
21
|
+
export function getBase44ApiUrl() {
|
|
22
|
+
return process.env.BASE44_API_URL || DEFAULT_API_URL;
|
|
23
|
+
}
|
|
24
|
+
//# 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;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,eAAe,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class AuthApiError extends Error {
|
|
2
|
+
readonly cause?: unknown | undefined;
|
|
3
|
+
constructor(message: string, cause?: unknown | undefined);
|
|
4
|
+
}
|
|
5
|
+
export declare class AuthValidationError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;aACQ,KAAK,CAAC,EAAE,OAAO;gBAAhD,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,OAAO,YAAA;CAI7D;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class AuthApiError extends Error {
|
|
2
|
+
cause;
|
|
3
|
+
constructor(message, cause) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.cause = cause;
|
|
6
|
+
this.name = "AuthApiError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class AuthValidationError extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "AuthValidationError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACQ;IAA7C,YAAY,OAAe,EAAkB,KAAe;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,UAAK,GAAL,KAAK,CAAU;QAE1D,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/entity/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiB1C,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe5E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { globby } from "globby";
|
|
2
|
+
import { readJsonFile, pathExists } from "../../utils/fs.js";
|
|
3
|
+
import { EntitySchema } from "./schema.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=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/core/resources/entity/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/entity/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/resources/entity/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/entity/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAE3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../../src/core/resources/entity/resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,OAAO,EAAE,eAAe;CACzB,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=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/entity/schema.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=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/core/resources/entity/schema.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 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/core/resources/function/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,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"}
|