@explorins/pers-sdk 1.6.10 → 1.6.12

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 (75) hide show
  1. package/dist/chunks/{explorer.utils-GpskbLl1.cjs → explorer.utils-BfWBpq26.cjs} +224 -214
  2. package/dist/chunks/explorer.utils-BfWBpq26.cjs.map +1 -0
  3. package/dist/chunks/{explorer.utils-Ckll15ja.js → explorer.utils-O4TGwQB1.js} +224 -214
  4. package/dist/chunks/explorer.utils-O4TGwQB1.js.map +1 -0
  5. package/dist/chunks/index-60201NKa.js +265 -0
  6. package/dist/chunks/index-60201NKa.js.map +1 -0
  7. package/dist/chunks/index-CcQkbZBZ.cjs +269 -0
  8. package/dist/chunks/index-CcQkbZBZ.cjs.map +1 -0
  9. package/dist/chunks/{pers-sdk-DOuNyWFC.js → pers-sdk-CpK-yTid.js} +31 -99
  10. package/dist/chunks/pers-sdk-CpK-yTid.js.map +1 -0
  11. package/dist/chunks/{pers-sdk-kb7j1DVU.cjs → pers-sdk-nfljnU3z.cjs} +35 -103
  12. package/dist/chunks/pers-sdk-nfljnU3z.cjs.map +1 -0
  13. package/dist/chunks/{web3-chain-service-D75TcHkh.cjs → web3-chain-service-CCs1U95-.cjs} +191 -109
  14. package/dist/chunks/web3-chain-service-CCs1U95-.cjs.map +1 -0
  15. package/dist/chunks/{web3-chain-service-Dp5Z8p9I.js → web3-chain-service-DniirmTp.js} +190 -110
  16. package/dist/chunks/web3-chain-service-DniirmTp.js.map +1 -0
  17. package/dist/core/auth/default-auth-provider.d.ts.map +1 -1
  18. package/dist/core/auth/refresh-manager.d.ts.map +1 -1
  19. package/dist/core/auth/services/auth-service.d.ts +5 -0
  20. package/dist/core/auth/services/auth-service.d.ts.map +1 -1
  21. package/dist/core/cache/cache.service.d.ts +82 -0
  22. package/dist/core/cache/cache.service.d.ts.map +1 -0
  23. package/dist/core/cache/index.d.ts +13 -0
  24. package/dist/core/cache/index.d.ts.map +1 -0
  25. package/dist/core/index.d.ts +1 -0
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/pers-api-client.d.ts.map +1 -1
  28. package/dist/core/pers-config.d.ts +4 -0
  29. package/dist/core/pers-config.d.ts.map +1 -1
  30. package/dist/core.cjs +7 -3
  31. package/dist/core.cjs.map +1 -1
  32. package/dist/core.js +4 -3
  33. package/dist/core.js.map +1 -1
  34. package/dist/index.cjs +9 -5
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.js +4 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/package.json +1 -1
  39. package/dist/web3/application/web3-application.service.d.ts.map +1 -1
  40. package/dist/web3/domain/models/index.d.ts +1 -1
  41. package/dist/web3/domain/models/index.d.ts.map +1 -1
  42. package/dist/web3/domain/services/metadata-domain.service.d.ts +6 -1
  43. package/dist/web3/domain/services/metadata-domain.service.d.ts.map +1 -1
  44. package/dist/web3/domain/services/token-domain.service.d.ts +30 -14
  45. package/dist/web3/domain/services/token-domain.service.d.ts.map +1 -1
  46. package/dist/web3/infrastructure/api/ipfs-api.d.ts +6 -1
  47. package/dist/web3/infrastructure/api/ipfs-api.d.ts.map +1 -1
  48. package/dist/web3/infrastructure/api/web3-api.d.ts.map +1 -1
  49. package/dist/web3-chain/api/web3-chain-api.d.ts +0 -1
  50. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -1
  51. package/dist/web3-chain/services/getWeb3FCD.service.d.ts +2 -10
  52. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -1
  53. package/dist/web3-chain/services/web3-chain-service.d.ts +11 -5
  54. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -1
  55. package/dist/web3-chain.cjs +2 -1
  56. package/dist/web3-chain.cjs.map +1 -1
  57. package/dist/web3-chain.js +2 -1
  58. package/dist/web3-chain.js.map +1 -1
  59. package/dist/web3.cjs +2 -1
  60. package/dist/web3.cjs.map +1 -1
  61. package/dist/web3.js +2 -1
  62. package/dist/web3.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/chunks/explorer.utils-Ckll15ja.js.map +0 -1
  65. package/dist/chunks/explorer.utils-GpskbLl1.cjs.map +0 -1
  66. package/dist/chunks/pers-sdk-DOuNyWFC.js.map +0 -1
  67. package/dist/chunks/pers-sdk-kb7j1DVU.cjs.map +0 -1
  68. package/dist/chunks/web3-chain-service-D75TcHkh.cjs.map +0 -1
  69. package/dist/chunks/web3-chain-service-Dp5Z8p9I.js.map +0 -1
  70. package/dist/web3-chain/services/ethers-provider.service.d.ts +0 -11
  71. package/dist/web3-chain/services/ethers-provider.service.d.ts.map +0 -1
  72. package/dist/web3-chain/services/public-http-provider.service.d.ts +0 -1
  73. package/dist/web3-chain/services/public-http-provider.service.d.ts.map +0 -1
  74. package/dist/web3-chain/services/web3-provider.service.d.ts +0 -1
  75. package/dist/web3-chain/services/web3-provider.service.d.ts.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { g as globalCacheService, C as CacheTTL } from './index-60201NKa.js';
