@explorins/pers-sdk 1.6.43 → 1.6.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -0
- package/dist/analytics.cjs +12 -0
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +1 -1
- package/dist/business/api/business-membership-api.d.ts +186 -0
- package/dist/business/api/business-membership-api.d.ts.map +1 -0
- package/dist/business/index.d.ts +2 -0
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/services/business-membership-service.d.ts +186 -0
- package/dist/business/services/business-membership-service.d.ts.map +1 -0
- package/dist/business.cjs +727 -9
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +711 -2
- package/dist/business.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +7 -10
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/services/campaign-service.d.ts +18 -7
- package/dist/campaign/services/campaign-service.d.ts.map +1 -1
- package/dist/campaign.cjs +13 -1
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +2 -2
- package/dist/chunks/{campaign-service-CJPXgFBe.js → campaign-service-CKwkiOLx.js} +29 -39
- package/dist/chunks/campaign-service-CKwkiOLx.js.map +1 -0
- package/dist/chunks/{campaign-service-B1tQMNqA.cjs → campaign-service-D-v9ZlUB.cjs} +29 -39
- package/dist/chunks/campaign-service-D-v9ZlUB.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-XbARV58g.cjs → pers-sdk-DULFjOW2.cjs} +923 -146
- package/dist/chunks/pers-sdk-DULFjOW2.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-Nu2KgiJf.js → pers-sdk-VmeBqUEP.js} +919 -146
- package/dist/chunks/pers-sdk-VmeBqUEP.js.map +1 -0
- package/dist/chunks/transaction-request.builder-DltmruUC.js +296 -0
- package/dist/chunks/transaction-request.builder-DltmruUC.js.map +1 -0
- package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs +303 -0
- package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs.map +1 -0
- package/dist/chunks/{user-service-D1Rn4U8u.cjs → user-service-B89wBOV1.cjs} +60 -10
- package/dist/chunks/user-service-B89wBOV1.cjs.map +1 -0
- package/dist/chunks/{user-service-D6mTa_WZ.js → user-service-doT5vsBD.js} +60 -10
- package/dist/chunks/user-service-doT5vsBD.js.map +1 -0
- package/dist/chunks/{web3-chain-service-BLFxB5TA.cjs → web3-chain-service-6vsVHPjl.cjs} +116 -16
- package/dist/chunks/web3-chain-service-6vsVHPjl.cjs.map +1 -0
- package/dist/chunks/{web3-chain-service-JRSwxr-s.js → web3-chain-service-BcUeeujC.js} +111 -17
- package/dist/chunks/web3-chain-service-BcUeeujC.js.map +1 -0
- package/dist/core/auth/api/auth-api.d.ts +35 -0
- package/dist/core/auth/api/auth-api.d.ts.map +1 -1
- package/dist/core/auth/auth-provider.interface.d.ts +7 -1
- package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
- package/dist/core/auth/services/auth-service.d.ts +26 -1
- package/dist/core/auth/services/auth-service.d.ts.map +1 -1
- package/dist/core/auth/token-storage.d.ts +3 -2
- package/dist/core/auth/token-storage.d.ts.map +1 -1
- package/dist/core/errors/index.d.ts +75 -6
- package/dist/core/errors/index.d.ts.map +1 -1
- package/dist/core/events/event-emitter.d.ts +106 -0
- package/dist/core/events/event-emitter.d.ts.map +1 -0
- package/dist/core/events/event-types.d.ts +127 -0
- package/dist/core/events/event-types.d.ts.map +1 -0
- package/dist/core/events/index.d.ts +22 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/pers-api-client.d.ts +12 -0
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core/version.d.ts +15 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core.cjs +19 -6
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +6 -6
- package/dist/donation.cjs +12 -0
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +1 -1
- package/dist/index.cjs +43 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/managers/auth-manager.d.ts +77 -4
- package/dist/managers/auth-manager.d.ts.map +1 -1
- package/dist/managers/business-manager.d.ts +192 -4
- package/dist/managers/business-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +48 -65
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/index.d.ts +1 -1
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +3 -1
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +4 -2
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/user-manager.d.ts +57 -1
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/managers/web3-manager.d.ts +63 -64
- package/dist/managers/web3-manager.d.ts.map +1 -1
- package/dist/package.json +2 -2
- package/dist/payment.cjs +12 -0
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +1 -1
- package/dist/pers-sdk.d.ts +49 -0
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption.cjs +12 -0
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +1 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +2 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
- package/dist/tenant.cjs +12 -0
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +1 -1
- package/dist/token.cjs +12 -0
- package/dist/token.cjs.map +1 -1
- package/dist/token.js +1 -1
- package/dist/transaction/models/index.d.ts +2 -0
- package/dist/transaction/models/index.d.ts.map +1 -1
- package/dist/transaction/models/transaction-request.builder.d.ts +256 -0
- package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -0
- package/dist/transaction.cjs +7 -0
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.js +1 -0
- package/dist/transaction.js.map +1 -1
- package/dist/user/api/user-api.d.ts +28 -7
- package/dist/user/api/user-api.d.ts.map +1 -1
- package/dist/user/services/user-service.d.ts +21 -0
- package/dist/user/services/user-service.d.ts.map +1 -1
- package/dist/user-status.cjs +12 -0
- package/dist/user-status.cjs.map +1 -1
- package/dist/user-status.js +1 -1
- package/dist/user.cjs +13 -1
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +2 -2
- package/dist/web3-chain.cjs +13 -1
- package/dist/web3-chain.cjs.map +1 -1
- package/dist/web3-chain.js +2 -2
- package/package.json +2 -2
- package/dist/chunks/business-service-8Xd3d5oY.js +0 -238
- package/dist/chunks/business-service-8Xd3d5oY.js.map +0 -1
- package/dist/chunks/business-service-P9o4cwQL.cjs +0 -241
- package/dist/chunks/business-service-P9o4cwQL.cjs.map +0 -1
- package/dist/chunks/campaign-service-B1tQMNqA.cjs.map +0 -1
- package/dist/chunks/campaign-service-CJPXgFBe.js.map +0 -1
- package/dist/chunks/pers-sdk-Nu2KgiJf.js.map +0 -1
- package/dist/chunks/pers-sdk-XbARV58g.cjs.map +0 -1
- package/dist/chunks/user-service-D1Rn4U8u.cjs.map +0 -1
- package/dist/chunks/user-service-D6mTa_WZ.js.map +0 -1
- package/dist/chunks/web3-chain-service-BLFxB5TA.cjs.map +0 -1
- package/dist/chunks/web3-chain-service-JRSwxr-s.js.map +0 -1
|
@@ -70,13 +70,14 @@ class ErrorUtils {
|
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Fast error message extraction
|
|
73
|
+
* Platform-agnostic: handles Axios (response.data), Angular (error), RN (message parsing)
|
|
73
74
|
*/
|
|
74
75
|
static getMessage(error) {
|
|
75
76
|
if (typeof error !== 'object' || error === null)
|
|
76
77
|
return 'Unknown error';
|
|
77
78
|
const err = error;
|
|
78
|
-
// Try structured error first
|
|
79
|
-
const apiError = err?.response?.data || err;
|
|
79
|
+
// Try structured error first (check multiple formats: axios, Angular, etc.)
|
|
80
|
+
const apiError = err?.response?.data || err?.error || err;
|
|
80
81
|
return apiError?.message || apiError?.detail || apiError?.userMessage || err?.message || 'Request failed';
|
|
81
82
|
}
|
|
82
83
|
/**
|
|
@@ -109,6 +110,13 @@ class ErrorUtils {
|
|
|
109
110
|
/**
|
|
110
111
|
* Extract detailed error information from backend response
|
|
111
112
|
* Centralized method for consistent error structure extraction
|
|
113
|
+
*
|
|
114
|
+
* Platform-agnostic extraction order:
|
|
115
|
+
* 1. React Native: Parses "HTTP xxx: ... - {json}" message format
|
|
116
|
+
* 2. Axios/fetch: error.response.data
|
|
117
|
+
* 3. Direct backend response: error.status && error.title
|
|
118
|
+
* 4. Angular HttpErrorResponse: error.error
|
|
119
|
+
* 5. Fallback: constructs generic error from available info
|
|
112
120
|
*/
|
|
113
121
|
static extractBackendErrorDetails(error) {
|
|
114
122
|
try {
|
|
@@ -229,28 +237,114 @@ class LogoutRequired extends Error {
|
|
|
229
237
|
}
|
|
230
238
|
}
|
|
231
239
|
class PersApiError extends Error {
|
|
232
|
-
constructor(message, endpoint, method, status, retryable = false) {
|
|
233
|
-
|
|
240
|
+
constructor(message, endpoint, method, status, retryable = false, backendError) {
|
|
241
|
+
// Use clean backend message directly - no prefix!
|
|
242
|
+
// Priority: userMessage > message > title > fallback
|
|
243
|
+
const cleanMessage = backendError?.userMessage
|
|
244
|
+
|| backendError?.message
|
|
245
|
+
|| backendError?.title
|
|
246
|
+
|| message;
|
|
247
|
+
super(cleanMessage);
|
|
234
248
|
this.endpoint = endpoint;
|
|
235
249
|
this.method = method;
|
|
236
250
|
this.status = status;
|
|
237
|
-
this.errorCode = 'PERS_API_ERROR';
|
|
238
|
-
this.domain = 'api';
|
|
239
|
-
this.category = 'TECHNICAL';
|
|
240
251
|
this.name = 'PersApiError';
|
|
241
252
|
this.retryable = retryable;
|
|
253
|
+
this.backendError = backendError;
|
|
254
|
+
// Use backend values when available, SDK defaults otherwise
|
|
255
|
+
this.errorCode = backendError?.code || 'PERS_API_ERROR';
|
|
256
|
+
this.domain = backendError?.domain || 'api';
|
|
257
|
+
this.category = backendError?.category || 'TECHNICAL';
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get the backend error code (e.g., 'CAMPAIGN_BUSINESS_REQUIRED')
|
|
261
|
+
*/
|
|
262
|
+
get code() {
|
|
263
|
+
return this.errorCode;
|
|
242
264
|
}
|
|
243
265
|
}
|
|
244
266
|
class AuthenticationError extends PersApiError {
|
|
245
|
-
constructor(message, endpoint, method, backendErrorCode,
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
267
|
+
constructor(message, endpoint, method, backendErrorCode, backendUserMessage, backendTitle) {
|
|
268
|
+
// Build backendError from auth-specific params
|
|
269
|
+
const backendError = {
|
|
270
|
+
code: backendErrorCode || 'AUTHENTICATION_ERROR',
|
|
271
|
+
userMessage: backendUserMessage,
|
|
272
|
+
title: backendTitle,
|
|
273
|
+
message: message,
|
|
274
|
+
domain: 'authentication',
|
|
275
|
+
category: 'AUTHENTICATION'
|
|
276
|
+
};
|
|
277
|
+
super(message, endpoint, method, 401, false, backendError);
|
|
250
278
|
this.name = 'AuthenticationError';
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Error thrown when user has multiple business memberships
|
|
283
|
+
* and needs to explicitly select one.
|
|
284
|
+
*
|
|
285
|
+
* @example Handling multi-business selection
|
|
286
|
+
* ```typescript
|
|
287
|
+
* try {
|
|
288
|
+
* await sdk.auth.loginAsBusiness(jwt);
|
|
289
|
+
* } catch (error) {
|
|
290
|
+
* if (error instanceof MultipleContextSelectionRequiredError) {
|
|
291
|
+
* // Show business selector UI
|
|
292
|
+
* const selectedId = await showBusinessSelector(error.availableOptions);
|
|
293
|
+
* await sdk.auth.loginAsBusiness(jwt, { businessId: selectedId });
|
|
294
|
+
* }
|
|
295
|
+
* }
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
class MultipleContextSelectionRequiredError extends Error {
|
|
299
|
+
constructor(message, userMessage, contextType, availableOptions) {
|
|
300
|
+
super(message);
|
|
301
|
+
this.userMessage = userMessage;
|
|
302
|
+
this.contextType = contextType;
|
|
303
|
+
this.availableOptions = availableOptions;
|
|
304
|
+
this.errorCode = 'MULTIPLE_CONTEXT_SELECTION_REQUIRED';
|
|
305
|
+
this.domain = 'auth';
|
|
306
|
+
this.category = 'VALIDATION';
|
|
307
|
+
this.status = 400;
|
|
308
|
+
this.retryable = true;
|
|
309
|
+
this.name = 'MultipleContextSelectionRequiredError';
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Type guard to check if an error is a MultipleContextSelectionRequiredError
|
|
313
|
+
*/
|
|
314
|
+
static isMultipleContextError(error) {
|
|
315
|
+
if (error instanceof MultipleContextSelectionRequiredError) {
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
// Also check for backend error format
|
|
319
|
+
if (typeof error === 'object' && error !== null) {
|
|
320
|
+
const err = error;
|
|
321
|
+
const errorCode = err?.code || err?.response?.data?.code;
|
|
322
|
+
return errorCode === 'MULTIPLE_CONTEXT_SELECTION_REQUIRED';
|
|
323
|
+
}
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Extract available options from a backend error response
|
|
328
|
+
*/
|
|
329
|
+
static fromBackendError(error) {
|
|
330
|
+
if (typeof error !== 'object' || error === null)
|
|
331
|
+
return null;
|
|
332
|
+
const err = error;
|
|
333
|
+
const data = err?.response?.data || err;
|
|
334
|
+
if (data?.code === 'MULTIPLE_CONTEXT_SELECTION_REQUIRED') {
|
|
335
|
+
return new MultipleContextSelectionRequiredError(data.message || 'Multiple context selection required', data.userMessage || 'Please select a context to continue.', data.contextType || 'business', data.availableOptions || []);
|
|
336
|
+
}
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
class NetworkError extends Error {
|
|
341
|
+
constructor(message) {
|
|
342
|
+
super(`Network error: ${message}`);
|
|
343
|
+
this.errorCode = 'NETWORK_ERROR';
|
|
344
|
+
this.domain = 'api';
|
|
345
|
+
this.category = 'INFRASTRUCTURE';
|
|
346
|
+
this.retryable = true;
|
|
347
|
+
this.name = 'NetworkError';
|
|
254
348
|
}
|
|
255
349
|
}
|
|
256
350
|
const ApiErrorDetector = {
|
|
@@ -478,10 +572,16 @@ class Web3ChainService {
|
|
|
478
572
|
}
|
|
479
573
|
}
|
|
480
574
|
|
|
575
|
+
exports.ApiErrorDetector = ApiErrorDetector;
|
|
481
576
|
exports.AuthenticationError = AuthenticationError;
|
|
482
577
|
exports.ErrorUtils = ErrorUtils;
|
|
578
|
+
exports.LogoutRequired = LogoutRequired;
|
|
579
|
+
exports.MultipleContextSelectionRequiredError = MultipleContextSelectionRequiredError;
|
|
580
|
+
exports.NetworkError = NetworkError;
|
|
483
581
|
exports.PersApiError = PersApiError;
|
|
582
|
+
exports.ProviderTokenRefreshNeeded = ProviderTokenRefreshNeeded;
|
|
583
|
+
exports.TokenRefreshNeeded = TokenRefreshNeeded;
|
|
484
584
|
exports.Web3ChainApi = Web3ChainApi;
|
|
485
585
|
exports.Web3ChainService = Web3ChainService;
|
|
486
586
|
exports.isTokenExpired = isTokenExpired;
|
|
487
|
-
//# sourceMappingURL=web3-chain-service-
|
|
587
|
+
//# sourceMappingURL=web3-chain-service-6vsVHPjl.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web3-chain-service-6vsVHPjl.cjs","sources":["../../src/core/utils/jwt.function.ts","../../src/core/errors/index.ts","../../src/web3-chain/api/web3-chain-api.ts","../../src/web3-chain/services/getWeb3FCD.service.ts","../../src/web3-chain/services/web3-chain-service.ts"],"sourcesContent":[null,null,null,null,null],"names":["FetchRequest","JsonRpcProvider","globalCacheService","CacheTTL"],"mappings":"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"}
|
|
@@ -68,13 +68,14 @@ class ErrorUtils {
|
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Fast error message extraction
|
|
71
|
+
* Platform-agnostic: handles Axios (response.data), Angular (error), RN (message parsing)
|
|
71
72
|
*/
|
|
72
73
|
static getMessage(error) {
|
|
73
74
|
if (typeof error !== 'object' || error === null)
|
|
74
75
|
return 'Unknown error';
|
|
75
76
|
const err = error;
|
|
76
|
-
// Try structured error first
|
|
77
|
-
const apiError = err?.response?.data || err;
|
|
77
|
+
// Try structured error first (check multiple formats: axios, Angular, etc.)
|
|
78
|
+
const apiError = err?.response?.data || err?.error || err;
|
|
78
79
|
return apiError?.message || apiError?.detail || apiError?.userMessage || err?.message || 'Request failed';
|
|
79
80
|
}
|
|
80
81
|
/**
|
|
@@ -107,6 +108,13 @@ class ErrorUtils {
|
|
|
107
108
|
/**
|
|
108
109
|
* Extract detailed error information from backend response
|
|
109
110
|
* Centralized method for consistent error structure extraction
|
|
111
|
+
*
|
|
112
|
+
* Platform-agnostic extraction order:
|
|
113
|
+
* 1. React Native: Parses "HTTP xxx: ... - {json}" message format
|
|
114
|
+
* 2. Axios/fetch: error.response.data
|
|
115
|
+
* 3. Direct backend response: error.status && error.title
|
|
116
|
+
* 4. Angular HttpErrorResponse: error.error
|
|
117
|
+
* 5. Fallback: constructs generic error from available info
|
|
110
118
|
*/
|
|
111
119
|
static extractBackendErrorDetails(error) {
|
|
112
120
|
try {
|
|
@@ -227,28 +235,114 @@ class LogoutRequired extends Error {
|
|
|
227
235
|
}
|
|
228
236
|
}
|
|
229
237
|
class PersApiError extends Error {
|
|
230
|
-
constructor(message, endpoint, method, status, retryable = false) {
|
|
231
|
-
|
|
238
|
+
constructor(message, endpoint, method, status, retryable = false, backendError) {
|
|
239
|
+
// Use clean backend message directly - no prefix!
|
|
240
|
+
// Priority: userMessage > message > title > fallback
|
|
241
|
+
const cleanMessage = backendError?.userMessage
|
|
242
|
+
|| backendError?.message
|
|
243
|
+
|| backendError?.title
|
|
244
|
+
|| message;
|
|
245
|
+
super(cleanMessage);
|
|
232
246
|
this.endpoint = endpoint;
|
|
233
247
|
this.method = method;
|
|
234
248
|
this.status = status;
|
|
235
|
-
this.errorCode = 'PERS_API_ERROR';
|
|
236
|
-
this.domain = 'api';
|
|
237
|
-
this.category = 'TECHNICAL';
|
|
238
249
|
this.name = 'PersApiError';
|
|
239
250
|
this.retryable = retryable;
|
|
251
|
+
this.backendError = backendError;
|
|
252
|
+
// Use backend values when available, SDK defaults otherwise
|
|
253
|
+
this.errorCode = backendError?.code || 'PERS_API_ERROR';
|
|
254
|
+
this.domain = backendError?.domain || 'api';
|
|
255
|
+
this.category = backendError?.category || 'TECHNICAL';
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get the backend error code (e.g., 'CAMPAIGN_BUSINESS_REQUIRED')
|
|
259
|
+
*/
|
|
260
|
+
get code() {
|
|
261
|
+
return this.errorCode;
|
|
240
262
|
}
|
|
241
263
|
}
|
|
242
264
|
class AuthenticationError extends PersApiError {
|
|
243
|
-
constructor(message, endpoint, method, backendErrorCode,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
265
|
+
constructor(message, endpoint, method, backendErrorCode, backendUserMessage, backendTitle) {
|
|
266
|
+
// Build backendError from auth-specific params
|
|
267
|
+
const backendError = {
|
|
268
|
+
code: backendErrorCode || 'AUTHENTICATION_ERROR',
|
|
269
|
+
userMessage: backendUserMessage,
|
|
270
|
+
title: backendTitle,
|
|
271
|
+
message: message,
|
|
272
|
+
domain: 'authentication',
|
|
273
|
+
category: 'AUTHENTICATION'
|
|
274
|
+
};
|
|
275
|
+
super(message, endpoint, method, 401, false, backendError);
|
|
248
276
|
this.name = 'AuthenticationError';
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Error thrown when user has multiple business memberships
|
|
281
|
+
* and needs to explicitly select one.
|
|
282
|
+
*
|
|
283
|
+
* @example Handling multi-business selection
|
|
284
|
+
* ```typescript
|
|
285
|
+
* try {
|
|
286
|
+
* await sdk.auth.loginAsBusiness(jwt);
|
|
287
|
+
* } catch (error) {
|
|
288
|
+
* if (error instanceof MultipleContextSelectionRequiredError) {
|
|
289
|
+
* // Show business selector UI
|
|
290
|
+
* const selectedId = await showBusinessSelector(error.availableOptions);
|
|
291
|
+
* await sdk.auth.loginAsBusiness(jwt, { businessId: selectedId });
|
|
292
|
+
* }
|
|
293
|
+
* }
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
class MultipleContextSelectionRequiredError extends Error {
|
|
297
|
+
constructor(message, userMessage, contextType, availableOptions) {
|
|
298
|
+
super(message);
|
|
299
|
+
this.userMessage = userMessage;
|
|
300
|
+
this.contextType = contextType;
|
|
301
|
+
this.availableOptions = availableOptions;
|
|
302
|
+
this.errorCode = 'MULTIPLE_CONTEXT_SELECTION_REQUIRED';
|
|
303
|
+
this.domain = 'auth';
|
|
304
|
+
this.category = 'VALIDATION';
|
|
305
|
+
this.status = 400;
|
|
306
|
+
this.retryable = true;
|
|
307
|
+
this.name = 'MultipleContextSelectionRequiredError';
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Type guard to check if an error is a MultipleContextSelectionRequiredError
|
|
311
|
+
*/
|
|
312
|
+
static isMultipleContextError(error) {
|
|
313
|
+
if (error instanceof MultipleContextSelectionRequiredError) {
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
// Also check for backend error format
|
|
317
|
+
if (typeof error === 'object' && error !== null) {
|
|
318
|
+
const err = error;
|
|
319
|
+
const errorCode = err?.code || err?.response?.data?.code;
|
|
320
|
+
return errorCode === 'MULTIPLE_CONTEXT_SELECTION_REQUIRED';
|
|
321
|
+
}
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Extract available options from a backend error response
|
|
326
|
+
*/
|
|
327
|
+
static fromBackendError(error) {
|
|
328
|
+
if (typeof error !== 'object' || error === null)
|
|
329
|
+
return null;
|
|
330
|
+
const err = error;
|
|
331
|
+
const data = err?.response?.data || err;
|
|
332
|
+
if (data?.code === 'MULTIPLE_CONTEXT_SELECTION_REQUIRED') {
|
|
333
|
+
return new MultipleContextSelectionRequiredError(data.message || 'Multiple context selection required', data.userMessage || 'Please select a context to continue.', data.contextType || 'business', data.availableOptions || []);
|
|
334
|
+
}
|
|
335
|
+
return null;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
class NetworkError extends Error {
|
|
339
|
+
constructor(message) {
|
|
340
|
+
super(`Network error: ${message}`);
|
|
341
|
+
this.errorCode = 'NETWORK_ERROR';
|
|
342
|
+
this.domain = 'api';
|
|
343
|
+
this.category = 'INFRASTRUCTURE';
|
|
344
|
+
this.retryable = true;
|
|
345
|
+
this.name = 'NetworkError';
|
|
252
346
|
}
|
|
253
347
|
}
|
|
254
348
|
const ApiErrorDetector = {
|
|
@@ -476,5 +570,5 @@ class Web3ChainService {
|
|
|
476
570
|
}
|
|
477
571
|
}
|
|
478
572
|
|
|
479
|
-
export { AuthenticationError as A, ErrorUtils as E,
|
|
480
|
-
//# sourceMappingURL=web3-chain-service-
|
|
573
|
+
export { AuthenticationError as A, ErrorUtils as E, LogoutRequired as L, MultipleContextSelectionRequiredError as M, NetworkError as N, ProviderTokenRefreshNeeded as P, TokenRefreshNeeded as T, Web3ChainApi as W, PersApiError as a, ApiErrorDetector as b, Web3ChainService as c, isTokenExpired as i };
|
|
574
|
+
//# sourceMappingURL=web3-chain-service-BcUeeujC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web3-chain-service-BcUeeujC.js","sources":["../../src/core/utils/jwt.function.ts","../../src/core/errors/index.ts","../../src/web3-chain/api/web3-chain-api.ts","../../src/web3-chain/services/getWeb3FCD.service.ts","../../src/web3-chain/services/web3-chain-service.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Platform-Agnostic Auth API Client
|
|
3
3
|
* Handles authentication operations using the PERS backend
|
|
4
|
+
*
|
|
5
|
+
* Supports the universal token endpoint:
|
|
6
|
+
* - User authentication (default)
|
|
7
|
+
* - Business authentication with context selection
|
|
8
|
+
* - Admin/Tenant authentication
|
|
4
9
|
*/
|
|
5
10
|
import { PersApiClient } from '../../pers-api-client';
|
|
6
11
|
import { SessionAuthResponseDTO, SessionAuthContextResponseDTO } from '../../../shared/interfaces/pers-shared-lib.interfaces';
|
|
12
|
+
/**
|
|
13
|
+
* Options for business authentication
|
|
14
|
+
*/
|
|
15
|
+
export interface BusinessAuthOptions {
|
|
16
|
+
/** The business ID to authenticate as (required if user has multiple memberships) */
|
|
17
|
+
businessId?: string;
|
|
18
|
+
}
|
|
7
19
|
export declare class AuthApi {
|
|
8
20
|
private apiClient;
|
|
9
21
|
private readonly basePath;
|
|
@@ -16,6 +28,29 @@ export declare class AuthApi {
|
|
|
16
28
|
* Login user with JWT
|
|
17
29
|
*/
|
|
18
30
|
loginUser(jwt: string): Promise<SessionAuthContextResponseDTO>;
|
|
31
|
+
/**
|
|
32
|
+
* Login as business with JWT
|
|
33
|
+
*
|
|
34
|
+
* Authenticates a user in a business context with role included in JWT.
|
|
35
|
+
*
|
|
36
|
+
* @param jwt - Authentication token (passkey or Firebase JWT)
|
|
37
|
+
* @param options - Business authentication options
|
|
38
|
+
* @param options.businessId - The business ID to authenticate as
|
|
39
|
+
* - If user has single business membership, auto-selected
|
|
40
|
+
* - If user has multiple memberships without businessId, throws MULTIPLE_CONTEXT_SELECTION_REQUIRED
|
|
41
|
+
* @returns Session response with business context and role in JWT
|
|
42
|
+
* @throws MultipleContextSelectionError when businessId is required but not provided
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // Single business membership - auto-selects
|
|
47
|
+
* const response = await authApi.loginBusiness(jwt);
|
|
48
|
+
*
|
|
49
|
+
* // Multiple memberships - explicit selection
|
|
50
|
+
* const response = await authApi.loginBusiness(jwt, { businessId: 'biz-123' });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
loginBusiness(jwt: string, options?: BusinessAuthOptions): Promise<SessionAuthContextResponseDTO>;
|
|
19
54
|
/**
|
|
20
55
|
* Login user with raw data (no external authentication)
|
|
21
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-api.d.ts","sourceRoot":"","sources":["../../../../src/core/auth/api/auth-api.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"auth-api.d.ts","sourceRoot":"","sources":["../../../../src/core/auth/api/auth-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,sBAAsB,EAGtB,6BAA6B,EAC9B,MAAM,uDAAuD,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,OAAO;IAGN,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAEhB,SAAS,EAAE,aAAa;IAE5C;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAQ3E;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAQpE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IASvG;;OAEG;IACG,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IASrG;;OAEG;IACG,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAGhF"}
|
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
* Clean, scalable contract for authentication providers
|
|
4
4
|
*/
|
|
5
5
|
import { AuthStatus } from './auth-status';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Authentication type for PERS sessions
|
|
8
|
+
* - 'user': Standard user authentication
|
|
9
|
+
* - 'business': Business context authentication (with role in JWT)
|
|
10
|
+
* - 'admin': Tenant admin authentication
|
|
11
|
+
*/
|
|
12
|
+
export type AuthType = 'user' | 'business' | 'admin';
|
|
7
13
|
/**
|
|
8
14
|
* Core authentication provider interface
|
|
9
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/core/auth/auth-provider.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/core/auth/auth-provider.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,+BAA+B;IAC/B,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnC,uCAAuC;IACvC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAExC,2CAA2C;IAC3C,kBAAkB,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvG;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,gBAAgB,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,YAAY,CAAC;IACjD,yBAAyB;IACzB,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,mBAAmB,EAAE,kBAAkB,CAAC;KACjE,CAAC;CACH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TokenStorageProvider } from '../auth-provider.interface';
|
|
2
|
-
import { AuthApi } from '../api/auth-api';
|
|
2
|
+
import { AuthApi, BusinessAuthOptions } from '../api/auth-api';
|
|
3
3
|
import { SessionAuthResponseDTO, SessionAuthContextResponseDTO } from '../../../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
4
|
/**
|
|
5
5
|
* Raw user data interface for unauthenticated login
|
|
@@ -33,6 +33,31 @@ export declare class AuthService {
|
|
|
33
33
|
* Login user with JWT
|
|
34
34
|
*/
|
|
35
35
|
loginUser(jwt: string): Promise<SessionAuthContextResponseDTO>;
|
|
36
|
+
/**
|
|
37
|
+
* Login as business with JWT
|
|
38
|
+
*
|
|
39
|
+
* Authenticates a user in a business context. The returned JWT contains
|
|
40
|
+
* the user's role within that business.
|
|
41
|
+
*
|
|
42
|
+
* @param jwt - Authentication token (passkey or Firebase JWT)
|
|
43
|
+
* @param options - Business authentication options
|
|
44
|
+
* @param options.businessId - The business ID to authenticate as
|
|
45
|
+
* - If user has single business membership, auto-selected
|
|
46
|
+
* - If user has multiple memberships without businessId, throws MULTIPLE_CONTEXT_SELECTION_REQUIRED
|
|
47
|
+
* @returns Session response with business context and role baked into JWT
|
|
48
|
+
* @throws MultipleContextSelectionRequiredError when businessId is required but not provided
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // Auto-select if single membership
|
|
53
|
+
* const response = await authService.loginBusiness(jwt);
|
|
54
|
+
*
|
|
55
|
+
* // Explicit business selection
|
|
56
|
+
* const response = await authService.loginBusiness(jwt, { businessId: 'biz-123' });
|
|
57
|
+
* console.log('Business:', response.business?.displayName);
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
loginBusiness(jwt: string, options?: BusinessAuthOptions): Promise<SessionAuthContextResponseDTO>;
|
|
36
61
|
/**
|
|
37
62
|
* Login user with raw data (no external auth)
|
|
38
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../../src/core/auth/services/auth-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../../src/core/auth/services/auth-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,uDAAuD,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY,CAAC;IALvB,OAAO,CAAC,oBAAoB,CAAgD;IAC5E,OAAO,CAAC,iBAAiB,CAA8B;gBAG7C,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,kCAAsB;IAI7C;;OAEG;YACW,cAAc;IAkB5B;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAU3E;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUpE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUvG;;OAEG;IACG,oBAAoB,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAU7F;;OAEG;IACG,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmBhF;;OAEG;YACW,cAAc;IAgB5B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAexC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAUtC;;OAEG;YACW,WAAW;CAgC1B"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Token Storage System
|
|
3
3
|
* Simple, focused token storage with clear separation of concerns
|
|
4
4
|
*/
|
|
5
|
+
import type { AuthType } from './auth-provider.interface';
|
|
5
6
|
export declare const AUTH_STORAGE_KEYS: {
|
|
6
7
|
readonly ACCESS_TOKEN: "pers_access_token";
|
|
7
8
|
readonly REFRESH_TOKEN: "pers_refresh_token";
|
|
@@ -56,8 +57,8 @@ export declare class AuthTokenManager {
|
|
|
56
57
|
setRefreshToken(token: string): Promise<void>;
|
|
57
58
|
getProviderToken(): Promise<string | null>;
|
|
58
59
|
setProviderToken(token: string): Promise<void>;
|
|
59
|
-
getAuthType(): Promise<
|
|
60
|
-
setAuthType(authType:
|
|
60
|
+
getAuthType(): Promise<AuthType | null>;
|
|
61
|
+
setAuthType(authType: AuthType): Promise<void>;
|
|
61
62
|
setTokens(accessToken: string, refreshToken?: string, providerToken?: string): Promise<void>;
|
|
62
63
|
clearAllTokens(): Promise<void>;
|
|
63
64
|
hasAccessToken(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-storage.d.ts","sourceRoot":"","sources":["../../../src/core/auth/token-storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC3D,QAAQ,CAAC,eAAe,SAAS;IAE3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,eAAe,QAAQ;IAChC,OAAO,CAAC,KAAK,CAA8B;IAErC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,YAA6C;IAEpE,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMxC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKzC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,WAAW,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"token-storage.d.ts","sourceRoot":"","sources":["../../../src/core/auth/token-storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC3D,QAAQ,CAAC,eAAe,SAAS;IAE3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,eAAe,QAAQ;IAChC,OAAO,CAAC,KAAK,CAA8B;IAErC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,YAA6C;IAEpE,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMxC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKzC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAKvC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5F,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAKlC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;CAI1C"}
|