@foxford/sdk 7.0.0 → 8.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/entities.cjs CHANGED
@@ -342,6 +342,33 @@ var _User = class _User {
342
342
  get purchaseAnyExternshipContracts() {
343
343
  return this.props.purchaseAnyExternshipContracts;
344
344
  }
345
+ get hasExternshipRelation() {
346
+ return this.props.hasExternshipRelation;
347
+ }
348
+ get hasExternshipActiveContract() {
349
+ return this.props.hasExternshipActiveContract;
350
+ }
351
+ get canProlongateContract() {
352
+ return this.props.canProlongateContract;
353
+ }
354
+ get prolongation() {
355
+ return this.props.prolongation;
356
+ }
357
+ /**
358
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
359
+ *
360
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
361
+ * означает, что окна нет вовсе, а не что оно бесконечно.
362
+ */
363
+ isProlongationBetweenDates() {
364
+ var _a;
365
+ const { endsAt, startsAt } = (_a = this.props.prolongation) != null ? _a : {};
366
+ if (startsAt === void 0 || startsAt === null || endsAt === void 0 || endsAt === null) {
367
+ return false;
368
+ }
369
+ const now = Date.now();
370
+ return now >= Date.parse(startsAt) && now <= Date.parse(endsAt);
371
+ }
345
372
  /**
346
373
  * Глубокое клонирование объекта с защитой от циклических ссылок
347
374
  * @private
package/entities.d.cts CHANGED
@@ -51,9 +51,10 @@ interface UserDTO {
51
51
  elementaryDashboardUserExperienceFeedback?: boolean;
52
52
  homeSchoolFamilyEducationGuideHidden?: boolean;
53
53
  pageBonusesVisited?: boolean;
54
- pagePaymentsInfoVisited?: boolean;
54
+ pageDashboardPaymentsVisited?: boolean;
55
55
  pageSocializationLandingVisited?: boolean;
56
56
  pageSocializationVisited?: boolean;
57
+ supportButtonIndicatorHidden?: boolean;
57
58
  };
58
59
  bonus: {
59
60
  giftAmount: number;
@@ -97,6 +98,18 @@ interface UserDTO {
97
98
  } | null;
98
99
  freeAccessFinishesAt: null | string;
99
100
  purchaseAnyExternshipContracts: boolean;
101
+ hasExternshipRelation?: boolean;
102
+ hasExternshipActiveContract?: boolean;
103
+ canProlongateContract?: boolean;
104
+ /** Окно пролонгации договора домашней школы: даты, скидка и заголовок следующего года. */
105
+ prolongation?: {
106
+ dailyPlanBannerText?: string;
107
+ endsAt: null | string;
108
+ maxDiscount: number;
109
+ prolongationMenuTitleOn: boolean;
110
+ startsAt: null | string;
111
+ yearName: string;
112
+ } | null;
100
113
  }
101
114
 
