@explorins/pers-sdk 1.6.4 → 1.6.9

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 (212) hide show
  1. package/README.md +86 -342
  2. package/dist/analytics/index.d.ts +0 -16
  3. package/dist/analytics/index.d.ts.map +1 -1
  4. package/dist/analytics.cjs +5 -73
  5. package/dist/analytics.cjs.map +1 -1
  6. package/dist/analytics.js +1 -72
  7. package/dist/analytics.js.map +1 -1
  8. package/dist/business/index.d.ts +0 -24
  9. package/dist/business/index.d.ts.map +1 -1
  10. package/dist/business.cjs +5 -273
  11. package/dist/business.cjs.map +1 -1
  12. package/dist/business.js +1 -272
  13. package/dist/business.js.map +1 -1
  14. package/dist/campaign/api/campaign-api.d.ts +3 -3
  15. package/dist/campaign/api/campaign-api.d.ts.map +1 -1
  16. package/dist/campaign/index.d.ts +0 -34
  17. package/dist/campaign/index.d.ts.map +1 -1
  18. package/dist/campaign.cjs +5 -447
  19. package/dist/campaign.cjs.map +1 -1
  20. package/dist/campaign.js +1 -446
  21. package/dist/campaign.js.map +1 -1
  22. package/dist/chunks/analytics-service-CitlimKJ.cjs +49 -0
  23. package/dist/chunks/analytics-service-CitlimKJ.cjs.map +1 -0
  24. package/dist/chunks/analytics-service-CxyrOwel.js +46 -0
  25. package/dist/chunks/analytics-service-CxyrOwel.js.map +1 -0
  26. package/dist/chunks/{token-sdk-BW4kkJb3.js → base-token-service-BSXDwrcq.js} +138 -204
  27. package/dist/chunks/base-token-service-BSXDwrcq.js.map +1 -0
  28. package/dist/chunks/{token-sdk-CiAbOb6c.cjs → base-token-service-CYuqPPs0.cjs} +140 -207
  29. package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +1 -0
  30. package/dist/chunks/business-service-Cq3-oksM.cjs +241 -0
  31. package/dist/chunks/business-service-Cq3-oksM.cjs.map +1 -0
  32. package/dist/chunks/business-service-DrC-TNGa.js +238 -0
  33. package/dist/chunks/business-service-DrC-TNGa.js.map +1 -0
  34. package/dist/chunks/campaign-service-CWK9I388.cjs +403 -0
  35. package/dist/chunks/campaign-service-CWK9I388.cjs.map +1 -0
  36. package/dist/chunks/campaign-service-Dd7gMjC9.js +400 -0
  37. package/dist/chunks/campaign-service-Dd7gMjC9.js.map +1 -0
  38. package/dist/chunks/donation-service-CyJS4DIZ.js +47 -0
  39. package/dist/chunks/donation-service-CyJS4DIZ.js.map +1 -0
  40. package/dist/chunks/donation-service-D-xFrONi.cjs +50 -0
  41. package/dist/chunks/donation-service-D-xFrONi.cjs.map +1 -0
  42. package/dist/chunks/{index-CJ9Jfa4A.js → explorer.utils-Ckll15ja.js} +108 -172
  43. package/dist/chunks/explorer.utils-Ckll15ja.js.map +1 -0
  44. package/dist/chunks/{index-CzEluQmf.cjs → explorer.utils-GpskbLl1.cjs} +106 -174
  45. package/dist/chunks/explorer.utils-GpskbLl1.cjs.map +1 -0
  46. package/dist/chunks/index-BtDNXaFq.js +13 -0
  47. package/dist/chunks/index-BtDNXaFq.js.map +1 -0
  48. package/dist/chunks/index-CMk3Aqkk.cjs +15 -0
  49. package/dist/chunks/index-CMk3Aqkk.cjs.map +1 -0
  50. package/dist/chunks/payment-service-B4qx0qiE.cjs +220 -0
  51. package/dist/chunks/payment-service-B4qx0qiE.cjs.map +1 -0
  52. package/dist/chunks/payment-service-DfCBFosx.js +217 -0
  53. package/dist/chunks/payment-service-DfCBFosx.js.map +1 -0
  54. package/dist/chunks/pers-sdk-Bd6BZHgt.js +5672 -0
  55. package/dist/chunks/pers-sdk-Bd6BZHgt.js.map +1 -0
  56. package/dist/chunks/pers-sdk-CmyPEhy7.cjs +5705 -0
  57. package/dist/chunks/pers-sdk-CmyPEhy7.cjs.map +1 -0
  58. package/dist/chunks/redemption-service-7qbeQxEM.cjs +330 -0
  59. package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +1 -0
  60. package/dist/chunks/redemption-service-BT0J5Iy7.js +327 -0
  61. package/dist/chunks/redemption-service-BT0J5Iy7.js.map +1 -0
  62. package/dist/chunks/tenant-service-Ba7xrWED.cjs +171 -0
  63. package/dist/chunks/tenant-service-Ba7xrWED.cjs.map +1 -0
  64. package/dist/chunks/tenant-service-DELk412y.js +168 -0
  65. package/dist/chunks/tenant-service-DELk412y.js.map +1 -0
  66. package/dist/chunks/token-service-BWScn8Qa.cjs +208 -0
  67. package/dist/chunks/token-service-BWScn8Qa.cjs.map +1 -0
  68. package/dist/chunks/token-service-CpVwC5Eb.js +205 -0
  69. package/dist/chunks/token-service-CpVwC5Eb.js.map +1 -0
  70. package/dist/chunks/user-service-D1Rn4U8u.cjs +153 -0
  71. package/dist/chunks/user-service-D1Rn4U8u.cjs.map +1 -0
  72. package/dist/chunks/user-service-D6mTa_WZ.js +150 -0
  73. package/dist/chunks/user-service-D6mTa_WZ.js.map +1 -0
  74. package/dist/chunks/{index-BfOoX87y.cjs → web3-chain-service-D75TcHkh.cjs} +28 -53
  75. package/dist/chunks/web3-chain-service-D75TcHkh.cjs.map +1 -0
  76. package/dist/chunks/{index-CM21r58m.js → web3-chain-service-Dp5Z8p9I.js} +28 -51
  77. package/dist/chunks/web3-chain-service-Dp5Z8p9I.js.map +1 -0
  78. package/dist/core/auth/api/auth-api.d.ts +11 -14
  79. package/dist/core/auth/api/auth-api.d.ts.map +1 -1
  80. package/dist/core/auth/auth-provider.interface.d.ts +36 -68
  81. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
  82. package/dist/core/auth/default-auth-provider.d.ts +13 -59
  83. package/dist/core/auth/default-auth-provider.d.ts.map +1 -1
  84. package/dist/core/auth/index.d.ts +8 -14
  85. package/dist/core/auth/index.d.ts.map +1 -1
  86. package/dist/core/auth/refresh-manager.d.ts +15 -0
  87. package/dist/core/auth/refresh-manager.d.ts.map +1 -0
  88. package/dist/core/auth/services/auth-service.d.ts +15 -21
  89. package/dist/core/auth/services/auth-service.d.ts.map +1 -1
  90. package/dist/core/auth/token-storage.d.ts +26 -48
  91. package/dist/core/auth/token-storage.d.ts.map +1 -1
  92. package/dist/core/environment.d.ts +2 -4
  93. package/dist/core/environment.d.ts.map +1 -1
  94. package/dist/core/errors/index.d.ts +1 -5
  95. package/dist/core/errors/index.d.ts.map +1 -1
  96. package/dist/core/index.d.ts +4 -3
  97. package/dist/core/index.d.ts.map +1 -1
  98. package/dist/core/pers-api-client.d.ts +14 -156
  99. package/dist/core/pers-api-client.d.ts.map +1 -1
  100. package/dist/core/pers-config.d.ts +13 -12
  101. package/dist/core/pers-config.d.ts.map +1 -1
  102. package/dist/core/utils/jwt.function.d.ts +9 -0
  103. package/dist/core/utils/jwt.function.d.ts.map +1 -1
  104. package/dist/core.cjs +22 -18
  105. package/dist/core.cjs.map +1 -1
  106. package/dist/core.js +13 -14
  107. package/dist/core.js.map +1 -1
  108. package/dist/donation/index.d.ts +0 -15
  109. package/dist/donation/index.d.ts.map +1 -1
  110. package/dist/donation.cjs +5 -75
  111. package/dist/donation.cjs.map +1 -1
  112. package/dist/donation.js +1 -74
  113. package/dist/donation.js.map +1 -1
  114. package/dist/index.cjs +50 -56
  115. package/dist/index.cjs.map +1 -1
  116. package/dist/index.js +15 -15
  117. package/dist/managers/analytics-manager.d.ts +290 -10
  118. package/dist/managers/analytics-manager.d.ts.map +1 -1
  119. package/dist/managers/auth-manager.d.ts +123 -23
  120. package/dist/managers/auth-manager.d.ts.map +1 -1
  121. package/dist/managers/business-manager.d.ts +273 -18
  122. package/dist/managers/business-manager.d.ts.map +1 -1
  123. package/dist/managers/campaign-manager.d.ts +585 -46
  124. package/dist/managers/campaign-manager.d.ts.map +1 -1
  125. package/dist/managers/donation-manager.d.ts +5 -5
  126. package/dist/managers/donation-manager.d.ts.map +1 -1
  127. package/dist/managers/file-manager.d.ts +430 -13
  128. package/dist/managers/file-manager.d.ts.map +1 -1
  129. package/dist/managers/purchase-manager.d.ts +340 -15
  130. package/dist/managers/purchase-manager.d.ts.map +1 -1
  131. package/dist/managers/redemption-manager.d.ts +450 -27
  132. package/dist/managers/redemption-manager.d.ts.map +1 -1
  133. package/dist/managers/tenant-manager.d.ts +5 -5
  134. package/dist/managers/tenant-manager.d.ts.map +1 -1
  135. package/dist/managers/token-manager.d.ts +245 -21
  136. package/dist/managers/token-manager.d.ts.map +1 -1
  137. package/dist/managers/transaction-manager.d.ts +447 -18
  138. package/dist/managers/transaction-manager.d.ts.map +1 -1
  139. package/dist/managers/user-manager.d.ts +216 -14
  140. package/dist/managers/user-manager.d.ts.map +1 -1
  141. package/dist/managers/web3-manager.d.ts +4 -4
  142. package/dist/managers/web3-manager.d.ts.map +1 -1
  143. package/dist/package.json +10 -4
  144. package/dist/payment/index.d.ts +0 -21
  145. package/dist/payment/index.d.ts.map +1 -1
  146. package/dist/payment.cjs +5 -255
  147. package/dist/payment.cjs.map +1 -1
  148. package/dist/payment.js +1 -254
  149. package/dist/payment.js.map +1 -1
  150. package/dist/pers-sdk.d.ts +141 -34
  151. package/dist/pers-sdk.d.ts.map +1 -1
  152. package/dist/redemption/index.d.ts +0 -25
  153. package/dist/redemption/index.d.ts.map +1 -1
  154. package/dist/redemption.cjs +5 -365
  155. package/dist/redemption.cjs.map +1 -1
  156. package/dist/redemption.js +1 -364
  157. package/dist/redemption.js.map +1 -1
  158. package/dist/tenant/index.d.ts +0 -22
  159. package/dist/tenant/index.d.ts.map +1 -1
  160. package/dist/tenant.cjs +5 -203
  161. package/dist/tenant.cjs.map +1 -1
  162. package/dist/tenant.js +1 -202
  163. package/dist/tenant.js.map +1 -1
  164. package/dist/token.cjs +6 -6
  165. package/dist/token.js +2 -2
  166. package/dist/transaction/index.d.ts +0 -22
  167. package/dist/transaction/index.d.ts.map +1 -1
  168. package/dist/transaction.cjs +0 -40
  169. package/dist/transaction.cjs.map +1 -1
  170. package/dist/transaction.js +1 -40
  171. package/dist/transaction.js.map +1 -1
  172. package/dist/user/index.d.ts +0 -25
  173. package/dist/user/index.d.ts.map +1 -1
  174. package/dist/user.cjs +5 -185
  175. package/dist/user.cjs.map +1 -1
  176. package/dist/user.js +1 -184
  177. package/dist/user.js.map +1 -1
  178. package/dist/web3/index.d.ts +0 -11
  179. package/dist/web3/index.d.ts.map +1 -1
  180. package/dist/web3-chain/index.d.ts +0 -9
  181. package/dist/web3-chain/index.d.ts.map +1 -1
  182. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -1
  183. package/dist/web3-chain.cjs +5 -6
  184. package/dist/web3-chain.cjs.map +1 -1
  185. package/dist/web3-chain.js +2 -2
  186. package/dist/web3.cjs +6 -10
  187. package/dist/web3.cjs.map +1 -1
  188. package/dist/web3.js +1 -4
  189. package/dist/web3.js.map +1 -1
  190. package/package.json +10 -4
  191. package/dist/chunks/base-token-service-D0KANDgM.js +0 -139
  192. package/dist/chunks/base-token-service-D0KANDgM.js.map +0 -1
  193. package/dist/chunks/base-token-service-zNfPjHRx.cjs +0 -141
  194. package/dist/chunks/base-token-service-zNfPjHRx.cjs.map +0 -1
  195. package/dist/chunks/index-BfOoX87y.cjs.map +0 -1
  196. package/dist/chunks/index-CJ9Jfa4A.js.map +0 -1
  197. package/dist/chunks/index-CM21r58m.js.map +0 -1
  198. package/dist/chunks/index-CzEluQmf.cjs.map +0 -1
  199. package/dist/chunks/pers-sdk-DbPwFKrf.cjs +0 -3378
  200. package/dist/chunks/pers-sdk-DbPwFKrf.cjs.map +0 -1
  201. package/dist/chunks/pers-sdk-Z6MKeFBX.js +0 -3353
  202. package/dist/chunks/pers-sdk-Z6MKeFBX.js.map +0 -1
  203. package/dist/chunks/token-sdk-BW4kkJb3.js.map +0 -1
  204. package/dist/chunks/token-sdk-CiAbOb6c.cjs.map +0 -1
  205. package/dist/core/auth/auth-constants.d.ts +0 -33
  206. package/dist/core/auth/auth-constants.d.ts.map +0 -1
  207. package/dist/core/auth/auth-errors.d.ts +0 -8
  208. package/dist/core/auth/auth-errors.d.ts.map +0 -1
  209. package/dist/core/auth/create-auth-provider.d.ts +0 -27
  210. package/dist/core/auth/create-auth-provider.d.ts.map +0 -1
  211. package/dist/core/auth/token-refresh.d.ts +0 -91
  212. package/dist/core/auth/token-refresh.d.ts.map +0 -1
