@explorins/pers-sdk 1.5.2 → 1.6.1

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 (69) hide show
  1. package/dist/chunks/index-BfOoX87y.cjs +337 -0
  2. package/dist/chunks/index-BfOoX87y.cjs.map +1 -0
  3. package/dist/chunks/index-BhROn6lx.js +559 -0
  4. package/dist/chunks/index-BhROn6lx.js.map +1 -0
  5. package/dist/chunks/index-CM21r58m.js +331 -0
  6. package/dist/chunks/index-CM21r58m.js.map +1 -0
  7. package/dist/chunks/index-STUUgDTj.cjs +567 -0
  8. package/dist/chunks/index-STUUgDTj.cjs.map +1 -0
  9. package/dist/chunks/{pers-sdk-CI2YXKb_.cjs → pers-sdk-CJ9A-gdp.cjs} +390 -18
  10. package/dist/chunks/pers-sdk-CJ9A-gdp.cjs.map +1 -0
  11. package/dist/chunks/{pers-sdk-CVSAFBLh.js → pers-sdk-DCoIoQD2.js} +384 -18
  12. package/dist/chunks/pers-sdk-DCoIoQD2.js.map +1 -0
  13. package/dist/core.cjs +13 -6
  14. package/dist/core.cjs.map +1 -1
  15. package/dist/core.js +6 -2
  16. package/dist/core.js.map +1 -1
  17. package/dist/file/api/file-api.d.ts +35 -0
  18. package/dist/file/api/file-api.d.ts.map +1 -0
  19. package/dist/file/api/index.d.ts +2 -0
  20. package/dist/file/api/index.d.ts.map +1 -0
  21. package/dist/file/index.d.ts +9 -0
  22. package/dist/file/index.d.ts.map +1 -0
  23. package/dist/file/models/index.d.ts +26 -0
  24. package/dist/file/models/index.d.ts.map +1 -0
  25. package/dist/file/services/file-service.d.ts +57 -0
  26. package/dist/file/services/file-service.d.ts.map +1 -0
  27. package/dist/file/services/index.d.ts +2 -0
  28. package/dist/file/services/index.d.ts.map +1 -0
  29. package/dist/index.cjs +18 -14
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +4 -6
  34. package/dist/index.js.map +1 -1
  35. package/dist/managers/file-manager.d.ts +55 -0
  36. package/dist/managers/file-manager.d.ts.map +1 -0
  37. package/dist/managers/index.d.ts +4 -1
  38. package/dist/managers/index.d.ts.map +1 -1
  39. package/dist/managers/{payment-manager.d.ts → purchase-manager.d.ts} +6 -6
  40. package/dist/managers/purchase-manager.d.ts.map +1 -0
  41. package/dist/managers/tenant-manager.d.ts +8 -0
  42. package/dist/managers/tenant-manager.d.ts.map +1 -1
  43. package/dist/managers/user-status-manager.d.ts +40 -0
  44. package/dist/managers/user-status-manager.d.ts.map +1 -0
  45. package/dist/managers/web3-manager.d.ts +58 -0
  46. package/dist/managers/web3-manager.d.ts.map +1 -0
  47. package/dist/package.json +1 -1
  48. package/dist/pers-sdk.d.ts +44 -8
  49. package/dist/pers-sdk.d.ts.map +1 -1
  50. package/dist/web3-chain.cjs +8 -307
  51. package/dist/web3-chain.cjs.map +1 -1
  52. package/dist/web3-chain.js +2 -305
  53. package/dist/web3-chain.js.map +1 -1
  54. package/dist/web3.cjs +7 -516
  55. package/dist/web3.cjs.map +1 -1
  56. package/dist/web3.js +3 -516
  57. package/dist/web3.js.map +1 -1
  58. package/package.json +1 -1
  59. package/dist/chunks/environment-C2AkkLPd.js +0 -46
  60. package/dist/chunks/environment-C2AkkLPd.js.map +0 -1
  61. package/dist/chunks/environment-CRROnwAY.cjs +0 -50
  62. package/dist/chunks/environment-CRROnwAY.cjs.map +0 -1
  63. package/dist/chunks/jwt.function-BYiyl-z_.cjs +0 -25
  64. package/dist/chunks/jwt.function-BYiyl-z_.cjs.map +0 -1
  65. package/dist/chunks/jwt.function-d6jPtBqI.js +0 -23
  66. package/dist/chunks/jwt.function-d6jPtBqI.js.map +0 -1
  67. package/dist/chunks/pers-sdk-CI2YXKb_.cjs.map +0 -1
  68. package/dist/chunks/pers-sdk-CVSAFBLh.js.map +0 -1
  69. package/dist/managers/payment-manager.d.ts.map +0 -1