102
115
  declare class User {
@@ -161,6 +174,17 @@ declare class User {
161
174
  get freeAccessFinishesAt(): UserDTO['freeAccessFinishesAt'];
162
175
  get hasUnseenRoomFeatures(): UserDTO['hasUnseenRoomFeatures'];
163
176
  get purchaseAnyExternshipContracts(): UserDTO['purchaseAnyExternshipContracts'];
177
+ get hasExternshipRelation(): UserDTO['hasExternshipRelation'];
178
+ get hasExternshipActiveContract(): UserDTO['hasExternshipActiveContract'];
179
+ get canProlongateContract(): UserDTO['canProlongateContract'];
180
+ get prolongation(): UserDTO['prolongation'];
181
+ /**
182
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
183
+ *
184
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
185
+ * означает, что окна нет вовсе, а не что оно бесконечно.
186
+ */
187
+ isProlongationBetweenDates(): boolean;
164
188
  /**
165
189
  * Глубокое клонирование объекта с защитой от циклических ссылок
166
190
  * @private
package/entities.d.ts CHANGED
@@ -51,9 +51,10 @@ interface UserDTO {
51
51
  elementaryDashboardUserExperienceFeedback?: boolean;
52
52
  homeSchoolFamilyEducationGuideHidden?: boolean;
53
53
  pageBonusesVisited?: boolean;
54
- pagePaymentsInfoVisited?: boolean;
54
+ pageDashboardPaymentsVisited?: boolean;
55
55
  pageSocializationLandingVisited?: boolean;
56
56
  pageSocializationVisited?: boolean;
57
+ supportButtonIndicatorHidden?: boolean;
57
58
  };
58
59
  bonus: {
59
60
  giftAmount: number;
@@ -97,6 +98,18 @@ interface UserDTO {
97
98
  } | null;
98
99
  freeAccessFinishesAt: null | string;
99
100
  purchaseAnyExternshipContracts: boolean;
101
+ hasExternshipRelation?: boolean;
102
+ hasExternshipActiveContract?: boolean;
103
+ canProlongateContract?: boolean;
104
+ /** Окно пролонгации договора домашней школы: даты, скидка и заголовок следующего года. */
105
+ prolongation?: {
106
+ dailyPlanBannerText?: string;
107
+ endsAt: null | string;
108
+ maxDiscount: number;
109
+ prolongationMenuTitleOn: boolean;
110
+ startsAt: null | string;
111
+ yearName: string;
112
+ } | null;
100
113
  }
101
114
 
102
115
  declare class User {
@@ -161,6 +174,17 @@ declare class User {
161
174
  get freeAccessFinishesAt(): UserDTO['freeAccessFinishesAt'];
162
175
  get hasUnseenRoomFeatures(): UserDTO['hasUnseenRoomFeatures'];
163
176
  get purchaseAnyExternshipContracts(): UserDTO['purchaseAnyExternshipContracts'];
177
+ get hasExternshipRelation(): UserDTO['hasExternshipRelation'];
178
+ get hasExternshipActiveContract(): UserDTO['hasExternshipActiveContract'];
179
+ get canProlongateContract(): UserDTO['canProlongateContract'];
180
+ get prolongation(): UserDTO['prolongation'];
181
+ /**
182
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
183
+ *
184
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
185
+ * означает, что окна нет вовсе, а не что оно бесконечно.
186
+ */
187
+ isProlongationBetweenDates(): boolean;
164
188
  /**
165
189
  * Глубокое клонирование объекта с защитой от циклических ссылок
166
190
  * @private
package/entities.js CHANGED
@@ -319,6 +319,33 @@ var _User = class _User {
319
319
  get purchaseAnyExternshipContracts() {
320
320
  return this.props.purchaseAnyExternshipContracts;
321
321
  }
322
+ get hasExternshipRelation() {
323
+ return this.props.hasExternshipRelation;
324
+ }
325
+ get hasExternshipActiveContract() {
326
+ return this.props.hasExternshipActiveContract;
327
+ }
328
+ get canProlongateContract() {
329
+ return this.props.canProlongateContract;
330
+ }
331
+ get prolongation() {
332
+ return this.props.prolongation;
333
+ }
334
+ /**
335
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
336
+ *
337
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
338
+ * означает, что окна нет вовсе, а не что оно бесконечно.
339
+ */
340
+ isProlongationBetweenDates() {
341
+ var _a;
342
+ const { endsAt, startsAt } = (_a = this.props.prolongation) != null ? _a : {};
343
+ if (startsAt === void 0 || startsAt === null || endsAt === void 0 || endsAt === null) {
344
+ return false;
345
+ }
346
+ const now = Date.now();
347
+ return now >= Date.parse(startsAt) && now <= Date.parse(endsAt);
348
+ }
322
349
  /**
323
350
  * Глубокое клонирование объекта с защитой от циклических ссылок
324
351
  * @private
package/entities.js.flow CHANGED
@@ -79,9 +79,10 @@ declare interface UserDTO {
79
79
  elementaryDashboardUserExperienceFeedback?: boolean,
80
80
  homeSchoolFamilyEducationGuideHidden?: boolean,
81
81
  pageBonusesVisited?: boolean,
82
- pagePaymentsInfoVisited?: boolean,
82
+ pageDashboardPaymentsVisited?: boolean,
83
83
  pageSocializationLandingVisited?: boolean,
84
84
  pageSocializationVisited?: boolean,
85
+ supportButtonIndicatorHidden?: boolean,
85
86
  ...
86
87
  };
87
88
  bonus: {
@@ -129,6 +130,22 @@ declare interface UserDTO {
129
130
  } | null;
130
131
  freeAccessFinishesAt: null | string;
131
132
  purchaseAnyExternshipContracts: boolean;
133
+ hasExternshipRelation?: boolean;
134
+ hasExternshipActiveContract?: boolean;
135
+ canProlongateContract?: boolean;
136
+
137
+ /**
138
+ * Окно пролонгации договора домашней школы: даты, скидка и заголовок следующего года.
139
+ */
140
+ prolongation?: {
141
+ dailyPlanBannerText?: string,
142
+ endsAt: null | string,
143
+ maxDiscount: number,
144
+ prolongationMenuTitleOn: boolean,
145
+ startsAt: null | string,
146
+ yearName: string,
147
+ ...
148
+ } | null;
132
149
  }
133
150
  declare class User {
134
151
  constructor(): this;
@@ -211,6 +228,21 @@ declare class User {
211
228
  UserDTO,
212
229
  "purchaseAnyExternshipContracts"
213
230
  >;
231
+ hasExternshipRelation: $PropertyType<UserDTO, "hasExternshipRelation">;
232
+ hasExternshipActiveContract: $PropertyType<
233
+ UserDTO,
234
+ "hasExternshipActiveContract"
235
+ >;
236
+ canProlongateContract: $PropertyType<UserDTO, "canProlongateContract">;
237
+ prolongation: $PropertyType<UserDTO, "prolongation">;
238
+
239
+ /**
240
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
241
+ *
242
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
243
+ * означает, что окна нет вовсе, а не что оно бесконечно.
244
+ */
245
+ isProlongationBetweenDates(): boolean;
214
246
  static createDefault(): User;
215
247
  static fromApi(input: mixed): User;
216
248
  isDefaultUser(): boolean;
package/index.cjs CHANGED
@@ -1191,6 +1191,33 @@ var _User = class _User {
1191
1191
  get purchaseAnyExternshipContracts() {
1192
1192
  return this.props.purchaseAnyExternshipContracts;
1193
1193
  }
1194
+ get hasExternshipRelation() {
1195
+ return this.props.hasExternshipRelation;
1196
+ }
1197
+ get hasExternshipActiveContract() {
1198
+ return this.props.hasExternshipActiveContract;
1199
+ }
1200
+ get canProlongateContract() {
1201
+ return this.props.canProlongateContract;
1202
+ }
1203
+ get prolongation() {
1204
+ return this.props.prolongation;
1205
+ }
1206
+ /**
1207
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
1208
+ *
1209
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
1210
+ * означает, что окна нет вовсе, а не что оно бесконечно.
1211
+ */
1212
+ isProlongationBetweenDates() {
1213
+ var _a;
1214
+ const { endsAt, startsAt } = (_a = this.props.prolongation) != null ? _a : {};
1215
+ if (startsAt === void 0 || startsAt === null || endsAt === void 0 || endsAt === null) {
1216
+ return false;
1217
+ }
1218
+ const now = Date.now();
1219
+ return now >= Date.parse(startsAt) && now <= Date.parse(endsAt);
1220
+ }
1194
1221
  /**
1195
1222
  * Глубокое клонирование объекта с защитой от циклических ссылок
1196
1223
  * @private
@@ -1661,7 +1688,8 @@ var _Foxford = class _Foxford {
1661
1688
  const captchaConfig = (_b = this.config) == null ? void 0 : _b.captchaConfig;
1662
1689
  const apiInstance = import_services2.ApiService.createFoxApiInstance({
1663
1690
  config: apiConfig2.config,
1664
- plugins: getPlugins(apiConfig2, captchaConfig)
1691
+ plugins: getPlugins(apiConfig2, captchaConfig),
1692
+ retry: apiConfig2.retry
1665
1693
  });
1666
1694
  if (!((_d = (_c = this.config) == null ? void 0 : _c.api) == null ? void 0 : _d.config.baseURL) && this.config.host) apiInstance.defaults.baseURL = this.config.host;
1667
1695
  return apiInstance;
package/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ApiInstance, ApiConfig, CaptchaConfig, ApiResponse, ApiService, CaptchaService } from '@foxford/services';
2
- export { ApiAdapter, ApiBasicCredentials, ApiConfig, ApiError, ApiErrorExtended, ApiInstance, ApiInterceptorManager, ApiMethod, ApiPromise, ApiProxyConfig, ApiRequestConfig, ApiRequestConfigExtended, ApiResponse, ApiResponseType, ApiService, ApiServiceInterface, ApiStatic, ApiTransformer, Cancel, CancelStatic, CancelToken, CancelTokenSource, CancelTokenStatic, Canceler, CaptchaError, CaptchaService, RequestPlugin, RequestPluginInterface, ResponseError, ResponseFailPlugin, ResponseSuccessPlugin, ResponseSuccessPluginInterface } from '@foxford/services';
2
+ export { ApiAdapter, ApiBasicCredentials, ApiConfig, ApiError, ApiErrorExtended, ApiInstance, ApiInterceptorManager, ApiMethod, ApiPromise, ApiProxyConfig, ApiRequestConfig, ApiRequestConfigExtended, ApiResponse, ApiResponseType, ApiRetryConfig, ApiService, ApiServiceInterface, ApiStatic, ApiTransformer, Cancel, CancelStatic, CancelToken, CancelTokenSource, CancelTokenStatic, Canceler, CaptchaError, CaptchaService, RequestPlugin, RequestPluginInterface, ResponseError, ResponseFailPlugin, ResponseSuccessPlugin, ResponseSuccessPluginInterface } from '@foxford/services';
3
3
  import { CartItemResourceType, BusinessUnitAbbreviation, Course } from '@foxford/types';
4
4
 
5
5
  type PupilRole = '11 класс' | '10 класс' | '9 класс' | '8 класс' | '7 класс' | '6 класс' | '5 класс' | '4 класс' | '3 класс' | '2 класс' | '1 класс';
@@ -55,9 +55,10 @@ interface UserDTO {
55
55
  elementaryDashboardUserExperienceFeedback?: boolean;
56
56
  homeSchoolFamilyEducationGuideHidden?: boolean;
57
57
  pageBonusesVisited?: boolean;
58
- pagePaymentsInfoVisited?: boolean;
58
+ pageDashboardPaymentsVisited?: boolean;
59
59
  pageSocializationLandingVisited?: boolean;
60
60
  pageSocializationVisited?: boolean;
61
+ supportButtonIndicatorHidden?: boolean;
61
62
  };
62
63
  bonus: {
63
64
  giftAmount: number;
@@ -101,6 +102,18 @@ interface UserDTO {
101
102
  } | null;
102
103
  freeAccessFinishesAt: null | string;
103
104
  purchaseAnyExternshipContracts: boolean;
105
+ hasExternshipRelation?: boolean;
106
+ hasExternshipActiveContract?: boolean;
107
+ canProlongateContract?: boolean;
108
+ /** Окно пролонгации договора домашней школы: даты, скидка и заголовок следующего года. */
109
+ prolongation?: {
110
+ dailyPlanBannerText?: string;
111
+ endsAt: null | string;
112
+ maxDiscount: number;
113
+ prolongationMenuTitleOn: boolean;
114
+ startsAt: null | string;
115
+ yearName: string;
116
+ } | null;
104
117
  }
105
118
 
106
119
  declare class User {
@@ -165,6 +178,17 @@ declare class User {
165
178
  get freeAccessFinishesAt(): UserDTO['freeAccessFinishesAt'];
166
179
  get hasUnseenRoomFeatures(): UserDTO['hasUnseenRoomFeatures'];
167
180
  get purchaseAnyExternshipContracts(): UserDTO['purchaseAnyExternshipContracts'];
181
+ get hasExternshipRelation(): UserDTO['hasExternshipRelation'];
182
+ get hasExternshipActiveContract(): UserDTO['hasExternshipActiveContract'];
183
+ get canProlongateContract(): UserDTO['canProlongateContract'];
184
+ get prolongation(): UserDTO['prolongation'];
185
+ /**
186
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
187
+ *
188
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
189
+ * означает, что окна нет вовсе, а не что оно бесконечно.
190
+ */
191
+ isProlongationBetweenDates(): boolean;
168
192
  /**
169
193
  * Глубокое клонирование объекта с защитой от циклических ссылок
170
194
  * @private
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ApiInstance, ApiConfig, CaptchaConfig, ApiResponse, ApiService, CaptchaService } from '@foxford/services';
2
- export { ApiAdapter, ApiBasicCredentials, ApiConfig, ApiError, ApiErrorExtended, ApiInstance, ApiInterceptorManager, ApiMethod, ApiPromise, ApiProxyConfig, ApiRequestConfig, ApiRequestConfigExtended, ApiResponse, ApiResponseType, ApiService, ApiServiceInterface, ApiStatic, ApiTransformer, Cancel, CancelStatic, CancelToken, CancelTokenSource, CancelTokenStatic, Canceler, CaptchaError, CaptchaService, RequestPlugin, RequestPluginInterface, ResponseError, ResponseFailPlugin, ResponseSuccessPlugin, ResponseSuccessPluginInterface } from '@foxford/services';
2
+ export { ApiAdapter, ApiBasicCredentials, ApiConfig, ApiError, ApiErrorExtended, ApiInstance, ApiInterceptorManager, ApiMethod, ApiPromise, ApiProxyConfig, ApiRequestConfig, ApiRequestConfigExtended, ApiResponse, ApiResponseType, ApiRetryConfig, ApiService, ApiServiceInterface, ApiStatic, ApiTransformer, Cancel, CancelStatic, CancelToken, CancelTokenSource, CancelTokenStatic, Canceler, CaptchaError, CaptchaService, RequestPlugin, RequestPluginInterface, ResponseError, ResponseFailPlugin, ResponseSuccessPlugin, ResponseSuccessPluginInterface } from '@foxford/services';
3
3
  import { CartItemResourceType, BusinessUnitAbbreviation, Course } from '@foxford/types';
4
4
 
5
5
  type PupilRole = '11 класс' | '10 класс' | '9 класс' | '8 класс' | '7 класс' | '6 класс' | '5 класс' | '4 класс' | '3 класс' | '2 класс' | '1 класс';
@@ -55,9 +55,10 @@ interface UserDTO {
55
55
  elementaryDashboardUserExperienceFeedback?: boolean;
56
56
  homeSchoolFamilyEducationGuideHidden?: boolean;
57
57
  pageBonusesVisited?: boolean;
58
- pagePaymentsInfoVisited?: boolean;
58
+ pageDashboardPaymentsVisited?: boolean;
59
59
  pageSocializationLandingVisited?: boolean;
60
60
  pageSocializationVisited?: boolean;
61
+ supportButtonIndicatorHidden?: boolean;
61
62
  };
62
63
  bonus: {
63
64
  giftAmount: number;
@@ -101,6 +102,18 @@ interface UserDTO {
101
102
  } | null;
102
103
  freeAccessFinishesAt: null | string;
103
104
  purchaseAnyExternshipContracts: boolean;
105
+ hasExternshipRelation?: boolean;
106
+ hasExternshipActiveContract?: boolean;
107
+ canProlongateContract?: boolean;
108
+ /** Окно пролонгации договора домашней школы: даты, скидка и заголовок следующего года. */
109
+ prolongation?: {
110
+ dailyPlanBannerText?: string;
111
+ endsAt: null | string;
112
+ maxDiscount: number;
113
+ prolongationMenuTitleOn: boolean;
114
+ startsAt: null | string;
115
+ yearName: string;
116
+ } | null;
104
117
  }
105
118
 
106
119
  declare class User {
@@ -165,6 +178,17 @@ declare class User {
165
178
  get freeAccessFinishesAt(): UserDTO['freeAccessFinishesAt'];
166
179
  get hasUnseenRoomFeatures(): UserDTO['hasUnseenRoomFeatures'];
167
180
  get purchaseAnyExternshipContracts(): UserDTO['purchaseAnyExternshipContracts'];
181
+ get hasExternshipRelation(): UserDTO['hasExternshipRelation'];
182
+ get hasExternshipActiveContract(): UserDTO['hasExternshipActiveContract'];
183
+ get canProlongateContract(): UserDTO['canProlongateContract'];
184
+ get prolongation(): UserDTO['prolongation'];
185
+ /**
186
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
187
+ *
188
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
189
+ * означает, что окна нет вовсе, а не что оно бесконечно.
190
+ */
191
+ isProlongationBetweenDates(): boolean;
168
192
  /**
169
193
  * Глубокое клонирование объекта с защитой от циклических ссылок
170
194
  * @private
package/index.js CHANGED
@@ -1139,6 +1139,33 @@ var _User = class _User {
1139
1139
  get purchaseAnyExternshipContracts() {
1140
1140
  return this.props.purchaseAnyExternshipContracts;
1141
1141
  }
1142
+ get hasExternshipRelation() {
1143
+ return this.props.hasExternshipRelation;
1144
+ }
1145
+ get hasExternshipActiveContract() {
1146
+ return this.props.hasExternshipActiveContract;
1147
+ }
1148
+ get canProlongateContract() {
1149
+ return this.props.canProlongateContract;
1150
+ }
1151
+ get prolongation() {
1152
+ return this.props.prolongation;
1153
+ }
1154
+ /**
1155
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
1156
+ *
1157
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
1158
+ * означает, что окна нет вовсе, а не что оно бесконечно.
1159
+ */
1160
+ isProlongationBetweenDates() {
1161
+ var _a;
1162
+ const { endsAt, startsAt } = (_a = this.props.prolongation) != null ? _a : {};
1163
+ if (startsAt === void 0 || startsAt === null || endsAt === void 0 || endsAt === null) {
1164
+ return false;
1165
+ }
1166
+ const now = Date.now();
1167
+ return now >= Date.parse(startsAt) && now <= Date.parse(endsAt);
1168
+ }
1142
1169
  /**
1143
1170
  * Глубокое клонирование объекта с защитой от циклических ссылок
1144
1171
  * @private
@@ -1609,7 +1636,8 @@ var _Foxford = class _Foxford {
1609
1636
  const captchaConfig = (_b = this.config) == null ? void 0 : _b.captchaConfig;
1610
1637
  const apiInstance = ApiService.createFoxApiInstance({
1611
1638
  config: apiConfig2.config,
1612
- plugins: getPlugins(apiConfig2, captchaConfig)
1639
+ plugins: getPlugins(apiConfig2, captchaConfig),
1640
+ retry: apiConfig2.retry
1613
1641
  });
1614
1642
  if (!((_d = (_c = this.config) == null ? void 0 : _c.api) == null ? void 0 : _d.config.baseURL) && this.config.host) apiInstance.defaults.baseURL = this.config.host;
1615
1643
  return apiInstance;
package/index.js.flow CHANGED
@@ -22,6 +22,7 @@ declare export {
22
22
  ApiRequestConfigExtended,
23
23
  ApiResponse,
24
24
  ApiResponseType,
25
+ ApiRetryConfig,
25
26
  ApiService,
26
27
  ApiServiceInterface,
27
28
  ApiStatic,
@@ -126,9 +127,10 @@ declare interface UserDTO {
126
127
  elementaryDashboardUserExperienceFeedback?: boolean,
127
128
  homeSchoolFamilyEducationGuideHidden?: boolean,
128
129
  pageBonusesVisited?: boolean,
129
- pagePaymentsInfoVisited?: boolean,
130
+ pageDashboardPaymentsVisited?: boolean,
130
131
  pageSocializationLandingVisited?: boolean,
131
132
  pageSocializationVisited?: boolean,
133
+ supportButtonIndicatorHidden?: boolean,
132
134
  ...
133
135
  };
134
136
  bonus: {
@@ -176,6 +178,22 @@ declare interface UserDTO {
176
178
  } | null;
177
179
  freeAccessFinishesAt: null | string;
178
180
  purchaseAnyExternshipContracts: boolean;
181
+ hasExternshipRelation?: boolean;
182
+ hasExternshipActiveContract?: boolean;
183
+ canProlongateContract?: boolean;
184
+
185
+ /**
186
+ * Окно пролонгации договора домашней школы: даты, скидка и заголовок следующего года.
187
+ */
188
+ prolongation?: {
189
+ dailyPlanBannerText?: string,
190
+ endsAt: null | string,
191
+ maxDiscount: number,
192
+ prolongationMenuTitleOn: boolean,
193
+ startsAt: null | string,
194
+ yearName: string,
195
+ ...
196
+ } | null;
179
197
  }
180
198
  declare class User {
181
199
  constructor(): this;
@@ -258,6 +276,21 @@ declare class User {
258
276
  UserDTO,
259
277
  "purchaseAnyExternshipContracts"
260
278
  >;
279
+ hasExternshipRelation: $PropertyType<UserDTO, "hasExternshipRelation">;
280
+ hasExternshipActiveContract: $PropertyType<
281
+ UserDTO,
282
+ "hasExternshipActiveContract"
283
+ >;
284
+ canProlongateContract: $PropertyType<UserDTO, "canProlongateContract">;
285
+ prolongation: $PropertyType<UserDTO, "prolongation">;
286
+
287
+ /**
288
+ * Идёт ли сейчас окно пролонгации договора домашней школы.
289
+ *
290
+ * Границы включаются: последний день окна ещё считается пролонгацией. Не заданная граница
291
+ * означает, что окна нет вовсе, а не что оно бесконечно.
292
+ */
293
+ isProlongationBetweenDates(): boolean;
261
294
  static createDefault(): User;
262
295
  static fromApi(input: mixed): User;
263
296
  isDefaultUser(): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxford/sdk",
3
- "version": "7.0.0",
3
+ "version": "8.0.0",
4
4
  "description": "Foxford sdk for external projects",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -9,7 +9,8 @@
9
9
  "bugs": "https://github.com/foxford/frontend-platform/issues",
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+https://github.com/foxford/frontend-platform.git"
12
+ "url": "git+https://github.com/foxford/frontend-platform.git",
13
+ "directory": "packages/sdk"
13
14
  },
14
15
  "maintainers": [
15
16
  {
@@ -26,7 +27,7 @@
26
27
  "decamelize-keys-deep": "^0.1.1",
27
28
  "js-levenshtein": "^1.1.6",
28
29
  "lodash": "^4.18.1",
29
- "@foxford/services": "2.1.0",
30
+ "@foxford/services": "2.2.0",
30
31
  "@foxford/types": "1.2.1"
31
32
  },
32
33
  "main": "./index.cjs",
@@ -94,6 +95,6 @@
94
95
  "package.json",
95
96
  "plugins"
96
97
  ],
97
- "sha": "70cdd11",
98
+ "sha": "7da7d38",
98
99
  "scripts": {}
99
100
  }
@@ -1,4 +1,4 @@
1
- import { S as SdkPlugin } from './types-CFv3gSlt.cjs';
1
+ import { S as SdkPlugin } from './types-Dm_vMzIq.cjs';
2
2
  import '@foxford/services';
3
3
  import '@foxford/types';
4
4
 
@@ -1,4 +1,4 @@
1
- import { S as SdkPlugin } from './types-CFv3gSlt.cjs';
1
+ import { S as SdkPlugin } from './types-Dm_vMzIq.cjs';
2
2
  import '@foxford/services';
3
3
  import '@foxford/types';
4
4