@clinchdate/api-client 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.
Files changed (118) hide show
  1. package/README.MD +711 -0
  2. package/dist/client.d.ts +30 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +196 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/config/environments.d.ts +24 -0
  7. package/dist/config/environments.d.ts.map +1 -0
  8. package/dist/config/environments.js +24 -0
  9. package/dist/config/environments.js.map +1 -0
  10. package/dist/config.d.ts +21 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +44 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/hooks/useAuth.d.ts +13 -0
  15. package/dist/hooks/useAuth.d.ts.map +1 -0
  16. package/dist/hooks/useAuth.js +66 -0
  17. package/dist/hooks/useAuth.js.map +1 -0
  18. package/dist/hooks/useCall.d.ts +55 -0
  19. package/dist/hooks/useCall.d.ts.map +1 -0
  20. package/dist/hooks/useCall.js +148 -0
  21. package/dist/hooks/useCall.js.map +1 -0
  22. package/dist/hooks/useChat.d.ts +13 -0
  23. package/dist/hooks/useChat.d.ts.map +1 -0
  24. package/dist/hooks/useChat.js +76 -0
  25. package/dist/hooks/useChat.js.map +1 -0
  26. package/dist/hooks/useMatch.d.ts +15 -0
  27. package/dist/hooks/useMatch.d.ts.map +1 -0
  28. package/dist/hooks/useMatch.js +72 -0
  29. package/dist/hooks/useMatch.js.map +1 -0
  30. package/dist/hooks/useUser.d.ts +22 -0
  31. package/dist/hooks/useUser.d.ts.map +1 -0
  32. package/dist/hooks/useUser.js +170 -0
  33. package/dist/hooks/useUser.js.map +1 -0
  34. package/dist/index.d.ts +27 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +26 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/interceptors/auth.interceptor.d.ts +14 -0
  39. package/dist/interceptors/auth.interceptor.d.ts.map +1 -0
  40. package/dist/interceptors/auth.interceptor.js +61 -0
  41. package/dist/interceptors/auth.interceptor.js.map +1 -0
  42. package/dist/interceptors/error.interceptor.d.ts +12 -0
  43. package/dist/interceptors/error.interceptor.d.ts.map +1 -0
  44. package/dist/interceptors/error.interceptor.js +50 -0
  45. package/dist/interceptors/error.interceptor.js.map +1 -0
  46. package/dist/interceptors/response.interceptor.d.ts +2 -0
  47. package/dist/interceptors/response.interceptor.d.ts.map +1 -0
  48. package/dist/interceptors/response.interceptor.js +2 -0
  49. package/dist/interceptors/response.interceptor.js.map +1 -0
  50. package/dist/services/auth.service.d.ts +12 -0
  51. package/dist/services/auth.service.d.ts.map +1 -0
  52. package/dist/services/auth.service.js +37 -0
  53. package/dist/services/auth.service.js.map +1 -0
  54. package/dist/services/base.service.d.ts +10 -0
  55. package/dist/services/base.service.d.ts.map +1 -0
  56. package/dist/services/base.service.js +22 -0
  57. package/dist/services/base.service.js.map +1 -0
  58. package/dist/services/call.service.d.ts +80 -0
  59. package/dist/services/call.service.d.ts.map +1 -0
  60. package/dist/services/call.service.js +57 -0
  61. package/dist/services/call.service.js.map +1 -0
  62. package/dist/services/chat.service.d.ts +16 -0
  63. package/dist/services/chat.service.d.ts.map +1 -0
  64. package/dist/services/chat.service.js +33 -0
  65. package/dist/services/chat.service.js.map +1 -0
  66. package/dist/services/index.d.ts +23 -0
  67. package/dist/services/index.d.ts.map +1 -0
  68. package/dist/services/index.js +23 -0
  69. package/dist/services/index.js.map +1 -0
  70. package/dist/services/match.service.d.ts +14 -0
  71. package/dist/services/match.service.d.ts.map +1 -0
  72. package/dist/services/match.service.js +23 -0
  73. package/dist/services/match.service.js.map +1 -0
  74. package/dist/services/notification.service.d.ts +16 -0
  75. package/dist/services/notification.service.d.ts.map +1 -0
  76. package/dist/services/notification.service.js +31 -0
  77. package/dist/services/notification.service.js.map +1 -0
  78. package/dist/services/payment.service.d.ts +15 -0
  79. package/dist/services/payment.service.d.ts.map +1 -0
  80. package/dist/services/payment.service.js +32 -0
  81. package/dist/services/payment.service.js.map +1 -0
  82. package/dist/services/user.service.d.ts +16 -0
  83. package/dist/services/user.service.d.ts.map +1 -0
  84. package/dist/services/user.service.js +34 -0
  85. package/dist/services/user.service.js.map +1 -0
  86. package/dist/types/auth.types.d.ts +49 -0
  87. package/dist/types/auth.types.d.ts.map +1 -0
  88. package/dist/types/auth.types.js +2 -0
  89. package/dist/types/auth.types.js.map +1 -0
  90. package/dist/types/chat.types.d.ts +35 -0
  91. package/dist/types/chat.types.d.ts.map +1 -0
  92. package/dist/types/chat.types.js +2 -0
  93. package/dist/types/chat.types.js.map +1 -0
  94. package/dist/types/common.types.d.ts +39 -0
  95. package/dist/types/common.types.d.ts.map +1 -0
  96. package/dist/types/common.types.js +25 -0
  97. package/dist/types/common.types.js.map +1 -0
  98. package/dist/types/index.d.ts +2 -0
  99. package/dist/types/index.d.ts.map +1 -0
  100. package/dist/types/index.js +2 -0
  101. package/dist/types/index.js.map +1 -0
  102. package/dist/types/match.types.d.ts +40 -0
  103. package/dist/types/match.types.d.ts.map +1 -0
  104. package/dist/types/match.types.js +2 -0
  105. package/dist/types/match.types.js.map +1 -0
  106. package/dist/types/notification.types.d.ts +26 -0
  107. package/dist/types/notification.types.d.ts.map +1 -0
  108. package/dist/types/notification.types.js +2 -0
  109. package/dist/types/notification.types.js.map +1 -0
  110. package/dist/types/payment.types.d.ts +47 -0
  111. package/dist/types/payment.types.d.ts.map +1 -0
  112. package/dist/types/payment.types.js +2 -0
  113. package/dist/types/payment.types.js.map +1 -0
  114. package/dist/types/user.types.d.ts +50 -0
  115. package/dist/types/user.types.d.ts.map +1 -0
  116. package/dist/types/user.types.js +2 -0
  117. package/dist/types/user.types.js.map +1 -0
  118. package/package.json +120 -0