@@ -19,7 +19,7 @@
19
19
  * │ ├── campaigns: CampaignManager // Marketing campaigns
20
20
  * │ ├── redemptions: RedemptionManager // Reward redemptions
21
21
  * │ ├── transactions: TransactionManager // Transaction history
22
- * │ ├── payments: PaymentManager // Payment processing
22
+ * │ ├── purchases: PurchaseManager // Purchase processing
23
23
  * │ └── analytics: AnalyticsManager // Reporting & analytics
24
24
  * ├── Domain SDKs (Advanced) // Full-featured domain access
25
25
  * │ ├── createBusinessSDK()
@@ -157,7 +157,7 @@
157
157
  import { HttpClient } from './core/abstractions/http-client';
158
158
  import { PersConfig } from './core/pers-config';
159
159
  import { PersApiClient } from './core/pers-api-client';
160
- import { AuthManager, UserManager, TokenManager, BusinessManager, CampaignManager, RedemptionManager, TransactionManager, PaymentManager, TenantManager, AnalyticsManager, DonationManager } from './managers';
160
+ import { AuthManager, UserManager, UserStatusManager, TokenManager, BusinessManager, CampaignManager, RedemptionManager, TransactionManager, PurchaseManager, FileManager, TenantManager, AnalyticsManager, DonationManager, Web3Manager } from './managers';
161
161
  /**
162
162
  * PERS SDK class with domain managers
163
163
  *
@@ -193,15 +193,18 @@ export declare class PersSDK {
193
193
  private apiClient;
194
194
  private _auth;
195
195
  private _users;
196
+ private _userStatus;
196
197
  private _tokens;
197
198
  private _businesses;
198
199
  private _campaigns;
199
200
  private _redemptions;
200
201
  private _transactions;
201
- private _payments;
202
+ private _purchases;
203
+ private _files;
202
204
  private _tenants;
203
205
  private _analytics;
204
206
  private _donations;
207
+ private _web3;
205
208
  /**
206
209
  * Creates a new PERS SDK instance
207
210
  *
@@ -231,6 +234,17 @@ export declare class PersSDK {
231
234
  * ```
232
235
  */
233
236
  get users(): UserManager;
237
+ /**
238
+ * User Status manager - High-level user status operations
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const statusTypes = await sdk.userStatus.getUserStatusTypes();
243
+ * const earnedStatus = await sdk.userStatus.getEarnedUserStatus();
244
+ * await sdk.userStatus.createUserStatusType(statusData);
245
+ * ```
246
+ */
247
+ get userStatus(): UserStatusManager;
234
248
  /**
235
249
  * Token manager - High-level token operations
236
250
  *
@@ -287,16 +301,27 @@ export declare class PersSDK {
287
301
  */
288
302
  get transactions(): TransactionManager;
289
303
  /**
290
- * Payment manager - High-level payment operations
304
+ * Purchase manager - High-level purchase operations
305
+ *
306
+ * @example
307
+ * ```typescript
308
+ * const intent = await sdk.purchases.createPaymentIntent(100, 'usd', 'email@example.com', 'Purchase');
309
+ * const tokens = await sdk.purchases.getActivePurchaseTokens();
310
+ * const purchases = await sdk.purchases.getAllUserPurchases();
311
+ * ```
312
+ */
313
+ get purchases(): PurchaseManager;
314
+ /**
315
+ * File manager - High-level file operations
291
316
  *
292
317
  * @example
293
318
  * ```typescript
294
- * const intent = await sdk.payments.createPaymentIntent(100, 'usd', 'email@example.com', 'Purchase');
295
- * const tokens = await sdk.payments.getActivePurchaseTokens();
296
- * const purchases = await sdk.payments.getAllUserPurchases();
319
+ * const uploadUrl = await sdk.files.getSignedPutUrl('entity-123', 'token', 'jpg');
320
+ * const accessUrl = await sdk.files.getSignedGetUrl('entity-123', 'token');
321
+ * const optimizedUrl = await sdk.files.optimizeMedia(originalUrl, 800, 600);
297
322
  * ```
298
323
  */
