@foxford/sdk 6.1.2 → 6.2.1

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/entities.d.cts ADDED
@@ -0,0 +1,211 @@
1
+ type PupilRole = '11 класс' | '10 класс' | '9 класс' | '8 класс' | '7 класс' | '6 класс' | '5 класс' | '4 класс' | '3 класс' | '2 класс' | '1 класс';
2
+ type UserRole = 'Ученик' | 'Репетитор' | 'Учитель' | 'Родитель' | 'Выпускник' | 'Дошкольник' | PupilRole;
3
+ interface UserDTO {
4
+ id: null | number;
5
+ email: string;
6
+ firstName: string;
7
+ middleName: string;
8
+ lastName: string;
9
+ fullName: string;
10
+ shortName: string;
11
+ createdAt: null | string;
12
+ timezone: null | string;
13
+ locale: null | string;
14
+ grade: {
15
+ id: null | number;
16
+ index: null | number;
17
+ name: null | string;
18
+ translit: null | string;
19
+ };
20
+ phone: null | string;
21
+ avatarUrl: string;
22
+ isParent: boolean;
23
+ isGraduated: boolean;
24
+ gradeChecked: boolean;
25
+ type: null | 'pupil' | 'agent';
26
+ isCoach: boolean;
27
+ isMiniGroupTeacher: boolean;
28
+ isExternshipCoach: boolean;
29
+ isAgent: boolean;
30
+ methodist: boolean;
31
+ address: {
32
+ index: null | string;
33
+ countryId: null | number;
34
+ countryName: null | string;
35
+ regionId: null | number;
36
+ regionName: null | string;
37
+ cityId: null | number;
38
+ cityName: null | string;
39
+ street: null | string;
40
+ house: null | string;
41
+ building: null | string;
42
+ room: null | string;
43
+ } | null;
44
+ socialNets: Array<{
45
+ provider: 'facebook' | 'google_oauth2' | 'mailru_oauth2' | 'odnoklassniki' | 'vkontakte' | 'yandex';
46
+ uid: number;
47
+ }>;
48
+ skype: null | string;
49
+ settings?: {
50
+ calendarUserExperienceFeedback?: boolean;
51
+ elementaryDashboardUserExperienceFeedback?: boolean;
52
+ homeSchoolFamilyEducationGuideHidden?: boolean;
53
+ pageBonusesVisited?: boolean;
54
+ pagePaymentsInfoVisited?: boolean;
55
+ pageSocializationLandingVisited?: boolean;
56
+ pageSocializationVisited?: boolean;
57
+ };
58
+ bonus: {
59
+ giftAmount: number;
60
+ realMoneyAmount: number;
61
+ };
62
+ bonusAmount: number;
63
+ hasActivePurchases: boolean;
64
+ hasAttemptsSolveExamRehearsals: boolean;
65
+ hasBookmarks: boolean;
66
+ tags: null | string[];
67
+ cartTemplateId: null | number;
68
+ cartItemsCount: number;
69
+ onboardingFinished: boolean;
70
+ onboardingFinishedAt: null | string;
71
+ emailConfirmed: boolean;
72
+ phoneConfirmed: boolean;
73
+ fakeEmail: boolean;
74
+ fakeUser: boolean;
75
+ profileEnriched: boolean;
76
+ recapUuid: string | null;
77
+ disciplineIds: number[];
78
+ privacy: {
79
+ publicProfile: boolean;
80
+ };
81
+ parentPhone: null | string;
82
+ parentPhoneConfirmed: boolean;
83
+ isCustomer: null | boolean;
84
+ hasAccessToMultiDaysStreaks: boolean;
85
+ isElementaryPupil: boolean;
86
+ webSocketNotificationsJwt: null | string;
87
+ hasAccessToAttestationSheets: boolean;
88
+ externshipUser: boolean;
89
+ hasPurchasedExternshipContracts: boolean;
90
+ hasExternshipAttestationAccess: boolean;
91
+ appearanceId?: null | number;
92
+ hasUnseenRoomFeatures?: boolean;
93
+ unconfirmedEmail?: null | string;
94
+ socializationProfile: {
95
+ id: number;
96
+ state: 'active' | 'draft' | 'banned';
97
+ } | null;
98
+ freeAccessFinishesAt: null | string;
99
+ purchaseAnyExternshipContracts: boolean;
100
+ }
101
+
102
+ declare class User {
103
+ private readonly props;
104
+ private readonly isDefault;
105
+ private constructor();
106
+ get id(): UserDTO['id'];
107
+ get email(): UserDTO['email'];
108
+ get firstName(): UserDTO['firstName'];
109
+ get middleName(): UserDTO['middleName'];
110
+ get lastName(): UserDTO['lastName'];
111
+ get fullName(): UserDTO['fullName'];
112
+ get shortName(): UserDTO['shortName'];
113
+ get createdAt(): UserDTO['createdAt'];
114
+ get timezone(): UserDTO['timezone'];
115
+ get locale(): UserDTO['locale'];
116
+ get grade(): UserDTO['grade'];
117
+ get phone(): UserDTO['phone'];
118
+ get avatarUrl(): UserDTO['avatarUrl'];
119
+ get isParent(): UserDTO['isParent'];
120
+ get isGraduated(): UserDTO['isGraduated'];
121
+ get gradeChecked(): UserDTO['gradeChecked'];
122
+ get type(): UserDTO['type'];
123
+ get isCoach(): UserDTO['isCoach'];
124
+ get isMiniGroupTeacher(): UserDTO['isMiniGroupTeacher'];
125
+ get isExternshipCoach(): UserDTO['isExternshipCoach'];
126
+ get isAgent(): UserDTO['isAgent'];
127
+ get methodist(): UserDTO['methodist'];
128
+ get address(): UserDTO['address'];
129
+ get socialNets(): UserDTO['socialNets'];
130
+ get skype(): UserDTO['skype'];
131
+ get settings(): UserDTO['settings'];
132
+ get bonus(): UserDTO['bonus'];
133
+ get bonusAmount(): UserDTO['bonusAmount'];
134
+ get hasActivePurchases(): UserDTO['hasActivePurchases'];
135
+ get hasAttemptsSolveExamRehearsals(): UserDTO['hasAttemptsSolveExamRehearsals'];
136
+ get hasBookmarks(): UserDTO['hasBookmarks'];
137
+ get tags(): UserDTO['tags'];
138
+ get cartTemplateId(): UserDTO['cartTemplateId'];
139
+ get cartItemsCount(): UserDTO['cartItemsCount'];
140
+ get onboardingFinished(): UserDTO['onboardingFinished'];
141
+ get onboardingFinishedAt(): UserDTO['onboardingFinishedAt'];
142
+ get emailConfirmed(): UserDTO['emailConfirmed'];
143
+ get phoneConfirmed(): UserDTO['phoneConfirmed'];
144
+ get fakeEmail(): UserDTO['fakeEmail'];
145
+ get fakeUser(): UserDTO['fakeUser'];
146
+ get profileEnriched(): UserDTO['profileEnriched'];
147
+ get recapUuid(): UserDTO['recapUuid'];
148
+ get disciplineIds(): UserDTO['disciplineIds'];
149
+ get privacy(): UserDTO['privacy'];
150
+ get parentPhone(): UserDTO['parentPhone'];
151
+ get parentPhoneConfirmed(): UserDTO['parentPhoneConfirmed'];
152
+ get isCustomer(): UserDTO['isCustomer'];
153
+ get hasAccessToMultiDaysStreaks(): UserDTO['hasAccessToMultiDaysStreaks'];
154
+ get isElementaryPupil(): UserDTO['isElementaryPupil'];
155
+ get webSocketNotificationsJwt(): UserDTO['webSocketNotificationsJwt'];
156
+ get hasAccessToAttestationSheets(): UserDTO['hasAccessToAttestationSheets'];
157
+ get externshipUser(): UserDTO['externshipUser'];
158
+ get hasPurchasedExternshipContracts(): UserDTO['hasPurchasedExternshipContracts'];
159
+ get hasExternshipAttestationAccess(): UserDTO['hasExternshipAttestationAccess'];
160
+ get socializationProfile(): UserDTO['socializationProfile'];
161
+ get freeAccessFinishesAt(): UserDTO['freeAccessFinishesAt'];
162
+ get hasUnseenRoomFeatures(): UserDTO['hasUnseenRoomFeatures'];
163
+ get purchaseAnyExternshipContracts(): UserDTO['purchaseAnyExternshipContracts'];
164
+ /**
165
+ * Глубокое клонирование объекта с защитой от циклических ссылок
166
+ * @private
167
+ * @param obj - объект для клонирования
168
+ * @param hash - WeakMap для отслеживания уже клонированных объектов
169
+ * @returns клонированный объект
170
+ */
171
+ private static deepClone;
172
+ static createDefault(): User;
173
+ /**
174
+ * Санитизирует строку: удаляет null-байты и обрезает пробелы
175
+ * @private
176
+ * @param str - исходная строка
177
+ * @returns санитизированная строка
178
+ */
179
+ private static sanitizeString;
180
+ static fromApi(input: unknown): User;
181
+ /**
182
+ * Санитизирует данные пользователя
183
+ * @private
184
+ * @param data - исходные данные
185
+ * @returns санитизированные данные
186
+ */
187
+ private static sanitizeUserData;
188
+ isDefaultUser(): boolean;
189
+ isLoggedIn(): boolean;
190
+ private static getGradeString;
191
+ /**
192
+ * Возвращает тектовое представление роли / класса пользователя
193
+ *
194
+ * @returns {UserRole}
195
+ */
196
+ getPupilRole(): UserRole;
197
+ /**
198
+ * Возвращает роль пользователя
199
+ * @returns {UserRole} роль как строка
200
+ */
201
+ getRole: () => UserRole;
202
+ /**
203
+ * Возвращает фамилию и инициалы юзера
204
+ * @param {User} user
205
+ * @return {string} 'Пупкин В.'
206
+ */
207
+ getInitials: () => string;
208
+ toJson(): string;
209
+ }
210
+
211
+ export { User, type UserDTO };
package/entities.d.ts ADDED
@@ -0,0 +1,211 @@
1
+ type PupilRole = '11 класс' | '10 класс' | '9 класс' | '8 класс' | '7 класс' | '6 класс' | '5 класс' | '4 класс' | '3 класс' | '2 класс' | '1 класс';
2
+ type UserRole = 'Ученик' | 'Репетитор' | 'Учитель' | 'Родитель' | 'Выпускник' | 'Дошкольник' | PupilRole;
3
+ interface UserDTO {
4
+ id: null | number;
5
+ email: string;
6
+ firstName: string;
7
+ middleName: string;
8
+ lastName: string;
9
+ fullName: string;
10
+ shortName: string;
11
+ createdAt: null | string;
12
+ timezone: null | string;
13
+ locale: null | string;
14
+ grade: {
15
+ id: null | number;
16
+ index: null | number;
17
+ name: null | string;
18
+ translit: null | string;
19
+ };
20
+ phone: null | string;
21
+ avatarUrl: string;
22
+ isParent: boolean;
23
+ isGraduated: boolean;
24
+ gradeChecked: boolean;
25
+ type: null | 'pupil' | 'agent';
26
+ isCoach: boolean;
27
+ isMiniGroupTeacher: boolean;
28
+ isExternshipCoach: boolean;
29
+ isAgent: boolean;
30
+ methodist: boolean;
31
+ address: {
32
+ index: null | string;
33
+ countryId: null | number;
34
+ countryName: null | string;
35
+ regionId: null | number;
36
+ regionName: null | string;
37
+ cityId: null | number;
38
+ cityName: null | string;
39
+ street: null | string;
40
+ house: null | string;
41
+ building: null | string;
42
+ room: null | string;
43
+ } | null;
44
+ socialNets: Array<{
45
+ provider: 'facebook' | 'google_oauth2' | 'mailru_oauth2' | 'odnoklassniki' | 'vkontakte' | 'yandex';
46
+ uid: number;
47
+ }>;
48
+ skype: null | string;
49
+ settings?: {
50
+ calendarUserExperienceFeedback?: boolean;
51
+ elementaryDashboardUserExperienceFeedback?: boolean;
52
+ homeSchoolFamilyEducationGuideHidden?: boolean;
53
+ pageBonusesVisited?: boolean;
54
+ pagePaymentsInfoVisited?: boolean;
55
+ pageSocializationLandingVisited?: boolean;
56
+ pageSocializationVisited?: boolean;
57
+ };
58
+ bonus: {
59
+ giftAmount: number;
60
+ realMoneyAmount: number;
61
+ };
62
+ bonusAmount: number;
63
+ hasActivePurchases: boolean;
64
+ hasAttemptsSolveExamRehearsals: boolean;
65
+ hasBookmarks: boolean;
66
+ tags: null | string[];
67
+ cartTemplateId: null | number;
68
+ cartItemsCount: number;
69
+ onboardingFinished: boolean;
70
+ onboardingFinishedAt: null | string;
71
+ emailConfirmed: boolean;
72
+ phoneConfirmed: boolean;
73
+ fakeEmail: boolean;
74
+ fakeUser: boolean;
75
+ profileEnriched: boolean;
76
+ recapUuid: string | null;
77
+ disciplineIds: number[];
78
+ privacy: {
79
+ publicProfile: boolean;
80
+ };
81
+ parentPhone: null | string;
82
+ parentPhoneConfirmed: boolean;
83
+ isCustomer: null | boolean;
84
+ hasAccessToMultiDaysStreaks: boolean;
85
+ isElementaryPupil: boolean;
86
+ webSocketNotificationsJwt: null | string;
87
+ hasAccessToAttestationSheets: boolean;
88
+ externshipUser: boolean;
89
+ hasPurchasedExternshipContracts: boolean;
90
+ hasExternshipAttestationAccess: boolean;
91
+ appearanceId?: null | number;
92
+ hasUnseenRoomFeatures?: boolean;
93
+ unconfirmedEmail?: null | string;
94
+ socializationProfile: {
95
+ id: number;
96
+ state: 'active' | 'draft' | 'banned';
97
+ } | null;
98
+ freeAccessFinishesAt: null | string;
99
+ purchaseAnyExternshipContracts: boolean;
100
+ }
101
+
102
+ declare class User {
103
+ private readonly props;
104
+ private readonly isDefault;
105
+ private constructor();
106
+ get id(): UserDTO['id'];
107
+ get email(): UserDTO['email'];
108
+ get firstName(): UserDTO['firstName'];
109
+ get middleName(): UserDTO['middleName'];
110
+ get lastName(): UserDTO['lastName'];
111
+ get fullName(): UserDTO['fullName'];
112
+ get shortName(): UserDTO['shortName'];
113
+ get createdAt(): UserDTO['createdAt'];
114
+ get timezone(): UserDTO['timezone'];
115
+ get locale(): UserDTO['locale'];
116
+ get grade(): UserDTO['grade'];
117
+ get phone(): UserDTO['phone'];
118
+ get avatarUrl(): UserDTO['avatarUrl'];
119
+ get isParent(): UserDTO['isParent'];
120
+ get isGraduated(): UserDTO['isGraduated'];
121
+ get gradeChecked(): UserDTO['gradeChecked'];
122
+ get type(): UserDTO['type'];
123
+ get isCoach(): UserDTO['isCoach'];
124
+ get isMiniGroupTeacher(): UserDTO['isMiniGroupTeacher'];
125
+ get isExternshipCoach(): UserDTO['isExternshipCoach'];
126
+ get isAgent(): UserDTO['isAgent'];
127
+ get methodist(): UserDTO['methodist'];
128
+ get address(): UserDTO['address'];
129
+ get socialNets(): UserDTO['socialNets'];
130
+ get skype(): UserDTO['skype'];
131
+ get settings(): UserDTO['settings'];
132
+ get bonus(): UserDTO['bonus'];
133
+ get bonusAmount(): UserDTO['bonusAmount'];
134
+ get hasActivePurchases(): UserDTO['hasActivePurchases'];
135
+ get hasAttemptsSolveExamRehearsals(): UserDTO['hasAttemptsSolveExamRehearsals'];
136
+ get hasBookmarks(): UserDTO['hasBookmarks'];
137
+ get tags(): UserDTO['tags'];
138
+ get cartTemplateId(): UserDTO['cartTemplateId'];
139
+ get cartItemsCount(): UserDTO['cartItemsCount'];
140
+ get onboardingFinished(): UserDTO['onboardingFinished'];
141
+ get onboardingFinishedAt(): UserDTO['onboardingFinishedAt'];
142
+ get emailConfirmed(): UserDTO['emailConfirmed'];
143
+ get phoneConfirmed(): UserDTO['phoneConfirmed'];
144
+ get fakeEmail(): UserDTO['fakeEmail'];
145
+ get fakeUser(): UserDTO['fakeUser'];
146
+ get profileEnriched(): UserDTO['profileEnriched'];
147
+ get recapUuid(): UserDTO['recapUuid'];
148
+ get disciplineIds(): UserDTO['disciplineIds'];
149
+ get privacy(): UserDTO['privacy'];
150
+ get parentPhone(): UserDTO['parentPhone'];
151
+ get parentPhoneConfirmed(): UserDTO['parentPhoneConfirmed'];
152
+ get isCustomer(): UserDTO['isCustomer'];
153
+ get hasAccessToMultiDaysStreaks(): UserDTO['hasAccessToMultiDaysStreaks'];
154
+ get isElementaryPupil(): UserDTO['isElementaryPupil'];
155
+ get webSocketNotificationsJwt(): UserDTO['webSocketNotificationsJwt'];
156
+ get hasAccessToAttestationSheets(): UserDTO['hasAccessToAttestationSheets'];
157
+ get externshipUser(): UserDTO['externshipUser'];
158
+ get hasPurchasedExternshipContracts(): UserDTO['hasPurchasedExternshipContracts'];
159
+ get hasExternshipAttestationAccess(): UserDTO['hasExternshipAttestationAccess'];
160
+ get socializationProfile(): UserDTO['socializationProfile'];
161
+ get freeAccessFinishesAt(): UserDTO['freeAccessFinishesAt'];
162
+ get hasUnseenRoomFeatures(): UserDTO['hasUnseenRoomFeatures'];
163
+ get purchaseAnyExternshipContracts(): UserDTO['purchaseAnyExternshipContracts'];
164
+ /**
165
+ * Глубокое клонирование объекта с защитой от циклических ссылок
166
+ * @private
167
+ * @param obj - объект для клонирования
168
+ * @param hash - WeakMap для отслеживания уже клонированных объектов
169
+ * @returns клонированный объект
170
+ */
171
+ private static deepClone;
172
+ static createDefault(): User;
173
+ /**
174
+ * Санитизирует строку: удаляет null-байты и обрезает пробелы
175
+ * @private
176
+ * @param str - исходная строка
177
+ * @returns санитизированная строка
178
+ */
179
+ private static sanitizeString;
180
+ static fromApi(input: unknown): User;
181
+ /**
182
+ * Санитизирует данные пользователя
183
+ * @private
184
+ * @param data - исходные данные
185
+ * @returns санитизированные данные
186
+ */
187
+ private static sanitizeUserData;
188
+ isDefaultUser(): boolean;
189
+ isLoggedIn(): boolean;
190
+ private static getGradeString;
191
+ /**
192
+ * Возвращает тектовое представление роли / класса пользователя
193
+ *
194
+ * @returns {UserRole}
195
+ */
196
+ getPupilRole(): UserRole;
197
+ /**
198
+ * Возвращает роль пользователя
199
+ * @returns {UserRole} роль как строка
200
+ */
201
+ getRole: () => UserRole;
202
+ /**
203
+ * Возвращает фамилию и инициалы юзера
204
+ * @param {User} user
205
+ * @return {string} 'Пупкин В.'
206
+ */
207
+ getInitials: () => string;
208
+ toJson(): string;
209
+ }
210
+
211
+ export { User, type UserDTO };