1
2
  import { FetchRequest, JsonRpcProvider } from '@explorins/web3-ts/ethers';
2
3
 
3
4
  /**
@@ -26,6 +27,139 @@ const isTokenExpired = (token, margin = 60) => {
26
27
  }
27
28
  };
28
29
 
30
+ /**
31
+ * PERS SDK Error Handling - Optimized for Performance
32
+ *
33
+ * Consolidated API and auth errors for fast SDK performance
34
+ * Uses @explorins/pers-shared when available, fallback to SDK errors
35
+ */
36
+ // Fast type guards and utilities
37
+ class ErrorUtils {
38
+ /**
39
+ * Fast token expiration detection
40
+ */
41
+ static isTokenExpiredError(error) {
42
+ console.log('Checking if error is token expired error:', error);
43
+ if (typeof error !== 'object' || error === null)
44
+ return false;
45
+ const err = error;
46
+ const apiError = err?.error || err?.response?.data || err;
47
+ const status = err?.status || err?.response?.status || err?.statusCode;
48
+ // Explicit token expired messages
49
+ if (apiError?.code === 'TOKEN_EXPIRED' || apiError?.errorCode === 'TOKEN_EXPIRED') {
50
+ return true;
51
+ }
52
+ // Any 401 Unauthorized error should be treated as token expiration for auth flows
53
+ if (status === 401) {
54
+ return true;
55
+ }
56
+ // Check for token-related messages in other error formats
57
+ const message = apiError?.message || err?.message || '';
58
+ if (message && typeof message === 'string') {
59
+ const lowerMessage = message.toLowerCase();
60
+ return lowerMessage.includes('token') ||
61
+ lowerMessage.includes('unauthorized') ||
62
+ lowerMessage.includes('authentication');
63
+ }
64
+ return false;
65
+ }
66
+ /**
67
+ * Fast error message extraction
68
+ */
69
+ static getMessage(error) {
70
+ if (typeof error !== 'object' || error === null)
71
+ return 'Unknown error';
72
+ const err = error;
73
+ const apiError = err?.error || err?.response?.data || err;
74
+ return apiError?.message || apiError?.detail || err?.message || 'Request failed';
75
+ }
76
+ /**
77
+ * Fast status code extraction
78
+ */
79
+ static getStatus(error) {
80
+ if (typeof error !== 'object' || error === null)
81
+ return null;
82
+ const err = error;
83
+ return err?.status || err?.statusCode || err?.response?.status || null;
84
+ }
85
+ /**
86
+ * Fast retryability check
87
+ */
88
+ static isRetryable(error) {
89
+ if (typeof error !== 'object' || error === null)
90
+ return false;
91
+ const err = error;
92
+ // Check explicit retryable property first (fastest)
93
+ if (typeof err?.retryable === 'boolean')
94
+ return err.retryable;
95
+ // Fast status-based check
96
+ const status = ErrorUtils.getStatus(error);
97
+ return status === null || status >= 500 || status === 429;
98
+ }
99
+ /**
100
+ * Check if error is from PERS API (uses @explorins/pers-shared format)
101
+ */
102
+ static isPersApiError(error) {
103
+ return typeof error === 'object' && error !== null &&
104
+ 'errorCode' in error && 'domain' in error && 'category' in error;
105
+ }
106
+ }
107
+ // SDK-specific error classes for auth flows
108
+ class TokenRefreshNeeded extends Error {
109
+ constructor(refreshToken) {
110
+ super('Token refresh needed');
111
+ this.refreshToken = refreshToken;
112
+ this.errorCode = 'TOKEN_REFRESH_NEEDED';
113
+ this.domain = 'auth';
114
+ this.category = 'SECURITY';
115
+ this.retryable = true;
116
+ this.name = 'TokenRefreshNeeded';
117
+ }
118
+ }
119
+ class ProviderTokenRefreshNeeded extends Error {
120
+ constructor(providerToken) {
121
+ super('Provider token refresh needed');
122
+ this.providerToken = providerToken;
123
+ this.errorCode = 'PROVIDER_TOKEN_REFRESH_NEEDED';
124
+ this.domain = 'auth';
125
+ this.category = 'SECURITY';
126
+ this.retryable = true;
127
+ this.name = 'ProviderTokenRefreshNeeded';
128
+ }
129
+ }
130
+ class LogoutRequired extends Error {
131
+ constructor(message) {
132
+ super(message);
133
+ this.errorCode = 'LOGOUT_REQUIRED';
134
+ this.domain = 'auth';
135
+ this.category = 'SECURITY';
136
+ this.retryable = false;
137
+ this.name = 'LogoutRequired';
138
+ }
139
+ }
140
+ class PersApiError extends Error {
141
+ constructor(message, endpoint, method, status, retryable = false) {
142
+ super(`API request failed: ${message}`);
143
+ this.endpoint = endpoint;
144
+ this.method = method;
145
+ this.status = status;
146
+ this.errorCode = 'PERS_API_ERROR';
147
+ this.domain = 'api';
148
+ this.category = 'TECHNICAL';
149
+ this.name = 'PersApiError';
150
+ this.retryable = retryable;
151
+ }
152
+ }
153
+ const ApiErrorDetector = {
154
+ getErrorMessage: (error) => ErrorUtils.getMessage(error),
155
+ getStatusCode: (error) => ErrorUtils.getStatus(error),
156
+ isRetryable: (error) => ErrorUtils.isRetryable(error),
157
+ isAuthError: (error) => error instanceof TokenRefreshNeeded ||
158
+ error instanceof ProviderTokenRefreshNeeded ||
159
+ error instanceof LogoutRequired ||
160
+ ErrorUtils.isTokenExpiredError(error)
161
+ };
162
+
29
163
  /**
30
164
  * Platform-Agnostic Web3 Chain API Client
31
165
  *
@@ -42,7 +176,6 @@ class Web3ChainApi {
42
176
  // ==========================================
43
177
  /**
44
178
  * PUBLIC: Get chain data by chain ID
45
- * ✅ Returns ChainData exactly as framework expects from @explorins/web3-ts
46
179
  */
