@ysk-kit/contracts 1.0.0
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/LICENSE +21 -0
- package/dist/api/api-keys.d.ts +220 -0
- package/dist/api/api-keys.d.ts.map +1 -0
- package/dist/api/api-keys.js +38 -0
- package/dist/api/api-keys.js.map +1 -0
- package/dist/api/audit.d.ts +75 -0
- package/dist/api/audit.d.ts.map +1 -0
- package/dist/api/audit.js +19 -0
- package/dist/api/audit.js.map +1 -0
- package/dist/api/auth.d.ts +602 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +85 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/billing.d.ts +398 -0
- package/dist/api/billing.d.ts.map +1 -0
- package/dist/api/billing.js +75 -0
- package/dist/api/billing.js.map +1 -0
- package/dist/api/devices.d.ts +150 -0
- package/dist/api/devices.d.ts.map +1 -0
- package/dist/api/devices.js +32 -0
- package/dist/api/devices.js.map +1 -0
- package/dist/api/files.d.ts +74 -0
- package/dist/api/files.d.ts.map +1 -0
- package/dist/api/files.js +19 -0
- package/dist/api/files.js.map +1 -0
- package/dist/api/health.d.ts +53 -0
- package/dist/api/health.d.ts.map +1 -0
- package/dist/api/health.js +26 -0
- package/dist/api/health.js.map +1 -0
- package/dist/api/index.d.ts +2777 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +38 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/llm.d.ts +133 -0
- package/dist/api/llm.d.ts.map +1 -0
- package/dist/api/llm.js +25 -0
- package/dist/api/llm.js.map +1 -0
- package/dist/api/notifications.d.ts +102 -0
- package/dist/api/notifications.d.ts.map +1 -0
- package/dist/api/notifications.js +28 -0
- package/dist/api/notifications.js.map +1 -0
- package/dist/api/organizations.d.ts +787 -0
- package/dist/api/organizations.d.ts.map +1 -0
- package/dist/api/organizations.js +144 -0
- package/dist/api/organizations.js.map +1 -0
- package/dist/api/users.d.ts +193 -0
- package/dist/api/users.d.ts.map +1 -0
- package/dist/api/users.js +41 -0
- package/dist/api/users.js.map +1 -0
- package/dist/constants/hk.d.ts +6 -0
- package/dist/constants/hk.d.ts.map +1 -0
- package/dist/constants/hk.js +6 -0
- package/dist/constants/hk.js.map +1 -0
- package/dist/dto/api-key.d.ts +49 -0
- package/dist/dto/api-key.d.ts.map +1 -0
- package/dist/dto/api-key.js +19 -0
- package/dist/dto/api-key.js.map +1 -0
- package/dist/dto/audit.d.ts +49 -0
- package/dist/dto/audit.d.ts.map +1 -0
- package/dist/dto/audit.js +13 -0
- package/dist/dto/audit.js.map +1 -0
- package/dist/dto/auth.d.ts +76 -0
- package/dist/dto/auth.d.ts.map +1 -0
- package/dist/dto/auth.js +46 -0
- package/dist/dto/auth.js.map +1 -0
- package/dist/dto/billing.d.ts +63 -0
- package/dist/dto/billing.d.ts.map +1 -0
- package/dist/dto/billing.js +44 -0
- package/dist/dto/billing.js.map +1 -0
- package/dist/dto/device.d.ts +25 -0
- package/dist/dto/device.d.ts.map +1 -0
- package/dist/dto/device.js +13 -0
- package/dist/dto/device.js.map +1 -0
- package/dist/dto/file.d.ts +14 -0
- package/dist/dto/file.d.ts.map +1 -0
- package/dist/dto/file.js +16 -0
- package/dist/dto/file.js.map +1 -0
- package/dist/dto/index.d.ts +11 -0
- package/dist/dto/index.d.ts.map +1 -0
- package/dist/dto/index.js +11 -0
- package/dist/dto/index.js.map +1 -0
- package/dist/dto/llm.d.ts +45 -0
- package/dist/dto/llm.d.ts.map +1 -0
- package/dist/dto/llm.js +24 -0
- package/dist/dto/llm.js.map +1 -0
- package/dist/dto/notification.d.ts +33 -0
- package/dist/dto/notification.d.ts.map +1 -0
- package/dist/dto/notification.js +13 -0
- package/dist/dto/notification.js.map +1 -0
- package/dist/dto/organization.d.ts +60 -0
- package/dist/dto/organization.d.ts.map +1 -0
- package/dist/dto/organization.js +43 -0
- package/dist/dto/organization.js.map +1 -0
- package/dist/dto/user.d.ts +63 -0
- package/dist/dto/user.d.ts.map +1 -0
- package/dist/dto/user.js +31 -0
- package/dist/dto/user.js.map +1 -0
- package/dist/enums/audit-action.d.ts +32 -0
- package/dist/enums/audit-action.d.ts.map +1 -0
- package/dist/enums/audit-action.js +18 -0
- package/dist/enums/audit-action.js.map +1 -0
- package/dist/enums/auth-method.d.ts +12 -0
- package/dist/enums/auth-method.d.ts.map +1 -0
- package/dist/enums/auth-method.js +8 -0
- package/dist/enums/auth-method.js.map +1 -0
- package/dist/enums/billing-plan.d.ts +29 -0
- package/dist/enums/billing-plan.d.ts.map +1 -0
- package/dist/enums/billing-plan.js +18 -0
- package/dist/enums/billing-plan.js.map +1 -0
- package/dist/enums/index.d.ts +14 -0
- package/dist/enums/index.d.ts.map +1 -0
- package/dist/enums/index.js +14 -0
- package/dist/enums/index.js.map +1 -0
- package/dist/enums/job-name.d.ts +86 -0
- package/dist/enums/job-name.d.ts.map +1 -0
- package/dist/enums/job-name.js +34 -0
- package/dist/enums/job-name.js.map +1 -0
- package/dist/enums/llm-role.d.ts +14 -0
- package/dist/enums/llm-role.d.ts.map +1 -0
- package/dist/enums/llm-role.js +9 -0
- package/dist/enums/llm-role.js.map +1 -0
- package/dist/enums/mail-template.d.ts +21 -0
- package/dist/enums/mail-template.d.ts.map +1 -0
- package/dist/enums/mail-template.js +40 -0
- package/dist/enums/mail-template.js.map +1 -0
- package/dist/enums/notification-type.d.ts +16 -0
- package/dist/enums/notification-type.d.ts.map +1 -0
- package/dist/enums/notification-type.js +10 -0
- package/dist/enums/notification-type.js.map +1 -0
- package/dist/enums/org-role.d.ts +39 -0
- package/dist/enums/org-role.d.ts.map +1 -0
- package/dist/enums/org-role.js +40 -0
- package/dist/enums/org-role.js.map +1 -0
- package/dist/enums/permission.d.ts +27 -0
- package/dist/enums/permission.d.ts.map +1 -0
- package/dist/enums/permission.js +36 -0
- package/dist/enums/permission.js.map +1 -0
- package/dist/enums/platform.d.ts +20 -0
- package/dist/enums/platform.d.ts.map +1 -0
- package/dist/enums/platform.js +12 -0
- package/dist/enums/platform.js.map +1 -0
- package/dist/enums/realtime-event.d.ts +10 -0
- package/dist/enums/realtime-event.d.ts.map +1 -0
- package/dist/enums/realtime-event.js +7 -0
- package/dist/enums/realtime-event.js.map +1 -0
- package/dist/enums/user-role.d.ts +18 -0
- package/dist/enums/user-role.d.ts.map +1 -0
- package/dist/enums/user-role.js +14 -0
- package/dist/enums/user-role.js.map +1 -0
- package/dist/enums/user-status.d.ts +20 -0
- package/dist/enums/user-status.d.ts.map +1 -0
- package/dist/enums/user-status.js +16 -0
- package/dist/enums/user-status.js.map +1 -0
- package/dist/errors/codes.d.ts +12 -0
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/codes.js +11 -0
- package/dist/errors/codes.js.map +1 -0
- package/dist/errors/envelope.d.ts +43 -0
- package/dist/errors/envelope.d.ts.map +1 -0
- package/dist/errors/envelope.js +14 -0
- package/dist/errors/envelope.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/messages.d.ts +6 -0
- package/dist/errors/messages.d.ts.map +1 -0
- package/dist/errors/messages.js +10 -0
- package/dist/errors/messages.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/dto/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1D,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAsB,IAAO,EAAE,EAAE,CAC9D,CAAC,CAAC,MAAM,CAAC;IACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,WAAW,CAAC,EAAE,4BAA4B,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;CACrC,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const AuditAction: {
|
|
3
|
+
readonly AUTH_REGISTER: "auth.register";
|
|
4
|
+
readonly AUTH_LOGIN: "auth.login";
|
|
5
|
+
readonly AUTH_LOGOUT: "auth.logout";
|
|
6
|
+
readonly AUTH_RESET: "auth.reset";
|
|
7
|
+
readonly USER_CREATE: "user.create";
|
|
8
|
+
readonly USER_SUSPEND: "user.suspend";
|
|
9
|
+
readonly FILE_UPLOAD: "file.upload";
|
|
10
|
+
readonly ORG_CREATE: "org.create";
|
|
11
|
+
readonly ORG_INVITE: "org.invite";
|
|
12
|
+
readonly ORG_MEMBER_REMOVE: "org.member.remove";
|
|
13
|
+
readonly API_KEY_CREATE: "api_key.create";
|
|
14
|
+
readonly API_KEY_REVOKE: "api_key.revoke";
|
|
15
|
+
};
|
|
16
|
+
export type AuditAction = (typeof AuditAction)[keyof typeof AuditAction];
|
|
17
|
+
export declare const AUDIT_ACTION_VALUES: [AuditAction, ...AuditAction[]];
|
|
18
|
+
export declare const AuditActionSchema: z.ZodEnum<{
|
|
19
|
+
"user.create": "user.create";
|
|
20
|
+
"user.suspend": "user.suspend";
|
|
21
|
+
"file.upload": "file.upload";
|
|
22
|
+
"auth.register": "auth.register";
|
|
23
|
+
"auth.login": "auth.login";
|
|
24
|
+
"auth.logout": "auth.logout";
|
|
25
|
+
"auth.reset": "auth.reset";
|
|
26
|
+
"org.create": "org.create";
|
|
27
|
+
"org.invite": "org.invite";
|
|
28
|
+
"org.member.remove": "org.member.remove";
|
|
29
|
+
"api_key.create": "api_key.create";
|
|
30
|
+
"api_key.revoke": "api_key.revoke";
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=audit-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-action.d.ts","sourceRoot":"","sources":["../../src/enums/audit-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACzE,eAAO,MAAM,mBAAmB,EAAiC,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;AACjG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;EAA8B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const AuditAction = {
|
|
3
|
+
AUTH_REGISTER: 'auth.register',
|
|
4
|
+
AUTH_LOGIN: 'auth.login',
|
|
5
|
+
AUTH_LOGOUT: 'auth.logout',
|
|
6
|
+
AUTH_RESET: 'auth.reset',
|
|
7
|
+
USER_CREATE: 'user.create',
|
|
8
|
+
USER_SUSPEND: 'user.suspend',
|
|
9
|
+
FILE_UPLOAD: 'file.upload',
|
|
10
|
+
ORG_CREATE: 'org.create',
|
|
11
|
+
ORG_INVITE: 'org.invite',
|
|
12
|
+
ORG_MEMBER_REMOVE: 'org.member.remove',
|
|
13
|
+
API_KEY_CREATE: 'api_key.create',
|
|
14
|
+
API_KEY_REVOKE: 'api_key.revoke',
|
|
15
|
+
};
|
|
16
|
+
export const AUDIT_ACTION_VALUES = Object.values(AuditAction);
|
|
17
|
+
export const AuditActionSchema = z.enum(AUDIT_ACTION_VALUES);
|
|
18
|
+
//# sourceMappingURL=audit-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-action.js","sourceRoot":"","sources":["../../src/enums/audit-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAGX,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAoC,CAAC;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const AuthMethod: {
|
|
3
|
+
readonly PASSWORD: "PASSWORD";
|
|
4
|
+
readonly OTP: "OTP";
|
|
5
|
+
};
|
|
6
|
+
export type AuthMethod = (typeof AuthMethod)[keyof typeof AuthMethod];
|
|
7
|
+
export declare const AUTH_METHOD_VALUES: [AuthMethod, ...AuthMethod[]];
|
|
8
|
+
export declare const AuthMethodSchema: z.ZodEnum<{
|
|
9
|
+
PASSWORD: "PASSWORD";
|
|
10
|
+
OTP: "OTP";
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=auth-method.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-method.d.ts","sourceRoot":"","sources":["../../src/enums/auth-method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AACtE,eAAO,MAAM,kBAAkB,EAAgC,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAC7F,eAAO,MAAM,gBAAgB;;;EAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-method.js","sourceRoot":"","sources":["../../src/enums/auth-method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAkC,CAAC;AAC7F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const BillingPlanCode: {
|
|
3
|
+
readonly FREE: "free";
|
|
4
|
+
readonly PRO: "pro";
|
|
5
|
+
};
|
|
6
|
+
export type BillingPlanCode = (typeof BillingPlanCode)[keyof typeof BillingPlanCode];
|
|
7
|
+
export declare const BILLING_PLAN_CODE_VALUES: [BillingPlanCode, ...BillingPlanCode[]];
|
|
8
|
+
export declare const BillingPlanCodeSchema: z.ZodEnum<{
|
|
9
|
+
free: "free";
|
|
10
|
+
pro: "pro";
|
|
11
|
+
}>;
|
|
12
|
+
export declare const SubscriptionStatus: {
|
|
13
|
+
readonly ACTIVE: "active";
|
|
14
|
+
readonly CANCELED: "canceled";
|
|
15
|
+
};
|
|
16
|
+
export type SubscriptionStatus = (typeof SubscriptionStatus)[keyof typeof SubscriptionStatus];
|
|
17
|
+
export declare const SUBSCRIPTION_STATUS_VALUES: [SubscriptionStatus, ...SubscriptionStatus[]];
|
|
18
|
+
export declare const SubscriptionStatusSchema: z.ZodEnum<{
|
|
19
|
+
active: "active";
|
|
20
|
+
canceled: "canceled";
|
|
21
|
+
}>;
|
|
22
|
+
export type BillingPlan = {
|
|
23
|
+
code: BillingPlanCode;
|
|
24
|
+
name: string;
|
|
25
|
+
amountHkdCents: number;
|
|
26
|
+
interval: 'month';
|
|
27
|
+
};
|
|
28
|
+
export declare const BILLING_PLANS: readonly BillingPlan[];
|
|
29
|
+
//# sourceMappingURL=billing-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-plan.d.ts","sourceRoot":"","sources":["../../src/enums/billing-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AACrF,eAAO,MAAM,wBAAwB,EAAqC,CACxE,eAAe,EACf,GAAG,eAAe,EAAE,CACrB,CAAC;AACF,eAAO,MAAM,qBAAqB;;;EAAmC,CAAC;AAEtE,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAC9F,eAAO,MAAM,0BAA0B,EAAwC,CAC7E,kBAAkB,EAClB,GAAG,kBAAkB,EAAE,CACxB,CAAC;AACF,eAAO,MAAM,wBAAwB;;;EAAqC,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAG/C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const BillingPlanCode = {
|
|
3
|
+
FREE: 'free',
|
|
4
|
+
PRO: 'pro',
|
|
5
|
+
};
|
|
6
|
+
export const BILLING_PLAN_CODE_VALUES = Object.values(BillingPlanCode);
|
|
7
|
+
export const BillingPlanCodeSchema = z.enum(BILLING_PLAN_CODE_VALUES);
|
|
8
|
+
export const SubscriptionStatus = {
|
|
9
|
+
ACTIVE: 'active',
|
|
10
|
+
CANCELED: 'canceled',
|
|
11
|
+
};
|
|
12
|
+
export const SUBSCRIPTION_STATUS_VALUES = Object.values(SubscriptionStatus);
|
|
13
|
+
export const SubscriptionStatusSchema = z.enum(SUBSCRIPTION_STATUS_VALUES);
|
|
14
|
+
export const BILLING_PLANS = [
|
|
15
|
+
{ code: 'free', name: 'Free', amountHkdCents: 0, interval: 'month' },
|
|
16
|
+
{ code: 'pro', name: 'Pro', amountHkdCents: 9900, interval: 'month' },
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=billing-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-plan.js","sourceRoot":"","sources":["../../src/enums/billing-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAGpE,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAGzE,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAS3E,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE;IACpE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;CACtE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './audit-action';
|
|
2
|
+
export * from './auth-method';
|
|
3
|
+
export * from './billing-plan';
|
|
4
|
+
export * from './job-name';
|
|
5
|
+
export * from './llm-role';
|
|
6
|
+
export * from './mail-template';
|
|
7
|
+
export * from './notification-type';
|
|
8
|
+
export * from './org-role';
|
|
9
|
+
export * from './permission';
|
|
10
|
+
export * from './platform';
|
|
11
|
+
export * from './realtime-event';
|
|
12
|
+
export * from './user-role';
|
|
13
|
+
export * from './user-status';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './audit-action';
|
|
2
|
+
export * from './auth-method';
|
|
3
|
+
export * from './billing-plan';
|
|
4
|
+
export * from './job-name';
|
|
5
|
+
export * from './llm-role';
|
|
6
|
+
export * from './mail-template';
|
|
7
|
+
export * from './notification-type';
|
|
8
|
+
export * from './org-role';
|
|
9
|
+
export * from './permission';
|
|
10
|
+
export * from './platform';
|
|
11
|
+
export * from './realtime-event';
|
|
12
|
+
export * from './user-role';
|
|
13
|
+
export * from './user-status';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const JobName: {
|
|
3
|
+
readonly EMAIL_SEND: "email.send";
|
|
4
|
+
readonly NOTIFICATION_CREATE: "notification.create";
|
|
5
|
+
readonly PUSH_SEND: "push.send";
|
|
6
|
+
};
|
|
7
|
+
export type JobName = (typeof JobName)[keyof typeof JobName];
|
|
8
|
+
export declare const JOB_NAME_VALUES: [JobName, ...JobName[]];
|
|
9
|
+
export declare const JobNameSchema: z.ZodEnum<{
|
|
10
|
+
"email.send": "email.send";
|
|
11
|
+
"notification.create": "notification.create";
|
|
12
|
+
"push.send": "push.send";
|
|
13
|
+
}>;
|
|
14
|
+
export declare const EmailSendPayloadSchema: z.ZodObject<{
|
|
15
|
+
to: z.ZodString;
|
|
16
|
+
template: z.ZodEnum<{
|
|
17
|
+
"auth.reset": "auth.reset";
|
|
18
|
+
"org.invite": "org.invite";
|
|
19
|
+
"auth.welcome": "auth.welcome";
|
|
20
|
+
"auth.admin-otp": "auth.admin-otp";
|
|
21
|
+
}>;
|
|
22
|
+
locale: z.ZodEnum<{
|
|
23
|
+
"zh-HK": "zh-HK";
|
|
24
|
+
en: "en";
|
|
25
|
+
}>;
|
|
26
|
+
vars: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type EmailSendPayload = z.infer<typeof EmailSendPayloadSchema>;
|
|
29
|
+
export declare const NotificationCreatePayloadSchema: z.ZodObject<{
|
|
30
|
+
userId: z.ZodString;
|
|
31
|
+
type: z.ZodEnum<{
|
|
32
|
+
"auth.reset": "auth.reset";
|
|
33
|
+
"auth.welcome": "auth.welcome";
|
|
34
|
+
"user.created": "user.created";
|
|
35
|
+
"org.invited": "org.invited";
|
|
36
|
+
}>;
|
|
37
|
+
title: z.ZodString;
|
|
38
|
+
body: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type NotificationCreatePayload = z.infer<typeof NotificationCreatePayloadSchema>;
|
|
41
|
+
export declare const PushSendPayloadSchema: z.ZodObject<{
|
|
42
|
+
token: z.ZodString;
|
|
43
|
+
title: z.ZodString;
|
|
44
|
+
body: z.ZodString;
|
|
45
|
+
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export type PushSendPayload = z.infer<typeof PushSendPayloadSchema>;
|
|
48
|
+
export declare const JobPayloadSchema: {
|
|
49
|
+
readonly 'email.send': z.ZodObject<{
|
|
50
|
+
to: z.ZodString;
|
|
51
|
+
template: z.ZodEnum<{
|
|
52
|
+
"auth.reset": "auth.reset";
|
|
53
|
+
"org.invite": "org.invite";
|
|
54
|
+
"auth.welcome": "auth.welcome";
|
|
55
|
+
"auth.admin-otp": "auth.admin-otp";
|
|
56
|
+
}>;
|
|
57
|
+
locale: z.ZodEnum<{
|
|
58
|
+
"zh-HK": "zh-HK";
|
|
59
|
+
en: "en";
|
|
60
|
+
}>;
|
|
61
|
+
vars: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
readonly 'notification.create': z.ZodObject<{
|
|
64
|
+
userId: z.ZodString;
|
|
65
|
+
type: z.ZodEnum<{
|
|
66
|
+
"auth.reset": "auth.reset";
|
|
67
|
+
"auth.welcome": "auth.welcome";
|
|
68
|
+
"user.created": "user.created";
|
|
69
|
+
"org.invited": "org.invited";
|
|
70
|
+
}>;
|
|
71
|
+
title: z.ZodString;
|
|
72
|
+
body: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
readonly 'push.send': z.ZodObject<{
|
|
75
|
+
token: z.ZodString;
|
|
76
|
+
title: z.ZodString;
|
|
77
|
+
body: z.ZodString;
|
|
78
|
+
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
79
|
+
}, z.core.$strip>;
|
|
80
|
+
};
|
|
81
|
+
export type JobPayload = {
|
|
82
|
+
'email.send': EmailSendPayload;
|
|
83
|
+
'notification.create': NotificationCreatePayload;
|
|
84
|
+
'push.send': PushSendPayload;
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=job-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-name.d.ts","sourceRoot":"","sources":["../../src/enums/job-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAC7D,eAAO,MAAM,eAAe,EAA6B,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACjF,eAAO,MAAM,aAAa;;;;EAA0B,CAAC;AAErD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,+BAA+B;;;;;;;;;;iBAK1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAInB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,qBAAqB,EAAE,yBAAyB,CAAC;IACjD,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MailTemplateSchema } from './mail-template';
|
|
3
|
+
import { NotificationTypeSchema } from './notification-type';
|
|
4
|
+
export const JobName = {
|
|
5
|
+
EMAIL_SEND: 'email.send',
|
|
6
|
+
NOTIFICATION_CREATE: 'notification.create',
|
|
7
|
+
PUSH_SEND: 'push.send',
|
|
8
|
+
};
|
|
9
|
+
export const JOB_NAME_VALUES = Object.values(JobName);
|
|
10
|
+
export const JobNameSchema = z.enum(JOB_NAME_VALUES);
|
|
11
|
+
export const EmailSendPayloadSchema = z.object({
|
|
12
|
+
to: z.string().email(),
|
|
13
|
+
template: MailTemplateSchema,
|
|
14
|
+
locale: z.enum(['zh-HK', 'en']),
|
|
15
|
+
vars: z.record(z.string(), z.string()),
|
|
16
|
+
});
|
|
17
|
+
export const NotificationCreatePayloadSchema = z.object({
|
|
18
|
+
userId: z.string().uuid(),
|
|
19
|
+
type: NotificationTypeSchema,
|
|
20
|
+
title: z.string().min(1).max(120),
|
|
21
|
+
body: z.string().min(1).max(500),
|
|
22
|
+
});
|
|
23
|
+
export const PushSendPayloadSchema = z.object({
|
|
24
|
+
token: z.string().min(8),
|
|
25
|
+
title: z.string().min(1).max(120),
|
|
26
|
+
body: z.string().min(1).max(500),
|
|
27
|
+
data: z.record(z.string(), z.string()).optional(),
|
|
28
|
+
});
|
|
29
|
+
export const JobPayloadSchema = {
|
|
30
|
+
'email.send': EmailSendPayloadSchema,
|
|
31
|
+
'notification.create': NotificationCreatePayloadSchema,
|
|
32
|
+
'push.send': PushSendPayloadSchema,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=job-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-name.js","sourceRoot":"","sources":["../../src/enums/job-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,EAAE,YAAY;IACxB,mBAAmB,EAAE,qBAAqB;IAC1C,SAAS,EAAE,WAAW;CACd,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAC;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACtB,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACzB,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,sBAAsB;IACpC,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,qBAAqB;CAC1B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const LlmRole: {
|
|
3
|
+
readonly SYSTEM: "system";
|
|
4
|
+
readonly USER: "user";
|
|
5
|
+
readonly ASSISTANT: "assistant";
|
|
6
|
+
};
|
|
7
|
+
export type LlmRole = (typeof LlmRole)[keyof typeof LlmRole];
|
|
8
|
+
export declare const LLM_ROLE_VALUES: [LlmRole, ...LlmRole[]];
|
|
9
|
+
export declare const LlmRoleSchema: z.ZodEnum<{
|
|
10
|
+
user: "user";
|
|
11
|
+
system: "system";
|
|
12
|
+
assistant: "assistant";
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=llm-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-role.d.ts","sourceRoot":"","sources":["../../src/enums/llm-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAC7D,eAAO,MAAM,eAAe,EAA6B,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACjF,eAAO,MAAM,aAAa;;;;EAA0B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const LlmRole = {
|
|
3
|
+
SYSTEM: 'system',
|
|
4
|
+
USER: 'user',
|
|
5
|
+
ASSISTANT: 'assistant',
|
|
6
|
+
};
|
|
7
|
+
export const LLM_ROLE_VALUES = Object.values(LlmRole);
|
|
8
|
+
export const LlmRoleSchema = z.enum(LLM_ROLE_VALUES);
|
|
9
|
+
//# sourceMappingURL=llm-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-role.js","sourceRoot":"","sources":["../../src/enums/llm-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CACd,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAC;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const MailTemplate: {
|
|
3
|
+
readonly AUTH_WELCOME: "auth.welcome";
|
|
4
|
+
readonly AUTH_RESET: "auth.reset";
|
|
5
|
+
readonly ORG_INVITE: "org.invite";
|
|
6
|
+
readonly AUTH_ADMIN_OTP: "auth.admin-otp";
|
|
7
|
+
};
|
|
8
|
+
export type MailTemplate = (typeof MailTemplate)[keyof typeof MailTemplate];
|
|
9
|
+
export declare const MAIL_TEMPLATE_VALUES: [MailTemplate, ...MailTemplate[]];
|
|
10
|
+
export declare const MailTemplateSchema: z.ZodEnum<{
|
|
11
|
+
"auth.reset": "auth.reset";
|
|
12
|
+
"org.invite": "org.invite";
|
|
13
|
+
"auth.welcome": "auth.welcome";
|
|
14
|
+
"auth.admin-otp": "auth.admin-otp";
|
|
15
|
+
}>;
|
|
16
|
+
export type MailLocale = 'zh-HK' | 'en';
|
|
17
|
+
export declare const MAIL_COPY: Record<MailTemplate, {
|
|
18
|
+
subject: Record<MailLocale, string>;
|
|
19
|
+
body: Record<MailLocale, string>;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=mail-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-template.d.ts","sourceRoot":"","sources":["../../src/enums/mail-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAC5E,eAAO,MAAM,oBAAoB,EAAkC,CACjE,YAAY,EACZ,GAAG,YAAY,EAAE,CAClB,CAAC;AACF,eAAO,MAAM,kBAAkB;;;;;EAA+B,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;AAExC,eAAO,MAAM,SAAS,EAAE,MAAM,CAC5B,YAAY,EACZ;IAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,CA8B1E,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const MailTemplate = {
|
|
3
|
+
AUTH_WELCOME: 'auth.welcome',
|
|
4
|
+
AUTH_RESET: 'auth.reset',
|
|
5
|
+
ORG_INVITE: 'org.invite',
|
|
6
|
+
AUTH_ADMIN_OTP: 'auth.admin-otp',
|
|
7
|
+
};
|
|
8
|
+
export const MAIL_TEMPLATE_VALUES = Object.values(MailTemplate);
|
|
9
|
+
export const MailTemplateSchema = z.enum(MAIL_TEMPLATE_VALUES);
|
|
10
|
+
export const MAIL_COPY = {
|
|
11
|
+
'auth.welcome': {
|
|
12
|
+
subject: { 'zh-HK': '歡迎使用 YSK Kit', en: 'Welcome to YSK Kit' },
|
|
13
|
+
body: {
|
|
14
|
+
'zh-HK': '你好 {{displayName}},你嘅帳號已建立。',
|
|
15
|
+
en: 'Hello {{displayName}}, your account is ready.',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
'auth.reset': {
|
|
19
|
+
subject: { 'zh-HK': '重設密碼', en: 'Reset your password' },
|
|
20
|
+
body: {
|
|
21
|
+
'zh-HK': '喺一個鐘內開啟呢個連結重設密碼:{{resetUrl}}',
|
|
22
|
+
en: 'Open this link within one hour to reset your password: {{resetUrl}}',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
'org.invite': {
|
|
26
|
+
subject: { 'zh-HK': '邀請加入 {{organizationName}}', en: 'Invite to {{organizationName}}' },
|
|
27
|
+
body: {
|
|
28
|
+
'zh-HK': '你被邀請加入 {{organizationName}}。七日内開啟呢個連結:{{inviteUrl}}',
|
|
29
|
+
en: 'You were invited to {{organizationName}}. Open this link within seven days: {{inviteUrl}}',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
'auth.admin-otp': {
|
|
33
|
+
subject: { 'zh-HK': '管理員登入驗證碼', en: 'Admin sign-in code' },
|
|
34
|
+
body: {
|
|
35
|
+
'zh-HK': '你嘅管理員驗證碼係 {{code}},請喺期限內輸入。',
|
|
36
|
+
en: 'Your admin sign-in code is {{code}}. Enter it before it expires.',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=mail-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-template.js","sourceRoot":"","sources":["../../src/enums/mail-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAG7D,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAI/D,MAAM,CAAC,MAAM,SAAS,GAGlB;IACF,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,oBAAoB,EAAE;QAC9D,IAAI,EAAE;YACJ,OAAO,EAAE,6BAA6B;YACtC,EAAE,EAAE,+CAA+C;SACpD;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,qBAAqB,EAAE;QACvD,IAAI,EAAE;YACJ,OAAO,EAAE,8BAA8B;YACvC,EAAE,EAAE,qEAAqE;SAC1E;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,EAAE,gCAAgC,EAAE;QACvF,IAAI,EAAE;YACJ,OAAO,EAAE,qDAAqD;YAC9D,EAAE,EAAE,2FAA2F;SAChG;KACF;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE;QAC1D,IAAI,EAAE;YACJ,OAAO,EAAE,6BAA6B;YACtC,EAAE,EAAE,kEAAkE;SACvE;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const NotificationType: {
|
|
3
|
+
readonly AUTH_WELCOME: "auth.welcome";
|
|
4
|
+
readonly AUTH_RESET: "auth.reset";
|
|
5
|
+
readonly USER_CREATED: "user.created";
|
|
6
|
+
readonly ORG_INVITED: "org.invited";
|
|
7
|
+
};
|
|
8
|
+
export type NotificationType = (typeof NotificationType)[keyof typeof NotificationType];
|
|
9
|
+
export declare const NOTIFICATION_TYPE_VALUES: [NotificationType, ...NotificationType[]];
|
|
10
|
+
export declare const NotificationTypeSchema: z.ZodEnum<{
|
|
11
|
+
"auth.reset": "auth.reset";
|
|
12
|
+
"auth.welcome": "auth.welcome";
|
|
13
|
+
"user.created": "user.created";
|
|
14
|
+
"org.invited": "org.invited";
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=notification-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-type.d.ts","sourceRoot":"","sources":["../../src/enums/notification-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AACxF,eAAO,MAAM,wBAAwB,EAAsC,CACzE,gBAAgB,EAChB,GAAG,gBAAgB,EAAE,CACtB,CAAC;AACF,eAAO,MAAM,sBAAsB;;;;;EAAmC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const NotificationType = {
|
|
3
|
+
AUTH_WELCOME: 'auth.welcome',
|
|
4
|
+
AUTH_RESET: 'auth.reset',
|
|
5
|
+
USER_CREATED: 'user.created',
|
|
6
|
+
ORG_INVITED: 'org.invited',
|
|
7
|
+
};
|
|
8
|
+
export const NOTIFICATION_TYPE_VALUES = Object.values(NotificationType);
|
|
9
|
+
export const NotificationTypeSchema = z.enum(NOTIFICATION_TYPE_VALUES);
|
|
10
|
+
//# sourceMappingURL=notification-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-type.js","sourceRoot":"","sources":["../../src/enums/notification-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAGX,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAGrE,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const OrgRole: {
|
|
3
|
+
readonly OWNER: "OWNER";
|
|
4
|
+
readonly ADMIN: "ADMIN";
|
|
5
|
+
readonly MEMBER: "MEMBER";
|
|
6
|
+
};
|
|
7
|
+
export type OrgRole = (typeof OrgRole)[keyof typeof OrgRole];
|
|
8
|
+
export declare const ORG_ROLE_VALUES: [OrgRole, ...OrgRole[]];
|
|
9
|
+
export declare const OrgRoleSchema: z.ZodEnum<{
|
|
10
|
+
ADMIN: "ADMIN";
|
|
11
|
+
OWNER: "OWNER";
|
|
12
|
+
MEMBER: "MEMBER";
|
|
13
|
+
}>;
|
|
14
|
+
export declare const InviteOrgRole: {
|
|
15
|
+
readonly ADMIN: "ADMIN";
|
|
16
|
+
readonly MEMBER: "MEMBER";
|
|
17
|
+
};
|
|
18
|
+
export type InviteOrgRole = (typeof InviteOrgRole)[keyof typeof InviteOrgRole];
|
|
19
|
+
export declare const INVITE_ORG_ROLE_VALUES: [InviteOrgRole, ...InviteOrgRole[]];
|
|
20
|
+
export declare const InviteOrgRoleSchema: z.ZodEnum<{
|
|
21
|
+
ADMIN: "ADMIN";
|
|
22
|
+
MEMBER: "MEMBER";
|
|
23
|
+
}>;
|
|
24
|
+
export declare const OrgAction: {
|
|
25
|
+
readonly UPDATE: "org.update";
|
|
26
|
+
readonly INVITE: "org.invite";
|
|
27
|
+
readonly MEMBER_REMOVE: "org.member.remove";
|
|
28
|
+
readonly MEMBER_LIST: "org.member.list";
|
|
29
|
+
readonly BILLING: "org.billing";
|
|
30
|
+
};
|
|
31
|
+
export type OrgAction = (typeof OrgAction)[keyof typeof OrgAction];
|
|
32
|
+
export declare const ORG_ACTION_VALUES: [OrgAction, ...OrgAction[]];
|
|
33
|
+
export declare const ORG_ROLE_PERMISSIONS: Record<OrgRole, readonly OrgAction[]>;
|
|
34
|
+
export declare const orgRoleCan: (role: OrgRole, action: OrgAction) => boolean;
|
|
35
|
+
export declare const ORG_ROLE_LABELS: Record<OrgRole, {
|
|
36
|
+
'zh-HK': string;
|
|
37
|
+
en: string;
|
|
38
|
+
}>;
|
|
39
|
+
//# sourceMappingURL=org-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-role.d.ts","sourceRoot":"","sources":["../../src/enums/org-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAC7D,eAAO,MAAM,eAAe,EAA6B,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACjF,eAAO,MAAM,aAAa;;;;EAA0B,CAAC;AAErD,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAC/E,eAAO,MAAM,sBAAsB,EAAmC,CACpE,aAAa,EACb,GAAG,aAAa,EAAE,CACnB,CAAC;AACF,eAAO,MAAM,mBAAmB;;;EAAiC,CAAC;AAElE,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AACnE,eAAO,MAAM,iBAAiB,EAA+B,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAEzF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAUtE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,OAAO,EAAE,QAAQ,SAAS,KAAG,OACjB,CAAC;AAE9C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAI5E,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const OrgRole = {
|
|
3
|
+
OWNER: 'OWNER',
|
|
4
|
+
ADMIN: 'ADMIN',
|
|
5
|
+
MEMBER: 'MEMBER',
|
|
6
|
+
};
|
|
7
|
+
export const ORG_ROLE_VALUES = Object.values(OrgRole);
|
|
8
|
+
export const OrgRoleSchema = z.enum(ORG_ROLE_VALUES);
|
|
9
|
+
export const InviteOrgRole = {
|
|
10
|
+
ADMIN: 'ADMIN',
|
|
11
|
+
MEMBER: 'MEMBER',
|
|
12
|
+
};
|
|
13
|
+
export const INVITE_ORG_ROLE_VALUES = Object.values(InviteOrgRole);
|
|
14
|
+
export const InviteOrgRoleSchema = z.enum(INVITE_ORG_ROLE_VALUES);
|
|
15
|
+
export const OrgAction = {
|
|
16
|
+
UPDATE: 'org.update',
|
|
17
|
+
INVITE: 'org.invite',
|
|
18
|
+
MEMBER_REMOVE: 'org.member.remove',
|
|
19
|
+
MEMBER_LIST: 'org.member.list',
|
|
20
|
+
BILLING: 'org.billing',
|
|
21
|
+
};
|
|
22
|
+
export const ORG_ACTION_VALUES = Object.values(OrgAction);
|
|
23
|
+
export const ORG_ROLE_PERMISSIONS = {
|
|
24
|
+
OWNER: [
|
|
25
|
+
OrgAction.UPDATE,
|
|
26
|
+
OrgAction.INVITE,
|
|
27
|
+
OrgAction.MEMBER_REMOVE,
|
|
28
|
+
OrgAction.MEMBER_LIST,
|
|
29
|
+
OrgAction.BILLING,
|
|
30
|
+
],
|
|
31
|
+
ADMIN: [OrgAction.INVITE, OrgAction.MEMBER_REMOVE, OrgAction.MEMBER_LIST, OrgAction.BILLING],
|
|
32
|
+
MEMBER: [OrgAction.MEMBER_LIST],
|
|
33
|
+
};
|
|
34
|
+
export const orgRoleCan = (role, action) => ORG_ROLE_PERMISSIONS[role].includes(action);
|
|
35
|
+
export const ORG_ROLE_LABELS = {
|
|
36
|
+
OWNER: { 'zh-HK': '擁有人', en: 'Owner' },
|
|
37
|
+
ADMIN: { 'zh-HK': '管理員', en: 'Admin' },
|
|
38
|
+
MEMBER: { 'zh-HK': '成員', en: 'Member' },
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=org-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-role.js","sourceRoot":"","sources":["../../src/enums/org-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAC;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAGhE,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE,aAAa;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAgC,CAAC;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAA0C;IACzE,KAAK,EAAE;QACL,SAAS,CAAC,MAAM;QAChB,SAAS,CAAC,MAAM;QAChB,SAAS,CAAC,aAAa;QACvB,SAAS,CAAC,WAAW;QACrB,SAAS,CAAC,OAAO;KAClB;IACD,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC;IAC5F,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,MAAiB,EAAW,EAAE,CACtE,oBAAoB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAqD;IAC/E,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;IACtC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;IACtC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;CACxC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { UserRole } from './user-role';
|
|
3
|
+
export declare const Permission: {
|
|
4
|
+
readonly USER_CREATE: "user.create";
|
|
5
|
+
readonly USER_SUSPEND: "user.suspend";
|
|
6
|
+
readonly AUDIT_READ: "audit.read";
|
|
7
|
+
readonly FILE_UPLOAD: "file.upload";
|
|
8
|
+
readonly LLM_USE: "llm.use";
|
|
9
|
+
readonly BILLING_CHECKOUT: "billing.checkout";
|
|
10
|
+
};
|
|
11
|
+
export type Permission = (typeof Permission)[keyof typeof Permission];
|
|
12
|
+
export declare const PERMISSION_VALUES: [Permission, ...Permission[]];
|
|
13
|
+
export declare const PermissionSchema: z.ZodEnum<{
|
|
14
|
+
"user.create": "user.create";
|
|
15
|
+
"user.suspend": "user.suspend";
|
|
16
|
+
"audit.read": "audit.read";
|
|
17
|
+
"file.upload": "file.upload";
|
|
18
|
+
"llm.use": "llm.use";
|
|
19
|
+
"billing.checkout": "billing.checkout";
|
|
20
|
+
}>;
|
|
21
|
+
export declare const ROLE_PERMISSIONS: Record<UserRole, readonly Permission[]>;
|
|
22
|
+
export declare const roleHasPermission: (role: UserRole, permission: Permission) => boolean;
|
|
23
|
+
export declare const claimsHasPermission: (claims: {
|
|
24
|
+
role: UserRole;
|
|
25
|
+
permissions?: readonly Permission[];
|
|
26
|
+
}, permission: Permission) => boolean;
|
|
27
|
+
//# sourceMappingURL=permission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/enums/permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AACtE,eAAO,MAAM,iBAAiB,EAAgC,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAC5F,eAAO,MAAM,gBAAgB;;;;;;;EAA4B,CAAC;AAE1D,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAiBpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ,EAAE,YAAY,UAAU,KAAG,OAC9B,CAAC;AAE9C,eAAO,MAAM,mBAAmB,GAC9B,QAAQ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,EAC/D,YAAY,UAAU,KACrB,OAGF,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const Permission = {
|
|
3
|
+
USER_CREATE: 'user.create',
|
|
4
|
+
USER_SUSPEND: 'user.suspend',
|
|
5
|
+
AUDIT_READ: 'audit.read',
|
|
6
|
+
FILE_UPLOAD: 'file.upload',
|
|
7
|
+
LLM_USE: 'llm.use',
|
|
8
|
+
BILLING_CHECKOUT: 'billing.checkout',
|
|
9
|
+
};
|
|
10
|
+
export const PERMISSION_VALUES = Object.values(Permission);
|
|
11
|
+
export const PermissionSchema = z.enum(PERMISSION_VALUES);
|
|
12
|
+
export const ROLE_PERMISSIONS = {
|
|
13
|
+
USER: [Permission.FILE_UPLOAD, Permission.LLM_USE, Permission.BILLING_CHECKOUT],
|
|
14
|
+
OPS: [
|
|
15
|
+
Permission.FILE_UPLOAD,
|
|
16
|
+
Permission.USER_CREATE,
|
|
17
|
+
Permission.AUDIT_READ,
|
|
18
|
+
Permission.LLM_USE,
|
|
19
|
+
Permission.BILLING_CHECKOUT,
|
|
20
|
+
],
|
|
21
|
+
ADMIN: [
|
|
22
|
+
Permission.FILE_UPLOAD,
|
|
23
|
+
Permission.USER_CREATE,
|
|
24
|
+
Permission.USER_SUSPEND,
|
|
25
|
+
Permission.AUDIT_READ,
|
|
26
|
+
Permission.LLM_USE,
|
|
27
|
+
Permission.BILLING_CHECKOUT,
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
export const roleHasPermission = (role, permission) => ROLE_PERMISSIONS[role].includes(permission);
|
|
31
|
+
export const claimsHasPermission = (claims, permission) => {
|
|
32
|
+
if (claims.permissions)
|
|
33
|
+
return claims.permissions.includes(permission);
|
|
34
|
+
return roleHasPermission(claims.role, permission);
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=permission.js.map
|