299
- get payments(): PaymentManager;
324
+ get files(): FileManager;
300
325
  /**
301
326
  * Tenant manager - High-level tenant operations
302
327
  *
@@ -326,6 +351,17 @@ export declare class PersSDK {
326
351
  * ```
327
352
  */
328
353
  get donations(): DonationManager;
354
+ /**
355
+ * Web3 manager - High-level blockchain operations
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * const balance = await sdk.web3.getTokenBalance(request);
360
+ * const metadata = await sdk.web3.getTokenMetadata(request);
361
+ * const collection = await sdk.web3.getTokenCollection(request);
362
+ * ```
363
+ */
364
+ get web3(): Web3Manager;
329
365
  /**
330
366
  * Gets the API client for direct PERS API requests
331
367
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pers-sdk.d.ts","sourceRoot":"","sources":["../src/pers-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAkB;IAEpC;;;;;OAKG;gBACS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAiBtD;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;;;;;;OASG;IACH,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;;;;;;;OASG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED;;;;;;;;;OASG;IACH,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAED;;;;;;;;;OASG;IACH,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAED;;;;;;;;;OASG;IACH,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;;;;;;;;OASG;IACH,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG,IAAI,aAAa;IAIpB;;;;OAIG;IACH,YAAY,IAAI,OAAO;CAGxB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACjB,OAAO,CAET"}
1
+ {"version":3,"file":"pers-sdk.d.ts","sourceRoot":"","sources":["../src/pers-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,KAAK,CAAc;IAE3B;;;;;OAKG;gBACS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAoBtD;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;;;;;;OASG;IACH,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;;;;;;;OASG;IACH,IAAI,UAAU,IAAI,iBAAiB,CAElC;IAED;;;;;;;;;OASG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED;;;;;;;;;OASG;IACH,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAED;;;;;;;;;OASG;IACH,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;OASG;IACH,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;;;;;;;OASG;IACH,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG,IAAI,aAAa;IAIpB;;;;OAIG;IACH,YAAY,IAAI,OAAO;CAGxB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACjB,OAAO,CAET"}
@@ -1,317 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var jwt_function = require('./chunks/jwt.function-BYiyl-z_.cjs');
4
- var ethers = require('@explorins/web3-ts/ethers');
3
+ var web3Chain = require('./chunks/index-BfOoX87y.cjs');
5
4
  var persShared = require('@explorins/pers-shared');
6
5
  require('jwt-decode');
6
+ require('@explorins/web3-ts/ethers');
7
7
 
8
- /**
9
- * Platform-Agnostic Web3 Chain API Client
10
- *
11
- * Handles blockchain chain operations using the PERS backend.
12
- * Uses @explorins/web3-ts types for perfect framework compatibility.
13
- */
14
- class Web3ChainApi {
15
- constructor(apiClient) {
16
- this.apiClient = apiClient;
17
- this.basePath = '/chains';
18
- }
19
- // ==========================================
20
- // PUBLIC OPERATIONS
21
- // ==========================================
22
- /**
23
- * PUBLIC: Get chain data by chain ID
24
- * ✅ Returns ChainData exactly as framework expects from @explorins/web3-ts
25
- */
26
- async getChainData(chainId) {
27
- try {
28
- console.log('[Web3ChainApi] Fetching chain data for chainId:', chainId);
29
- const response = await this.apiClient.get(`${this.basePath}/${chainId}`);
30
- if (!response) {
31
- throw new Error(`No chain data received for chainId: ${chainId}`);
32
- }
33
- return response;
34
- }
35
- catch (error) {
36
- console.error('[Web3ChainApi] Failed to get chain data:', {
37
- chainId,
38
- error: error instanceof Error ? error.message : String(error)
39
- });
40
- throw error;
41
- }
42
- }
43
- }
44
8
 
