@oxyhq/core 3.1.0 → 3.4.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/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/AuthManager.js +14 -3
- package/dist/cjs/HttpService.js +89 -0
- package/dist/cjs/OxyServices.js +2 -1
- package/dist/cjs/constants/version.js +1 -1
- package/dist/cjs/i18n/locales/en-US.json +44 -44
- package/dist/cjs/i18n/locales/es-ES.json +44 -44
- package/dist/cjs/i18n/locales/locales/en-US.json +44 -44
- package/dist/cjs/i18n/locales/locales/es-ES.json +44 -44
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/mixins/OxyServices.applications.js +33 -3
- package/dist/cjs/mixins/OxyServices.reputation.js +244 -0
- package/dist/cjs/mixins/OxyServices.workspaces.js +146 -0
- package/dist/cjs/mixins/index.js +4 -2
- package/dist/cjs/utils/accountUtils.js +12 -5
- package/dist/cjs/utils/ssoReturn.js +80 -33
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/AuthManager.js +14 -3
- package/dist/esm/HttpService.js +89 -0
- package/dist/esm/OxyServices.js +2 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/i18n/locales/en-US.json +44 -44
- package/dist/esm/i18n/locales/es-ES.json +44 -44
- package/dist/esm/i18n/locales/locales/en-US.json +44 -44
- package/dist/esm/i18n/locales/locales/es-ES.json +44 -44
- package/dist/esm/index.js +4 -0
- package/dist/esm/mixins/OxyServices.applications.js +33 -3
- package/dist/esm/mixins/OxyServices.reputation.js +241 -0
- package/dist/esm/mixins/OxyServices.workspaces.js +143 -0
- package/dist/esm/mixins/index.js +4 -2
- package/dist/esm/utils/accountUtils.js +12 -5
- package/dist/esm/utils/ssoReturn.js +80 -33
- package/dist/types/.tsbuildinfo +1 -1
- package/dist/types/HttpService.d.ts +57 -0
- package/dist/types/OxyServices.d.ts +2 -1
- package/dist/types/constants/version.d.ts +2 -2
- package/dist/types/index.d.ts +4 -2
- package/dist/types/mixins/OxyServices.applications.d.ts +86 -10
- package/dist/types/mixins/OxyServices.features.d.ts +0 -1
- package/dist/types/mixins/OxyServices.reputation.d.ts +436 -0
- package/dist/types/mixins/OxyServices.workspaces.d.ts +205 -0
- package/dist/types/mixins/index.d.ts +3 -2
- package/dist/types/models/interfaces.d.ts +24 -26
- package/dist/types/utils/accountUtils.d.ts +17 -4
- package/dist/types/utils/ssoReturn.d.ts +30 -9
- package/package.json +2 -1
- package/src/AuthManager.ts +14 -3
- package/src/HttpService.ts +91 -0
- package/src/OxyServices.ts +2 -1
- package/src/__tests__/authManager.cookiePath.test.ts +49 -0
- package/src/__tests__/httpServiceCache.test.ts +198 -0
- package/src/constants/version.ts +1 -1
- package/src/i18n/locales/en-US.json +44 -44
- package/src/i18n/locales/es-ES.json +44 -44
- package/src/index.ts +51 -4
- package/src/mixins/OxyServices.applications.ts +103 -5
- package/src/mixins/OxyServices.auth.ts +2 -1
- package/src/mixins/OxyServices.features.ts +0 -1
- package/src/mixins/OxyServices.reputation.ts +674 -0
- package/src/mixins/OxyServices.workspaces.ts +315 -0
- package/src/mixins/__tests__/reputation.test.ts +408 -0
- package/src/mixins/index.ts +6 -3
- package/src/models/interfaces.ts +25 -32
- package/src/utils/__tests__/accountUtils.test.ts +142 -0
- package/src/utils/__tests__/consumeSsoReturn.test.ts +229 -37
- package/src/utils/accountUtils.ts +20 -5
- package/src/utils/ssoReturn.ts +98 -37
- package/dist/cjs/mixins/OxyServices.developer.js +0 -97
- package/dist/cjs/mixins/OxyServices.karma.js +0 -108
- package/dist/esm/mixins/OxyServices.developer.js +0 -94
- package/dist/esm/mixins/OxyServices.karma.js +0 -105
- package/dist/types/mixins/OxyServices.developer.d.ts +0 -106
- package/dist/types/mixins/OxyServices.karma.d.ts +0 -92
- package/src/mixins/OxyServices.karma.ts +0 -111
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Developer API Methods Mixin
|
|
3
|
-
*
|
|
4
|
-
* Provides methods for managing developer applications and API keys
|
|
5
|
-
*/
|
|
6
|
-
import type { OxyServicesBase } from '../OxyServices.base';
|
|
7
|
-
export declare function OxyServicesDeveloperMixin<T extends typeof OxyServicesBase>(Base: T): {
|
|
8
|
-
new (...args: any[]): {
|
|
9
|
-
/**
|
|
10
|
-
* Get developer apps for the current user
|
|
11
|
-
* @returns Array of developer apps
|
|
12
|
-
*/
|
|
13
|
-
getDeveloperApps(): Promise<any[]>;
|
|
14
|
-
/**
|
|
15
|
-
* Create a new developer app
|
|
16
|
-
* @param data - Developer app configuration
|
|
17
|
-
* @returns Created developer app
|
|
18
|
-
*/
|
|
19
|
-
createDeveloperApp(data: {
|
|
20
|
-
name: string;
|
|
21
|
-
description?: string;
|
|
22
|
-
webhookUrl: string;
|
|
23
|
-
devWebhookUrl?: string;
|
|
24
|
-
scopes?: string[];
|
|
25
|
-
}): Promise<any>;
|
|
26
|
-
/**
|
|
27
|
-
* Get a specific developer app
|
|
28
|
-
*/
|
|
29
|
-
getDeveloperApp(appId: string): Promise<any>;
|
|
30
|
-
/**
|
|
31
|
-
* Update a developer app
|
|
32
|
-
* @param appId - The developer app ID
|
|
33
|
-
* @param data - Updated app configuration
|
|
34
|
-
* @returns Updated developer app
|
|
35
|
-
*/
|
|
36
|
-
updateDeveloperApp(appId: string, data: {
|
|
37
|
-
name?: string;
|
|
38
|
-
description?: string;
|
|
39
|
-
webhookUrl?: string;
|
|
40
|
-
devWebhookUrl?: string;
|
|
41
|
-
scopes?: string[];
|
|
42
|
-
}): Promise<any>;
|
|
43
|
-
/**
|
|
44
|
-
* Regenerate API secret for a developer app
|
|
45
|
-
* @param appId - The developer app ID
|
|
46
|
-
* @returns App with new secret
|
|
47
|
-
*/
|
|
48
|
-
regenerateDeveloperAppSecret(appId: string): Promise<any>;
|
|
49
|
-
/**
|
|
50
|
-
* Delete a developer app
|
|
51
|
-
* @param appId - The developer app ID
|
|
52
|
-
* @returns Deletion result
|
|
53
|
-
*/
|
|
54
|
-
deleteDeveloperApp(appId: string): Promise<any>;
|
|
55
|
-
httpService: import("../HttpService").HttpService;
|
|
56
|
-
cloudURL: string;
|
|
57
|
-
config: import("../OxyServices.base").OxyConfig;
|
|
58
|
-
__resetTokensForTests(): void;
|
|
59
|
-
makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
|
|
60
|
-
getBaseURL(): string;
|
|
61
|
-
getSessionBaseUrl(): string;
|
|
62
|
-
getClient(): import("../HttpService").HttpService;
|
|
63
|
-
getMetrics(): {
|
|
64
|
-
totalRequests: number;
|
|
65
|
-
successfulRequests: number;
|
|
66
|
-
failedRequests: number;
|
|
67
|
-
cacheHits: number;
|
|
68
|
-
cacheMisses: number;
|
|
69
|
-
averageResponseTime: number;
|
|
70
|
-
};
|
|
71
|
-
clearCache(): void;
|
|
72
|
-
clearCacheEntry(key: string): void;
|
|
73
|
-
clearCacheByPrefix(prefix: string): number;
|
|
74
|
-
getCacheStats(): {
|
|
75
|
-
size: number;
|
|
76
|
-
hits: number;
|
|
77
|
-
misses: number;
|
|
78
|
-
hitRate: number;
|
|
79
|
-
};
|
|
80
|
-
getCloudURL(): string;
|
|
81
|
-
setTokens(accessToken: string, refreshToken?: string): void;
|
|
82
|
-
clearTokens(): void;
|
|
83
|
-
onTokensChanged(listener: (accessToken: string | null) => void): () => void;
|
|
84
|
-
_cachedUserId: string | null | undefined;
|
|
85
|
-
_cachedAccessToken: string | null;
|
|
86
|
-
getCurrentUserId(): string | null;
|
|
87
|
-
hasValidToken(): boolean;
|
|
88
|
-
getAccessToken(): string | null;
|
|
89
|
-
setActingAs(userId: string | null): void;
|
|
90
|
-
getActingAs(): string | null;
|
|
91
|
-
waitForAuth(timeoutMs?: number): Promise<boolean>;
|
|
92
|
-
withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
|
|
93
|
-
maxRetries?: number;
|
|
94
|
-
retryDelay?: number;
|
|
95
|
-
authTimeoutMs?: number;
|
|
96
|
-
}): Promise<T_1>;
|
|
97
|
-
validate(): Promise<boolean>;
|
|
98
|
-
handleError(error: unknown): Error;
|
|
99
|
-
healthCheck(): Promise<{
|
|
100
|
-
status: string;
|
|
101
|
-
users?: number;
|
|
102
|
-
timestamp?: string;
|
|
103
|
-
[key: string]: any;
|
|
104
|
-
}>;
|
|
105
|
-
};
|
|
106
|
-
} & T;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Karma Methods Mixin
|
|
3
|
-
*
|
|
4
|
-
* Provides methods for karma system management
|
|
5
|
-
*/
|
|
6
|
-
import type { OxyServicesBase } from '../OxyServices.base';
|
|
7
|
-
export declare function OxyServicesKarmaMixin<T extends typeof OxyServicesBase>(Base: T): {
|
|
8
|
-
new (...args: any[]): {
|
|
9
|
-
/**
|
|
10
|
-
* Get user karma
|
|
11
|
-
*/
|
|
12
|
-
getUserKarma(userId: string): Promise<any>;
|
|
13
|
-
/**
|
|
14
|
-
* Give karma to user
|
|
15
|
-
*/
|
|
16
|
-
giveKarma(userId: string, amount: number, reason?: string): Promise<any>;
|
|
17
|
-
/**
|
|
18
|
-
* Get user karma total
|
|
19
|
-
* @param userId - The user ID
|
|
20
|
-
* @returns User karma total
|
|
21
|
-
*/
|
|
22
|
-
getUserKarmaTotal(userId: string): Promise<any>;
|
|
23
|
-
/**
|
|
24
|
-
* Get user karma history
|
|
25
|
-
* @param userId - The user ID
|
|
26
|
-
* @param limit - Optional limit for results
|
|
27
|
-
* @param offset - Optional offset for pagination
|
|
28
|
-
* @returns User karma history
|
|
29
|
-
*/
|
|
30
|
-
getUserKarmaHistory(userId: string, limit?: number, offset?: number): Promise<any>;
|
|
31
|
-
/**
|
|
32
|
-
* Get karma leaderboard
|
|
33
|
-
* @returns Karma leaderboard
|
|
34
|
-
*/
|
|
35
|
-
getKarmaLeaderboard(): Promise<any>;
|
|
36
|
-
/**
|
|
37
|
-
* Get karma rules
|
|
38
|
-
* @returns Karma rules
|
|
39
|
-
*/
|
|
40
|
-
getKarmaRules(): Promise<any>;
|
|
41
|
-
httpService: import("../HttpService").HttpService;
|
|
42
|
-
cloudURL: string;
|
|
43
|
-
config: import("../OxyServices.base").OxyConfig;
|
|
44
|
-
__resetTokensForTests(): void;
|
|
45
|
-
makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
|
|
46
|
-
getBaseURL(): string;
|
|
47
|
-
getSessionBaseUrl(): string;
|
|
48
|
-
getClient(): import("../HttpService").HttpService;
|
|
49
|
-
getMetrics(): {
|
|
50
|
-
totalRequests: number;
|
|
51
|
-
successfulRequests: number;
|
|
52
|
-
failedRequests: number;
|
|
53
|
-
cacheHits: number;
|
|
54
|
-
cacheMisses: number;
|
|
55
|
-
averageResponseTime: number;
|
|
56
|
-
};
|
|
57
|
-
clearCache(): void;
|
|
58
|
-
clearCacheEntry(key: string): void;
|
|
59
|
-
clearCacheByPrefix(prefix: string): number;
|
|
60
|
-
getCacheStats(): {
|
|
61
|
-
size: number;
|
|
62
|
-
hits: number;
|
|
63
|
-
misses: number;
|
|
64
|
-
hitRate: number;
|
|
65
|
-
};
|
|
66
|
-
getCloudURL(): string;
|
|
67
|
-
setTokens(accessToken: string, refreshToken?: string): void;
|
|
68
|
-
clearTokens(): void;
|
|
69
|
-
onTokensChanged(listener: (accessToken: string | null) => void): () => void;
|
|
70
|
-
_cachedUserId: string | null | undefined;
|
|
71
|
-
_cachedAccessToken: string | null;
|
|
72
|
-
getCurrentUserId(): string | null;
|
|
73
|
-
hasValidToken(): boolean;
|
|
74
|
-
getAccessToken(): string | null;
|
|
75
|
-
setActingAs(userId: string | null): void;
|
|
76
|
-
getActingAs(): 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
|
-
} & T;
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Karma Methods Mixin
|
|
3
|
-
*
|
|
4
|
-
* Provides methods for karma system management
|
|
5
|
-
*/
|
|
6
|
-
import type { OxyServicesBase } from '../OxyServices.base';
|
|
7
|
-
import { CACHE_TIMES } from './mixinHelpers';
|
|
8
|
-
|
|
9
|
-
export function OxyServicesKarmaMixin<T extends typeof OxyServicesBase>(Base: T) {
|
|
10
|
-
return class extends Base {
|
|
11
|
-
constructor(...args: any[]) {
|
|
12
|
-
super(...(args as [any]));
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get user karma
|
|
16
|
-
*/
|
|
17
|
-
async getUserKarma(userId: string): Promise<any> {
|
|
18
|
-
try {
|
|
19
|
-
return await this.makeRequest('GET', `/karma/${userId}`, undefined, {
|
|
20
|
-
cache: true,
|
|
21
|
-
cacheTTL: 2 * 60 * 1000, // 2 minutes cache
|
|
22
|
-
});
|
|
23
|
-
} catch (error) {
|
|
24
|
-
throw this.handleError(error);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Give karma to user
|
|
30
|
-
*/
|
|
31
|
-
async giveKarma(userId: string, amount: number, reason?: string): Promise<any> {
|
|
32
|
-
try {
|
|
33
|
-
return await this.makeRequest('POST', `/karma/${userId}/give`, {
|
|
34
|
-
amount,
|
|
35
|
-
reason
|
|
36
|
-
}, { cache: false });
|
|
37
|
-
} catch (error) {
|
|
38
|
-
throw this.handleError(error);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Get user karma total
|
|
44
|
-
* @param userId - The user ID
|
|
45
|
-
* @returns User karma total
|
|
46
|
-
*/
|
|
47
|
-
async getUserKarmaTotal(userId: string): Promise<any> {
|
|
48
|
-
try {
|
|
49
|
-
return await this.makeRequest('GET', `/karma/${userId}/total`, undefined, {
|
|
50
|
-
cache: true,
|
|
51
|
-
cacheTTL: CACHE_TIMES.MEDIUM,
|
|
52
|
-
});
|
|
53
|
-
} catch (error) {
|
|
54
|
-
throw this.handleError(error);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Get user karma history
|
|
60
|
-
* @param userId - The user ID
|
|
61
|
-
* @param limit - Optional limit for results
|
|
62
|
-
* @param offset - Optional offset for pagination
|
|
63
|
-
* @returns User karma history
|
|
64
|
-
*/
|
|
65
|
-
async getUserKarmaHistory(userId: string, limit?: number, offset?: number): Promise<any> {
|
|
66
|
-
try {
|
|
67
|
-
const params: any = {};
|
|
68
|
-
if (limit) params.limit = limit;
|
|
69
|
-
if (offset) params.offset = offset;
|
|
70
|
-
|
|
71
|
-
return await this.makeRequest('GET', `/karma/${userId}/history`, params, {
|
|
72
|
-
cache: true,
|
|
73
|
-
cacheTTL: CACHE_TIMES.MEDIUM,
|
|
74
|
-
});
|
|
75
|
-
} catch (error) {
|
|
76
|
-
throw this.handleError(error);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Get karma leaderboard
|
|
82
|
-
* @returns Karma leaderboard
|
|
83
|
-
*/
|
|
84
|
-
async getKarmaLeaderboard(): Promise<any> {
|
|
85
|
-
try {
|
|
86
|
-
return await this.makeRequest('GET', '/karma/leaderboard', undefined, {
|
|
87
|
-
cache: true,
|
|
88
|
-
cacheTTL: CACHE_TIMES.LONG,
|
|
89
|
-
});
|
|
90
|
-
} catch (error) {
|
|
91
|
-
throw this.handleError(error);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Get karma rules
|
|
97
|
-
* @returns Karma rules
|
|
98
|
-
*/
|
|
99
|
-
async getKarmaRules(): Promise<any> {
|
|
100
|
-
try {
|
|
101
|
-
return await this.makeRequest('GET', '/karma/rules', undefined, {
|
|
102
|
-
cache: true,
|
|
103
|
-
cacheTTL: CACHE_TIMES.EXTRA_LONG, // Rules don't change often
|
|
104
|
-
});
|
|
105
|
-
} catch (error) {
|
|
106
|
-
throw this.handleError(error);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
|