package/README.md CHANGED
@@ -3,18 +3,9 @@
3
3
  [![npm version](https://badge.fury.io/js/%40explorins%2Fpers-sdk.svg)](https://badge.fury.io/js/%40explorins%2Fpers-sdk)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- **Platform-agnostic TypeScript SDK for PERS (Phygital Experience Rewards System)** - Core SDK providing domain-driven business logic and API integration for tourism loyalty applications.
6
+ Platform-agnostic TypeScript SDK for PERS (Phygital Experience Rewards System) - Modern Manager-Service architecture providing clean, consistent APIs for tourism loyalty applications.
7
7
 
8
- ## 🚀 What's New in v1.3+
9
-
10
- **✨ Enhanced Manager Pattern Architecture**
11
- - **High-level domain managers** for intuitive API access
12
- - **Platform adapters** for seamless integration
13
- - **Clean separation** between managers and underlying SDKs
14
- - **Improved TypeScript support** with better type inference
15
- - **Backward compatibility** maintained for existing integrations
16
-
17
- ## PERS Ecosystem
8
+ ## Overview
18
9
 
19
10
  PERS is a comprehensive tourism loyalty platform bridging physical and digital experiences through loyalty programs, campaign management, payments, blockchain integration, business management, and analytics.
20
11
 
@@ -24,40 +15,8 @@ PERS is a comprehensive tourism loyalty platform bridging physical and digital e
24
15
  npm install @explorins/pers-sdk
25
16
  ```
26
17
 
27
- ## Platform Integration
28
-
29
- - **[@explorins/pers-sdk-angular](https://www.npmjs.com/package/@explorins/pers-sdk-angular)** - Angular dependency injection wrapper
30
- - **[@explorins/pers-sdk-react-native](https://www.npmjs.com/package/@explorins/pers-sdk-react-native)** - React Native providers and hooks
31
- - **Direct Integration** - Node.js, Vanilla JS, or custom frameworks
32
-
33
- ## 🏗️ Architecture Overview
34
-
35
- ```typescript
36
- PersSDK
37
- ├── Domain Managers (High-level) // Recommended for common operations
38
- │ ├── auth: AuthManager
39
- │ ├── users: UserManager
40
- │ ├── tokens: TokenManager
41
- │ ├── businesses: BusinessManager
42
- │ ├── campaigns: CampaignManager
43
- │ ├── redemptions: RedemptionManager
44
- │ ├── transactions: TransactionManager
45
- │ ├── payments: PaymentManager
46
- │ └── analytics: AnalyticsManager
47
- ├── Domain SDKs (Advanced) // Full feature access
48
- │ ├── createBusinessSDK()
49
- │ ├── createCampaignSDK()
50
- │ └── TokenSDK, etc.
51
- └── Core API Client // Direct API access
52
- └── api(): PersApiClient
53
- ```
54
-
55
18
  ## Quick Start
56
19
 
57
- ### 1. Choose Your Integration Method
58
-
59
- #### 🎯 **Recommended: Manager Pattern (High-level)**
60
-
61
20
  ```typescript
62
21
  import { PersSDK } from '@explorins/pers-sdk';
63
22
  import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
@@ -67,57 +26,49 @@ const sdk = new PersSDK(new BrowserFetchClientAdapter(), {
67
26
  apiProjectKey: 'your-project-key'
68
27
  });
69
28
 
70
- // Clean, intuitive manager interface
29
+ // Authentication
71
30
  const user = await sdk.auth.getCurrentUser();
72
- const campaigns = await sdk.campaigns.getActiveCampaigns();
73
- const tokens = await sdk.tokens.getTokens();
74
- ```
75
31
 
76
- #### ⚙️ **Advanced: Direct SDK Access**
32
+ // Business operations
33
+ const businesses = await sdk.businesses.getActiveBusinesses();
77
34
 
78
- ```typescript
79
- import { createBusinessSDK, createCampaignSDK } from '@explorins/pers-sdk';
80
- import { PersApiClient } from '@explorins/pers-sdk/core';
35
+ // Campaign management
36
+ const campaigns = await sdk.campaigns.getActiveCampaigns();
37
+ const campaignClaim = await sdk.campaigns.claimCampaign({ campaignId: 'campaign-123', userId: 'user-456' });
81
38
 
82
- const apiClient = new PersApiClient(httpClient, config);
83
- const businessSDK = createBusinessSDK(apiClient);
84
- const campaignSDK = createCampaignSDK(apiClient);
39
+ // Token operations
40
+ const tokens = await sdk.tokens.getTokens();
41
+ const balances = await sdk.tokens.getBalances(userId);
85
42
  ```
86
43
 
87
- ### 2. Platform-Specific Setup
44
+ ## Platform Integration
88
45
 
89
- #### Angular Integration
46
+ ### Angular
90
47
 
91
48
  ```typescript
92
- // app.config.ts
93
- import { provideHttpClient } from '@angular/common/http';
94
- import { PersSDKService } from 'your-app/services/pers-sdk.service';
95
-
96
- export const appConfig = {
97
- providers: [
98
- provideHttpClient(),
99
- PersSDKService
100
- ]
101
- };
102
-
103
- // pers-sdk.service.ts
104
49
  import { Injectable } from '@angular/core';
105
50
  import { HttpClient } from '@angular/common/http';
106
51
  import { PersSDK } from '@explorins/pers-sdk';
107
52
  import { AngularHttpClientAdapter } from '@explorins/pers-sdk/platform-adapters';
108
53
 
109
54
  @Injectable({ providedIn: 'root' })
110
- export class PersSDKService extends PersSDK {
55
+ export class PersSDKService {
56
+ private sdk: PersSDK;
57
+
111
58
  constructor(httpClient: HttpClient) {
112
- super(new AngularHttpClientAdapter(httpClient), {
59
+ this.sdk = new PersSDK(new AngularHttpClientAdapter(httpClient), {
113
60
  environment: 'production',
114
61
  apiProjectKey: 'your-project-key'
115
62
  });
116
63
  }
64
+
65
+ getSDK(): PersSDK {
66
+ return this.sdk;
67
+ }
117
68
  }
118
69
  ```
119
70
 
120
- #### React/Browser Setup
71
+ ### React/Browser
121
72
 
122
73
  ```typescript
123
74
  import { PersSDK } from '@explorins/pers-sdk';
@@ -127,14 +78,9 @@ const sdk = new PersSDK(new BrowserFetchClientAdapter(), {
127
78
  environment: 'production',
128
79
  apiProjectKey: 'your-project-key'
129
80
  });
130
-
131
- // React Hook example
132
- export function usePersSDK() {
133
- return sdk;
134
- }
135
81
  ```
136
82
 
137
- #### Node.js Setup
83
+ ### Node.js
138
84
 
139
85
  ```typescript
140
86
  import { PersSDK } from '@explorins/pers-sdk';
@@ -146,203 +92,77 @@ const sdk = new PersSDK(new NodeHttpClientAdapter(), {
146
92
  });
147
93
  ```
148
94
 
149
- ## 📋 Domain Managers API Reference
150
-
151
- ### 🔐 Authentication Manager
152
-
153
- ```typescript
154
- // Login with external JWT (Firebase, Auth0, etc.)
155
- const authResult = await sdk.auth.loginWithToken(jwtToken, 'user');
156
- const adminResult = await sdk.auth.loginAdmin(adminJWT);
157
-
158
- // Check authentication status
159
- const isAuthenticated = await sdk.auth.isAuthenticated();
160
- const hasValidAuth = sdk.auth.hasValidAuth();
161
-
162
- // User management
163
- const currentUser = await sdk.auth.getCurrentUser();
164
-
165
- // Token management
166
- const newTokens = await sdk.auth.refreshTokens();
167
- await sdk.auth.clearAuth();
168
- ```
169
-
170
- ### 👤 User Manager
171
-
172
- ```typescript
173
- // Current user operations
174
- const user = await sdk.users.getCurrentUser();
175
- await sdk.users.updateCurrentUser(userData);
176
-
177
- // User lookup
178
- const userById = await sdk.users.getUserById(identifier);
179
- const publicProfiles = await sdk.users.getAllUsersPublic();
180
-
181
- // Admin operations
182
- const allUsers = await sdk.users.getAllUsers();
183
- await sdk.users.updateUser(userId, userData);
184
- await sdk.users.toggleUserStatus(user);
185
- ```
186
-
187
- ### 🪙 Token Manager
188
-
189
- ```typescript
190
- // Token operations
191
- const tokens = await sdk.tokens.getTokens();
192
- const creditToken = await sdk.tokens.getActiveCreditToken();
193
- const rewardTokens = await sdk.tokens.getRewardTokens();
194
-
195
- // Balance operations
196
- const balances = await sdk.tokens.getBalances(userId);
197
- await sdk.tokens.transferTokens(transferData);
198
- ```
199
-
200
- ### 🏢 Business Manager
201
-
202
- ```typescript
203
- // Public business operations
204
- const businesses = await sdk.businesses.getActiveBusinesses();
205
- const business = await sdk.businesses.getBusinessById(id);
206
- const types = await sdk.businesses.getBusinessTypes();
207
-
208
- // Admin operations
209
- const allBusinesses = await sdk.businesses.getBusinesses();
210
- await sdk.businesses.createBusiness(businessData);
211
- await sdk.businesses.updateBusiness(id, businessData);
212
- ```
213
-
214
- ### 🎯 Campaign Manager
215
-
216
- ```typescript
217
- // Public campaign operations
218
- const campaigns = await sdk.campaigns.getActiveCampaigns();
219
- const campaign = await sdk.campaigns.getCampaignById(id);
220
-
221
- // User operations
222
- await sdk.campaigns.claimCampaign(claimData);
223
- const userClaims = await sdk.campaigns.getUserClaims();
224
-
225
- // Admin operations
226
- const allCampaigns = await sdk.campaigns.getAllCampaigns();
227
- await sdk.campaigns.createCampaign(campaignData);
228
- await sdk.campaigns.toggleCampaignStatus(campaignId);
229
-
230
- // Advanced operations
231
- const triggers = await sdk.campaigns.getCampaignTriggers();
232
- await sdk.campaigns.setCampaignTrigger(campaignId, triggerId);
233
- ```
234
-
235
- ### 🎁 Redemption Manager
236
-
237
- ```typescript
238
- // Public redemption operations
239
- const redemptions = await sdk.redemptions.getActiveRedemptions();
240
- const types = await sdk.redemptions.getRedemptionTypes();
241
-
242
- // User operations
243
- await sdk.redemptions.redeemOffer(redemptionId);
244
- const userRedemptions = await sdk.redemptions.getUserRedemptions();
245
-
246
- // Admin operations
247
- const allRedemptions = await sdk.redemptions.getAllRedemptions();
248
- await sdk.redemptions.createRedemption(redemptionData);
249
- await sdk.redemptions.toggleRedemptionStatus(redemptionId);
250
- ```
95
+ ## Architecture
251
96
 
252
- ### 💳 Payment Manager
97
+ The SDK uses a clean Manager-Service pattern:
253
98
 
254
99
  ```typescript
255
- // Payment operations
256
- const intent = await sdk.payments.createPaymentIntent(100, 'usd', 'email', 'desc');
257
- const tokens = await sdk.payments.getActivePurchaseTokens();
258
- const purchases = await sdk.payments.getAllUserPurchases();
259
- ```
100
+ // Manager Layer (Primary Interface)
101
+ sdk.auth // Authentication & sessions
102
+ sdk.users // User profiles & management
103
+ sdk.tokens // Token operations & balances
104
+ sdk.businesses // Business operations
105
+ sdk.campaigns // Marketing campaigns
106
+ sdk.redemptions // Reward redemptions
107
+ sdk.transactions // Transaction history
108
+ sdk.payments // Payment processing
109
+ sdk.analytics // Reporting & insights
110
+ sdk.tenants // Multi-tenant configuration
111
+ sdk.donations // Charitable giving
112
+ sdk.files // File operations
113
+ sdk.web3 // Blockchain operations
260
114
 
261
- ### 📊 Transaction Manager
262
-
263
- ```typescript
264
- // Transaction operations
265
- const transaction = await sdk.transactions.getTransactionById(id);
266
- await sdk.transactions.createTransaction(transactionData);
267
- const history = await sdk.transactions.getUserTransactionHistory('all');
115
+ // Service Layer (Advanced Access)
116
+ sdk.users.getUserService() // Direct service access
117
+ sdk.campaigns.getCampaignService()
268
118
  ```
269
119
 
270
- ### 🏢 Tenant Manager
120
+ ## Core Features
271
121
 
272
- ```typescript
273
- // Tenant configuration
274
- const tenantInfo = await sdk.tenants.getTenantInfo();
275
- const clientConfig = await sdk.tenants.getClientConfig();
276
- const loginToken = await sdk.tenants.getLoginToken();
277
-
278
- // Admin operations
279
- await sdk.tenants.updateTenant(tenantData);
280
- const admins = await sdk.tenants.getAdmins();
281
- await sdk.tenants.createAdmin(adminData);
282
- ```
122
+ ### Authentication
123
+ - External JWT integration (Firebase, Auth0, etc.)
124
+ - Native token validation and refresh
125
+ - User and admin authentication flows
283
126
 
284
- ### 📈 Analytics Manager
127
+ ### Business Management
128
+ - Business registration and profiles
129
+ - Business type management
130
+ - Public business discovery
285
131
 
286
- ```typescript
287
- // Transaction analytics
288
- const analytics = await sdk.analytics.getTransactionAnalytics({
289
- startDate: '2024-01-01',
290
- endDate: '2024-12-31',
291
- groupBy: 'month'
292
- });
293
- ```
132
+ ### Campaign System
133
+ - Marketing campaign management
134
+ - User campaign claims and participation
135
+ - Advanced campaign triggers and automation
294
136
 
295
- ### 💝 Donations Manager
137
+ ### Token Economy
138
+ - Token balance management
139
+ - Token transfers and transactions
140
+ - Multiple token type support
296
141
 
297
- ```typescript
298
- // Donation types management
299
- const donationTypes = await sdk.donations.getDonationTypes();
300
- ```
142
+ ### Reward Redemptions
143
+ - Redemption offer management
144
+ - User redemption tracking
145
+ - Multiple redemption types
301
146
 
302
- ## 🔧 Advanced Usage
147
+ ### Payment Processing
148
+ - Payment intent creation
149
+ - Purchase token management
150
+ - Transaction history
303
151
 
304
- ### Custom HTTP Client
152
+ ## Configuration
305
153
 
306
154
  ```typescript
307
- import { HttpClient, RequestOptions } from '@explorins/pers-sdk/core';
308
-
309
- class CustomHttpClient implements HttpClient {
310
- async get<T>(url: string, options?: RequestOptions): Promise<T> {
311
- // Your custom implementation
312
- }
313
-
314
- async post<T>(url: string, data?: unknown, options?: RequestOptions): Promise<T> {
315
- // Your custom implementation
316
- }
317
-
318
- async put<T>(url: string, data?: unknown, options?: RequestOptions): Promise<T> {
319
- // Your custom implementation
320
- }
321
-
322
- async delete<T>(url: string, options?: RequestOptions): Promise<T> {
323
- // Your custom implementation
324
- }
155
+ interface PersConfig {
156
+ environment?: 'development' | 'staging' | 'production';
157
+ apiVersion?: 'v2';
158
+ apiProjectKey: string;
159
+ timeout?: number;
160
+ retries?: number;
161
+ authProvider?: PersAuthProvider;
325
162
  }
326
-
327
- const sdk = new PersSDK(new CustomHttpClient(), config);
328
163
  ```
329
164
 
330
- ### Direct API Access
331
-
332
- ```typescript
333
- // For operations not covered by managers
334
- const apiClient = sdk.api();
335
-
336
- // Custom endpoints
337
- const customData = await apiClient.get<CustomType>('/custom-endpoint');
338
- await apiClient.post('/custom-endpoint', customData);
339
-
340
- // Advanced auth operations
341
- const isExpired = await apiClient.isTokenExpired(120);
342
- const allExpired = await apiClient.areAllTokensExpired();
343
- ```
344
-
345
- ### Error Handling
165
+ ## Error Handling
346
166
 
347
167
  ```typescript
348
168
  import { PersApiError } from '@explorins/pers-sdk/core';
@@ -352,103 +172,27 @@ try {
352
172
  } catch (error) {
353
173
  if (error instanceof PersApiError) {
354
174
  console.error('PERS API Error:', error.message, error.statusCode);
355
- } else {
356
- console.error('Unknown error:', error);
357
175
  }
358
176
  }
359
177
  ```
360
178
 
361
- ## 📦 Available Modules
362
-
363
- ### Core Modules
364
- - `/core` - Core API client and authentication
365
- - `/platform-adapters` - Ready-to-use HTTP client adapters
366
-
367
- ### Domain Modules
368
- - `/business` - Business operations and management
369
- - `/campaign` - Marketing campaigns and challenges
370
- - `/redemption` - Reward redemption system
371
- - `/token` - Token balances and transfers
372
- - `/transaction` - Payment and transaction history
373
- - `/payment` - Payment processing
374
- - `/user` - User profile management
375
- - `/analytics` - Reporting and analytics
376
- - `/tenant` - Multi-tenant management
377
- - `/donation` - Donation management
378
- - `/web3` - Blockchain and wallet integration
379
- - `/web3-chain` - Web3 chain operations
380
-
381
- ## ⚙️ Configuration
382
-
383
- ```typescript
384
- interface PersConfig {
385
- environment: 'development' | 'staging' | 'production';
386
- apiVersion?: 'v1' | 'v1.8' | 'v1.9' | 'v2';
387
- apiProjectKey: string;
388
- timeout?: number; // Request timeout (default: 30s)
389
- retries?: number; // Retry attempts (default: 3)
390
- authProvider?: PersAuthProvider; // Custom auth provider
391
- }
392
- ```
393
-
394
- ## 🔄 Migration Guide
179
+ ## Bundle Size
395
180
 
396
- ### From Legacy SDK to Manager Pattern
181
+ - Core SDK: ~85 KB (minified)
182
+ - Tree-shaking friendly
183
+ - Zero external authentication dependencies
184
+ - Native browser API implementation
397
185
 
398
- **Before (Legacy):**
399
- ```typescript
400
- const businessSDK = createBusinessSDK(apiClient);
401
- const businesses = await businessSDK.getActiveBusinesses();
402
- ```
403
-
404
- **After (Manager Pattern):**
405
- ```typescript
406
- const sdk = new PersSDK(httpClient, config);
407
- const businesses = await sdk.businesses.getActiveBusinesses();
408
- ```
409
-
410
- **Benefits:**
411
- - ✅ Cleaner API surface
412
- - ✅ Better TypeScript inference
413
- - ✅ Consistent error handling
414
- - ✅ Easier testing and mocking
415
- - ✅ Future-proof architecture
416
-
417
- ## 📊 Bundle Size
418
-
419
- - **Core SDK**: ~90 KB (minified)
420
- - **Individual domains**: 2-20 KB each
421
- - **Manager pattern**: Minimal overhead (~5 KB)
422
- - **Tree-shaking friendly**: Import only what you need
423
-
424
- ## 🧪 Testing
425
-
426
- ```typescript
427
- // Mock manager for testing
428
- const mockUserManager = {
429
- getCurrentUser: jest.fn().mockResolvedValue(mockUser),
430
- updateCurrentUser: jest.fn().mockResolvedValue(updatedUser)
431
- };
432
-
433
- const sdk = {
434
- users: mockUserManager
435
- } as jest.Mocked<PersSDK>;
436
- ```
186
+ ## Documentation
437
187
 
438
- ## Dependencies
188
+ For comprehensive documentation, examples, and advanced usage:
439
189
 
440
- - **`@explorins/web3-ts`** (^0.3.75) - Web3 blockchain integration
441
- - **`jwt-decode`** (^4.0.0) - JWT token parsing
442
- - **`@explorins/pers-shared`** (*) - Shared types (peer dependency)
443
- - **`ethers`** (^6.15.0) - Ethereum integration (peer dependency)
190
+ **[https://docs.pers.ninja/1.intro](https://docs.pers.ninja/1.intro)**
444
191
 
445
192
  ## Related Packages
446
193
 
447
- - [@explorins/pers-sdk-angular](https://www.npmjs.com/package/@explorins/pers-sdk-angular) - Angular integration
448
- - [@explorins/pers-sdk-react-native](https://www.npmjs.com/package/@explorins/pers-sdk-react-native) - React Native integration
449
- - [@explorins/pers-shared](https://www.npmjs.com/package/@explorins/pers-shared) - Shared types and DTOs
450
- - [@explorins/web3-ts](https://www.npmjs.com/package/@explorins/web3-ts) - Web3 utilities
194
+ - [@explorins/pers-sdk-react-native](https://www.npmjs.com/package/@explorins/pers-sdk-react-native) - React Native integration
451
195
 
452
196
  ## License
453
197
 
454
- MIT License - see [LICENSE](LICENSE) file for details.
198
+ MIT License
@@ -9,20 +9,4 @@ export { AnalyticsService } from './services/analytics-service';
9
9
  export * from './models';
10
10
  export * from '../shared/interfaces/pers-shared-lib.interfaces';
11
11
  export * from './models';
12
- import { PersApiClient } from '../core/pers-api-client';
13
- import { AnalyticsApi } from './api/analytics-api';
14
- import { TransactionAnalyticsRequestDTO } from './models';
15
- import { AnalyticsService } from './services/analytics-service';
16
- /**
17
- * Create a complete Analytics SDK instance
18
- *
19
- * @param apiClient - Configured PERS API client
20
- * @returns Analytics SDK with flattened structure for better DX
21
- */
22
- export declare function createAnalyticsSDK(apiClient: PersApiClient): {
23
- getTransactionAnalytics: (request: TransactionAnalyticsRequestDTO) => Promise<import("./models").TransactionAnalyticsResponseDTO>;
24
- api: AnalyticsApi;
25
- service: AnalyticsService;
26
- };
27
- export type AnalyticsSDK = ReturnType<typeof createAnalyticsSDK>;
28
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,cAAc,UAAU,CAAC;AACzB,cAAc,iDAAiD,CAAC;AAMhE,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa;uCAQpB,8BAA8B;;;EAMpE;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,cAAc,UAAU,CAAC;AACzB,cAAc,iDAAiD,CAAC;AAMhE,cAAc,UAAU,CAAC"}
@@ -1,82 +1,14 @@
1
1
  'use strict';
2
2
 
3
+ var analyticsService = require('./chunks/analytics-service-CitlimKJ.cjs');
3
4
  var persShared = require('@explorins/pers-shared');
4
5
 
5
- /**
6
- * Platform-Agnostic Analytics API Client
7
- *
8
- * Handles analytics operations using the PERS backend.
9
- * Uses @explorins/pers-shared DTOs for consistency with backend.
10
- */
11
- class AnalyticsApi {
12
- constructor(apiClient) {
13
- this.apiClient = apiClient;
14
- }
15
- // ==========================================
16
- // ADMIN OPERATIONS
17
- // ==========================================
18
- /**
19
- * ADMIN: Get transaction analytics with filtering and aggregation
20
- */
21
- async getTransactionAnalytics(request) {
22
- return this.apiClient.post('/transactions/analytics', request);
23
- }
24
- }
25
6
 
26
- /**
27
- * Platform-Agnostic Analytics Service
28
- *
29
- * Contains analytics business logic and operations that work across platforms.
30
- * No framework dependencies - pure TypeScript business logic.
31
- *
32
- * Focuses only on actual backend capabilities.
33
- */
34
- class AnalyticsService {
35
- constructor(analyticsApi) {
36
- this.analyticsApi = analyticsApi;
37
- }
38
- // ==========================================
39
- // ADMIN OPERATIONS
40
- // ==========================================
41
- /**
42
- * ADMIN: Get transaction analytics with filtering and aggregation
43
- */
44
- async getTransactionAnalytics(request) {
45
- return this.analyticsApi.getTransactionAnalytics(request);
46
- }
47
- }
48
-
49
- /**
50
- * @explorins/pers-sdk-analytics
51
- *
52
- * Platform-agnostic Analytics Domain SDK for PERS ecosystem
53
- * Handles analytics operations and data aggregation
54
- */
55
- // API Layer
56
- /**
57
- * Create a complete Analytics SDK instance
58
- *
59
- * @param apiClient - Configured PERS API client
60
- * @returns Analytics SDK with flattened structure for better DX
61
- */
62
- function createAnalyticsSDK(apiClient) {
63
- const analyticsApi = new AnalyticsApi(apiClient);
64
- const analyticsService = new AnalyticsService(analyticsApi);
65
- return {
66
- // Direct access to service methods (primary interface)
67
- // Admin methods
68
- getTransactionAnalytics: (request) => analyticsService.getTransactionAnalytics(request),
69
- // Advanced access for edge cases
70
- api: analyticsApi,
71
- service: analyticsService
72
- };
73
- }
74
7
 
8
+ exports.AnalyticsApi = analyticsService.AnalyticsApi;
9
+ exports.AnalyticsService = analyticsService.AnalyticsService;
75
10
  Object.defineProperty(exports, "AccountOwnerType", {
76
- enumerable: true,
77
- get: function () { return persShared.AccountOwnerType; }
11
+ enumerable: true,
12
+ get: function () { return persShared.AccountOwnerType; }
78
13
  });
79
- exports.AnalyticsApi = AnalyticsApi;
80
- exports.AnalyticsService = AnalyticsService;
81
- exports.createAnalyticsSDK = createAnalyticsSDK;
82
14
  //# sourceMappingURL=analytics.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.cjs","sources":["../src/analytics/api/analytics-api.ts","../src/analytics/services/analytics-service.ts","../src/analytics/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;AAIA;;;;;AAKG;MACU,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,SAAwB,EAAA;QAAxB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAkB;;;;AAM/C;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAAuC,EAAA;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkC,yBAAyB,EAAE,OAAO,CAAC;IACjG;AACD;;ACjBD;;;;;;;AAOG;MACU,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;;;;AAMjD;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAAuC,EAAA;QACnE,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC;IAC3D;AACD;;AC3BD;;;;;AAKG;AAEH;AAsBA;;;;;AAKG;AACG,SAAU,kBAAkB,CAAC,SAAwB,EAAA;AACzD,IAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC;AAChD,IAAA,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC;IAE3D,OAAO;;;QAIL,uBAAuB,EAAE,CAAC,OAAuC,KAAK,gBAAgB,CAAC,uBAAuB,CAAC,OAAO,CAAC;;AAGvH,QAAA,GAAG,EAAE,YAAY;AACjB,QAAA,OAAO,EAAE;KACV;AACH;;;;;;;;;;"}
1
+ {"version":3,"file":"analytics.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}