@oxyhq/core 3.2.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.
Files changed (73) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/AuthManager.js +3 -1
  3. package/dist/cjs/HttpService.js +89 -0
  4. package/dist/cjs/OxyServices.js +1 -1
  5. package/dist/cjs/constants/version.js +1 -1
  6. package/dist/cjs/i18n/locales/en-US.json +44 -44
  7. package/dist/cjs/i18n/locales/es-ES.json +44 -44
  8. package/dist/cjs/i18n/locales/locales/en-US.json +44 -44
  9. package/dist/cjs/i18n/locales/locales/es-ES.json +44 -44
  10. package/dist/cjs/index.js +4 -0
  11. package/dist/cjs/mixins/OxyServices.applications.js +3 -1
  12. package/dist/cjs/mixins/OxyServices.reputation.js +244 -0
  13. package/dist/cjs/mixins/OxyServices.workspaces.js +3 -1
  14. package/dist/cjs/mixins/index.js +2 -2
  15. package/dist/cjs/utils/accountUtils.js +12 -5
  16. package/dist/cjs/utils/ssoReturn.js +80 -33
  17. package/dist/esm/.tsbuildinfo +1 -1
  18. package/dist/esm/AuthManager.js +3 -1
  19. package/dist/esm/HttpService.js +89 -0
  20. package/dist/esm/OxyServices.js +1 -1
  21. package/dist/esm/constants/version.js +1 -1
  22. package/dist/esm/i18n/locales/en-US.json +44 -44
  23. package/dist/esm/i18n/locales/es-ES.json +44 -44
  24. package/dist/esm/i18n/locales/locales/en-US.json +44 -44
  25. package/dist/esm/i18n/locales/locales/es-ES.json +44 -44
  26. package/dist/esm/index.js +4 -0
  27. package/dist/esm/mixins/OxyServices.applications.js +3 -1
  28. package/dist/esm/mixins/OxyServices.reputation.js +241 -0
  29. package/dist/esm/mixins/OxyServices.workspaces.js +3 -1
  30. package/dist/esm/mixins/index.js +2 -2
  31. package/dist/esm/utils/accountUtils.js +12 -5
  32. package/dist/esm/utils/ssoReturn.js +80 -33
  33. package/dist/types/.tsbuildinfo +1 -1
  34. package/dist/types/HttpService.d.ts +57 -0
  35. package/dist/types/OxyServices.d.ts +1 -1
  36. package/dist/types/constants/version.d.ts +2 -2
  37. package/dist/types/index.d.ts +2 -1
  38. package/dist/types/mixins/OxyServices.applications.d.ts +8 -2
  39. package/dist/types/mixins/OxyServices.features.d.ts +0 -1
  40. package/dist/types/mixins/OxyServices.reputation.d.ts +436 -0
  41. package/dist/types/mixins/OxyServices.workspaces.d.ts +8 -2
  42. package/dist/types/mixins/index.d.ts +2 -2
  43. package/dist/types/models/interfaces.d.ts +15 -26
  44. package/dist/types/utils/accountUtils.d.ts +17 -4
  45. package/dist/types/utils/ssoReturn.d.ts +30 -9
  46. package/package.json +2 -1
  47. package/src/AuthManager.ts +3 -1
  48. package/src/HttpService.ts +91 -0
  49. package/src/OxyServices.ts +1 -1
  50. package/src/__tests__/httpServiceCache.test.ts +198 -0
  51. package/src/constants/version.ts +1 -1
  52. package/src/i18n/locales/en-US.json +44 -44
  53. package/src/i18n/locales/es-ES.json +44 -44
  54. package/src/index.ts +32 -4
  55. package/src/mixins/OxyServices.applications.ts +8 -2
  56. package/src/mixins/OxyServices.auth.ts +2 -1
  57. package/src/mixins/OxyServices.features.ts +0 -1
  58. package/src/mixins/OxyServices.reputation.ts +674 -0
  59. package/src/mixins/OxyServices.workspaces.ts +8 -2
  60. package/src/mixins/__tests__/reputation.test.ts +408 -0
  61. package/src/mixins/index.ts +3 -3
  62. package/src/models/interfaces.ts +16 -32
  63. package/src/utils/__tests__/accountUtils.test.ts +142 -0
  64. package/src/utils/__tests__/consumeSsoReturn.test.ts +229 -37
  65. package/src/utils/accountUtils.ts +20 -5
  66. package/src/utils/ssoReturn.ts +98 -37
  67. package/dist/cjs/mixins/OxyServices.developer.js +0 -97
  68. package/dist/cjs/mixins/OxyServices.karma.js +0 -108
  69. package/dist/esm/mixins/OxyServices.developer.js +0 -94
  70. package/dist/esm/mixins/OxyServices.karma.js +0 -105
  71. package/dist/types/mixins/OxyServices.developer.d.ts +0 -106
  72. package/dist/types/mixins/OxyServices.karma.d.ts +0 -92
  73. 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
-