45
- // ✅ REVERT: Función síncrona como el código comentado que funciona
46
- const getWeb3ProviderFromChainData = (chainData, timeout = 15000, customUserAgentName = '', tokenRefresher) => {
47
- let ethersProvider;
48
- if (chainData.authHeader) {
49
- // ✅ AUTHENTICATED: For private chains
50
- const fetchRequest = new ethers.FetchRequest(chainData.rpcUrl);
51
- fetchRequest.timeout = timeout;
52
- // ✅ IMPROVED AUTH HEADER: Better handling
53
- const authValue = chainData.authHeader.startsWith('Bearer ')
54
- ? chainData.authHeader
55
- : `Bearer ${chainData.authHeader}`;
56
- fetchRequest.setHeader('Authorization', authValue);
57
- fetchRequest.setHeader('Content-Type', 'application/json');
58
- fetchRequest.setHeader('Accept', 'application/json');
59
- if (customUserAgentName) {
60
- fetchRequest.setHeader('User-Agent', customUserAgentName);
61
- }
62
- ethersProvider = new ethers.JsonRpcProvider(fetchRequest, undefined, {
63
- staticNetwork: false,
64
- polling: false,
65
- batchMaxCount: 1, // ✅ DISABLE BATCHING: Better for private chains
66
- });
67
- }
68
- else {
69
- // ✅ PUBLIC: For public chains
70
- ethersProvider = new ethers.JsonRpcProvider(chainData.rpcUrl, undefined, {
71
- staticNetwork: false,
72
- polling: false,
73
- });
74
- }
75
- console.log(`✅ [getWeb3FCD] Provider created successfully`);
76
- return {
77
- web3Provider: null,
78
- ethersProvider: ethersProvider,
79
- isAuthenticated: !!chainData.authHeader,
80
- };
81
- };
82
- // ✅ NEW: Async wrapper with retry for higher-level usage
83
- const getWeb3ProviderWithRetry = async (chainData, timeout = 15000, customUserAgentName = '', tokenRefresher, retryConfig = { maxAttempts: 3, baseDelay: 1000, maxDelay: 8000 }) => {
84
- let lastError = null;
85
- for (let attempt = 1; attempt <= retryConfig.maxAttempts; attempt++) {
86
- try {
87
- console.log(`🔄 [Web3Provider] Attempt ${attempt}/${retryConfig.maxAttempts} for chain ${chainData.chainId || 'unknown'}`);
88
- // ✅ SYNC CALL: Use the original sync function
89
- const provider = getWeb3ProviderFromChainData(chainData, timeout, customUserAgentName, tokenRefresher);
90
- await validateChainConnection(provider.ethersProvider, chainData.authHeader ? 'private' : 'public');
91
- console.log(`✅ [Web3Provider] Successfully connected on attempt ${attempt}`);
92
- return provider;
93
- }
94
- catch (error) {
95
- lastError = error instanceof Error ? error : new Error(String(error));
96
- console.warn(`⚠️ [Web3Provider] Attempt ${attempt} failed:`, lastError.message);
97
- // ✅ NO RETRY: if auth error, no retry
98
- if (isAuthError(lastError) && chainData.authHeader) {
99
- console.error(`❌ [Web3Provider] Auth error, stopping retries`);
100
- break;
101
- }
102
- if (attempt === retryConfig.maxAttempts)
103
- break;
104
- const delay = Math.min(retryConfig.baseDelay * Math.pow(2, attempt - 1), retryConfig.maxDelay);
105
- console.log(`⏳ [Web3Provider] Retrying in ${delay}ms...`);
106
- await sleep(delay);
107
- }
108
- }
109
- throw new Error(`Failed to create Web3 provider after ${retryConfig.maxAttempts} attempts. Last error: ${lastError?.message}`);
110
- };
111
- async function validateChainConnection(provider, chainType) {
112
- try {
113
- console.log(`🔍 [Validation] Testing ${chainType} chain connection...`);
114
- // ✅ LIGHTWEIGHT TEST: Use eth_chainId (works for both public and private)
115
- const timeoutPromise = new Promise((_, reject) => {
116
- setTimeout(() => reject(new Error(`${chainType} chain validation timeout`)), 3000);
117
- });
118
- // Try chainId first (fast, lightweight, universal)
119
- const chainIdPromise = provider.send('eth_chainId', []);
120
- const result = await Promise.race([chainIdPromise, timeoutPromise]);
121
- console.log(`✅ [Validation] ${chainType} chain connection validated - Chain ID: ${result}`);
122
- }
123
- catch (error) {
124
- // ✅ FALLBACK: Try net_version if chainId fails
125
- try {
126
- console.log(`🔄 [Validation] Trying fallback validation for ${chainType} chain...`);
127
- const timeoutPromise = new Promise((_, reject) => {
128
- setTimeout(() => reject(new Error(`${chainType} chain fallback validation timeout`)), 3000);
129
- });
130
- const versionPromise = provider.send('net_version', []);
131
- const result = await Promise.race([versionPromise, timeoutPromise]);
132
- console.log(`✅ [Validation] ${chainType} chain connection validated via fallback - Network Version: ${result}`);
133
- }
134
- catch (fallbackError) {
135
- throw new Error(`${chainType} chain validation failed: ${error instanceof Error ? error.message : String(error)}`);
136
- }
137
- }
138
- }
139
- // ✅ HELPER: Auth error detection
140
- function isAuthError(error) {
141
- const message = error.message.toLowerCase();
142
- return (message.includes('unauthorized') ||
143
- message.includes('401') ||
144
- message.includes('token expired') ||
145
- message.includes('-40100'));
146
- }
147
- // ✅ HELPER: Sleep utility
148
- function sleep(ms) {
149
- return new Promise(resolve => setTimeout(resolve, ms));
150
- }
151
-
152
- class EthersProviderService {
153
- constructor() {
154
- this._provider = null;
155
- this._currentChainId = null;
156
- this._creationPromise = null;
157
- console.log('[PERS SDK] EthersProviderService initialized with enhanced instanceof handling');
158
- }
159
- async getEthersProvider(chainId, chainType, chainData) {
160
- // ✅ EARLY RETURN: Reuse existing provider
161
- if (this._provider && this._currentChainId === chainId) {
162
- return this._provider;
163
- }
164
- // ✅ PREVENT RACE CONDITION: Wait for ongoing creation
165
- if (this._creationPromise) {
166
- return await this._creationPromise;
167
- }
168
- if (!chainId)
169
- throw new Error('ChainId not found');
170
- if (!chainData)
171
- throw new Error('ChainData not found');
172
- // ✅ CREATE AND CACHE: Single promise for concurrent calls
173
- const ethersPromise = this.createEthersProvider(chainId, chainType, chainData);
174
- try {
175
- const { web3Provider, ethersProvider, isAuthenticated } = await ethersPromise;
176
- this._provider = ethersProvider;
177
- this._currentChainId = chainId;
178
- return ethersProvider;
179
- }
180
- finally {
181
- // ✅ CLEANUP: Always reset promise after completion
182
- this._creationPromise = null;
183
- }
184
- }
185
- async createEthersProvider(chainId, chainType, chainData) {
186
- console.log(`🔧 [createProvider] Creating provider for chain ${chainId}`);
187
- const provider = await getWeb3ProviderWithRetry(chainData);
188
- return provider;
189
- }
190
- }
191
-
192
- class Web3ChainService {
193
- constructor(web3ChainApi) {
194
- this.web3ChainApi = web3ChainApi;
195
- this.web3InstanceCache = new Map();
196
- // TODO: Fix any
197
- this.providerCache = new Map();
198
- // private providerService: Web3ProviderService = new Web3ProviderService();
199
- this.ethersProviderService = new EthersProviderService();
200
- }
201
- async getEthersProviderByChainId(chainId) {
202
- const cached = this.providerCache.get(chainId);
203
- // ✅ SMART CACHE: Check if cache is valid based on token expiration
204
- if (cached && !this.checkIsTokenExpired(cached.authHeader)) {
205
- // Using cached provider
206
- return cached.provider;
207
- }
208
- try {
209
- // Creating new Web3 instance
210
- const { provider, chainData } = await this.createProviderInstance(chainId);
211
- this.providerCache.set(chainId, {
212
- provider,
213
- chainData,
214
- createdAt: Date.now(),
215
- chainId
216
- });
217
- return provider;
218
- }
219
- catch (error) {
220
- // ✅ AUTH ERROR RECOVERY: Clear cache and retry once
221
- if (this.isAuthError(error)) {
222
- // Auth error detected, clearing cache and retrying
223
- this.providerCache.delete(chainId);
224
- // Retry once with fresh instance
225
- const { provider, chainData } = await this.createProviderInstance(chainId);
226
- this.providerCache.set(chainId, {
227
- provider,
228
- chainData,
229
- createdAt: Date.now(),
230
- chainId
231
- });
232
- return provider;
233
- }
234
- throw error;
235
- }
236
- }
237
- async createProviderInstance(chainId) {
238
- const chainData = await this.getChainDataById(chainId);
239
- if (!chainData) {
240
- throw new Error(`Chain data not found for chainId: ${chainId}`);
241
- }
242
- const provider = await this.ethersProviderService.getEthersProvider(chainId, chainData.chainType || 'PUBLIC', chainData);
243
- return { provider, chainData };
244
- }
245
- async getChainDataWithCache(chainId) {
246
- const cached = this.web3InstanceCache.get(chainId);
247
- //const now = Date.now();
248
- if (cached && !this.checkIsTokenExpired(cached.chainData.authHeader)) {
249
- // Using cached ChainData
250
- return cached.chainData;
251
- }
252
- // If not cached, fetch fresh data
253
- const chainData = await this.getChainDataById(chainId);
254
- if (!chainData) {
255
- throw new Error(`Chain data not found for chainId: ${chainId}`);
256
- }
257
- return chainData;
258
- }
259
- checkIsTokenExpired(authHeader) {
260
- // ✅ NULL CHECK: Handle undefined case
261
- if (!authHeader) {
262
- return false; // No token means no expiration (public chains)
263
- }
264
- // ✅ FUNCTION CALL: Use imported function, not method
265
- return jwt_function.isTokenExpired(authHeader);
266
- }
267
- // ✅ HELPER: Type-safe error checking
268
- isAuthError(error) {
269
- const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
270
- return (message.includes('unauthorized') ||
271
- message.includes('401') ||
272
- message.includes('token expired') ||
273
- message.includes('invalid token'));
274
- }
275
- async getChainDataById(chainId) {
276
- try {
277
- return await this.web3ChainApi.getChainData(chainId);
278
- }
279
- catch (error) {
280
- console.error('❌ [SDK Web3ChainService] Error getting chain data for chainId:', chainId, error);
281
- return null;
282
- }
283
- }
284
- }
285
-
286
- /**
287
- * Web3 Chain Domain Models
288
- *
289
- * Minimal interface definitions matching framework usage exactly.
290
- * Local ChainData interface to avoid external dependency issues.
291
- */
292
- const ChainTypes = {
293
- PUBLIC: 'PUBLIC',
294
- PRIVATE: 'PRIVATE'
295
- };
296
-
297
- function createWeb3ChainSDK(apiClient) {
298
- const web3ChainApi = new Web3ChainApi(apiClient);
299
- const web3ChainService = new Web3ChainService(web3ChainApi);
300
- return {
301
- getEthersProviderByChainId: (chainId) => web3ChainService.getEthersProviderByChainId(chainId),
302
- getChainDataById: (chainId) => web3ChainService.getChainDataWithCache(chainId),
303
- // getWeb3ByChainId: (chainId: number) => web3ChainService.getWeb3ByChainId(chainId),
304
- api: web3ChainApi,
305
- service: web3ChainService
306
- };
307
- }
308
9
 