47
180
  async getChainData(chainId) {
48
181
  try {
@@ -80,25 +213,21 @@ const getWeb3ProviderFromChainData = (chainData, timeout = 15000, customUserAgen
80
213
  if (customUserAgentName) {
81
214
  fetchRequest.setHeader('User-Agent', customUserAgentName);
82
215
  }
83
- ethersProvider = new JsonRpcProvider(fetchRequest, undefined, {
84
- staticNetwork: false,
216
+ ethersProvider = new JsonRpcProvider(fetchRequest, chainData.chainId, {
217
+ staticNetwork: true, // PREVENT eth_chainId calls - we know the chain
85
218
  polling: false,
86
- batchMaxCount: 1, // DISABLE BATCHING: Better for private chains
219
+ batchMaxCount: 1, // DISABLE BATCHING: Better for private chains
87
220
  });
88
221
  }
89
222
  else {
90
223
  // ✅ PUBLIC: For public chains
91
- ethersProvider = new JsonRpcProvider(chainData.rpcUrl, undefined, {
92
- staticNetwork: false,
224
+ ethersProvider = new JsonRpcProvider(chainData.rpcUrl, chainData.chainId, {
225
+ staticNetwork: true, // PREVENT eth_chainId calls - we know the chain
93
226
  polling: false,
94
227
  });
95
228
  }
96
229
  console.log(`✅ [getWeb3FCD] Provider created successfully`);
97
- return {
98
- web3Provider: null,
99
- ethersProvider: ethersProvider,
100
- isAuthenticated: !!chainData.authHeader,
101
- };
230
+ return ethersProvider;
102
231
  };
103
232
  // ✅ NEW: Async wrapper with retry for higher-level usage
104
233
  const getWeb3ProviderWithRetry = async (chainData, timeout = 15000, customUserAgentName = '', tokenRefresher, retryConfig = { maxAttempts: 3, baseDelay: 1000, maxDelay: 8000 }) => {
@@ -108,7 +237,7 @@ const getWeb3ProviderWithRetry = async (chainData, timeout = 15000, customUserAg
108
237
  console.log(`🔄 [Web3Provider] Attempt ${attempt}/${retryConfig.maxAttempts} for chain ${chainData.chainId || 'unknown'}`);
109
238
  // ✅ SYNC CALL: Use the original sync function
110
239
  const provider = getWeb3ProviderFromChainData(chainData, timeout, customUserAgentName, tokenRefresher);
111
- await validateChainConnection(provider.ethersProvider, chainData.authHeader ? 'private' : 'public');
240
+ await validateChainConnection(provider, chainData.authHeader ? 'private' : 'public');
112
241
  console.log(`✅ [Web3Provider] Successfully connected on attempt ${attempt}`);
113
242
  return provider;
114
243
  }
@@ -116,7 +245,7 @@ const getWeb3ProviderWithRetry = async (chainData, timeout = 15000, customUserAg
116
245
  lastError = error instanceof Error ? error : new Error(String(error));
117
246
  console.warn(`⚠️ [Web3Provider] Attempt ${attempt} failed:`, lastError.message);
118
247
  // ✅ NO RETRY: if auth error, no retry
119
- if (isAuthError(lastError) && chainData.authHeader) {
248
+ if (ApiErrorDetector.isAuthError(lastError) && chainData.authHeader) {
120
249
  console.error(`❌ [Web3Provider] Auth error, stopping retries`);
121
250
  break;
122
251
  }
@@ -157,152 +286,103 @@ async function validateChainConnection(provider, chainType) {
157
286
  }
158
287
  }
159
288
  }
160
- // ✅ HELPER: Auth error detection
161
- function isAuthError(error) {
162
- const message = error.message.toLowerCase();
163
- return (message.includes('unauthorized') ||
164
- message.includes('401') ||
165
- message.includes('token expired') ||
166
- message.includes('-40100'));
167
- }
168
289
  // ✅ HELPER: Sleep utility
169
290
  function sleep(ms) {
170
291
  return new Promise(resolve => setTimeout(resolve, ms));
171
292
  }
172
293
 
173
- class EthersProviderService {
174
- constructor() {
175
- this._provider = null;
176
- this._currentChainId = null;
177
- this._creationPromise = null;
178
- console.log('[PERS SDK] EthersProviderService initialized with enhanced instanceof handling');
179
- }
180
- async getEthersProvider(chainId, chainType, chainData) {
181
- // ✅ EARLY RETURN: Reuse existing provider
182
- if (this._provider && this._currentChainId === chainId) {
183
- return this._provider;
184
- }
185
- // ✅ PREVENT RACE CONDITION: Wait for ongoing creation
186
- if (this._creationPromise) {
187
- return await this._creationPromise;
188
- }
189
- if (!chainId)
190
- throw new Error('ChainId not found');
191
- if (!chainData)
192
- throw new Error('ChainData not found');
193
- // ✅ CREATE AND CACHE: Single promise for concurrent calls
194
- const ethersPromise = this.createEthersProvider(chainId, chainType, chainData);
195
- try {
196
- const { web3Provider, ethersProvider, isAuthenticated } = await ethersPromise;
197
- this._provider = ethersProvider;
198
- this._currentChainId = chainId;
199
- return ethersProvider;
200
- }
201
- finally {
202
- // ✅ CLEANUP: Always reset promise after completion
203
- this._creationPromise = null;
204
- }
205
- }
206
- async createEthersProvider(chainId, chainType, chainData) {
207
- console.log(`🔧 [createProvider] Creating provider for chain ${chainId}`);
208
- const provider = await getWeb3ProviderWithRetry(chainData);
209
- return provider;
210
- }
211
- }
212
-
213
294
  class Web3ChainService {
214
295
  constructor(web3ChainApi) {
215
296
  this.web3ChainApi = web3ChainApi;
216
- this.web3InstanceCache = new Map();
217
- // TODO: Fix any
218
- this.providerCache = new Map();
219
- // private providerService: Web3ProviderService = new Web3ProviderService();
220
- this.ethersProviderService = new EthersProviderService();
297
+ this.cache = globalCacheService.createNamespace('web3-chain');
221
298
  }
222
299
  async getEthersProviderByChainId(chainId) {
223
- const cached = this.providerCache.get(chainId);
224
- // ✅ SMART CACHE: Check if cache is valid based on token expiration
225
- if (cached && !this.checkIsTokenExpired(cached.authHeader)) {
226
- // Using cached provider
300
+ const cacheKey = `provider:${chainId}`;
301
+ // Check if we have a valid cached provider
302
+ const cached = this.cache.get(cacheKey);
303
+ if (cached && !this.checkIsTokenExpired(cached.chainData.authHeader)) {
227
304
  return cached.provider;
228
305
  }
229
306
  try {
230
- // Creating new Web3 instance
307
+ // Create new provider instance
231
308
  const { provider, chainData } = await this.createProviderInstance(chainId);
232
- this.providerCache.set(chainId, {
309
+ // Cache the provider with chain data
310
+ const cacheEntry = {
233
311
  provider,
234
312
  chainData,
235
313
  createdAt: Date.now(),
236
314
  chainId
237
- });
315
+ };
316
+ this.cache.set(cacheKey, cacheEntry, CacheTTL.PROVIDER);
238
317
  return provider;
239
318
  }
240
319
  catch (error) {
241
320
  // ✅ AUTH ERROR RECOVERY: Clear cache and retry once
242
- if (this.isAuthError(error)) {
243
- // Auth error detected, clearing cache and retrying
244
- this.providerCache.delete(chainId);
321
+ if (ApiErrorDetector.isAuthError(error)) {
322
+ this.cache.delete(cacheKey);
245
323
  // Retry once with fresh instance
246
324
  const { provider, chainData } = await this.createProviderInstance(chainId);
247
- this.providerCache.set(chainId, {
325
+ const cacheEntry = {
248
326
  provider,
249
327
  chainData,
250
328
  createdAt: Date.now(),
251
329
  chainId
252
- });
330
+ };
331
+ this.cache.set(cacheKey, cacheEntry, CacheTTL.PROVIDER);
253
332
  return provider;
254
333
  }
255
334
  throw error;
256
335
  }
257
336
  }
258
337
  async createProviderInstance(chainId) {
259
- const chainData = await this.getChainDataById(chainId);
338
+ const chainData = await this.getChainDataWithCache(chainId);
260
339
  if (!chainData) {
261
340
  throw new Error(`Chain data not found for chainId: ${chainId}`);
262
341
  }
263
- const provider = await this.ethersProviderService.getEthersProvider(chainId, chainData.chainType || 'PUBLIC', chainData);
342
+ const provider = await getWeb3ProviderWithRetry(chainData);
264
343
  return { provider, chainData };
265
344
  }
266
345
  async getChainDataWithCache(chainId) {
267
- const cached = this.web3InstanceCache.get(chainId);
268
- //const now = Date.now();
269
- if (cached && !this.checkIsTokenExpired(cached.chainData.authHeader)) {
270
- // Using cached ChainData
271
- return cached.chainData;
272
- }
273
- // If not cached, fetch fresh data
274
- const chainData = await this.getChainDataById(chainId);
275
- if (!chainData) {
276
- throw new Error(`Chain data not found for chainId: ${chainId}`);
346
+ const cacheKey = `chainData:${chainId}`;
347
+ // First check if we have it in the provider cache (includes token validation)
348
+ const providerCached = this.cache.get(`provider:${chainId}`);
349
+ if (providerCached && !this.checkIsTokenExpired(providerCached.chainData.authHeader)) {
350
+ return providerCached.chainData;
277
351
  }
278
- return chainData;
352
+ // Otherwise use getOrSet for chainData only
353
+ return this.cache.getOrSet(cacheKey, async () => {
354
+ const chainData = await this.web3ChainApi.getChainData(chainId);
355
+ if (!chainData) {
356
+ throw new Error(`Chain data not found for chainId: ${chainId}`);
357
+ }
358
+ return chainData;
359
+ }, CacheTTL.MEDIUM // 30 minutes for chain data
360
+ );
279
361
  }
280
362
  checkIsTokenExpired(authHeader) {
281
- // NULL CHECK: Handle undefined case
363
+ // NULL CHECK: Handle undefined case
282
364
  if (!authHeader) {
283
365
  return false; // No token means no expiration (public chains)
284
366
  }
285
- // FUNCTION CALL: Use imported function, not method
367
+ // FUNCTION CALL: Use imported function, not method
286
368
  return isTokenExpired(authHeader);
287
369
  }
288
- // ✅ HELPER: Type-safe error checking
289
- isAuthError(error) {
290
- const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
291
- return (message.includes('unauthorized') ||
292
- message.includes('401') ||
293
- message.includes('token expired') ||
294
- message.includes('invalid token'));
370
+ /**
371
+ * Clear all cached providers and chain data
372
+ * Useful for logout scenarios or when authentication context changes
373
+ */
374
+ clearCache() {
375
+ this.cache.clear();
295
376
  }
296
- async getChainDataById(chainId) {
297
- try {
298
- return await this.web3ChainApi.getChainData(chainId);
299
- }
300
- catch (error) {
301
- console.error('❌ [SDK Web3ChainService] Error getting chain data for chainId:', chainId, error);
302
- return null;
303
- }
377
+ /**
378
+ * Clear cache for a specific chain
379
+ * Useful when a specific chain's authentication fails
380
+ */
381
+ clearCacheForChain(chainId) {
382
+ this.cache.delete(`provider:${chainId}`);
383
+ this.cache.delete(`chainData:${chainId}`);
304
384
  }
305
385
  }
306
386
 
307
- export { Web3ChainApi as W, Web3ChainService as a, isTokenExpired as i };
308
- //# sourceMappingURL=web3-chain-service-Dp5Z8p9I.js.map
387
+ export { ErrorUtils as E, PersApiError as P, Web3ChainApi as W, Web3ChainService as a, isTokenExpired as i };
388
+ //# sourceMappingURL=web3-chain-service-DniirmTp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3-chain-service-DniirmTp.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 +1 @@
1
- {"version":3,"file":"default-auth-provider.d.ts","sourceRoot":"","sources":["../../../src/core/auth/default-auth-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGvF;;GAEG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAIlD,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,YAAY,CAAmB;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAER,MAAM,GAAE,UAAe;IAM3C,OAAO,CAAC,aAAa;IAMrB,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5B,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5F,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;CAGxC"}
1
+ {"version":3,"file":"default-auth-provider.d.ts","sourceRoot":"","sources":["../../../src/core/auth/default-auth-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGvF;;GAEG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAIlD,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,YAAY,CAAmB;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAER,MAAM,GAAE,UAAe;IAM3C,OAAO,CAAC,aAAa;IAMrB,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5B,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5F,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;CAGxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-manager.d.ts","sourceRoot":"","sources":["../../../src/core/auth/refresh-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAO;gBAGvC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,gBAAgB;IAGlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;CASjD"}
1
+ {"version":3,"file":"refresh-manager.d.ts","sourceRoot":"","sources":["../../../src/core/auth/refresh-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAO;gBAGvC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,gBAAgB;IAGlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;CASjD"}
@@ -44,6 +44,11 @@ export declare class AuthService {
44
44
  * Clear stored tokens and active refresh operations
45
45
  */
46
46
  clearTokens(): Promise<void>;
47
+ /**
48
+ * Handle authentication failure with proper cleanup
49
+ * Centralized method to avoid redundant token cleanup logic
50
+ */
51
+ handleAuthFailure(reason: string): Promise<void>;
47
52
  /**
48
53
  * Check if we have valid authentication tokens
49
54
  */
@@ -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;AAE1C,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;IAIpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY,CAAC;IAJvB,OAAO,CAAC,oBAAoB,CAAgD;gBAGlE,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,kCAAsB;IAO7C;;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;;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;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAUtC;;OAEG;YACW,WAAW;CA6B1B"}
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;AAE1C,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;IAIpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY,CAAC;IAJvB,OAAO,CAAC,oBAAoB,CAAgD;gBAGlE,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,kCAAsB;IAO7C;;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;;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,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAUtC;;OAEG;YACW,WAAW;CA6B1B"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Centralized Cache Service for PERS SDK
3
+ * Provides unified caching with memory management and consistent policies
4
+ */
5
+ interface CacheConfig {
6
+ defaultTtl: number;
7
+ maxMemoryMB: number;
8
+ cleanupInterval: number;
9
+ enableLRU: boolean;
10
+ }
11
+ export declare class CacheService {
12
+ private cache;
13
+ private cleanupTimer;
14
+ private config;
15
+ constructor(config?: Partial<CacheConfig>);
16
+ /**
17
+ * Set a value in cache with optional TTL
18
+ */
19
+ set<T>(key: string, value: T, ttl?: number): void;
20
+ /**
21
+ * Get a value from cache
22
+ */
23
+ get<T>(key: string): T | null;
24
+ /**
25
+ * Get or set pattern - common caching pattern
26
+ */
27
+ getOrSet<T>(key: string, fetcher: () => Promise<T>, ttl?: number): Promise<T>;
28
+ /**
29
+ * Delete a specific key
30
+ */
31
+ delete(key: string): boolean;
32
+ /**
33
+ * Clear all keys matching a prefix
34
+ */
35
+ clearByPrefix(prefix: string): number;
36
+ /**
37
+ * Clear all cache
38
+ */
39
+ clear(): void;
40
+ /**
41
+ * Get cache statistics
42
+ */
43
+ getStats(): {
44
+ size: number;
45
+ memoryUsageMB: number;
46
+ hitRate: number;
47
+ oldestEntry: number;
48
+ };
49
+ /**
50
+ * Force cleanup of expired entries
51
+ */
52
+ cleanup(): number;
53
+ /**
54
+ * Start automatic cleanup timer
55
+ */
56
+ private startCleanupTimer;
57
+ /**
58
+ * Stop automatic cleanup timer
59
+ */
60
+ destroy(): void;
61
+ /**
62
+ * Estimate memory usage (rough calculation)
63
+ */
64
+ private estimateMemoryUsage;
65
+ /**
66
+ * Enforce memory limit using LRU eviction
67
+ */
68
+ private enforceMemoryLimit;
69
+ /**
70
+ * Create a namespaced cache interface for services
71
+ */
72
+ createNamespace(namespace: string): {
73
+ set: <T>(key: string, value: T, ttl?: number) => void;
74
+ get: <T_1>(key: string) => T_1 | null;
75
+ getOrSet: <T_2>(key: string, fetcher: () => Promise<T_2>, ttl?: number) => Promise<T_2>;
76
+ delete: (key: string) => boolean;
77
+ clear: () => number;
78
+ };
79
+ }
80
+ export declare const globalCacheService: CacheService;
81
+ export {};
82
+ //# sourceMappingURL=cache.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.service.d.ts","sourceRoot":"","sources":["../../../src/core/cache/cache.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAUD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAKzC;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAsBjD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAqB7B;;OAEG;IACG,QAAQ,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC;IAsBb;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB;IAuBD;;OAEG;IACH,OAAO,IAAI,MAAM;IAcjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACI,OAAO,IAAI,IAAI;IAQtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM;sBAUf,MAAM,SAAS,CAAC,QAAQ,MAAM;wBAK9B,MAAM;6BAKD,MAAM,qCAAmC,MAAM;sBAKpD,MAAM;;;CASzB;AAGD,eAAO,MAAM,kBAAkB,cAAqB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Cache module exports
3
+ */
4
+ export { CacheService, globalCacheService } from './cache.service';
5
+ export declare const CacheTTL: {
6
+ readonly SHORT: number;
7
+ readonly MEDIUM: number;
8
+ readonly LONG: number;
9
+ readonly METADATA: number;
10
+ readonly GATEWAY: number;
11
+ readonly PROVIDER: number;
12
+ };
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/cache/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC"}
@@ -9,6 +9,7 @@ export type { TokenStorage } from './auth/token-storage';
9
9
  export { AuthTokenManager } from './auth/token-storage';
10
10
  export { DefaultAuthProvider } from './auth/default-auth-provider';
11
11
  export * from './environment';
12
+ export * from './cache';
12
13
  export * from './auth';
13
14
  export type { RawUserData } from './auth';
14
15
  export * from './abstractions/http-client';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,cAAc,eAAe,CAAC;AAG9B,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrD,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,cAAc,eAAe,CAAC;AAG9B,cAAc,SAAS,CAAC;AAGxB,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrD,cAAc,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pers-api-client.d.ts","sourceRoot":"","sources":["../../src/core/pers-api-client.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAkB,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAgB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAY3D,qBAAa,aAAa;IActB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAdhB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IAErD;;;;;OAKG;gBAEO,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU;IA6B5B;;;;;;;;;OASG;YACW,gBAAgB;YAKhB,sBAAsB;IAIpC;;OAEG;YACW,OAAO;IA8FrB;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IAInG;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/F;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7C;;;;OAIG;YACW,UAAU;IAqCxB;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,SAAS,IAAI,UAAU,CAAC,OAAO,iBAAiB,CAAC;IAIjD;;OAEG;IACH,iBAAiB,IAAI,UAAU;CAGhC"}
1
+ {"version":3,"file":"pers-api-client.d.ts","sourceRoot":"","sources":["../../src/core/pers-api-client.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAkB,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAgB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAY3D,qBAAa,aAAa;IActB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAdhB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IAErD;;;;;OAKG;gBAEO,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU;IA6B5B;;;;;;;;;OASG;YACW,gBAAgB;YAKhB,sBAAsB;IAIpC;;OAEG;YACW,OAAO;IAmGrB;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IAInG;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/F;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7C;;;;OAIG;YACW,UAAU;IAqCxB;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,SAAS,IAAI,UAAU,CAAC,OAAO,iBAAiB,CAAC;IAIjD;;OAEG;IACH,iBAAiB,IAAI,UAAU;CAGhC"}
@@ -6,6 +6,10 @@
6
6
  */
7
7
  import { PersAuthProvider, AuthType } from './auth/auth-provider.interface';
8
8
  import type { TokenStorage } from './auth/token-storage';
9
+ /** PERS API environment targets - Internal use only */
10
+ export type PersEnvironment = 'production';
11
+ /** Supported PERS API versions - Internal use only */
12
+ export type PersApiVersion = 'v2';
9
13
  /**
10
14
  * PERS SDK Configuration
11
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pers-config.d.ts","sourceRoot":"","sources":["../../src/core/pers-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;IAEvD,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,yCAAyC;IACzC,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,wEAAwE;IACxE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yEAAyE;IACzE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,WAAW,GAAE,aAAa,GAAG,SAAS,GAAG,YAA2B,EACpE,OAAO,GAAE,IAAW,GACnB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CASnJ"}
1
+ {"version":3,"file":"pers-config.d.ts","sourceRoot":"","sources":["../../src/core/pers-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAqC,YAAY,CAAC;AAE7E,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;IAEvD,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,yCAAyC;IACzC,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,wEAAwE;IACxE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yEAAyE;IACzE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,WAAW,GAAE,aAAa,GAAG,SAAS,GAAG,YAA2B,EACpE,OAAO,GAAE,IAAW,GACnB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CASnJ"}
package/dist/core.cjs CHANGED
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var persSdk = require('./chunks/pers-sdk-kb7j1DVU.cjs');
3
+ var persSdk = require('./chunks/pers-sdk-nfljnU3z.cjs');
4
+ var index = require('./chunks/index-CcQkbZBZ.cjs');
4
5
  require('@explorins/pers-shared');
5
- require('./chunks/web3-chain-service-D75TcHkh.cjs');
6
+ require('./chunks/web3-chain-service-CCs1U95-.cjs');
6
7
  require('@explorins/web3-ts/ethers');
7
8
  require('./chunks/user-service-D1Rn4U8u.cjs');
8
9
  require('./user-status.cjs');
@@ -15,7 +16,7 @@ require('./chunks/payment-service-B4qx0qiE.cjs');
15
16
  require('./chunks/tenant-service-Ba7xrWED.cjs');
16
17
  require('./chunks/analytics-service-CitlimKJ.cjs');
17
18
  require('./chunks/donation-service-D-xFrONi.cjs');
18
- require('./chunks/explorer.utils-GpskbLl1.cjs');
19
+ require('./chunks/explorer.utils-BfWBpq26.cjs');
19
20
 
20
21
 
21
22
 
@@ -48,4 +49,7 @@ exports.detectEnvironment = persSdk.detectEnvironment;
48
49
  exports.environment = persSdk.environment;
49
50
  exports.mergeWithDefaults = persSdk.mergeWithDefaults;
50
51
  exports.warnIfProblematicEnvironment = persSdk.warnIfProblematicEnvironment;
52
+ exports.CacheService = index.CacheService;
53
+ exports.CacheTTL = index.CacheTTL;
54
+ exports.globalCacheService = index.globalCacheService;
51
55
  //# sourceMappingURL=core.cjs.map
package/dist/core.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"core.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}