@temboplus/afloat 0.1.76-beta.0 → 0.1.77-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/lib/error/error.permission.d.ts +1 -1
- package/dist/modules/auth/auth.contract.d.ts +6 -6
- package/dist/modules/auth/auth.manager.d.ts +1 -1
- package/dist/modules/auth/company-membership.model.d.ts +171 -0
- package/dist/modules/auth/index.d.ts +1 -1
- package/dist/modules/auth/user.model.d.ts +330 -33
- package/dist/modules/contact/contact-info.model.d.ts +183 -533
- package/dist/modules/contact/contact.api-contract.d.ts +16 -16
- package/dist/modules/contact/contact.dtos.d.ts +4 -4
- package/dist/modules/contact/contact.model.d.ts +309 -32
- package/dist/modules/login/index.d.ts +2 -0
- package/dist/modules/login/login.api-contract.d.ts +34 -5
- package/dist/modules/login/login.dtos.d.ts +85 -0
- package/dist/modules/login/login.model.d.ts +168 -1
- package/dist/modules/{auth → login}/permission.type.d.ts +8 -8
- package/dist/modules/payout/payout.api-contract.d.ts +46 -46
- package/dist/modules/payout/payout.dtos.d.ts +30 -24
- package/dist/modules/payout/payout.model.d.ts +242 -2
- package/dist/modules/payout/payout.query.d.ts +7 -0
- package/dist/modules/profile/profile.model.d.ts +65 -30
- package/dist/modules/team-member/index.d.ts +4 -0
- package/dist/modules/team-member/role.model.d.ts +61 -0
- package/dist/modules/{user/user.contract.d.ts → team-member/team-member.contract.d.ts} +238 -127
- package/dist/modules/team-member/team-member.dtos.d.ts +261 -0
- package/dist/modules/team-member/team-member.model.d.ts +237 -0
- package/dist/modules/team-member/team-member.repository.d.ts +179 -0
- package/dist/modules/wallet/narration.model.d.ts +34 -38
- package/dist/modules/wallet/statement-entry.model.d.ts +172 -73
- package/dist/modules/wallet/wallet.contract.d.ts +4 -4
- package/dist/modules/wallet/wallet.dtos.d.ts +8 -8
- package/dist/modules/wallet/wallet.model.d.ts +56 -19
- package/dist/modules/wallet/wallet.query.d.ts +95 -0
- package/dist/modules/wallet/wallet.repository.d.ts +45 -13
- package/package.json +2 -2
- package/dist/modules/user/index.d.ts +0 -4
- package/dist/modules/user/role.model.d.ts +0 -13
- package/dist/modules/user/user.dtos.d.ts +0 -145
- package/dist/modules/user/user.model.d.ts +0 -108
- package/dist/modules/user/user.repository.d.ts +0 -179
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Permission } from "@/modules/
|
|
1
|
+
import { Permission } from "@/modules/login/permission.type.js";
|
|
2
2
|
/**
|
|
3
3
|
* Custom error class representing an error caused by missing required permissions.
|
|
4
4
|
* Extends the built-in {@link Error} class to include the `requiredPermissions` property.
|
|
@@ -54,6 +54,8 @@ export declare const authContract: {
|
|
|
54
54
|
resetPassword: z.ZodBoolean;
|
|
55
55
|
}, "strip", z.ZodTypeAny, {
|
|
56
56
|
resetPassword: boolean;
|
|
57
|
+
access: string[];
|
|
58
|
+
token: string;
|
|
57
59
|
profile: {
|
|
58
60
|
id: string;
|
|
59
61
|
displayName: string;
|
|
@@ -64,10 +66,10 @@ export declare const authContract: {
|
|
|
64
66
|
email?: string | null | undefined;
|
|
65
67
|
autoApprove?: boolean | null | undefined;
|
|
66
68
|
};
|
|
67
|
-
token: string;
|
|
68
|
-
access: string[];
|
|
69
69
|
}, {
|
|
70
70
|
resetPassword: boolean;
|
|
71
|
+
access: string[];
|
|
72
|
+
token: string;
|
|
71
73
|
profile: {
|
|
72
74
|
id: string;
|
|
73
75
|
displayName: string;
|
|
@@ -78,8 +80,6 @@ export declare const authContract: {
|
|
|
78
80
|
email?: string | null | undefined;
|
|
79
81
|
autoApprove?: boolean | null | undefined;
|
|
80
82
|
};
|
|
81
|
-
token: string;
|
|
82
|
-
access: string[];
|
|
83
83
|
}>;
|
|
84
84
|
400: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
85
85
|
};
|
|
@@ -97,11 +97,11 @@ export declare const authContract: {
|
|
|
97
97
|
currentPassword: z.ZodString;
|
|
98
98
|
newPassword: z.ZodString;
|
|
99
99
|
}, "strip", z.ZodTypeAny, {
|
|
100
|
-
currentPassword: string;
|
|
101
100
|
newPassword: string;
|
|
102
|
-
}, {
|
|
103
101
|
currentPassword: string;
|
|
102
|
+
}, {
|
|
104
103
|
newPassword: string;
|
|
104
|
+
currentPassword: string;
|
|
105
105
|
}>;
|
|
106
106
|
path: "/password";
|
|
107
107
|
responses: {};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { Profile } from "../profile/profile.model.js";
|
|
3
|
+
import { Role } from "../team-member/role.model.js";
|
|
4
|
+
/**
|
|
5
|
+
* Zod schema for CompanyMembership JSON serialization
|
|
6
|
+
*/
|
|
7
|
+
export declare const CompanyMembershipJSONSchema: z.ZodObject<{
|
|
8
|
+
companyProfile: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
firstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
lastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12
|
+
displayName: z.ZodString;
|
|
13
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
14
|
+
accountNo: z.ZodString;
|
|
15
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
16
|
+
autoApprove: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
17
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
id: string;
|
|
20
|
+
displayName: string;
|
|
21
|
+
accountNo: string;
|
|
22
|
+
version: string;
|
|
23
|
+
firstName?: string | null | undefined;
|
|
24
|
+
lastName?: string | null | undefined;
|
|
25
|
+
phone?: string | null | undefined;
|
|
26
|
+
email?: string | null | undefined;
|
|
27
|
+
autoApprove?: boolean | null | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
id: string;
|
|
30
|
+
displayName: string;
|
|
31
|
+
accountNo: string;
|
|
32
|
+
firstName?: string | null | undefined;
|
|
33
|
+
lastName?: string | null | undefined;
|
|
34
|
+
phone?: string | null | undefined;
|
|
35
|
+
email?: string | null | undefined;
|
|
36
|
+
autoApprove?: boolean | null | undefined;
|
|
37
|
+
version?: string | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
role: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
id: z.ZodString;
|
|
41
|
+
name: z.ZodString;
|
|
42
|
+
description: z.ZodOptional<z.ZodString>;
|
|
43
|
+
access: z.ZodArray<z.ZodString, "many">;
|
|
44
|
+
createdAt: z.ZodString;
|
|
45
|
+
updatedAt: z.ZodString;
|
|
46
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
47
|
+
}, "strip", z.ZodTypeAny, {
|
|
48
|
+
name: string;
|
|
49
|
+
id: string;
|
|
50
|
+
version: string;
|
|
51
|
+
createdAt: string;
|
|
52
|
+
updatedAt: string;
|
|
53
|
+
access: string[];
|
|
54
|
+
description?: string | undefined;
|
|
55
|
+
}, {
|
|
56
|
+
name: string;
|
|
57
|
+
id: string;
|
|
58
|
+
createdAt: string;
|
|
59
|
+
updatedAt: string;
|
|
60
|
+
access: string[];
|
|
61
|
+
version?: string | undefined;
|
|
62
|
+
description?: string | undefined;
|
|
63
|
+
}>>;
|
|
64
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
version: string;
|
|
67
|
+
companyProfile: {
|
|
68
|
+
id: string;
|
|
69
|
+
displayName: string;
|
|
70
|
+
accountNo: string;
|
|
71
|
+
version: string;
|
|
72
|
+
firstName?: string | null | undefined;
|
|
73
|
+
lastName?: string | null | undefined;
|
|
74
|
+
phone?: string | null | undefined;
|
|
75
|
+
email?: string | null | undefined;
|
|
76
|
+
autoApprove?: boolean | null | undefined;
|
|
77
|
+
};
|
|
78
|
+
role?: {
|
|
79
|
+
name: string;
|
|
80
|
+
id: string;
|
|
81
|
+
version: string;
|
|
82
|
+
createdAt: string;
|
|
83
|
+
updatedAt: string;
|
|
84
|
+
access: string[];
|
|
85
|
+
description?: string | undefined;
|
|
86
|
+
} | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
companyProfile: {
|
|
89
|
+
id: string;
|
|
90
|
+
displayName: string;
|
|
91
|
+
accountNo: string;
|
|
92
|
+
firstName?: string | null | undefined;
|
|
93
|
+
lastName?: string | null | undefined;
|
|
94
|
+
phone?: string | null | undefined;
|
|
95
|
+
email?: string | null | undefined;
|
|
96
|
+
autoApprove?: boolean | null | undefined;
|
|
97
|
+
version?: string | undefined;
|
|
98
|
+
};
|
|
99
|
+
version?: string | undefined;
|
|
100
|
+
role?: {
|
|
101
|
+
name: string;
|
|
102
|
+
id: string;
|
|
103
|
+
createdAt: string;
|
|
104
|
+
updatedAt: string;
|
|
105
|
+
access: string[];
|
|
106
|
+
version?: string | undefined;
|
|
107
|
+
description?: string | undefined;
|
|
108
|
+
} | undefined;
|
|
109
|
+
}>;
|
|
110
|
+
export type CompanyMembershipJSON = z.infer<typeof CompanyMembershipJSONSchema>;
|
|
111
|
+
export type CompanyMembershipData = {
|
|
112
|
+
companyProfile: Profile;
|
|
113
|
+
role?: Role;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Represents a user's membership within a company.
|
|
117
|
+
*
|
|
118
|
+
* This class encapsulates the relationship between a user and their company:
|
|
119
|
+
* - The company profile the user belongs to
|
|
120
|
+
* - The user's role within that company (optional - depends on permissions)
|
|
121
|
+
*
|
|
122
|
+
* Note: Permissions are stored in LogIn.access, not here.
|
|
123
|
+
* This model focuses purely on the company-user relationship.
|
|
124
|
+
*
|
|
125
|
+
* The role may be undefined if the user doesn't have permission to view
|
|
126
|
+
* role details (Permissions.Role.ViewRole).
|
|
127
|
+
*/
|
|
128
|
+
export declare class CompanyMembership {
|
|
129
|
+
private readonly _companyProfile;
|
|
130
|
+
private readonly _role?;
|
|
131
|
+
private constructor();
|
|
132
|
+
/**
|
|
133
|
+
* Creates a CompanyMembership instance from the required data.
|
|
134
|
+
*
|
|
135
|
+
* @param data - The membership data
|
|
136
|
+
* @returns A new CompanyMembership instance, or undefined if invalid
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* const membership = CompanyMembership.from({
|
|
141
|
+
* companyProfile: profile,
|
|
142
|
+
* role: role // optional
|
|
143
|
+
* });
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
static from(data: CompanyMembershipData): CompanyMembership | undefined;
|
|
147
|
+
/**
|
|
148
|
+
* Gets the company profile.
|
|
149
|
+
*/
|
|
150
|
+
get companyProfile(): Profile;
|
|
151
|
+
/**
|
|
152
|
+
* Gets the user's role (may be undefined if user lacks permission to view it).
|
|
153
|
+
*/
|
|
154
|
+
get role(): Role | undefined;
|
|
155
|
+
/**
|
|
156
|
+
* Serializes the CompanyMembership instance to a JSON-compatible object
|
|
157
|
+
*/
|
|
158
|
+
toJSON(): CompanyMembershipJSON;
|
|
159
|
+
/**
|
|
160
|
+
* Serializes the CompanyMembership instance to a JSON string
|
|
161
|
+
*/
|
|
162
|
+
toJSONString(): string;
|
|
163
|
+
/**
|
|
164
|
+
* Creates a CompanyMembership instance from a JSON-compatible object or string
|
|
165
|
+
*/
|
|
166
|
+
static fromJSON(json: CompanyMembershipJSON | string): CompanyMembership | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* Type guard using Zod schema validation
|
|
169
|
+
*/
|
|
170
|
+
static isCompanyMembershipJSON(obj: unknown): obj is CompanyMembershipJSON;
|
|
171
|
+
}
|
|
@@ -1,66 +1,363 @@
|
|
|
1
|
-
import { Permission } from "
|
|
1
|
+
import { Permission } from "../login/permission.type.js";
|
|
2
2
|
import { Profile } from "../profile/profile.model.js";
|
|
3
|
+
import { LogIn } from "../login/login.model.js";
|
|
4
|
+
import { CompanyMembership } from "./company-membership.model.js";
|
|
5
|
+
import { Role } from "../team-member/role.model.js";
|
|
6
|
+
import z from "zod";
|
|
3
7
|
/**
|
|
4
|
-
*
|
|
8
|
+
* Zod schema for User JSON serialization
|
|
9
|
+
* Composes the schemas from nested objects
|
|
10
|
+
*/
|
|
11
|
+
export declare const UserJSONSchema: z.ZodObject<{
|
|
12
|
+
logIn: z.ZodObject<{
|
|
13
|
+
id: z.ZodString;
|
|
14
|
+
profileId: z.ZodString;
|
|
15
|
+
name: z.ZodString;
|
|
16
|
+
identity: z.ZodString;
|
|
17
|
+
type: z.ZodString;
|
|
18
|
+
roleId: z.ZodString;
|
|
19
|
+
isActive: z.ZodBoolean;
|
|
20
|
+
isArchived: z.ZodBoolean;
|
|
21
|
+
resetPassword: z.ZodBoolean;
|
|
22
|
+
createdAt: z.ZodString;
|
|
23
|
+
updatedAt: z.ZodString;
|
|
24
|
+
access: z.ZodArray<z.ZodString, "many">;
|
|
25
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
type: string;
|
|
28
|
+
name: string;
|
|
29
|
+
id: string;
|
|
30
|
+
version: string;
|
|
31
|
+
profileId: string;
|
|
32
|
+
identity: string;
|
|
33
|
+
roleId: string;
|
|
34
|
+
isActive: boolean;
|
|
35
|
+
isArchived: boolean;
|
|
36
|
+
resetPassword: boolean;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
updatedAt: string;
|
|
39
|
+
access: string[];
|
|
40
|
+
}, {
|
|
41
|
+
type: string;
|
|
42
|
+
name: string;
|
|
43
|
+
id: string;
|
|
44
|
+
profileId: string;
|
|
45
|
+
identity: string;
|
|
46
|
+
roleId: string;
|
|
47
|
+
isActive: boolean;
|
|
48
|
+
isArchived: boolean;
|
|
49
|
+
resetPassword: boolean;
|
|
50
|
+
createdAt: string;
|
|
51
|
+
updatedAt: string;
|
|
52
|
+
access: string[];
|
|
53
|
+
version?: string | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
companyProfile: z.ZodObject<{
|
|
56
|
+
id: z.ZodString;
|
|
57
|
+
firstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
58
|
+
lastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
59
|
+
displayName: z.ZodString;
|
|
60
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
61
|
+
accountNo: z.ZodString;
|
|
62
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
63
|
+
autoApprove: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
64
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
id: string;
|
|
67
|
+
displayName: string;
|
|
68
|
+
accountNo: string;
|
|
69
|
+
version: string;
|
|
70
|
+
firstName?: string | null | undefined;
|
|
71
|
+
lastName?: string | null | undefined;
|
|
72
|
+
phone?: string | null | undefined;
|
|
73
|
+
email?: string | null | undefined;
|
|
74
|
+
autoApprove?: boolean | null | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
id: string;
|
|
77
|
+
displayName: string;
|
|
78
|
+
accountNo: string;
|
|
79
|
+
firstName?: string | null | undefined;
|
|
80
|
+
lastName?: string | null | undefined;
|
|
81
|
+
phone?: string | null | undefined;
|
|
82
|
+
email?: string | null | undefined;
|
|
83
|
+
autoApprove?: boolean | null | undefined;
|
|
84
|
+
version?: string | undefined;
|
|
85
|
+
}>;
|
|
86
|
+
role: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
id: z.ZodString;
|
|
88
|
+
name: z.ZodString;
|
|
89
|
+
description: z.ZodOptional<z.ZodString>;
|
|
90
|
+
access: z.ZodArray<z.ZodString, "many">;
|
|
91
|
+
createdAt: z.ZodString;
|
|
92
|
+
updatedAt: z.ZodString;
|
|
93
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
94
|
+
}, "strip", z.ZodTypeAny, {
|
|
95
|
+
name: string;
|
|
96
|
+
id: string;
|
|
97
|
+
version: string;
|
|
98
|
+
createdAt: string;
|
|
99
|
+
updatedAt: string;
|
|
100
|
+
access: string[];
|
|
101
|
+
description?: string | undefined;
|
|
102
|
+
}, {
|
|
103
|
+
name: string;
|
|
104
|
+
id: string;
|
|
105
|
+
createdAt: string;
|
|
106
|
+
updatedAt: string;
|
|
107
|
+
access: string[];
|
|
108
|
+
version?: string | undefined;
|
|
109
|
+
description?: string | undefined;
|
|
110
|
+
}>>;
|
|
111
|
+
token: z.ZodString;
|
|
112
|
+
version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
113
|
+
}, "strip", z.ZodTypeAny, {
|
|
114
|
+
version: string;
|
|
115
|
+
companyProfile: {
|
|
116
|
+
id: string;
|
|
117
|
+
displayName: string;
|
|
118
|
+
accountNo: string;
|
|
119
|
+
version: string;
|
|
120
|
+
firstName?: string | null | undefined;
|
|
121
|
+
lastName?: string | null | undefined;
|
|
122
|
+
phone?: string | null | undefined;
|
|
123
|
+
email?: string | null | undefined;
|
|
124
|
+
autoApprove?: boolean | null | undefined;
|
|
125
|
+
};
|
|
126
|
+
logIn: {
|
|
127
|
+
type: string;
|
|
128
|
+
name: string;
|
|
129
|
+
id: string;
|
|
130
|
+
version: string;
|
|
131
|
+
profileId: string;
|
|
132
|
+
identity: string;
|
|
133
|
+
roleId: string;
|
|
134
|
+
isActive: boolean;
|
|
135
|
+
isArchived: boolean;
|
|
136
|
+
resetPassword: boolean;
|
|
137
|
+
createdAt: string;
|
|
138
|
+
updatedAt: string;
|
|
139
|
+
access: string[];
|
|
140
|
+
};
|
|
141
|
+
token: string;
|
|
142
|
+
role?: {
|
|
143
|
+
name: string;
|
|
144
|
+
id: string;
|
|
145
|
+
version: string;
|
|
146
|
+
createdAt: string;
|
|
147
|
+
updatedAt: string;
|
|
148
|
+
access: string[];
|
|
149
|
+
description?: string | undefined;
|
|
150
|
+
} | undefined;
|
|
151
|
+
}, {
|
|
152
|
+
companyProfile: {
|
|
153
|
+
id: string;
|
|
154
|
+
displayName: string;
|
|
155
|
+
accountNo: string;
|
|
156
|
+
firstName?: string | null | undefined;
|
|
157
|
+
lastName?: string | null | undefined;
|
|
158
|
+
phone?: string | null | undefined;
|
|
159
|
+
email?: string | null | undefined;
|
|
160
|
+
autoApprove?: boolean | null | undefined;
|
|
161
|
+
version?: string | undefined;
|
|
162
|
+
};
|
|
163
|
+
logIn: {
|
|
164
|
+
type: string;
|
|
165
|
+
name: string;
|
|
166
|
+
id: string;
|
|
167
|
+
profileId: string;
|
|
168
|
+
identity: string;
|
|
169
|
+
roleId: string;
|
|
170
|
+
isActive: boolean;
|
|
171
|
+
isArchived: boolean;
|
|
172
|
+
resetPassword: boolean;
|
|
173
|
+
createdAt: string;
|
|
174
|
+
updatedAt: string;
|
|
175
|
+
access: string[];
|
|
176
|
+
version?: string | undefined;
|
|
177
|
+
};
|
|
178
|
+
token: string;
|
|
179
|
+
version?: string | undefined;
|
|
180
|
+
role?: {
|
|
181
|
+
name: string;
|
|
182
|
+
id: string;
|
|
183
|
+
createdAt: string;
|
|
184
|
+
updatedAt: string;
|
|
185
|
+
access: string[];
|
|
186
|
+
version?: string | undefined;
|
|
187
|
+
description?: string | undefined;
|
|
188
|
+
} | undefined;
|
|
189
|
+
}>;
|
|
190
|
+
/**
|
|
191
|
+
* Infer the UserJSON type from the schema
|
|
192
|
+
*/
|
|
193
|
+
export type UserJSON = z.infer<typeof UserJSONSchema>;
|
|
194
|
+
export type UserData = {
|
|
195
|
+
logIn: LogIn;
|
|
196
|
+
companyProfile: Profile;
|
|
197
|
+
role?: Role;
|
|
198
|
+
token: string;
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Represents the currently authenticated user session.
|
|
202
|
+
*
|
|
203
|
+
* This class combines:
|
|
204
|
+
* - LogIn: User account data (identity, permissions, resetPassword, etc.)
|
|
205
|
+
* - CompanyMembership: User's relationship to their company (company profile + role)
|
|
206
|
+
* - Token: Session authentication token
|
|
207
|
+
*
|
|
208
|
+
* The User represents "who is logged in right now" with their full context.
|
|
5
209
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
210
|
+
* Note: The role in CompanyMembership may be undefined if the user doesn't have
|
|
211
|
+
* permission to view role details (Permissions.Role.ViewRole).
|
|
8
212
|
*/
|
|
9
213
|
export declare class User {
|
|
214
|
+
private readonly _logIn;
|
|
215
|
+
private readonly _membership;
|
|
216
|
+
private readonly _token;
|
|
217
|
+
private readonly _permissionMap;
|
|
218
|
+
private constructor();
|
|
10
219
|
/**
|
|
11
|
-
*
|
|
220
|
+
* Creates a User instance from the provided data.
|
|
221
|
+
*
|
|
222
|
+
* @param data - User session data
|
|
223
|
+
* @returns A new User instance, or undefined if data is invalid
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```typescript
|
|
227
|
+
* const user = User.from({
|
|
228
|
+
* logIn: logIn,
|
|
229
|
+
* companyProfile: profile,
|
|
230
|
+
* role: role, // optional
|
|
231
|
+
* token: "auth-token"
|
|
232
|
+
* });
|
|
233
|
+
* ```
|
|
12
234
|
*/
|
|
13
|
-
|
|
235
|
+
static from(data: UserData): User | undefined;
|
|
14
236
|
/**
|
|
15
|
-
*
|
|
237
|
+
* Gets the user's login data.
|
|
16
238
|
*/
|
|
17
|
-
|
|
239
|
+
get logIn(): LogIn;
|
|
18
240
|
/**
|
|
19
|
-
*
|
|
241
|
+
* Gets the user's company membership (includes company profile and role).
|
|
20
242
|
*/
|
|
21
|
-
|
|
243
|
+
get membership(): CompanyMembership;
|
|
22
244
|
/**
|
|
23
|
-
*
|
|
245
|
+
* Gets the user's authentication token.
|
|
24
246
|
*/
|
|
25
|
-
token: string;
|
|
247
|
+
get token(): string;
|
|
26
248
|
/**
|
|
27
|
-
*
|
|
249
|
+
* Convenience getter for the user's ID.
|
|
28
250
|
*/
|
|
29
|
-
|
|
251
|
+
get id(): string;
|
|
30
252
|
/**
|
|
31
|
-
*
|
|
253
|
+
* Convenience getter for the user's name.
|
|
32
254
|
*/
|
|
33
|
-
|
|
255
|
+
get name(): string;
|
|
34
256
|
/**
|
|
35
|
-
*
|
|
257
|
+
* Convenience getter for the user's identity (email).
|
|
36
258
|
*/
|
|
37
|
-
|
|
259
|
+
get identity(): string;
|
|
38
260
|
/**
|
|
39
|
-
*
|
|
261
|
+
* Convenience getter for the user's role ID.
|
|
40
262
|
*/
|
|
41
|
-
|
|
263
|
+
get roleId(): string;
|
|
264
|
+
/**
|
|
265
|
+
* Convenience getter for whether the user must reset their password.
|
|
266
|
+
*/
|
|
267
|
+
get resetPassword(): boolean;
|
|
268
|
+
/**
|
|
269
|
+
* Convenience getter for the company profile.
|
|
270
|
+
*/
|
|
271
|
+
get profile(): Profile;
|
|
42
272
|
/**
|
|
43
|
-
*
|
|
273
|
+
* Convenience getter for the user's role (may be undefined).
|
|
274
|
+
*/
|
|
275
|
+
get role(): Role | undefined;
|
|
276
|
+
/**
|
|
277
|
+
* Convenience getter for permissions array.
|
|
278
|
+
*/
|
|
279
|
+
get access(): ReadonlyArray<string>;
|
|
280
|
+
/**
|
|
281
|
+
* Checks if the user has a specific permission.
|
|
282
|
+
*
|
|
283
|
+
* @param permission - The permission to check
|
|
284
|
+
* @returns true if the user has the permission
|
|
285
|
+
*/
|
|
286
|
+
can(permission: Permission): boolean;
|
|
287
|
+
/**
|
|
288
|
+
* Checks if the user has any of the specified permissions.
|
|
289
|
+
*
|
|
290
|
+
* @param permissions - Array of permissions to check
|
|
291
|
+
* @returns true if the user has at least one permission
|
|
292
|
+
*/
|
|
293
|
+
canAny(permissions: Permission[]): boolean;
|
|
294
|
+
/**
|
|
295
|
+
* Checks if the user has all of the specified permissions.
|
|
44
296
|
*
|
|
45
|
-
* @param
|
|
46
|
-
* @returns
|
|
297
|
+
* @param permissions - Array of permissions to check
|
|
298
|
+
* @returns true if the user has all permissions
|
|
299
|
+
*/
|
|
300
|
+
canAll(permissions: Permission[]): boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Checks if the user can manage team members.
|
|
47
303
|
*/
|
|
48
|
-
|
|
304
|
+
canManageTeam(): boolean;
|
|
49
305
|
/**
|
|
50
|
-
*
|
|
51
|
-
* This can safely be embedded in a JWT payload.
|
|
306
|
+
* Checks if the user can view role details.
|
|
52
307
|
*/
|
|
53
|
-
|
|
308
|
+
canViewRoles(): boolean;
|
|
54
309
|
/**
|
|
55
|
-
|
|
310
|
+
* Serializes the User instance to a JSON-compatible object
|
|
311
|
+
*
|
|
312
|
+
* This method creates a complete snapshot of the user session including
|
|
313
|
+
* all nested objects (LogIn, Profile, Role). All data can be reconstructed
|
|
314
|
+
* from this JSON representation without needing backend calls.
|
|
315
|
+
*
|
|
316
|
+
* @returns {UserJSON} A plain object containing all necessary User data
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```typescript
|
|
320
|
+
* const user = User.from({ ... });
|
|
321
|
+
* const json = user.toJSON();
|
|
322
|
+
* // Store in localStorage
|
|
323
|
+
* localStorage.setItem('currentUser', JSON.stringify(json));
|
|
324
|
+
* ```
|
|
325
|
+
*/
|
|
326
|
+
toJSON(): UserJSON;
|
|
327
|
+
/**
|
|
328
|
+
* Serializes the User instance to a JSON string
|
|
329
|
+
*
|
|
330
|
+
* @returns {string} JSON string representation of the User
|
|
56
331
|
*/
|
|
57
|
-
|
|
332
|
+
toJSONString(): string;
|
|
58
333
|
/**
|
|
59
|
-
* Creates a
|
|
334
|
+
* Creates a User instance from a JSON-compatible object or string
|
|
335
|
+
*
|
|
336
|
+
* This static method reconstructs a complete User instance from data that was
|
|
337
|
+
* previously serialized using toJSON(). It validates the input data and
|
|
338
|
+
* ensures all nested objects (LogIn, Profile, Role) are properly reconstructed.
|
|
339
|
+
*
|
|
340
|
+
* @param {UserJSON | string} json - Either a UserJSON object or a JSON string
|
|
341
|
+
* @returns {User | undefined} A User instance if valid, undefined otherwise
|
|
342
|
+
*
|
|
343
|
+
* @example
|
|
344
|
+
* ```typescript
|
|
345
|
+
* // From localStorage
|
|
346
|
+
* const stored = localStorage.getItem('currentUser');
|
|
347
|
+
* const user = User.fromJSON(stored!);
|
|
348
|
+
*
|
|
349
|
+
* // From object
|
|
350
|
+
* const userJson = {
|
|
351
|
+
* logIn: { id: "...", ... },
|
|
352
|
+
* companyProfile: { id: "...", ... },
|
|
353
|
+
* token: "..."
|
|
354
|
+
* };
|
|
355
|
+
* const user = User.fromJSON(userJson);
|
|
356
|
+
* ```
|
|
60
357
|
*/
|
|
61
|
-
static fromJSON(
|
|
358
|
+
static fromJSON(json: UserJSON | string): User | undefined;
|
|
62
359
|
/**
|
|
63
|
-
*
|
|
360
|
+
* Type guard using Zod schema validation
|
|
64
361
|
*/
|
|
65
|
-
static
|
|
362
|
+
static isUserJSON(obj: unknown): obj is UserJSON;
|
|
66
363
|
}
|