@@ -0,0 +1,61 @@
1
+ export class AuthInterceptor {
2
+ static accessToken = null;
3
+ static isRefreshing = false;
4
+ static refreshSubscribers = [];
5
+ static install(axiosInstance) {
6
+ axiosInstance.interceptors.request.use((config) => {
7
+ if (AuthInterceptor.accessToken) {
8
+ config.headers.Authorization = `Bearer ${AuthInterceptor.accessToken}`;
9
+ }
10
+ return config;
11
+ }, (error) => Promise.reject(error));
12
+ axiosInstance.interceptors.response.use((response) => response, async (error) => {
13
+ const originalRequest = error.config;
14
+ if (error.response?.status === 401 && !originalRequest._retry) {
15
+ originalRequest._retry = true;
16
+ if (!AuthInterceptor.isRefreshing) {
17
+ AuthInterceptor.isRefreshing = true;
18
+ try {
19
+ const newToken = await AuthInterceptor.refreshAccessToken();
20
+ AuthInterceptor.accessToken = newToken;
21
+ AuthInterceptor.isRefreshing = false;
22
+ AuthInterceptor.onRefreshed(newToken);
23
+ }
24
+ catch (refreshError) {
25
+ AuthInterceptor.isRefreshing = false;
26
+ AuthInterceptor.accessToken = null;
27
+ return Promise.reject(refreshError);
28
+ }
29
+ }
30
+ return new Promise((resolve) => {
31
+ AuthInterceptor.addRefreshSubscriber((token) => {
32
+ originalRequest.headers.Authorization = `Bearer ${token}`;
33
+ resolve(axiosInstance(originalRequest));
34
+ });
35
+ });
36
+ }
37
+ return Promise.reject(error);
38
+ });
39
+ }
40
+ static setTokens(accessToken, refreshToken) {
41
+ AuthInterceptor.accessToken = accessToken;
42
+ void refreshToken;
43
+ }
44
+ static clearTokens() {
45
+ AuthInterceptor.accessToken = null;
46
+ }
47
+ static getAccessToken() {
48
+ return AuthInterceptor.accessToken;
49
+ }
50
+ static addRefreshSubscriber(callback) {
51
+ AuthInterceptor.refreshSubscribers.push(callback);
52
+ }
53
+ static onRefreshed(token) {
54
+ AuthInterceptor.refreshSubscribers.forEach((callback) => callback(token));
55
+ AuthInterceptor.refreshSubscribers = [];
56
+ }
57
+ static async refreshAccessToken() {
58
+ throw new Error('Token refresh not implemented — override refreshAccessToken()');
59
+ }
60
+ }
61
+ //# sourceMappingURL=auth.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/auth.interceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface ApiError {
2
+ statusCode: number;
3
+ code: string;
4
+ message: string;
5
+ originalError?: unknown;
6
+ }
7
+ export declare class ErrorHandler {
8
+ static handle(error: unknown): ApiError;
9
+ private static isAxiosError;
10
+ private static defaultCodeForStatus;
11
+ }
12
+ //# sourceMappingURL=error.interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/error.interceptor.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IAEvB,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAeD,qBAAa,YAAY;IAKvB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAwCvC,OAAO,CAAC,MAAM,CAAC,YAAY;IAQ3B,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAepC"}
@@ -0,0 +1,50 @@
1
+ export class ErrorHandler {
2
+ static handle(error) {
3
+ if (ErrorHandler.isAxiosError(error)) {
4
+ const status = error.response?.status ?? 0;
5
+ const body = error.response?.data;
6
+ const code = body?.error?.code ??
7
+ ErrorHandler.defaultCodeForStatus(status);
8
+ const message = body?.error?.message ??
9
+ body?.message ??
10
+ error.message ??
11
+ 'An unexpected error occurred';
12
+ return { statusCode: status, code, message, originalError: error };
13
+ }
14
+ if (error instanceof Error) {
15
+ return {
16
+ statusCode: 0,
17
+ code: 'NETWORK_ERROR',
18
+ message: error.message || 'Network error — please check your connection',
19
+ originalError: error,
20
+ };
21
+ }
22
+ return {
23
+ statusCode: 0,
24
+ code: 'UNKNOWN_ERROR',
25
+ message: 'An unknown error occurred',
26
+ originalError: error,
27
+ };
28
+ }
29
+ static isAxiosError(error) {
30
+ return (typeof error === 'object' &&
31
+ error !== null &&
32
+ error.isAxiosError === true);
33
+ }
34
+ static defaultCodeForStatus(status) {
35
+ const map = {
36
+ 400: 'BAD_REQUEST',
37
+ 401: 'UNAUTHORIZED',
38
+ 403: 'FORBIDDEN',
39
+ 404: 'NOT_FOUND',
40
+ 409: 'CONFLICT',
41
+ 422: 'VALIDATION_ERROR',
42
+ 429: 'RATE_LIMIT',
43
+ 500: 'INTERNAL_SERVER_ERROR',
44
+ 502: 'BAD_GATEWAY',
45
+ 503: 'SERVICE_UNAVAILABLE',
46
+ };
47
+ return map[status] ?? `HTTP_${status}`;
48
+ }
49
+ }
50
+ //# sourceMappingURL=error.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/error.interceptor.ts"],"names":[],"mappings":"AA4BA,MAAM,OAAO,YAAY;IAKvB,MAAM,CAAC,MAAM,CAAC,KAAc;QAE1B,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAmC,CAAC;YAEjE,MAAM,IAAI,GACR,IAAI,EAAE,KAAK,EAAE,IAAI;gBACjB,YAAY,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,OAAO,GACX,IAAI,EAAE,KAAK,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,KAAK,CAAC,OAAO;gBACb,8BAA8B,CAAC;YAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACrE,CAAC;QAGD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO;gBACL,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,8CAA8C;gBACxE,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAGD,OAAO;YACL,UAAU,EAAE,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,2BAA2B;YACpC,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAIO,MAAM,CAAC,YAAY,CAAC,KAAc;QACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACb,KAAoB,CAAC,YAAY,KAAK,IAAI,CAC5C,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAChD,MAAM,GAAG,GAA2B;YAClC,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,kBAAkB;YACvB,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE,uBAAuB;YAC5B,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,qBAAqB;SAC3B,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,MAAM,EAAE,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=response.interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/response.interceptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=response.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/response.interceptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { BaseService } from './base.service';
2
+ import { LoginRequest, RegisterRequest, AuthResponse, RefreshTokenRequest } from '../types/auth.types';
3
+ export declare class AuthService extends BaseService {
4
+ login(credentials: LoginRequest): Promise<AuthResponse>;
5
+ register(data: RegisterRequest): Promise<AuthResponse>;
6
+ refreshToken(request: RefreshTokenRequest): Promise<AuthResponse>;
7
+ logout(): Promise<void>;
8
+ verifyEmail(token: string): Promise<void>;
9
+ requestPasswordReset(email: string): Promise<void>;
10
+ resetPassword(token: string, newPassword: string): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=auth.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,WAAY,SAAQ,WAAW;IACpC,KAAK,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IASvD,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAStD,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IASjE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvE"}
@@ -0,0 +1,37 @@
1
+ import { BaseService } from './base.service';
2
+ import { AuthInterceptor } from '../interceptors/auth.interceptor';
3
+ export class AuthService extends BaseService {
4
+ async login(credentials) {
5
+ const response = await this.post('/auth/login', credentials);
6
+ AuthInterceptor.setTokens(response.tokens.accessToken, response.tokens.refreshToken);
7
+ return response;
8
+ }
9
+ async register(data) {
10
+ const response = await this.post('/auth/register', data);
11
+ AuthInterceptor.setTokens(response.tokens.accessToken, response.tokens.refreshToken);
12
+ return response;
13
+ }
14
+ async refreshToken(request) {
15
+ const response = await this.post('/auth/refresh', request);
16
+ AuthInterceptor.setTokens(response.tokens.accessToken, response.tokens.refreshToken);
17
+ return response;
18
+ }
19
+ async logout() {
20
+ try {
21
+ await this.post('/auth/logout', {});
22
+ }
23
+ finally {
24
+ AuthInterceptor.clearTokens();
25
+ }
26
+ }
27
+ async verifyEmail(token) {
28
+ await this.post('/auth/verify-email', { token });
29
+ }
30
+ async requestPasswordReset(email) {
31
+ await this.post('/auth/forgot-password', { email });
32
+ }
33
+ async resetPassword(token, newPassword) {
34
+ await this.post('/auth/reset-password', { token, newPassword });
35
+ }
36
+ }
37
+ //# sourceMappingURL=auth.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAQnE,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,KAAK,CAAC,KAAK,CAAC,WAAyB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAe,aAAa,EAAE,WAAW,CAAC,CAAC;QAC3E,eAAe,CAAC,SAAS,CACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAqB;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAe,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACvE,eAAe,CAAC,SAAS,CACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAe,eAAe,EAAE,OAAO,CAAC,CAAC;QACzE,eAAe,CAAC,SAAS,CACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAC3B,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,WAAmB;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ export declare class BaseService {
3
+ protected get<T>(endpoint: string, config?: AxiosRequestConfig): Promise<T>;
4
+ protected post<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
5
+ protected put<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
6
+ protected patch<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
7
+ protected delete<T>(endpoint: string, config?: AxiosRequestConfig): Promise<T>;
8
+ protected upload<T>(endpoint: string, formData: FormData, onProgress?: (percent: number) => void): Promise<T>;
9
+ }
10
+ //# sourceMappingURL=base.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../src/services/base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAc3C,qBAAa,WAAW;cACN,GAAG,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,IAAI,CAAC,CAAC,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,GAAG,CAAC,CAAC,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,KAAK,CAAC,CAAC,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,MAAM,CAAC,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;cAIG,MAAM,CAAC,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,CAAC,CAAC;CAGd"}
@@ -0,0 +1,22 @@
1
+ import { httpClient } from '../client';
2
+ export class BaseService {
3
+ async get(endpoint, config) {
4
+ return httpClient.get(endpoint, config);
5
+ }
6
+ async post(endpoint, data, config) {
7
+ return httpClient.post(endpoint, data, config);
8
+ }
9
+ async put(endpoint, data, config) {
10
+ return httpClient.put(endpoint, data, config);
11
+ }
12
+ async patch(endpoint, data, config) {
13
+ return httpClient.patch(endpoint, data, config);
14
+ }
15
+ async delete(endpoint, config) {
16
+ return httpClient.delete(endpoint, config);
17
+ }
18
+ async upload(endpoint, formData, onProgress) {
19
+ return httpClient.upload(endpoint, formData, onProgress);
20
+ }
21
+ }
22
+ //# sourceMappingURL=base.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../src/services/base.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAavC,MAAM,OAAO,WAAW;IACZ,KAAK,CAAC,GAAG,CACjB,QAAgB,EAChB,MAA2B;QAE3B,OAAO,UAAU,CAAC,GAAG,CAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,QAAgB,EAChB,IAAc,EACd,MAA2B;QAE3B,OAAO,UAAU,CAAC,IAAI,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,GAAG,CACjB,QAAgB,EAChB,IAAc,EACd,MAA2B;QAE3B,OAAO,UAAU,CAAC,GAAG,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,KAAK,CACnB,QAAgB,EAChB,IAAc,EACd,MAA2B;QAE3B,OAAO,UAAU,CAAC,KAAK,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAES,KAAK,CAAC,MAAM,CACpB,QAAgB,EAChB,MAA2B;QAE3B,OAAO,UAAU,CAAC,MAAM,CAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAES,KAAK,CAAC,MAAM,CACpB,QAAgB,EAChB,QAAkB,EAClB,UAAsC;QAEtC,OAAO,UAAU,CAAC,MAAM,CAAI,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1,80 @@
1
+ export declare class CallService {
2
+ createVideoRoom(roomName: string, maxParticipants?: number, type?: 'peer' | 'group'): Promise<{
3
+ roomSid: string;
4
+ roomName: string;
5
+ callType: string;
6
+ maxParticipants: number;
7
+ }>;
8
+ getVideoToken(roomName: string): Promise<{
9
+ token: string;
10
+ roomName: string;
11
+ userId: string;
12
+ userName: string;
13
+ }>;
14
+ joinVideoCall(roomName: string): Promise<{
15
+ token: string;
16
+ roomName: string;
17
+ }>;
18
+ getVideoRoomStatus(roomSid: string): Promise<{
19
+ roomSid: string;
20
+ roomName: string;
21
+ status: string;
22
+ participants: number;
23
+ maxParticipants: number;
24
+ duration: number;
25
+ }>;
26
+ endVideoCall(roomSid: string): Promise<{
27
+ success: boolean;
28
+ message: string;
29
+ }>;
30
+ listActiveVideoRooms(): Promise<any[]>;
31
+ muteAudio(roomSid: string): Promise<{
32
+ success: boolean;
33
+ message: string;
34
+ }>;
35
+ unmuteAudio(roomSid: string): Promise<{
36
+ success: boolean;
37
+ message: string;
38
+ }>;
39
+ initiateAudioCall(recipientId: string): Promise<{
40
+ callId: string;
41
+ status: string;
42
+ }>;
43
+ acceptAudioCall(callId: string): Promise<{
44
+ callId: string;
45
+ token: string;
46
+ status: string;
47
+ }>;
48
+ rejectAudioCall(callId: string): Promise<{
49
+ success: boolean;
50
+ message: string;
51
+ }>;
52
+ endAudioCall(callId: string): Promise<{
53
+ callId: string;
54
+ duration: number;
55
+ status: string;
56
+ }>;
57
+ getAudioToken(): Promise<{
58
+ token: string;
59
+ }>;
60
+ getCallHistory(limit?: number): Promise<Array<{
61
+ callId: string;
62
+ type: string;
63
+ status: string;
64
+ duration: number | null;
65
+ otherUserId: string;
66
+ startedAt: string;
67
+ endedAt: string | null;
68
+ }>>;
69
+ getRecordings(roomSid: string): Promise<any[]>;
70
+ deleteRecording(recordingId: string): Promise<{
71
+ success: boolean;
72
+ message: string;
73
+ }>;
74
+ reportCallQuality(callId: string, quality: 'good' | 'fair' | 'poor', issue?: string): Promise<{
75
+ success: boolean;
76
+ message: string;
77
+ }>;
78
+ }
79
+ export declare const callService: CallService;
80
+ //# sourceMappingURL=call.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.service.d.ts","sourceRoot":"","sources":["../../src/services/call.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { httpClient } from '../client';
2
+ export class CallService {
3
+ async createVideoRoom(roomName, maxParticipants = 2, type = 'peer') {
4
+ return httpClient.post('/calls/video/create-room', { roomName, maxParticipants, type });
5
+ }
6
+ async getVideoToken(roomName) {
7
+ return httpClient.post('/calls/video/get-token', { roomName });
8
+ }
9
+ async joinVideoCall(roomName) {
10
+ const tokenData = await this.getVideoToken(roomName);
11
+ return { token: tokenData.token, roomName: tokenData.roomName };
12
+ }
13
+ async getVideoRoomStatus(roomSid) {
14
+ return httpClient.get(`/calls/video/rooms/${roomSid}`);
15
+ }
16
+ async endVideoCall(roomSid) {
17
+ return httpClient.post('/calls/video/end-room', { roomSid });
18
+ }
19
+ async listActiveVideoRooms() {
20
+ return httpClient.get('/calls/video/active-rooms');
21
+ }
22
+ async muteAudio(roomSid) {
23
+ return httpClient.post(`/calls/video/${roomSid}/mute`, {});
24
+ }
25
+ async unmuteAudio(roomSid) {
26
+ return httpClient.post(`/calls/video/${roomSid}/unmute`, {});
27
+ }
28
+ async initiateAudioCall(recipientId) {
29
+ return httpClient.post('/calls/audio/initiate', { recipientId });
30
+ }
31
+ async acceptAudioCall(callId) {
32
+ return httpClient.post('/calls/audio/accept', { callId });
33
+ }
34
+ async rejectAudioCall(callId) {
35
+ return httpClient.post('/calls/audio/reject', { callId });
36
+ }
37
+ async endAudioCall(callId) {
38
+ return httpClient.post('/calls/audio/end', { callId });
39
+ }
40
+ async getAudioToken() {
41
+ return httpClient.get('/calls/audio/token');
42
+ }
43
+ async getCallHistory(limit = 20) {
44
+ return httpClient.get(`/calls/audio/call-history?limit=${limit}`);
45
+ }
46
+ async getRecordings(roomSid) {
47
+ return httpClient.get(`/calls/recordings/${roomSid}`);
48
+ }
49
+ async deleteRecording(recordingId) {
50
+ return httpClient.delete(`/calls/recordings/${recordingId}`);
51
+ }
52
+ async reportCallQuality(callId, quality, issue) {
53
+ return httpClient.post('/calls/report-quality', { callId, quality, issue });
54
+ }
55
+ }
56
+ export const callService = new CallService();
57
+ //# sourceMappingURL=call.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.service.js","sourceRoot":"","sources":["../../src/services/call.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKvC,MAAM,OAAO,WAAW;IAKtB,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,kBAA0B,CAAC,EAC3B,OAAyB,MAAM;QAE/B,OAAO,UAAU,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB;QAEhB,OAAO,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAe;QAEf,OAAO,UAAU,CAAC,GAAG,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,UAAU,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,OAAO,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,OAAO,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAMD,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,OAAO,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,OAAO,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAAE;QAElB,OAAO,UAAU,CAAC,GAAG,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAMD,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,OAAO,UAAU,CAAC,GAAG,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,OAAO,UAAU,CAAC,MAAM,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,OAAiC,EACjC,KAAc;QAEd,OAAO,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { BaseService } from './base.service';
2
+ import { Message, Conversation, SendMessageRequest } from '../types/chat.types';
3
+ export declare class ChatService extends BaseService {
4
+ sendMessage(request: SendMessageRequest): Promise<Message>;
5
+ getMessages(matchId: string, limit?: number): Promise<Message[]>;
6
+ getConversations(): Promise<Conversation[]>;
7
+ markAsRead(messageId: string): Promise<void>;
8
+ markConversationAsRead(matchId: string): Promise<void>;
9
+ deleteMessage(messageId: string): Promise<void>;
10
+ getUnreadCount(): Promise<{
11
+ count: number;
12
+ }>;
13
+ searchMessages(matchId: string, query: string): Promise<Message[]>;
14
+ }
15
+ export declare const chatService: ChatService;
16
+ //# sourceMappingURL=chat.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../src/services/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,OAAO,EACP,YAAY,EACZ,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,WAAY,SAAQ,WAAW;IACpC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAMpE,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI3C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,cAAc,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAKzE;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { BaseService } from './base.service';
2
+ export class ChatService extends BaseService {
3
+ async sendMessage(request) {
4
+ return this.post('/chat/messages', request);
5
+ }
6
+ async getMessages(matchId, limit = 50) {
7
+ return this.get(`/chat/matches/${matchId}/messages`, {
8
+ params: { limit },
9
+ });
10
+ }
11
+ async getConversations() {
12
+ return this.get('/chat/conversations');
13
+ }
14
+ async markAsRead(messageId) {
15
+ await this.put(`/chat/messages/${messageId}/read`, {});
16
+ }
17
+ async markConversationAsRead(matchId) {
18
+ await this.put(`/chat/matches/${matchId}/read`, {});
19
+ }
20
+ async deleteMessage(messageId) {
21
+ await this.delete(`/chat/messages/${messageId}`);
22
+ }
23
+ async getUnreadCount() {
24
+ return this.get('/chat/unread-count');
25
+ }
26
+ async searchMessages(matchId, query) {
27
+ return this.get(`/chat/matches/${matchId}/search`, {
28
+ params: { q: query },
29
+ });
30
+ }
31
+ }
32
+ export const chatService = new ChatService();
33
+ //# sourceMappingURL=chat.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/services/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAU,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,QAAgB,EAAE;QACnD,OAAO,IAAI,CAAC,GAAG,CAAY,iBAAiB,OAAO,WAAW,EAAE;YAC9D,MAAM,EAAE,EAAE,KAAK,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAiB,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,SAAS,OAAO,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,OAAO,OAAO,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,GAAG,CAAoB,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,KAAa;QACjD,OAAO,IAAI,CAAC,GAAG,CAAY,iBAAiB,OAAO,SAAS,EAAE;YAC5D,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { AuthService } from './auth.service';
2
+ import { UserService } from './user.service';
3
+ import { MatchService } from './match.service';
4
+ import { ChatService } from './chat.service';
5
+ import { NotificationService } from './notification.service';
6
+ import { PaymentService } from './payment.service';
7
+ import { CallService } from './call.service';
8
+ export { AuthService } from './auth.service';
9
+ export { UserService } from './user.service';
10
+ export { MatchService } from './match.service';
11
+ export { ChatService } from './chat.service';
12
+ export { NotificationService } from './notification.service';
13
+ export { PaymentService } from './payment.service';
14
+ export { CallService } from './call.service';
15
+ export { BaseService } from './base.service';
16
+ export declare const authService: AuthService;
17
+ export declare const userService: UserService;
18
+ export declare const matchService: MatchService;
19
+ export declare const chatService: ChatService;
20
+ export declare const notificationService: NotificationService;
21
+ export declare const paymentService: PaymentService;
22
+ export declare const callService: CallService;
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,eAAO,MAAM,WAAW,aAAoB,CAAC;AAC7C,eAAO,MAAM,WAAW,aAAoB,CAAC;AAC7C,eAAO,MAAM,YAAY,cAAqB,CAAC;AAC/C,eAAO,MAAM,WAAW,aAAoB,CAAC;AAC7C,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAC7D,eAAO,MAAM,cAAc,gBAAuB,CAAC;AACnD,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { AuthService } from './auth.service';
2
+ import { UserService } from './user.service';
3
+ import { MatchService } from './match.service';
4
+ import { ChatService } from './chat.service';
5
+ import { NotificationService } from './notification.service';
6
+ import { PaymentService } from './payment.service';
7
+ import { CallService } from './call.service';
8
+ export { AuthService } from './auth.service';
9
+ export { UserService } from './user.service';
10
+ export { MatchService } from './match.service';
11
+ export { ChatService } from './chat.service';
12
+ export { NotificationService } from './notification.service';
13
+ export { PaymentService } from './payment.service';
14
+ export { CallService } from './call.service';
15
+ export { BaseService } from './base.service';
16
+ export const authService = new AuthService();
17
+ export const userService = new UserService();
18
+ export const matchService = new MatchService();
19
+ export const chatService = new ChatService();
20
+ export const notificationService = new NotificationService();
21
+ export const paymentService = new PaymentService();
22
+ export const callService = new CallService();
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { BaseService } from './base.service';
2
+ import { Match, GetMatchesResponse, SwipeRequest } from '../types/match.types';
3
+ export declare class MatchService extends BaseService {
4
+ swipe(request: SwipeRequest): Promise<{
5
+ isMatch: boolean;
6
+ }>;
7
+ getMatches(): Promise<GetMatchesResponse>;
8
+ getActiveMatches(): Promise<Match[]>;
9
+ getMatch(matchId: string): Promise<Match>;
10
+ unmatch(matchId: string): Promise<void>;
11
+ reportUser(userId: string, reason: string): Promise<void>;
12
+ }
13
+ export declare const matchService: MatchService;
14
+ //# sourceMappingURL=match.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.service.d.ts","sourceRoot":"","sources":["../../src/services/match.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,YAAa,SAAQ,WAAW;IACrC,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI3D,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIzC,gBAAgB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAIpC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIzC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { BaseService } from './base.service';
2
+ export class MatchService extends BaseService {
3
+ async swipe(request) {
4
+ return this.post('/matches/swipe', request);
5
+ }
6
+ async getMatches() {
7
+ return this.get('/matches');
8
+ }
9
+ async getActiveMatches() {
10
+ return this.get('/matches/active');
11
+ }
12
+ async getMatch(matchId) {
13
+ return this.get(`/matches/${matchId}`);
14
+ }
15
+ async unmatch(matchId) {
16
+ await this.delete(`/matches/${matchId}`);
17
+ }
18
+ async reportUser(userId, reason) {
19
+ await this.post(`/users/${userId}/report`, { reason });
20
+ }
21
+ }
22
+ export const matchService = new MatchService();
23
+ //# sourceMappingURL=match.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.service.js","sourceRoot":"","sources":["../../src/services/match.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,KAAK,CAAC,KAAK,CAAC,OAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAuB,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,GAAG,CAAqB,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAU,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAQ,YAAY,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { BaseService } from './base.service';
2
+ import { Notification, NotificationPreferences } from '../types/notification.types';
3
+ export declare class NotificationService extends BaseService {
4
+ getNotifications(limit?: number): Promise<Notification[]>;
5
+ markAsRead(notificationId: string): Promise<void>;
6
+ markAllAsRead(): Promise<void>;
7
+ deleteNotification(notificationId: string): Promise<void>;
8
+ deleteAllNotifications(): Promise<void>;
9
+ getPreferences(): Promise<NotificationPreferences>;
10
+ updatePreferences(preferences: Partial<NotificationPreferences>): Promise<NotificationPreferences>;
11
+ getUnreadCount(): Promise<{
12
+ count: number;
13
+ }>;
14
+ }
15
+ export declare const notificationService: NotificationService;
16
+ //# sourceMappingURL=notification.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.service.d.ts","sourceRoot":"","sources":["../../src/services/notification.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAoB,SAAQ,WAAW;IAC5C,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAM7D,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIlD,iBAAiB,CACrB,WAAW,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC5C,OAAO,CAAC,uBAAuB,CAAC;IAO7B,cAAc,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAGnD;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}