@up-im/medotvet_sdk 0.0.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/.cursor/rules/apcheki_sdk.mdc +90 -0
- package/README.md +136 -0
- package/dist/api/abstract.d.ts +21 -0
- package/dist/api/abstract.js +125 -0
- package/dist/api/bookmarks.d.ts +28 -0
- package/dist/api/bookmarks.js +121 -0
- package/dist/api/chat.d.ts +30 -0
- package/dist/api/chat.js +118 -0
- package/dist/api/content.d.ts +154 -0
- package/dist/api/content.js +237 -0
- package/dist/api/geoIp.d.ts +8 -0
- package/dist/api/geoIp.js +14 -0
- package/dist/api/index.d.ts +27 -0
- package/dist/api/index.js +31 -0
- package/dist/api/payment.d.ts +54 -0
- package/dist/api/payment.js +90 -0
- package/dist/api/promocode.d.ts +9 -0
- package/dist/api/promocode.js +22 -0
- package/dist/api/push.d.ts +54 -0
- package/dist/api/push.js +99 -0
- package/dist/api/receipt.d.ts +34 -0
- package/dist/api/receipt.js +60 -0
- package/dist/api/stat.d.ts +21 -0
- package/dist/api/stat.js +75 -0
- package/dist/api/survey.d.ts +82 -0
- package/dist/api/survey.js +122 -0
- package/dist/api/user.d.ts +80 -0
- package/dist/api/user.js +167 -0
- package/dist/eventBus/abstract.d.ts +4 -0
- package/dist/eventBus/abstract.js +29 -0
- package/dist/eventBus/userLogin.d.ts +5 -0
- package/dist/eventBus/userLogin.js +11 -0
- package/dist/eventBus/userLogout.d.ts +4 -0
- package/dist/eventBus/userLogout.js +11 -0
- package/dist/http/apiError.d.ts +4 -0
- package/dist/http/apiError.js +10 -0
- package/dist/http/apiRoute.d.ts +98 -0
- package/dist/http/apiRoute.js +197 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +7 -0
- package/dist/interfaces/BannerType.d.ts +5 -0
- package/dist/interfaces/BannerType.js +7 -0
- package/dist/interfaces/apiStatEvents.d.ts +1 -0
- package/dist/interfaces/apiStatEvents.js +18 -0
- package/dist/interfaces/diplomaStatus.d.ts +8 -0
- package/dist/interfaces/diplomaStatus.js +9 -0
- package/dist/interfaces/iAppStore.d.ts +1 -0
- package/dist/interfaces/iAppStore.js +2 -0
- package/dist/interfaces/iAppVersionCheck.d.ts +5 -0
- package/dist/interfaces/iAppVersionCheck.js +2 -0
- package/dist/interfaces/iArticle.d.ts +15 -0
- package/dist/interfaces/iArticle.js +2 -0
- package/dist/interfaces/iBalance.d.ts +6 -0
- package/dist/interfaces/iBalance.js +2 -0
- package/dist/interfaces/iBank.d.ts +4 -0
- package/dist/interfaces/iBank.js +2 -0
- package/dist/interfaces/iBanner.d.ts +6 -0
- package/dist/interfaces/iBanner.js +2 -0
- package/dist/interfaces/iBookmark.d.ts +3 -0
- package/dist/interfaces/iBookmark.js +2 -0
- package/dist/interfaces/iBrand.d.ts +6 -0
- package/dist/interfaces/iBrand.js +2 -0
- package/dist/interfaces/iCatalog.d.ts +50 -0
- package/dist/interfaces/iCatalog.js +2 -0
- package/dist/interfaces/iCatalogNode.d.ts +3 -0
- package/dist/interfaces/iCatalogNode.js +2 -0
- package/dist/interfaces/iCatalogPreview.d.ts +17 -0
- package/dist/interfaces/iCatalogPreview.js +2 -0
- package/dist/interfaces/iCity.d.ts +4 -0
- package/dist/interfaces/iCity.js +2 -0
- package/dist/interfaces/iContentItem.d.ts +7 -0
- package/dist/interfaces/iContentItem.js +2 -0
- package/dist/interfaces/iEnv.d.ts +6 -0
- package/dist/interfaces/iEnv.js +2 -0
- package/dist/interfaces/iFilter.d.ts +11 -0
- package/dist/interfaces/iFilter.js +2 -0
- package/dist/interfaces/iGetNodeListProps.d.ts +8 -0
- package/dist/interfaces/iGetNodeListProps.js +2 -0
- package/dist/interfaces/iInstruction.d.ts +6 -0
- package/dist/interfaces/iInstruction.js +2 -0
- package/dist/interfaces/iIntro.d.ts +6 -0
- package/dist/interfaces/iIntro.js +2 -0
- package/dist/interfaces/iMessage.d.ts +25 -0
- package/dist/interfaces/iMessage.js +2 -0
- package/dist/interfaces/iNode.d.ts +26 -0
- package/dist/interfaces/iNode.js +2 -0
- package/dist/interfaces/iNodeTree.d.ts +14 -0
- package/dist/interfaces/iNodeTree.js +2 -0
- package/dist/interfaces/iPagingItems.d.ts +9 -0
- package/dist/interfaces/iPagingItems.js +2 -0
- package/dist/interfaces/iPayment.d.ts +20 -0
- package/dist/interfaces/iPayment.js +2 -0
- package/dist/interfaces/iPush.d.ts +14 -0
- package/dist/interfaces/iPush.js +2 -0
- package/dist/interfaces/iQuestion.d.ts +7 -0
- package/dist/interfaces/iQuestion.js +2 -0
- package/dist/interfaces/iReceipt.d.ts +20 -0
- package/dist/interfaces/iReceipt.js +2 -0
- package/dist/interfaces/iReceiptAddProps.d.ts +8 -0
- package/dist/interfaces/iReceiptAddProps.js +2 -0
- package/dist/interfaces/iReceiptProduct.d.ts +7 -0
- package/dist/interfaces/iReceiptProduct.js +2 -0
- package/dist/interfaces/iSearchParams.d.ts +11 -0
- package/dist/interfaces/iSearchParams.js +2 -0
- package/dist/interfaces/iShop.d.ts +6 -0
- package/dist/interfaces/iShop.js +2 -0
- package/dist/interfaces/iShopAddress.d.ts +5 -0
- package/dist/interfaces/iShopAddress.js +2 -0
- package/dist/interfaces/iSorter.d.ts +7 -0
- package/dist/interfaces/iSorter.js +2 -0
- package/dist/interfaces/iSpecialization.d.ts +4 -0
- package/dist/interfaces/iSpecialization.js +2 -0
- package/dist/interfaces/iStatView.d.ts +4 -0
- package/dist/interfaces/iStatView.js +2 -0
- package/dist/interfaces/iStorage.d.ts +5 -0
- package/dist/interfaces/iStorage.js +2 -0
- package/dist/interfaces/iStories.d.ts +13 -0
- package/dist/interfaces/iStories.js +2 -0
- package/dist/interfaces/iSubstance.d.ts +4 -0
- package/dist/interfaces/iSubstance.js +2 -0
- package/dist/interfaces/iSurvey.d.ts +36 -0
- package/dist/interfaces/iSurvey.js +2 -0
- package/dist/interfaces/iSurveyQuestion.d.ts +11 -0
- package/dist/interfaces/iSurveyQuestion.js +2 -0
- package/dist/interfaces/iSymptoms.d.ts +4 -0
- package/dist/interfaces/iSymptoms.js +2 -0
- package/dist/interfaces/iTestQuestion.d.ts +20 -0
- package/dist/interfaces/iTestQuestion.js +2 -0
- package/dist/interfaces/iTestResult.d.ts +17 -0
- package/dist/interfaces/iTestResult.js +2 -0
- package/dist/interfaces/iText.d.ts +3 -0
- package/dist/interfaces/iText.js +2 -0
- package/dist/interfaces/iUser.d.ts +35 -0
- package/dist/interfaces/iUser.js +2 -0
- package/dist/interfaces/iUserData.d.ts +10 -0
- package/dist/interfaces/iUserData.js +2 -0
- package/dist/interfaces/iUserEditProps.d.ts +20 -0
- package/dist/interfaces/iUserEditProps.js +2 -0
- package/dist/interfaces/iUserStat.d.ts +7 -0
- package/dist/interfaces/iUserStat.js +2 -0
- package/dist/interfaces/iUserSurvey.d.ts +21 -0
- package/dist/interfaces/iUserSurvey.js +11 -0
- package/dist/interfaces/iUserTokens.d.ts +4 -0
- package/dist/interfaces/iUserTokens.js +2 -0
- package/dist/interfaces/intRange.d.ts +3 -0
- package/dist/interfaces/intRange.js +2 -0
- package/dist/interfaces/itemType.d.ts +9 -0
- package/dist/interfaces/itemType.js +11 -0
- package/dist/interfaces/paymentStatus.d.ts +7 -0
- package/dist/interfaces/paymentStatus.js +9 -0
- package/dist/interfaces/paymentType.d.ts +5 -0
- package/dist/interfaces/paymentType.js +7 -0
- package/dist/interfaces/payoutType.d.ts +5 -0
- package/dist/interfaces/payoutType.js +7 -0
- package/dist/interfaces/pushStatus.d.ts +6 -0
- package/dist/interfaces/pushStatus.js +8 -0
- package/dist/interfaces/receiptStatus.d.ts +7 -0
- package/dist/interfaces/receiptStatus.js +9 -0
- package/dist/interfaces/testStatus.d.ts +6 -0
- package/dist/interfaces/testStatus.js +7 -0
- package/dist/interfaces/userRole.d.ts +6 -0
- package/dist/interfaces/userRole.js +14 -0
- package/dist/interfaces/userStatEvent.d.ts +5 -0
- package/dist/interfaces/userStatEvent.js +7 -0
- package/dist/interfaces/viewEventType.d.ts +13 -0
- package/dist/interfaces/viewEventType.js +19 -0
- package/dist/service/webSocketClient.d.ts +21 -0
- package/dist/service/webSocketClient.js +87 -0
- package/dist/storage/default.d.ts +2 -0
- package/dist/storage/default.js +8 -0
- package/dist/storage/user.d.ts +21 -0
- package/dist/storage/user.js +107 -0
- package/dist/utils/queryString.d.ts +3 -0
- package/dist/utils/queryString.js +21 -0
- package/package.json +31 -0
- package/src/api/abstract.ts +136 -0
- package/src/api/bookmarks.ts +109 -0
- package/src/api/chat.ts +127 -0
- package/src/api/content.ts +258 -0
- package/src/api/geoIp.ts +12 -0
- package/src/api/index.ts +38 -0
- package/src/api/payment.ts +105 -0
- package/src/api/promocode.ts +18 -0
- package/src/api/push.ts +102 -0
- package/src/api/stat.ts +74 -0
- package/src/api/survey.ts +164 -0
- package/src/api/user.ts +176 -0
- package/src/eventBus/abstract.ts +33 -0
- package/src/eventBus/userLogin.ts +13 -0
- package/src/eventBus/userLogout.ts +12 -0
- package/src/http/apiError.ts +9 -0
- package/src/http/apiRoute.ts +234 -0
- package/src/index.ts +2 -0
- package/src/interfaces/BannerType.ts +6 -0
- package/src/interfaces/apiStatEvents.ts +18 -0
- package/src/interfaces/diplomaStatus.ts +10 -0
- package/src/interfaces/iAppStore.ts +1 -0
- package/src/interfaces/iArticle.ts +12 -0
- package/src/interfaces/iBalance.ts +6 -0
- package/src/interfaces/iBank.ts +4 -0
- package/src/interfaces/iBanner.ts +6 -0
- package/src/interfaces/iBookmark.ts +3 -0
- package/src/interfaces/iCity.ts +4 -0
- package/src/interfaces/iContentItem.ts +6 -0
- package/src/interfaces/iEnv.ts +6 -0
- package/src/interfaces/iFilter.ts +16 -0
- package/src/interfaces/iGetNodeListProps.ts +9 -0
- package/src/interfaces/iInstruction.ts +6 -0
- package/src/interfaces/iIntro.ts +6 -0
- package/src/interfaces/iMessage.ts +25 -0
- package/src/interfaces/iNode.ts +24 -0
- package/src/interfaces/iNodeTree.ts +14 -0
- package/src/interfaces/iPagingItems.ts +8 -0
- package/src/interfaces/iPayment.ts +28 -0
- package/src/interfaces/iPush.ts +15 -0
- package/src/interfaces/iQuestion.ts +4 -0
- package/src/interfaces/iSearchParams.ts +12 -0
- package/src/interfaces/iSorter.ts +10 -0
- package/src/interfaces/iSpecialization.ts +4 -0
- package/src/interfaces/iStatView.ts +4 -0
- package/src/interfaces/iStorage.ts +5 -0
- package/src/interfaces/iStories.ts +10 -0
- package/src/interfaces/iSubstance.ts +4 -0
- package/src/interfaces/iSurvey.ts +38 -0
- package/src/interfaces/iSurveyQuestion.ts +15 -0
- package/src/interfaces/iSymptoms.ts +4 -0
- package/src/interfaces/iTestQuestion.ts +21 -0
- package/src/interfaces/iTestResult.ts +20 -0
- package/src/interfaces/iText.ts +3 -0
- package/src/interfaces/iUser.ts +37 -0
- package/src/interfaces/iUserData.ts +10 -0
- package/src/interfaces/iUserEditProps.ts +16 -0
- package/src/interfaces/iUserStat.ts +8 -0
- package/src/interfaces/iUserSurvey.ts +23 -0
- package/src/interfaces/iUserTokens.ts +4 -0
- package/src/interfaces/intRange.ts +5 -0
- package/src/interfaces/itemType.ts +10 -0
- package/src/interfaces/paymentStatus.ts +8 -0
- package/src/interfaces/paymentType.ts +6 -0
- package/src/interfaces/payoutType.ts +6 -0
- package/src/interfaces/pushStatus.ts +7 -0
- package/src/interfaces/testStatus.ts +8 -0
- package/src/interfaces/userRole.ts +13 -0
- package/src/interfaces/userStatEvent.ts +6 -0
- package/src/interfaces/viewEventType.ts +17 -0
- package/src/service/webSocketClient.ts +94 -0
- package/src/storage/default.ts +7 -0
- package/src/storage/user.ts +109 -0
- package/src/utils/queryString.ts +22 -0
- package/tsconfig.json +27 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Вопрос теста для пользователя (без правильных ответов)
|
|
3
|
+
*/
|
|
4
|
+
export interface iTestQuestionForUser {
|
|
5
|
+
specialization: number;
|
|
6
|
+
questionIndex: number;
|
|
7
|
+
question: string;
|
|
8
|
+
answers: {
|
|
9
|
+
title: string;
|
|
10
|
+
}[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Ответ пользователя на вопрос
|
|
14
|
+
*/
|
|
15
|
+
export interface iTestUserAnswer {
|
|
16
|
+
specialization: number;
|
|
17
|
+
questionIndex: number;
|
|
18
|
+
answer_indices: number[];
|
|
19
|
+
answer_time?: number;
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface iTestResult {
|
|
2
|
+
id: number;
|
|
3
|
+
user: number | null;
|
|
4
|
+
test_date: Date | null;
|
|
5
|
+
specialization: number | null;
|
|
6
|
+
question_index: number | null;
|
|
7
|
+
question_text: string;
|
|
8
|
+
user_answer: number[];
|
|
9
|
+
is_correct: boolean;
|
|
10
|
+
answer_time: number;
|
|
11
|
+
}
|
|
12
|
+
export interface iTestResultBySpecialization {
|
|
13
|
+
[specializationId: number]: {
|
|
14
|
+
correct: number;
|
|
15
|
+
total: number;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { iCity } from "./iCity";
|
|
2
|
+
import { iUserData } from "./iUserData";
|
|
3
|
+
import { UserRole, UserRoleKeys } from "./userRole";
|
|
4
|
+
export interface iUser {
|
|
5
|
+
id: number;
|
|
6
|
+
register_date: string | null;
|
|
7
|
+
register_date_original: string | null;
|
|
8
|
+
role: typeof UserRole[UserRoleKeys];
|
|
9
|
+
phone: string | null;
|
|
10
|
+
phone_confirm: boolean;
|
|
11
|
+
email: string | null;
|
|
12
|
+
email_confirm: boolean;
|
|
13
|
+
firstname: string;
|
|
14
|
+
lastname: string;
|
|
15
|
+
middlename: string;
|
|
16
|
+
photo: string;
|
|
17
|
+
password?: string;
|
|
18
|
+
isSubscribe?: boolean;
|
|
19
|
+
soc_tg_id: number | null;
|
|
20
|
+
soc_tg_username: string;
|
|
21
|
+
soc_vk_id: number | null;
|
|
22
|
+
soc_vk_username: string;
|
|
23
|
+
city: iCity | null;
|
|
24
|
+
specialization: number[] | null;
|
|
25
|
+
birthdate: string | null;
|
|
26
|
+
workplace_type: number | null;
|
|
27
|
+
workplace_name: string | null;
|
|
28
|
+
diploma_status: number | null;
|
|
29
|
+
diploma_files: string[] | null;
|
|
30
|
+
diploma_reject_reason: string | null;
|
|
31
|
+
test_status: number | null;
|
|
32
|
+
ref: iUserData | null;
|
|
33
|
+
my_ref_code: string | null;
|
|
34
|
+
agreement: boolean | null;
|
|
35
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface iUserEditPropsBase {
|
|
2
|
+
email?: string;
|
|
3
|
+
city?: number;
|
|
4
|
+
email_code?: string;
|
|
5
|
+
agreement?: boolean;
|
|
6
|
+
birthdate?: string | null;
|
|
7
|
+
specialization?: number[] | null;
|
|
8
|
+
workplace_type?: number | null;
|
|
9
|
+
workplace_name?: string | null;
|
|
10
|
+
}
|
|
11
|
+
export type iUserEditProps = iUserEditPropsBase & ({
|
|
12
|
+
firstname: string;
|
|
13
|
+
lastname: string;
|
|
14
|
+
middlename: string;
|
|
15
|
+
} | {
|
|
16
|
+
firstname?: never;
|
|
17
|
+
lastname?: never;
|
|
18
|
+
middlename?: never;
|
|
19
|
+
});
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare enum UserSurveyStatus {
|
|
2
|
+
queue = 0,// в очереди (создан, но не начат)
|
|
3
|
+
in_progress = 1,// в процессе прохождения
|
|
4
|
+
success = 2,// успешно завершен
|
|
5
|
+
cancelled = 3,// отменен пользователем
|
|
6
|
+
timeout = 4
|
|
7
|
+
}
|
|
8
|
+
export type UserSurveyStatusKeys = keyof typeof UserSurveyStatus;
|
|
9
|
+
export interface iUserSurvey {
|
|
10
|
+
id: number;
|
|
11
|
+
reg_date: string;
|
|
12
|
+
user: number;
|
|
13
|
+
survey: number;
|
|
14
|
+
status: typeof UserSurveyStatus[UserSurveyStatusKeys];
|
|
15
|
+
date_start: string | null;
|
|
16
|
+
date_end: string | null;
|
|
17
|
+
timeout_at: string | null;
|
|
18
|
+
survey_title?: string;
|
|
19
|
+
reward_base?: number;
|
|
20
|
+
reward_max?: number;
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserSurveyStatus = void 0;
|
|
4
|
+
var UserSurveyStatus;
|
|
5
|
+
(function (UserSurveyStatus) {
|
|
6
|
+
UserSurveyStatus[UserSurveyStatus["queue"] = 0] = "queue";
|
|
7
|
+
UserSurveyStatus[UserSurveyStatus["in_progress"] = 1] = "in_progress";
|
|
8
|
+
UserSurveyStatus[UserSurveyStatus["success"] = 2] = "success";
|
|
9
|
+
UserSurveyStatus[UserSurveyStatus["cancelled"] = 3] = "cancelled";
|
|
10
|
+
UserSurveyStatus[UserSurveyStatus["timeout"] = 4] = "timeout"; // таймаут (не завершен за 1 час)
|
|
11
|
+
})(UserSurveyStatus || (exports.UserSurveyStatus = UserSurveyStatus = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserRole = void 0;
|
|
4
|
+
exports.getUserRoleTitle = getUserRoleTitle;
|
|
5
|
+
exports.UserRole = {
|
|
6
|
+
NONE: 0,
|
|
7
|
+
ADMIN: 1000,
|
|
8
|
+
};
|
|
9
|
+
function getUserRoleTitle(role) {
|
|
10
|
+
switch (role) {
|
|
11
|
+
case exports.UserRole.ADMIN: return "Админ";
|
|
12
|
+
default: return "";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const ViewEventType: {
|
|
2
|
+
VIEW: number;
|
|
3
|
+
FAVORITE: number;
|
|
4
|
+
PROMO_BLOCK: number;
|
|
5
|
+
PRESENTATION_CLICK: number;
|
|
6
|
+
PRESENTATION_SUCCESS: number;
|
|
7
|
+
QUESTIONS_CLICK: number;
|
|
8
|
+
QUESTIONS_SUCCESS: number;
|
|
9
|
+
SKU_BTN: number;
|
|
10
|
+
READ: number;
|
|
11
|
+
CLICK: number;
|
|
12
|
+
};
|
|
13
|
+
export type ViewEventTypeKeys = keyof typeof ViewEventType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViewEventType = void 0;
|
|
4
|
+
exports.ViewEventType = {
|
|
5
|
+
//базовый тип
|
|
6
|
+
VIEW: 1,
|
|
7
|
+
//Акция
|
|
8
|
+
FAVORITE: 2,
|
|
9
|
+
PROMO_BLOCK: 3,
|
|
10
|
+
PRESENTATION_CLICK: 4,
|
|
11
|
+
PRESENTATION_SUCCESS: 5,
|
|
12
|
+
QUESTIONS_CLICK: 6,
|
|
13
|
+
QUESTIONS_SUCCESS: 7,
|
|
14
|
+
//Блог
|
|
15
|
+
SKU_BTN: 8,
|
|
16
|
+
READ: 9,
|
|
17
|
+
//Баннеры
|
|
18
|
+
CLICK: 10,
|
|
19
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type OpenCallback = () => Promise<void>;
|
|
2
|
+
type MessageCallback = (message: string) => void;
|
|
3
|
+
export declare class WebSocketClient {
|
|
4
|
+
private url;
|
|
5
|
+
private websocket;
|
|
6
|
+
private reconnectInterval;
|
|
7
|
+
private reconnectAttempts;
|
|
8
|
+
private maxReconnectAttempts;
|
|
9
|
+
private isReconnecting;
|
|
10
|
+
private sendMessageBuffer;
|
|
11
|
+
private openCallback;
|
|
12
|
+
private messageCallback;
|
|
13
|
+
constructor(url: string, reconnectInterval?: number, maxReconnectAttempts?: number);
|
|
14
|
+
connect(): void;
|
|
15
|
+
private reconnect;
|
|
16
|
+
send(message?: string, priority?: boolean): void;
|
|
17
|
+
onOpen(callback: OpenCallback): void;
|
|
18
|
+
onMessage(callback: MessageCallback): void;
|
|
19
|
+
close(): void;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSocketClient = void 0;
|
|
4
|
+
class WebSocketClient {
|
|
5
|
+
constructor(url, reconnectInterval = 1000, maxReconnectAttempts = 1000) {
|
|
6
|
+
this.isReconnecting = false;
|
|
7
|
+
this.sendMessageBuffer = [];
|
|
8
|
+
this.openCallback = null;
|
|
9
|
+
this.messageCallback = null;
|
|
10
|
+
this.url = url;
|
|
11
|
+
this.websocket = null;
|
|
12
|
+
this.reconnectInterval = reconnectInterval;
|
|
13
|
+
this.reconnectAttempts = 0;
|
|
14
|
+
this.maxReconnectAttempts = maxReconnectAttempts;
|
|
15
|
+
}
|
|
16
|
+
connect() {
|
|
17
|
+
this.websocket = new WebSocket(this.url);
|
|
18
|
+
this.websocket.onopen = async () => {
|
|
19
|
+
console.log('Connected to WebSocket server');
|
|
20
|
+
this.reconnectAttempts = 0;
|
|
21
|
+
if (this.openCallback)
|
|
22
|
+
await this.openCallback(); //auth
|
|
23
|
+
this.send(); //send MessageBuffer
|
|
24
|
+
};
|
|
25
|
+
this.websocket.onmessage = (event) => {
|
|
26
|
+
console.log('Received message:', event.data);
|
|
27
|
+
if (this.messageCallback)
|
|
28
|
+
this.messageCallback(event.data);
|
|
29
|
+
};
|
|
30
|
+
this.websocket.onerror = (event) => {
|
|
31
|
+
console.error('WebSocket error:', event);
|
|
32
|
+
this.reconnect();
|
|
33
|
+
};
|
|
34
|
+
this.websocket.onclose = (event) => {
|
|
35
|
+
console.log('WebSocket connection closed:', event);
|
|
36
|
+
if (event.code != 3001)
|
|
37
|
+
this.reconnect();
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
reconnect() {
|
|
41
|
+
if (this.isReconnecting)
|
|
42
|
+
return;
|
|
43
|
+
this.isReconnecting = true;
|
|
44
|
+
if (this.reconnectAttempts < this.maxReconnectAttempts) {
|
|
45
|
+
this.reconnectAttempts++;
|
|
46
|
+
console.log(`Reconnecting... attempt ${this.reconnectAttempts}`);
|
|
47
|
+
setTimeout(() => {
|
|
48
|
+
this.isReconnecting = false;
|
|
49
|
+
this.connect();
|
|
50
|
+
}, this.reconnectInterval);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.isReconnecting = false;
|
|
54
|
+
console.error('Max reconnect attempts reached');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
send(message, priority) {
|
|
58
|
+
if (message && priority)
|
|
59
|
+
this.sendMessageBuffer.unshift(message);
|
|
60
|
+
if (message && !priority)
|
|
61
|
+
this.sendMessageBuffer.push(message);
|
|
62
|
+
if (this.websocket && this.websocket.readyState === WebSocket.OPEN) {
|
|
63
|
+
while (this.sendMessageBuffer.length) {
|
|
64
|
+
this.websocket.send(this.sendMessageBuffer.shift());
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.log('WebSocket is not open. reconnect');
|
|
69
|
+
this.reconnect();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Устанавливаем callback для открытия соединения
|
|
73
|
+
onOpen(callback) {
|
|
74
|
+
this.openCallback = callback;
|
|
75
|
+
}
|
|
76
|
+
// Устанавливаем callback для обработки входящих сообщений
|
|
77
|
+
onMessage(callback) {
|
|
78
|
+
this.messageCallback = callback;
|
|
79
|
+
}
|
|
80
|
+
// Закрытие WebSocket соединения
|
|
81
|
+
close() {
|
|
82
|
+
if (this.websocket && this.websocket.readyState === WebSocket.OPEN) {
|
|
83
|
+
this.websocket.close(3001, "Manual disconnect");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.WebSocketClient = WebSocketClient;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storageDefault = void 0;
|
|
4
|
+
exports.storageDefault = {
|
|
5
|
+
set: async (key, data) => localStorage.setItem(key, data),
|
|
6
|
+
get: async (key) => localStorage.getItem(key),
|
|
7
|
+
remove: async (key) => localStorage.removeItem(key),
|
|
8
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { iStorage } from "../interfaces/iStorage";
|
|
2
|
+
import { iUserData } from "../interfaces/iUserData";
|
|
3
|
+
export declare class UserStorage {
|
|
4
|
+
protected storage: iStorage;
|
|
5
|
+
private user;
|
|
6
|
+
private accessToken;
|
|
7
|
+
private accessTokenExp;
|
|
8
|
+
private localTimeDiff;
|
|
9
|
+
constructor(storage?: iStorage);
|
|
10
|
+
getUser(): Promise<iUserData | null>;
|
|
11
|
+
setUser(accessToken: string, refreshToken: string): Promise<iUserData | null>;
|
|
12
|
+
saveUser({ firstname, lastname }: {
|
|
13
|
+
firstname?: string;
|
|
14
|
+
lastname?: string;
|
|
15
|
+
}): Promise<iUserData | null>;
|
|
16
|
+
clearUser(): Promise<void>;
|
|
17
|
+
private getCurrentTime;
|
|
18
|
+
getAccessToken(): Promise<string | null>;
|
|
19
|
+
getRefreshToken(): Promise<string | null>;
|
|
20
|
+
isAuth(): Promise<boolean>;
|
|
21
|
+
}
|