10
+ exports.ChainTypes = web3Chain.ChainTypes;
11
+ exports.Web3ChainApi = web3Chain.Web3ChainApi;
12
+ exports.Web3ChainService = web3Chain.Web3ChainService;
13
+ exports.createWeb3ChainSDK = web3Chain.createWeb3ChainSDK;
309
14
  Object.defineProperty(exports, "AccountOwnerType", {
310
- enumerable: true,
311
- get: function () { return persShared.AccountOwnerType; }
15
+ enumerable: true,
16
+ get: function () { return persShared.AccountOwnerType; }
312
17
  });
313
- exports.ChainTypes = ChainTypes;
314
- exports.Web3ChainApi = Web3ChainApi;
315
- exports.Web3ChainService = Web3ChainService;
316
- exports.createWeb3ChainSDK = createWeb3ChainSDK;
317
18
  //# sourceMappingURL=web3-chain.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"web3-chain.cjs","sources":["../src/web3-chain/api/web3-chain-api.ts","../src/web3-chain/services/getWeb3FCD.service.ts","../src/web3-chain/services/ethers-provider.service.ts","../src/web3-chain/services/web3-chain-service.ts","../src/web3-chain/models/index.ts","../src/web3-chain/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["FetchRequest","JsonRpcProvider","isTokenExpired"],"mappings":"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"}
1
+ {"version":3,"file":"web3-chain.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}