@oxyhq/core 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/README.md +50 -0
- package/dist/cjs/AuthManager.js +361 -0
- package/dist/cjs/CrossDomainAuth.js +258 -0
- package/dist/cjs/HttpService.js +618 -0
- package/dist/cjs/OxyServices.base.js +263 -0
- package/dist/cjs/OxyServices.errors.js +22 -0
- package/dist/cjs/OxyServices.js +63 -0
- package/dist/cjs/constants/version.js +16 -0
- package/dist/cjs/crypto/index.js +20 -0
- package/dist/cjs/crypto/keyManager.js +887 -0
- package/dist/cjs/crypto/polyfill.js +64 -0
- package/dist/cjs/crypto/recoveryPhrase.js +169 -0
- package/dist/cjs/crypto/signatureService.js +296 -0
- package/dist/cjs/i18n/index.js +73 -0
- package/dist/cjs/i18n/locales/ar-SA.json +120 -0
- package/dist/cjs/i18n/locales/ca-ES.json +120 -0
- package/dist/cjs/i18n/locales/de-DE.json +120 -0
- package/dist/cjs/i18n/locales/en-US.json +956 -0
- package/dist/cjs/i18n/locales/es-ES.json +944 -0
- package/dist/cjs/i18n/locales/fr-FR.json +120 -0
- package/dist/cjs/i18n/locales/it-IT.json +120 -0
- package/dist/cjs/i18n/locales/ja-JP.json +119 -0
- package/dist/cjs/i18n/locales/ko-KR.json +120 -0
- package/dist/cjs/i18n/locales/locales/ar-SA.json +120 -0
- package/dist/cjs/i18n/locales/locales/ca-ES.json +120 -0
- package/dist/cjs/i18n/locales/locales/de-DE.json +120 -0
- package/dist/cjs/i18n/locales/locales/en-US.json +956 -0
- package/dist/cjs/i18n/locales/locales/es-ES.json +944 -0
- package/dist/cjs/i18n/locales/locales/fr-FR.json +120 -0
- package/dist/cjs/i18n/locales/locales/it-IT.json +120 -0
- package/dist/cjs/i18n/locales/locales/ja-JP.json +119 -0
- package/dist/cjs/i18n/locales/locales/ko-KR.json +120 -0
- package/dist/cjs/i18n/locales/locales/pt-PT.json +120 -0
- package/dist/cjs/i18n/locales/locales/zh-CN.json +120 -0
- package/dist/cjs/i18n/locales/pt-PT.json +120 -0
- package/dist/cjs/i18n/locales/zh-CN.json +120 -0
- package/dist/cjs/index.js +153 -0
- package/dist/cjs/mixins/OxyServices.analytics.js +49 -0
- package/dist/cjs/mixins/OxyServices.assets.js +380 -0
- package/dist/cjs/mixins/OxyServices.auth.js +259 -0
- package/dist/cjs/mixins/OxyServices.developer.js +97 -0
- package/dist/cjs/mixins/OxyServices.devices.js +116 -0
- package/dist/cjs/mixins/OxyServices.features.js +309 -0
- package/dist/cjs/mixins/OxyServices.fedcm.js +435 -0
- package/dist/cjs/mixins/OxyServices.karma.js +108 -0
- package/dist/cjs/mixins/OxyServices.language.js +154 -0
- package/dist/cjs/mixins/OxyServices.location.js +43 -0
- package/dist/cjs/mixins/OxyServices.payment.js +158 -0
- package/dist/cjs/mixins/OxyServices.popup.js +371 -0
- package/dist/cjs/mixins/OxyServices.privacy.js +162 -0
- package/dist/cjs/mixins/OxyServices.redirect.js +345 -0
- package/dist/cjs/mixins/OxyServices.security.js +81 -0
- package/dist/cjs/mixins/OxyServices.user.js +355 -0
- package/dist/cjs/mixins/OxyServices.utility.js +156 -0
- package/dist/cjs/mixins/index.js +79 -0
- package/dist/cjs/mixins/mixinHelpers.js +53 -0
- package/dist/cjs/models/interfaces.js +20 -0
- package/dist/cjs/models/session.js +2 -0
- package/dist/cjs/shared/index.js +70 -0
- package/dist/cjs/shared/utils/colorUtils.js +153 -0
- package/dist/cjs/shared/utils/debugUtils.js +73 -0
- package/dist/cjs/shared/utils/errorUtils.js +183 -0
- package/dist/cjs/shared/utils/index.js +49 -0
- package/dist/cjs/shared/utils/networkUtils.js +183 -0
- package/dist/cjs/shared/utils/themeUtils.js +106 -0
- package/dist/cjs/utils/apiUtils.js +61 -0
- package/dist/cjs/utils/asyncUtils.js +194 -0
- package/dist/cjs/utils/cache.js +226 -0
- package/dist/cjs/utils/deviceManager.js +205 -0
- package/dist/cjs/utils/errorUtils.js +154 -0
- package/dist/cjs/utils/index.js +26 -0
- package/dist/cjs/utils/languageUtils.js +165 -0
- package/dist/cjs/utils/loggerUtils.js +126 -0
- package/dist/cjs/utils/platform.js +144 -0
- package/dist/cjs/utils/requestUtils.js +209 -0
- package/dist/cjs/utils/sessionUtils.js +181 -0
- package/dist/cjs/utils/validationUtils.js +173 -0
- package/dist/esm/AuthManager.js +356 -0
- package/dist/esm/CrossDomainAuth.js +253 -0
- package/dist/esm/HttpService.js +614 -0
- package/dist/esm/OxyServices.base.js +259 -0
- package/dist/esm/OxyServices.errors.js +17 -0
- package/dist/esm/OxyServices.js +59 -0
- package/dist/esm/constants/version.js +13 -0
- package/dist/esm/crypto/index.js +13 -0
- package/dist/esm/crypto/keyManager.js +850 -0
- package/dist/esm/crypto/polyfill.js +61 -0
- package/dist/esm/crypto/recoveryPhrase.js +132 -0
- package/dist/esm/crypto/signatureService.js +259 -0
- package/dist/esm/i18n/index.js +69 -0
- package/dist/esm/i18n/locales/ar-SA.json +120 -0
- package/dist/esm/i18n/locales/ca-ES.json +120 -0
- package/dist/esm/i18n/locales/de-DE.json +120 -0
- package/dist/esm/i18n/locales/en-US.json +956 -0
- package/dist/esm/i18n/locales/es-ES.json +944 -0
- package/dist/esm/i18n/locales/fr-FR.json +120 -0
- package/dist/esm/i18n/locales/it-IT.json +120 -0
- package/dist/esm/i18n/locales/ja-JP.json +119 -0
- package/dist/esm/i18n/locales/ko-KR.json +120 -0
- package/dist/esm/i18n/locales/locales/ar-SA.json +120 -0
- package/dist/esm/i18n/locales/locales/ca-ES.json +120 -0
- package/dist/esm/i18n/locales/locales/de-DE.json +120 -0
- package/dist/esm/i18n/locales/locales/en-US.json +956 -0
- package/dist/esm/i18n/locales/locales/es-ES.json +944 -0
- package/dist/esm/i18n/locales/locales/fr-FR.json +120 -0
- package/dist/esm/i18n/locales/locales/it-IT.json +120 -0
- package/dist/esm/i18n/locales/locales/ja-JP.json +119 -0
- package/dist/esm/i18n/locales/locales/ko-KR.json +120 -0
- package/dist/esm/i18n/locales/locales/pt-PT.json +120 -0
- package/dist/esm/i18n/locales/locales/zh-CN.json +120 -0
- package/dist/esm/i18n/locales/pt-PT.json +120 -0
- package/dist/esm/i18n/locales/zh-CN.json +120 -0
- package/dist/esm/index.js +55 -0
- package/dist/esm/mixins/OxyServices.analytics.js +46 -0
- package/dist/esm/mixins/OxyServices.assets.js +377 -0
- package/dist/esm/mixins/OxyServices.auth.js +256 -0
- package/dist/esm/mixins/OxyServices.developer.js +94 -0
- package/dist/esm/mixins/OxyServices.devices.js +113 -0
- package/dist/esm/mixins/OxyServices.features.js +306 -0
- package/dist/esm/mixins/OxyServices.fedcm.js +433 -0
- package/dist/esm/mixins/OxyServices.karma.js +105 -0
- package/dist/esm/mixins/OxyServices.language.js +118 -0
- package/dist/esm/mixins/OxyServices.location.js +40 -0
- package/dist/esm/mixins/OxyServices.payment.js +155 -0
- package/dist/esm/mixins/OxyServices.popup.js +369 -0
- package/dist/esm/mixins/OxyServices.privacy.js +159 -0
- package/dist/esm/mixins/OxyServices.redirect.js +343 -0
- package/dist/esm/mixins/OxyServices.security.js +78 -0
- package/dist/esm/mixins/OxyServices.user.js +352 -0
- package/dist/esm/mixins/OxyServices.utility.js +153 -0
- package/dist/esm/mixins/index.js +76 -0
- package/dist/esm/mixins/mixinHelpers.js +48 -0
- package/dist/esm/models/interfaces.js +17 -0
- package/dist/esm/models/session.js +1 -0
- package/dist/esm/shared/index.js +31 -0
- package/dist/esm/shared/utils/colorUtils.js +143 -0
- package/dist/esm/shared/utils/debugUtils.js +65 -0
- package/dist/esm/shared/utils/errorUtils.js +170 -0
- package/dist/esm/shared/utils/index.js +15 -0
- package/dist/esm/shared/utils/networkUtils.js +173 -0
- package/dist/esm/shared/utils/themeUtils.js +98 -0
- package/dist/esm/utils/apiUtils.js +55 -0
- package/dist/esm/utils/asyncUtils.js +179 -0
- package/dist/esm/utils/cache.js +218 -0
- package/dist/esm/utils/deviceManager.js +168 -0
- package/dist/esm/utils/errorUtils.js +146 -0
- package/dist/esm/utils/index.js +7 -0
- package/dist/esm/utils/languageUtils.js +158 -0
- package/dist/esm/utils/loggerUtils.js +115 -0
- package/dist/esm/utils/platform.js +102 -0
- package/dist/esm/utils/requestUtils.js +203 -0
- package/dist/esm/utils/sessionUtils.js +171 -0
- package/dist/esm/utils/validationUtils.js +153 -0
- package/dist/types/AuthManager.d.ts +143 -0
- package/dist/types/CrossDomainAuth.d.ts +160 -0
- package/dist/types/HttpService.d.ts +163 -0
- package/dist/types/OxyServices.base.d.ts +126 -0
- package/dist/types/OxyServices.d.ts +81 -0
- package/dist/types/OxyServices.errors.d.ts +11 -0
- package/dist/types/constants/version.d.ts +13 -0
- package/dist/types/crypto/index.d.ts +11 -0
- package/dist/types/crypto/keyManager.d.ts +189 -0
- package/dist/types/crypto/polyfill.d.ts +11 -0
- package/dist/types/crypto/recoveryPhrase.d.ts +58 -0
- package/dist/types/crypto/signatureService.d.ts +86 -0
- package/dist/types/i18n/index.d.ts +3 -0
- package/dist/types/index.d.ts +50 -0
- package/dist/types/mixins/OxyServices.analytics.d.ts +66 -0
- package/dist/types/mixins/OxyServices.assets.d.ts +135 -0
- package/dist/types/mixins/OxyServices.auth.d.ts +186 -0
- package/dist/types/mixins/OxyServices.developer.d.ts +99 -0
- package/dist/types/mixins/OxyServices.devices.d.ts +96 -0
- package/dist/types/mixins/OxyServices.features.d.ts +228 -0
- package/dist/types/mixins/OxyServices.fedcm.d.ts +200 -0
- package/dist/types/mixins/OxyServices.karma.d.ts +85 -0
- package/dist/types/mixins/OxyServices.language.d.ts +81 -0
- package/dist/types/mixins/OxyServices.location.d.ts +64 -0
- package/dist/types/mixins/OxyServices.payment.d.ts +111 -0
- package/dist/types/mixins/OxyServices.popup.d.ts +205 -0
- package/dist/types/mixins/OxyServices.privacy.d.ts +122 -0
- package/dist/types/mixins/OxyServices.redirect.d.ts +245 -0
- package/dist/types/mixins/OxyServices.security.d.ts +78 -0
- package/dist/types/mixins/OxyServices.user.d.ts +182 -0
- package/dist/types/mixins/OxyServices.utility.d.ts +93 -0
- package/dist/types/mixins/index.d.ts +30 -0
- package/dist/types/mixins/mixinHelpers.d.ts +31 -0
- package/dist/types/models/interfaces.d.ts +415 -0
- package/dist/types/models/session.d.ts +27 -0
- package/dist/types/shared/index.d.ts +28 -0
- package/dist/types/shared/utils/colorUtils.d.ts +104 -0
- package/dist/types/shared/utils/debugUtils.d.ts +48 -0
- package/dist/types/shared/utils/errorUtils.d.ts +97 -0
- package/dist/types/shared/utils/index.d.ts +13 -0
- package/dist/types/shared/utils/networkUtils.d.ts +139 -0
- package/dist/types/shared/utils/themeUtils.d.ts +90 -0
- package/dist/types/utils/apiUtils.d.ts +53 -0
- package/dist/types/utils/asyncUtils.d.ts +58 -0
- package/dist/types/utils/cache.d.ts +127 -0
- package/dist/types/utils/deviceManager.d.ts +65 -0
- package/dist/types/utils/errorUtils.d.ts +46 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/languageUtils.d.ts +37 -0
- package/dist/types/utils/loggerUtils.d.ts +48 -0
- package/dist/types/utils/platform.d.ts +40 -0
- package/dist/types/utils/requestUtils.d.ts +123 -0
- package/dist/types/utils/sessionUtils.d.ts +54 -0
- package/dist/types/utils/validationUtils.d.ts +85 -0
- package/package.json +84 -0
- package/src/AuthManager.ts +436 -0
- package/src/CrossDomainAuth.ts +307 -0
- package/src/HttpService.ts +752 -0
- package/src/OxyServices.base.ts +334 -0
- package/src/OxyServices.errors.ts +26 -0
- package/src/OxyServices.ts +129 -0
- package/src/constants/version.ts +15 -0
- package/src/crypto/index.ts +25 -0
- package/src/crypto/keyManager.ts +962 -0
- package/src/crypto/polyfill.ts +70 -0
- package/src/crypto/recoveryPhrase.ts +166 -0
- package/src/crypto/signatureService.ts +323 -0
- package/src/i18n/index.ts +75 -0
- package/src/i18n/locales/ar-SA.json +120 -0
- package/src/i18n/locales/ca-ES.json +120 -0
- package/src/i18n/locales/de-DE.json +120 -0
- package/src/i18n/locales/en-US.json +956 -0
- package/src/i18n/locales/es-ES.json +944 -0
- package/src/i18n/locales/fr-FR.json +120 -0
- package/src/i18n/locales/it-IT.json +120 -0
- package/src/i18n/locales/ja-JP.json +119 -0
- package/src/i18n/locales/ko-KR.json +120 -0
- package/src/i18n/locales/pt-PT.json +120 -0
- package/src/i18n/locales/zh-CN.json +120 -0
- package/src/index.ts +153 -0
- package/src/mixins/OxyServices.analytics.ts +53 -0
- package/src/mixins/OxyServices.assets.ts +412 -0
- package/src/mixins/OxyServices.auth.ts +358 -0
- package/src/mixins/OxyServices.developer.ts +114 -0
- package/src/mixins/OxyServices.devices.ts +119 -0
- package/src/mixins/OxyServices.features.ts +428 -0
- package/src/mixins/OxyServices.fedcm.ts +494 -0
- package/src/mixins/OxyServices.karma.ts +111 -0
- package/src/mixins/OxyServices.language.ts +127 -0
- package/src/mixins/OxyServices.location.ts +46 -0
- package/src/mixins/OxyServices.payment.ts +163 -0
- package/src/mixins/OxyServices.popup.ts +443 -0
- package/src/mixins/OxyServices.privacy.ts +182 -0
- package/src/mixins/OxyServices.redirect.ts +397 -0
- package/src/mixins/OxyServices.security.ts +103 -0
- package/src/mixins/OxyServices.user.ts +392 -0
- package/src/mixins/OxyServices.utility.ts +191 -0
- package/src/mixins/index.ts +91 -0
- package/src/mixins/mixinHelpers.ts +69 -0
- package/src/models/interfaces.ts +511 -0
- package/src/models/session.ts +30 -0
- package/src/shared/index.ts +82 -0
- package/src/shared/utils/colorUtils.ts +155 -0
- package/src/shared/utils/debugUtils.ts +73 -0
- package/src/shared/utils/errorUtils.ts +181 -0
- package/src/shared/utils/index.ts +59 -0
- package/src/shared/utils/networkUtils.ts +248 -0
- package/src/shared/utils/themeUtils.ts +115 -0
- package/src/types/bip39.d.ts +32 -0
- package/src/types/buffer.d.ts +97 -0
- package/src/types/color.d.ts +20 -0
- package/src/types/elliptic.d.ts +62 -0
- package/src/utils/apiUtils.ts +88 -0
- package/src/utils/asyncUtils.ts +252 -0
- package/src/utils/cache.ts +264 -0
- package/src/utils/deviceManager.ts +198 -0
- package/src/utils/errorUtils.ts +216 -0
- package/src/utils/index.ts +21 -0
- package/src/utils/languageUtils.ts +174 -0
- package/src/utils/loggerUtils.ts +153 -0
- package/src/utils/platform.ts +117 -0
- package/src/utils/requestUtils.ts +237 -0
- package/src/utils/sessionUtils.ts +206 -0
- package/src/utils/validationUtils.ts +174 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User Management Methods Mixin
|
|
3
|
+
*/
|
|
4
|
+
import type { User, Notification, SearchProfilesResponse } from '../models/interfaces';
|
|
5
|
+
import type { OxyServicesBase } from '../OxyServices.base';
|
|
6
|
+
import { type PaginationParams } from '../utils/apiUtils';
|
|
7
|
+
export declare function OxyServicesUserMixin<T extends typeof OxyServicesBase>(Base: T): {
|
|
8
|
+
new (...args: any[]): {
|
|
9
|
+
/**
|
|
10
|
+
* Get profile by username
|
|
11
|
+
*/
|
|
12
|
+
getProfileByUsername(username: string): Promise<User>;
|
|
13
|
+
/**
|
|
14
|
+
* Search user profiles
|
|
15
|
+
*/
|
|
16
|
+
searchProfiles(query: string, pagination?: PaginationParams): Promise<SearchProfilesResponse>;
|
|
17
|
+
/**
|
|
18
|
+
* Get profile recommendations
|
|
19
|
+
*/
|
|
20
|
+
getProfileRecommendations(): Promise<Array<{
|
|
21
|
+
id: string;
|
|
22
|
+
username: string;
|
|
23
|
+
name?: {
|
|
24
|
+
first?: string;
|
|
25
|
+
last?: string;
|
|
26
|
+
full?: string;
|
|
27
|
+
};
|
|
28
|
+
description?: string;
|
|
29
|
+
_count?: {
|
|
30
|
+
followers: number;
|
|
31
|
+
following: number;
|
|
32
|
+
};
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}>>;
|
|
35
|
+
/**
|
|
36
|
+
* Get user by ID
|
|
37
|
+
*/
|
|
38
|
+
getUserById(userId: string): Promise<User>;
|
|
39
|
+
/**
|
|
40
|
+
* Get current user
|
|
41
|
+
*/
|
|
42
|
+
getCurrentUser(): Promise<User>;
|
|
43
|
+
/**
|
|
44
|
+
* Update user profile
|
|
45
|
+
* TanStack Query handles offline queuing automatically
|
|
46
|
+
*/
|
|
47
|
+
updateProfile(updates: Record<string, any>): Promise<User>;
|
|
48
|
+
/**
|
|
49
|
+
* Get privacy settings for a user
|
|
50
|
+
* @param userId - The user ID (defaults to current user)
|
|
51
|
+
*/
|
|
52
|
+
getPrivacySettings(userId?: string): Promise<any>;
|
|
53
|
+
/**
|
|
54
|
+
* Update privacy settings
|
|
55
|
+
* @param settings - Partial privacy settings object
|
|
56
|
+
* @param userId - The user ID (defaults to current user)
|
|
57
|
+
*/
|
|
58
|
+
updatePrivacySettings(settings: Record<string, any>, userId?: string): Promise<any>;
|
|
59
|
+
/**
|
|
60
|
+
* Request account verification
|
|
61
|
+
*/
|
|
62
|
+
requestAccountVerification(reason: string, evidence?: string): Promise<{
|
|
63
|
+
message: string;
|
|
64
|
+
requestId: string;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Download account data export
|
|
68
|
+
*/
|
|
69
|
+
downloadAccountData(format?: "json" | "csv"): Promise<Blob>;
|
|
70
|
+
/**
|
|
71
|
+
* Delete account permanently
|
|
72
|
+
* @param password - User password for confirmation
|
|
73
|
+
* @param confirmText - Confirmation text (usually username)
|
|
74
|
+
*/
|
|
75
|
+
deleteAccount(password: string, confirmText: string): Promise<{
|
|
76
|
+
message: string;
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Follow a user
|
|
80
|
+
*/
|
|
81
|
+
followUser(userId: string): Promise<{
|
|
82
|
+
success: boolean;
|
|
83
|
+
message: string;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Unfollow a user
|
|
87
|
+
*/
|
|
88
|
+
unfollowUser(userId: string): Promise<{
|
|
89
|
+
success: boolean;
|
|
90
|
+
message: string;
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* Get follow status
|
|
94
|
+
*/
|
|
95
|
+
getFollowStatus(userId: string): Promise<{
|
|
96
|
+
isFollowing: boolean;
|
|
97
|
+
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Get user followers
|
|
100
|
+
*/
|
|
101
|
+
getUserFollowers(userId: string, pagination?: PaginationParams): Promise<{
|
|
102
|
+
followers: User[];
|
|
103
|
+
total: number;
|
|
104
|
+
hasMore: boolean;
|
|
105
|
+
}>;
|
|
106
|
+
/**
|
|
107
|
+
* Get user following
|
|
108
|
+
*/
|
|
109
|
+
getUserFollowing(userId: string, pagination?: PaginationParams): Promise<{
|
|
110
|
+
following: User[];
|
|
111
|
+
total: number;
|
|
112
|
+
hasMore: boolean;
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* Get notifications
|
|
116
|
+
*/
|
|
117
|
+
getNotifications(): Promise<Notification[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Get unread notification count
|
|
120
|
+
*/
|
|
121
|
+
getUnreadCount(): Promise<number>;
|
|
122
|
+
/**
|
|
123
|
+
* Create notification
|
|
124
|
+
*/
|
|
125
|
+
createNotification(data: Partial<Notification>): Promise<Notification>;
|
|
126
|
+
/**
|
|
127
|
+
* Mark notification as read
|
|
128
|
+
*/
|
|
129
|
+
markNotificationAsRead(notificationId: string): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Mark all notifications as read
|
|
132
|
+
*/
|
|
133
|
+
markAllNotificationsAsRead(): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Delete notification
|
|
136
|
+
*/
|
|
137
|
+
deleteNotification(notificationId: string): Promise<void>;
|
|
138
|
+
httpService: import("../HttpService").HttpService;
|
|
139
|
+
cloudURL: string;
|
|
140
|
+
config: import("../OxyServices.base").OxyConfig;
|
|
141
|
+
makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
|
|
142
|
+
getBaseURL(): string;
|
|
143
|
+
getClient(): import("../HttpService").HttpService;
|
|
144
|
+
getMetrics(): {
|
|
145
|
+
totalRequests: number;
|
|
146
|
+
successfulRequests: number;
|
|
147
|
+
failedRequests: number;
|
|
148
|
+
cacheHits: number;
|
|
149
|
+
cacheMisses: number;
|
|
150
|
+
averageResponseTime: number;
|
|
151
|
+
};
|
|
152
|
+
clearCache(): void;
|
|
153
|
+
clearCacheEntry(key: string): void;
|
|
154
|
+
getCacheStats(): {
|
|
155
|
+
size: number;
|
|
156
|
+
hits: number;
|
|
157
|
+
misses: number;
|
|
158
|
+
hitRate: number;
|
|
159
|
+
};
|
|
160
|
+
getCloudURL(): string;
|
|
161
|
+
setTokens(accessToken: string, refreshToken?: string): void;
|
|
162
|
+
clearTokens(): void;
|
|
163
|
+
getCurrentUserId(): string | null;
|
|
164
|
+
hasValidToken(): boolean;
|
|
165
|
+
getAccessToken(): string | null;
|
|
166
|
+
waitForAuth(timeoutMs?: number): Promise<boolean>;
|
|
167
|
+
withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
|
|
168
|
+
maxRetries?: number;
|
|
169
|
+
retryDelay?: number;
|
|
170
|
+
authTimeoutMs?: number;
|
|
171
|
+
}): Promise<T_1>;
|
|
172
|
+
validate(): Promise<boolean>;
|
|
173
|
+
handleError(error: unknown): Error;
|
|
174
|
+
healthCheck(): Promise<{
|
|
175
|
+
status: string;
|
|
176
|
+
users?: number;
|
|
177
|
+
timestamp?: string;
|
|
178
|
+
[key: string]: any;
|
|
179
|
+
}>;
|
|
180
|
+
};
|
|
181
|
+
__resetTokensForTests(): void;
|
|
182
|
+
} & T;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ApiError } from '../models/interfaces';
|
|
2
|
+
import type { OxyServicesBase } from '../OxyServices.base';
|
|
3
|
+
export declare function OxyServicesUtilityMixin<T extends typeof OxyServicesBase>(Base: T): {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
/**
|
|
6
|
+
* Fetch link metadata
|
|
7
|
+
*/
|
|
8
|
+
fetchLinkMetadata(url: string): Promise<{
|
|
9
|
+
url: string;
|
|
10
|
+
title: string;
|
|
11
|
+
description: string;
|
|
12
|
+
image?: string;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Simple Express.js authentication middleware
|
|
16
|
+
*
|
|
17
|
+
* Built-in authentication middleware that validates JWT tokens and adds user data to requests.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Basic usage - just add it to your routes
|
|
22
|
+
* app.use('/api/protected', oxyServices.auth());
|
|
23
|
+
*
|
|
24
|
+
* // With debug logging
|
|
25
|
+
* app.use('/api/protected', oxyServices.auth({ debug: true }));
|
|
26
|
+
*
|
|
27
|
+
* // With custom error handling
|
|
28
|
+
* app.use('/api/protected', oxyServices.auth({
|
|
29
|
+
* onError: (error) => console.error('Auth failed:', error)
|
|
30
|
+
* }));
|
|
31
|
+
*
|
|
32
|
+
* // Load full user data
|
|
33
|
+
* app.use('/api/protected', oxyServices.auth({ loadUser: true }));
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @param options Optional configuration
|
|
37
|
+
* @param options.debug Enable debug logging (default: false)
|
|
38
|
+
* @param options.onError Custom error handler
|
|
39
|
+
* @param options.loadUser Load full user data (default: false for performance)
|
|
40
|
+
* @param options.session Use session-based validation (default: false)
|
|
41
|
+
* @returns Express middleware function
|
|
42
|
+
*/
|
|
43
|
+
auth(options?: {
|
|
44
|
+
debug?: boolean;
|
|
45
|
+
onError?: (error: ApiError) => any;
|
|
46
|
+
loadUser?: boolean;
|
|
47
|
+
session?: boolean;
|
|
48
|
+
}): (req: any, res: any, next: any) => any;
|
|
49
|
+
httpService: import("../HttpService").HttpService;
|
|
50
|
+
cloudURL: string;
|
|
51
|
+
config: import("../OxyServices.base").OxyConfig;
|
|
52
|
+
makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
|
|
53
|
+
getBaseURL(): string;
|
|
54
|
+
getClient(): import("../HttpService").HttpService;
|
|
55
|
+
getMetrics(): {
|
|
56
|
+
totalRequests: number;
|
|
57
|
+
successfulRequests: number;
|
|
58
|
+
failedRequests: number;
|
|
59
|
+
cacheHits: number;
|
|
60
|
+
cacheMisses: number;
|
|
61
|
+
averageResponseTime: number;
|
|
62
|
+
};
|
|
63
|
+
clearCache(): void;
|
|
64
|
+
clearCacheEntry(key: string): void;
|
|
65
|
+
getCacheStats(): {
|
|
66
|
+
size: number;
|
|
67
|
+
hits: number;
|
|
68
|
+
misses: number;
|
|
69
|
+
hitRate: number;
|
|
70
|
+
};
|
|
71
|
+
getCloudURL(): string;
|
|
72
|
+
setTokens(accessToken: string, refreshToken?: string): void;
|
|
73
|
+
clearTokens(): void;
|
|
74
|
+
getCurrentUserId(): string | null;
|
|
75
|
+
hasValidToken(): boolean;
|
|
76
|
+
getAccessToken(): string | null;
|
|
77
|
+
waitForAuth(timeoutMs?: number): Promise<boolean>;
|
|
78
|
+
withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
|
|
79
|
+
maxRetries?: number;
|
|
80
|
+
retryDelay?: number;
|
|
81
|
+
authTimeoutMs?: number;
|
|
82
|
+
}): Promise<T_1>;
|
|
83
|
+
validate(): Promise<boolean>;
|
|
84
|
+
handleError(error: unknown): Error;
|
|
85
|
+
healthCheck(): Promise<{
|
|
86
|
+
status: string;
|
|
87
|
+
users?: number;
|
|
88
|
+
timestamp?: string;
|
|
89
|
+
[key: string]: any;
|
|
90
|
+
}>;
|
|
91
|
+
};
|
|
92
|
+
__resetTokensForTests(): void;
|
|
93
|
+
} & T;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized mixin exports and composition helper
|
|
3
|
+
*
|
|
4
|
+
* This module provides a clean way to compose all mixins
|
|
5
|
+
* and ensures consistent ordering for better maintainability
|
|
6
|
+
*/
|
|
7
|
+
type MixinFunction = (Base: any) => any;
|
|
8
|
+
/**
|
|
9
|
+
* Mixin pipeline - applied in order from first to last.
|
|
10
|
+
*
|
|
11
|
+
* Order matters for dependencies:
|
|
12
|
+
* 1. Base auth mixin first (required by all others)
|
|
13
|
+
* 2. Cross-domain auth mixins (FedCM, Popup, Redirect)
|
|
14
|
+
* 3. User mixin (requires auth)
|
|
15
|
+
* 4. Feature mixins (can depend on user)
|
|
16
|
+
* 5. Utility mixin last (augments all)
|
|
17
|
+
*
|
|
18
|
+
* To add a new mixin: insert it at the appropriate position in this array.
|
|
19
|
+
*/
|
|
20
|
+
declare const MIXIN_PIPELINE: MixinFunction[];
|
|
21
|
+
/**
|
|
22
|
+
* Composes all OxyServices mixins using a pipeline pattern.
|
|
23
|
+
*
|
|
24
|
+
* This is equivalent to the nested calls but more readable and maintainable.
|
|
25
|
+
* Adding a new mixin: just add it to MIXIN_PIPELINE at the appropriate position.
|
|
26
|
+
*
|
|
27
|
+
* @returns The fully composed OxyServices class with all mixins applied
|
|
28
|
+
*/
|
|
29
|
+
export declare function composeOxyServices(): any;
|
|
30
|
+
export { MIXIN_PIPELINE };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper utilities for mixin classes
|
|
3
|
+
* Provides common patterns to reduce code duplication
|
|
4
|
+
*/
|
|
5
|
+
import type { OxyServicesBase } from '../OxyServices.base';
|
|
6
|
+
/**
|
|
7
|
+
* Wraps an async method with standard error handling
|
|
8
|
+
* Reduces boilerplate in mixin methods
|
|
9
|
+
*/
|
|
10
|
+
export declare function withErrorHandling<T>(operation: () => Promise<T>, handleError: (error: any) => Error): Promise<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a standard API request method with error handling
|
|
13
|
+
* Reduces duplication across mixin methods
|
|
14
|
+
*/
|
|
15
|
+
export declare function createApiMethod<T>(makeRequest: OxyServicesBase['makeRequest'], handleError: OxyServicesBase['handleError'], method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', url: string | ((...args: any[]) => string), options?: {
|
|
16
|
+
cache?: boolean;
|
|
17
|
+
cacheTTL?: number;
|
|
18
|
+
retry?: boolean;
|
|
19
|
+
transformData?: (data: any) => any;
|
|
20
|
+
transformResponse?: (response: any) => T;
|
|
21
|
+
}): (...args: any[]) => Promise<T>;
|
|
22
|
+
/**
|
|
23
|
+
* Cache time constants (in milliseconds)
|
|
24
|
+
*/
|
|
25
|
+
export declare const CACHE_TIMES: {
|
|
26
|
+
readonly SHORT: number;
|
|
27
|
+
readonly MEDIUM: number;
|
|
28
|
+
readonly LONG: number;
|
|
29
|
+
readonly VERY_LONG: number;
|
|
30
|
+
readonly EXTRA_LONG: number;
|
|
31
|
+
};
|