@chanomhub/sdk 1.3.9 → 1.3.11
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/__tests__/auth.test.js +1 -1
- package/dist/__tests__/auth.test.js.map +1 -1
- package/dist/client.d.ts +5 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +102 -19
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/repositories/authRepository.js +1 -1
- package/dist/repositories/authRepository.js.map +1 -1
- package/dist/repositories/developerRepository.d.ts +6 -1
- package/dist/repositories/developerRepository.d.ts.map +1 -1
- package/dist/repositories/developerRepository.js +16 -7
- package/dist/repositories/developerRepository.js.map +1 -1
- package/dist/types/auth.d.ts +4 -2
- package/dist/types/auth.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -52,7 +52,7 @@ const authRepository_1 = require("../repositories/authRepository");
|
|
|
52
52
|
});
|
|
53
53
|
const auth = (0, authRepository_1.createAuthRepository)(mockFetcher, config);
|
|
54
54
|
const result = await auth.refreshToken('old-refresh-token');
|
|
55
|
-
(0, vitest_1.expect)(mockFetcher).toHaveBeenCalledWith('/api/
|
|
55
|
+
(0, vitest_1.expect)(mockFetcher).toHaveBeenCalledWith('/api/auth/refresh', {
|
|
56
56
|
method: 'POST',
|
|
57
57
|
body: { refreshToken: 'old-refresh-token' },
|
|
58
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../__tests__/auth.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../__tests__/auth.test.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Chanomhub SDK - GraphQL
|
|
2
|
+
* Chanomhub SDK - GraphQL and REST Clients
|
|
3
3
|
*
|
|
4
|
-
* Framework-agnostic
|
|
5
|
-
*
|
|
4
|
+
* Framework-agnostic API clients using standard fetch API.
|
|
5
|
+
* Includes automatic token renewal logic.
|
|
6
6
|
*/
|
|
7
7
|
import type { ChanomhubConfig } from './config';
|
|
8
8
|
import type { GraphQLResponse } from './types/common';
|
|
@@ -20,7 +20,7 @@ export interface FetchOptions {
|
|
|
20
20
|
* @param config - SDK configuration
|
|
21
21
|
* @returns GraphQL fetch function
|
|
22
22
|
*/
|
|
23
|
-
export declare function createGraphQLClient(config: ChanomhubConfig): <T>(query: string, variables?: Record<string, unknown>, options?: FetchOptions) => Promise<GraphQLResponse<T>>;
|
|
23
|
+
export declare function createGraphQLClient(config: ChanomhubConfig): <T>(query: string, variables?: Record<string, unknown>, options?: FetchOptions, isRetry?: boolean) => Promise<GraphQLResponse<T>>;
|
|
24
24
|
export type GraphQLFetcher = ReturnType<typeof createGraphQLClient>;
|
|
25
25
|
/**
|
|
26
26
|
* REST API response type
|
|
@@ -38,6 +38,6 @@ export interface RestResponse<T> {
|
|
|
38
38
|
export declare function createRestClient(config: ChanomhubConfig): <T>(endpoint: string, options?: {
|
|
39
39
|
method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
|
|
40
40
|
body?: Record<string, unknown>;
|
|
41
|
-
}) => Promise<RestResponse<T>>;
|
|
41
|
+
}, isRetry?: boolean) => Promise<RestResponse<T>>;
|
|
42
42
|
export type RestFetcher = ReturnType<typeof createRestClient>;
|
|
43
43
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA8EtD,MAAM,WAAW,YAAY;IACzB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,IAC3B,CAAC,SAClB,MAAM,cACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACzB,YAAY,wBAEtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAsFjC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,IAC3B,CAAC,YACZ,MAAM,YACP;IACL,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,wBAEF,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAmE9B;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/client.js
CHANGED
|
@@ -1,14 +1,77 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Chanomhub SDK - GraphQL
|
|
3
|
+
* Chanomhub SDK - GraphQL and REST Clients
|
|
4
4
|
*
|
|
5
|
-
* Framework-agnostic
|
|
6
|
-
*
|
|
5
|
+
* Framework-agnostic API clients using standard fetch API.
|
|
6
|
+
* Includes automatic token renewal logic.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.createGraphQLClient = createGraphQLClient;
|
|
10
10
|
exports.createRestClient = createRestClient;
|
|
11
11
|
const imageUrl_1 = require("./transforms/imageUrl");
|
|
12
|
+
// Shared state for token refreshing to handle concurrent requests
|
|
13
|
+
// Keyed by refreshToken to avoid cross-user token leakage in server-side environments
|
|
14
|
+
const refreshPromises = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* Internal helper to refresh tokens
|
|
17
|
+
*/
|
|
18
|
+
async function performTokenRefresh(config) {
|
|
19
|
+
const refreshToken = config.refreshToken;
|
|
20
|
+
if (!refreshToken)
|
|
21
|
+
return null;
|
|
22
|
+
try {
|
|
23
|
+
// Use /api/auth/refresh as it's a REST call
|
|
24
|
+
const res = await fetch(`${config.apiUrl}/api/auth/refresh`, {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
headers: { 'Content-Type': 'application/json' },
|
|
27
|
+
body: JSON.stringify({ refreshToken }),
|
|
28
|
+
});
|
|
29
|
+
if (!res.ok)
|
|
30
|
+
throw new Error('Refresh failed');
|
|
31
|
+
const json = await res.json();
|
|
32
|
+
// Backend returns TokenPairDTO wrapped in 'data' by TransformInterceptor
|
|
33
|
+
const data = json.data || json;
|
|
34
|
+
const newToken = data.accessToken || data.token;
|
|
35
|
+
const newRefreshToken = data.refreshToken;
|
|
36
|
+
if (newToken && newRefreshToken) {
|
|
37
|
+
// Update config in-place so subsequent requests use new token
|
|
38
|
+
config.token = newToken;
|
|
39
|
+
config.refreshToken = newRefreshToken;
|
|
40
|
+
// Notify consumer (e.g., to update cookies)
|
|
41
|
+
if (config.onTokenRefreshed) {
|
|
42
|
+
config.onTokenRefreshed(newToken, newRefreshToken);
|
|
43
|
+
}
|
|
44
|
+
return { token: newToken, refreshToken: newRefreshToken };
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('SDK: Token refresh failed:', error);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
// Clean up the promise from the map
|
|
54
|
+
refreshPromises.delete(refreshToken);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Shared logic for handling 401 and refreshing tokens
|
|
59
|
+
*/
|
|
60
|
+
async function handleUnauthorized(config, retryAction) {
|
|
61
|
+
const refreshToken = config.refreshToken;
|
|
62
|
+
if (!refreshToken)
|
|
63
|
+
return null;
|
|
64
|
+
let promise = refreshPromises.get(refreshToken);
|
|
65
|
+
if (!promise) {
|
|
66
|
+
promise = performTokenRefresh(config);
|
|
67
|
+
refreshPromises.set(refreshToken, promise);
|
|
68
|
+
}
|
|
69
|
+
const result = await promise;
|
|
70
|
+
if (result && result.token) {
|
|
71
|
+
return retryAction(result.token);
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
12
75
|
/**
|
|
13
76
|
* Creates a GraphQL fetcher function with automatic image URL transformation
|
|
14
77
|
*
|
|
@@ -16,7 +79,7 @@ const imageUrl_1 = require("./transforms/imageUrl");
|
|
|
16
79
|
* @returns GraphQL fetch function
|
|
17
80
|
*/
|
|
18
81
|
function createGraphQLClient(config) {
|
|
19
|
-
|
|
82
|
+
async function graphqlFetch(query, variables = {}, options = {}, isRetry = false) {
|
|
20
83
|
var _a, _b;
|
|
21
84
|
const headers = {
|
|
22
85
|
'Content-Type': 'application/json',
|
|
@@ -25,7 +88,6 @@ function createGraphQLClient(config) {
|
|
|
25
88
|
if (config.token) {
|
|
26
89
|
headers['Authorization'] = `Bearer ${config.token}`;
|
|
27
90
|
}
|
|
28
|
-
// Build fetch options - framework agnostic
|
|
29
91
|
const fetchOptions = {
|
|
30
92
|
method: 'POST',
|
|
31
93
|
headers,
|
|
@@ -35,21 +97,24 @@ function createGraphQLClient(config) {
|
|
|
35
97
|
...(options.operationName && { operationName: options.operationName }),
|
|
36
98
|
}),
|
|
37
99
|
};
|
|
38
|
-
// Handle caching - use Next.js revalidate option for ISR support
|
|
39
100
|
const useCache = !options.noCache && !config.token;
|
|
40
101
|
const cacheSeconds = (_b = (_a = options.cacheSeconds) !== null && _a !== void 0 ? _a : config.defaultCacheSeconds) !== null && _b !== void 0 ? _b : 3600;
|
|
41
102
|
if (useCache && cacheSeconds > 0) {
|
|
42
|
-
// Use Next.js ISR caching with revalidate option
|
|
43
103
|
fetchOptions.next = {
|
|
44
104
|
revalidate: cacheSeconds,
|
|
45
105
|
};
|
|
46
106
|
}
|
|
47
107
|
else {
|
|
48
|
-
// Disable caching entirely
|
|
49
108
|
fetchOptions.cache = 'no-store';
|
|
50
109
|
}
|
|
51
110
|
try {
|
|
52
111
|
const res = await fetch(`${config.apiUrl}/api/v2/graphql`, fetchOptions);
|
|
112
|
+
// Handle 401 Unauthorized - try to refresh token
|
|
113
|
+
if (res.status === 401 && config.refreshToken && !isRetry) {
|
|
114
|
+
const retryResult = await handleUnauthorized(config, (newToken) => graphqlFetch(query, variables, options, true));
|
|
115
|
+
if (retryResult)
|
|
116
|
+
return retryResult;
|
|
117
|
+
}
|
|
53
118
|
if (!res.ok) {
|
|
54
119
|
const errorText = await res.text();
|
|
55
120
|
console.error('GraphQL fetch error:', res.status, errorText);
|
|
@@ -59,12 +124,23 @@ function createGraphQLClient(config) {
|
|
|
59
124
|
};
|
|
60
125
|
}
|
|
61
126
|
const json = await res.json();
|
|
62
|
-
console.log('DEBUG: GraphQL Response JSON:', JSON.stringify(json));
|
|
63
127
|
if (json.errors) {
|
|
128
|
+
// Check if any error is an authentication error
|
|
129
|
+
const isAuthError = json.errors.some((e) => {
|
|
130
|
+
var _a, _b, _c, _d;
|
|
131
|
+
return ((_a = e.message) === null || _a === void 0 ? void 0 : _a.includes('Unauthorized')) ||
|
|
132
|
+
((_b = e.message) === null || _b === void 0 ? void 0 : _b.includes('unauthorized')) ||
|
|
133
|
+
((_c = e.extensions) === null || _c === void 0 ? void 0 : _c.code) === 'UNAUTHENTICATED' ||
|
|
134
|
+
((_d = e.extensions) === null || _d === void 0 ? void 0 : _d.code) === '401';
|
|
135
|
+
});
|
|
136
|
+
if (isAuthError && config.refreshToken && !isRetry) {
|
|
137
|
+
const retryResult = await handleUnauthorized(config, (newToken) => graphqlFetch(query, variables, options, true));
|
|
138
|
+
if (retryResult)
|
|
139
|
+
return retryResult;
|
|
140
|
+
}
|
|
64
141
|
console.error('GraphQL errors:', json.errors);
|
|
65
142
|
return { data: null, errors: json.errors };
|
|
66
143
|
}
|
|
67
|
-
// Auto-transform all image URLs in the response
|
|
68
144
|
const transformedData = (0, imageUrl_1.transformImageUrlsDeep)(json.data, config.cdnUrl);
|
|
69
145
|
return { data: transformedData };
|
|
70
146
|
}
|
|
@@ -75,7 +151,8 @@ function createGraphQLClient(config) {
|
|
|
75
151
|
errors: [{ message: error instanceof Error ? error.message : 'Unknown error' }],
|
|
76
152
|
};
|
|
77
153
|
}
|
|
78
|
-
}
|
|
154
|
+
}
|
|
155
|
+
return graphqlFetch;
|
|
79
156
|
}
|
|
80
157
|
/**
|
|
81
158
|
* Creates a REST API client for non-GraphQL endpoints
|
|
@@ -84,7 +161,7 @@ function createGraphQLClient(config) {
|
|
|
84
161
|
* @returns REST fetch function
|
|
85
162
|
*/
|
|
86
163
|
function createRestClient(config) {
|
|
87
|
-
|
|
164
|
+
async function restFetch(endpoint, options = {}, isRetry = false) {
|
|
88
165
|
const { method = 'GET', body } = options;
|
|
89
166
|
const headers = {
|
|
90
167
|
Accept: 'application/json',
|
|
@@ -95,33 +172,38 @@ function createRestClient(config) {
|
|
|
95
172
|
const fetchOptions = {
|
|
96
173
|
method,
|
|
97
174
|
headers,
|
|
98
|
-
cache: 'no-store',
|
|
175
|
+
cache: 'no-store',
|
|
99
176
|
};
|
|
100
177
|
if (body) {
|
|
101
178
|
headers['Content-Type'] = 'application/json';
|
|
102
179
|
fetchOptions.body = JSON.stringify(body);
|
|
103
180
|
}
|
|
104
181
|
try {
|
|
182
|
+
// DO NOT include /api prefix here anymore because it's already in repositories
|
|
105
183
|
const res = await fetch(`${config.apiUrl}${endpoint}`, fetchOptions);
|
|
184
|
+
// Handle 401 Unauthorized
|
|
185
|
+
if (res.status === 401 && config.refreshToken && !isRetry && !endpoint.includes('/auth/refresh')) {
|
|
186
|
+
const retryResult = await handleUnauthorized(config, (newToken) => restFetch(endpoint, options, true));
|
|
187
|
+
if (retryResult)
|
|
188
|
+
return retryResult;
|
|
189
|
+
}
|
|
106
190
|
if (!res.ok) {
|
|
107
191
|
const errorText = await res.text();
|
|
108
|
-
|
|
192
|
+
if (res.status !== 404) {
|
|
193
|
+
console.error('REST fetch error:', res.status, errorText);
|
|
194
|
+
}
|
|
109
195
|
return {
|
|
110
196
|
data: null,
|
|
111
197
|
error: `HTTP ${res.status}: ${res.statusText}`,
|
|
112
198
|
};
|
|
113
199
|
}
|
|
114
|
-
// Some endpoints may return empty body (204)
|
|
115
200
|
if (res.status === 204) {
|
|
116
201
|
return { data: null };
|
|
117
202
|
}
|
|
118
203
|
const json = await res.json();
|
|
119
|
-
// Handle API responses that wrap data in a 'data' field
|
|
120
|
-
// e.g., { data: { profile: {...} }, statusCode: 200, timestamp: "..." }
|
|
121
204
|
const responseData = json && typeof json === 'object' && 'data' in json && 'statusCode' in json
|
|
122
205
|
? json.data
|
|
123
206
|
: json;
|
|
124
|
-
// Transform image URLs if present
|
|
125
207
|
const transformedData = (0, imageUrl_1.transformImageUrlsDeep)(responseData, config.cdnUrl);
|
|
126
208
|
return { data: transformedData };
|
|
127
209
|
}
|
|
@@ -132,6 +214,7 @@ function createRestClient(config) {
|
|
|
132
214
|
error: error instanceof Error ? error.message : 'Unknown error',
|
|
133
215
|
};
|
|
134
216
|
}
|
|
135
|
-
}
|
|
217
|
+
}
|
|
218
|
+
return restFetch;
|
|
136
219
|
}
|
|
137
220
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -44,6 +44,10 @@ export interface ChanomhubConfig {
|
|
|
44
44
|
imgproxyOptions?: ImgproxyOptions;
|
|
45
45
|
/** Authentication token (optional) */
|
|
46
46
|
token?: string;
|
|
47
|
+
/** Refresh token for automatic renewal (optional) */
|
|
48
|
+
refreshToken?: string;
|
|
49
|
+
/** Callback triggered when token is automatically refreshed */
|
|
50
|
+
onTokenRefreshed?: (token: string, refreshToken: string) => void;
|
|
47
51
|
/** Default cache duration in seconds (0 = no cache) */
|
|
48
52
|
defaultCacheSeconds?: number;
|
|
49
53
|
/** Supabase project URL (required for OAuth) */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjF,sCAAsC;AACtC,MAAM,MAAM,eAAe,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GACpB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,CAAC;AAEb;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,sCAAsC;IACtC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mCAAmC;IACnC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC5B,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,wBAAwB,EAAE,eAEtC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAQ5B,CAAC;AAEF,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GACnB,OAAO,GACP,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,cAAc,GACd,gBAAgB,CAAC;AAEvB,uBAAuB;AACvB,MAAM,MAAM,UAAU,GAChB,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,eAAe,GACf,SAAS,GACT,UAAU,GACV,OAAO,GACP,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjF,sCAAsC;AACtC,MAAM,MAAM,eAAe,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GACpB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,MAAM,CAAC;AAEb;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,sCAAsC;IACtC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mCAAmC;IACnC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC5B,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,wBAAwB,EAAE,eAEtC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAQ5B,CAAC;AAEF,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GACnB,OAAO,GACP,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,cAAc,GACd,gBAAgB,CAAC;AAEvB,uBAAuB;AACvB,MAAM,MAAM,UAAU,GAChB,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,eAAe,GACf,SAAS,GACT,UAAU,GACV,OAAO,GACP,aAAa,CAAC"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqFU,QAAA,wBAAwB,GAAoB;IACrD,MAAM,EAAE,MAAM;CACjB,CAAC;AAEW,QAAA,cAAc,GAAoB;IAC3C,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,gCAAgC;IACxC,UAAU,EAAE,2BAA2B;IACvC,iBAAiB,EAAE,0BAA0B;IAC7C,kBAAkB,EAAE,0BAA0B;IAC9C,eAAe,EAAE,gCAAwB;IACzC,mBAAmB,EAAE,IAAI;CAC5B,CAAC"}
|
|
@@ -166,7 +166,7 @@ function createAuthRepository(fetcher, config) {
|
|
|
166
166
|
// The frontend is responsible for clearing backend tokens from cookies/storage.
|
|
167
167
|
}
|
|
168
168
|
async function refreshToken(refreshToken) {
|
|
169
|
-
const { data, error } = await fetcher('/api/
|
|
169
|
+
const { data, error } = await fetcher('/api/auth/refresh', {
|
|
170
170
|
method: 'POST',
|
|
171
171
|
body: { refreshToken },
|
|
172
172
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authRepository.js","sourceRoot":"","sources":["../../repositories/authRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authRepository.js","sourceRoot":"","sources":["../../repositories/authRepository.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoGH,oDAsLC;AApND;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,MAAuB;IACvD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACD,+CAA+C;QAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,uBAAuB,GAAC,CAAC;QAC/D,OAAO,YAAY,CACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,eAAe,CACI,CAAC;IACnC,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,CAAC,IAAI,CACR,+EAA+E,CAClF,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAChC,OAAoB,EACpB,MAAuB;IAEvB,oCAAoC;IACpC,IAAI,qBAAqB,GAA0C,IAAI,CAAC;IAExE,KAAK,UAAU,iBAAiB;QAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzB,qBAAqB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,SAAS,cAAc;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,UAAU,WAAW,CACtB,QAAuB,EACvB,UAAwB,EAAE;QAE1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACX,uFAAuF,CAC1F,CAAC;QACN,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACtD,QAAQ;YACR,OAAO,EAAE;gBACL,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,mBAAmB,EAAE,IAAI;aAC5B;SACJ,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,kBAAkB,CAC7B,QAAuB,EACvB,UAAwB,EAAE;QAE1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACX,wFAAwF;gBACpF,4CAA4C,CACnD,CAAC;QACN,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YACtD,QAAQ;YACR,OAAO,EAAE;gBACL,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;aACnD;SACJ,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,iDAAiD;QACjD,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,UAAU,gBAAgB,CAAC,UAAwB,EAAE;QACtD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,UAAU,cAAc;QACzB,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC;QAED,gEAAgE;QAChE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAEvD,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,0CAA0C;QAC1C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CACxD,2BAA2B,EAC3B;YACI,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACF,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;aACzC;SACJ,CACJ,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,UAAU,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,gFAAgF;IACpF,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,YAAoB;QAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAkB,mBAAmB,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,YAAY,EAAE;SACzB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,kBAAkB;QAC7B,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAEvD,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,OAAO;QACH,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,WAAW;QACX,cAAc;QACd,OAAO;QACP,YAAY;QACZ,kBAAkB;KACrB,CAAC;AACN,CAAC"}
|
|
@@ -24,13 +24,18 @@ export interface DeveloperRepository {
|
|
|
24
24
|
/**
|
|
25
25
|
* Get the developer profile for the currently authenticated user.
|
|
26
26
|
*/
|
|
27
|
-
getProfile(): Promise<DeveloperProfile>;
|
|
27
|
+
getProfile(): Promise<DeveloperProfile | null>;
|
|
28
28
|
/**
|
|
29
29
|
* Update the developer profile for the currently authenticated user.
|
|
30
30
|
*
|
|
31
31
|
* @param data - Developer verification details to update
|
|
32
32
|
*/
|
|
33
33
|
updateProfile(data: Partial<VerifyDeveloperDto>): Promise<DeveloperProfile>;
|
|
34
|
+
/**
|
|
35
|
+
* Get all developer profiles.
|
|
36
|
+
* Admin only.
|
|
37
|
+
*/
|
|
38
|
+
getAllProfiles(): Promise<DeveloperProfile[]>;
|
|
34
39
|
}
|
|
35
40
|
/**
|
|
36
41
|
* Creates a developer repository
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developerRepository.d.ts","sourceRoot":"","sources":["../../repositories/developerRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACf,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,mBAAmB;IAChC;;;;;OAKG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpF;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"developerRepository.d.ts","sourceRoot":"","sources":["../../repositories/developerRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACf,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,mBAAmB;IAChC;;;;;OAKG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpF;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE/C;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5E;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,GAAG,mBAAmB,CAmFnF"}
|
|
@@ -12,8 +12,15 @@ exports.createDeveloperRepository = createDeveloperRepository;
|
|
|
12
12
|
* @param fetcher - REST API fetcher
|
|
13
13
|
*/
|
|
14
14
|
function createDeveloperRepository(fetcher) {
|
|
15
|
+
async function getAllProfiles() {
|
|
16
|
+
const { data, error } = await fetcher('/api/admin/developer/profiles');
|
|
17
|
+
if (error) {
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
return data || [];
|
|
21
|
+
}
|
|
15
22
|
async function generateVerificationToken(userId) {
|
|
16
|
-
const { data, error } = await fetcher('/admin/developer/generate-token', {
|
|
23
|
+
const { data, error } = await fetcher('/api/admin/developer/generate-token', {
|
|
17
24
|
method: 'POST',
|
|
18
25
|
body: { userId },
|
|
19
26
|
});
|
|
@@ -26,7 +33,7 @@ function createDeveloperRepository(fetcher) {
|
|
|
26
33
|
return data;
|
|
27
34
|
}
|
|
28
35
|
async function verifyDeveloper(token, data) {
|
|
29
|
-
const { data: profile, error } = await fetcher(`/developer/verify/${token}`, {
|
|
36
|
+
const { data: profile, error } = await fetcher(`/api/developer/verify/${token}`, {
|
|
30
37
|
method: 'POST',
|
|
31
38
|
body: data,
|
|
32
39
|
});
|
|
@@ -39,17 +46,18 @@ function createDeveloperRepository(fetcher) {
|
|
|
39
46
|
return profile;
|
|
40
47
|
}
|
|
41
48
|
async function getProfile() {
|
|
42
|
-
const { data: profile, error } = await fetcher('/developer/profile');
|
|
49
|
+
const { data: profile, error } = await fetcher('/api/developer/profile');
|
|
43
50
|
if (error) {
|
|
51
|
+
// Handle 404 as a valid "no profile" state
|
|
52
|
+
if (error.includes('404')) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
44
55
|
throw error;
|
|
45
56
|
}
|
|
46
|
-
if (!profile) {
|
|
47
|
-
throw new Error('Developer profile not found');
|
|
48
|
-
}
|
|
49
57
|
return profile;
|
|
50
58
|
}
|
|
51
59
|
async function updateProfile(data) {
|
|
52
|
-
const { data: profile, error } = await fetcher('/developer/profile', {
|
|
60
|
+
const { data: profile, error } = await fetcher('/api/developer/profile', {
|
|
53
61
|
method: 'PATCH',
|
|
54
62
|
body: data,
|
|
55
63
|
});
|
|
@@ -66,6 +74,7 @@ function createDeveloperRepository(fetcher) {
|
|
|
66
74
|
verifyDeveloper,
|
|
67
75
|
getProfile,
|
|
68
76
|
updateProfile,
|
|
77
|
+
getAllProfiles,
|
|
69
78
|
};
|
|
70
79
|
}
|
|
71
80
|
//# sourceMappingURL=developerRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developerRepository.js","sourceRoot":"","sources":["../../repositories/developerRepository.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"developerRepository.js","sourceRoot":"","sources":["../../repositories/developerRepository.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmDH,8DAmFC;AAxFD;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,OAAoB;IAC1D,KAAK,UAAU,cAAc;QACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAqB,+BAA+B,CAAC,CAAC;QAE3F,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,yBAAyB,CAAC,MAAc;QACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAe,qCAAqC,EAAE;YACvF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE;SACnB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,IAAwB;QAClE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAmB,yBAAyB,KAAK,EAAE,EAAE;YAC/F,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAA0C;SACnD,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,UAAU;QACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAmB,wBAAwB,CAAC,CAAC;QAE3F,IAAI,KAAK,EAAE,CAAC;YACR,2CAA2C;YAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,IAAiC;QAC1D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAmB,wBAAwB,EAAE;YACvF,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAA0C;SACnD,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO;QACH,yBAAyB;QACzB,eAAe;QACf,UAAU;QACV,aAAa;QACb,cAAc;KACjB,CAAC;AACN,CAAC"}
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -20,12 +20,14 @@ export interface OAuthOptions {
|
|
|
20
20
|
/** Login response from backend after token exchange */
|
|
21
21
|
export interface LoginResponse {
|
|
22
22
|
user: User;
|
|
23
|
-
token
|
|
23
|
+
token?: string;
|
|
24
|
+
accessToken?: string;
|
|
24
25
|
refreshToken: string;
|
|
25
26
|
}
|
|
26
27
|
/** Token refresh response from backend */
|
|
27
28
|
export interface RefreshResponse {
|
|
28
|
-
token
|
|
29
|
+
token?: string;
|
|
30
|
+
accessToken?: string;
|
|
29
31
|
refreshToken?: string;
|
|
30
32
|
}
|
|
31
33
|
/** Auth session state */
|
package/dist/types/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../types/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzE,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oDAAoD;IACpD,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../types/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzE,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oDAAoD;IACpD,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,yBAAyB;AACzB,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,4BAA4B;AAC5B,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,MAAM,CAAC;CACxB;AAMD,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAC9B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAC9B,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IAC/B,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}
|