@explorins/pers-sdk 2.0.7 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -59
- package/dist/analytics/index.d.ts +0 -2
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/models/index.d.ts +1 -10
- package/dist/analytics/models/index.d.ts.map +1 -1
- package/dist/analytics.cjs +44 -29
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +45 -2
- package/dist/analytics.js.map +1 -1
- package/dist/business/index.d.ts +0 -1
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business.cjs +7 -774
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +3 -751
- package/dist/business.js.map +1 -1
- package/dist/campaign/index.d.ts +0 -1
- package/dist/campaign/index.d.ts.map +1 -1
- package/dist/campaign.cjs +429 -29
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +431 -3
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/business-membership-service-8KC_qRj7.cjs +756 -0
- package/dist/chunks/business-membership-service-8KC_qRj7.cjs.map +1 -0
- package/dist/chunks/business-membership-service-D6vaVQTR.js +751 -0
- package/dist/chunks/business-membership-service-D6vaVQTR.js.map +1 -0
- package/dist/chunks/{web3-chain-service-BeBjALg2.cjs → index-B-g2JPVK.cjs} +1 -220
- package/dist/chunks/index-B-g2JPVK.cjs.map +1 -0
- package/dist/chunks/{web3-chain-service-DKHCnHQX.js → index-CKm_V5XE.js} +2 -219
- package/dist/chunks/index-CKm_V5XE.js.map +1 -0
- package/dist/chunks/payment-service-Bkw7ZXev.cjs +214 -0
- package/dist/chunks/payment-service-Bkw7ZXev.cjs.map +1 -0
- package/dist/chunks/payment-service-IvM6rryM.js +211 -0
- package/dist/chunks/payment-service-IvM6rryM.js.map +1 -0
- package/dist/chunks/{pers-sdk-JIExM712.js → pers-sdk-DYnIZvcx.js} +12 -291
- package/dist/chunks/pers-sdk-DYnIZvcx.js.map +1 -0
- package/dist/chunks/{pers-sdk-h-uoLpBx.cjs → pers-sdk-Dr9W8stD.cjs} +38 -318
- package/dist/chunks/pers-sdk-Dr9W8stD.cjs.map +1 -0
- package/dist/chunks/redemption-service-D-hBqh42.js +339 -0
- package/dist/chunks/redemption-service-D-hBqh42.js.map +1 -0
- package/dist/chunks/redemption-service-rMB6T2W5.cjs +342 -0
- package/dist/chunks/redemption-service-rMB6T2W5.cjs.map +1 -0
- package/dist/chunks/tenant-service-CsRA3O2V.js +163 -0
- package/dist/chunks/tenant-service-CsRA3O2V.js.map +1 -0
- package/dist/chunks/tenant-service-fj-pkXTw.cjs +166 -0
- package/dist/chunks/tenant-service-fj-pkXTw.cjs.map +1 -0
- package/dist/chunks/{transaction-request.builder-DrqTWcyC.cjs → transaction-request.builder-BwWmfHXm.cjs} +6 -6
- package/dist/chunks/{transaction-request.builder-DrqTWcyC.cjs.map → transaction-request.builder-BwWmfHXm.cjs.map} +1 -1
- package/dist/chunks/{transaction-request.builder-DltmruUC.js → transaction-request.builder-C1FPWmYN.js} +6 -6
- package/dist/chunks/{transaction-request.builder-DltmruUC.js.map → transaction-request.builder-C1FPWmYN.js.map} +1 -1
- package/dist/chunks/web3-chain-service-D68-0WaW.cjs +224 -0
- package/dist/chunks/web3-chain-service-D68-0WaW.cjs.map +1 -0
- package/dist/chunks/web3-chain-service-DuvxmKSj.js +221 -0
- package/dist/chunks/web3-chain-service-DuvxmKSj.js.map +1 -0
- package/dist/chunks/{explorer.utils-Cx3wrqAj.cjs → web3-manager-C_cFaMCm.cjs} +411 -144
- package/dist/chunks/web3-manager-C_cFaMCm.cjs.map +1 -0
- package/dist/chunks/{explorer.utils-BkS3k8hX.js → web3-manager-OExwBWB7.js} +412 -146
- package/dist/chunks/web3-manager-OExwBWB7.js.map +1 -0
- package/dist/core.cjs +18 -21
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +10 -12
- package/dist/core.js.map +1 -1
- package/dist/donation/index.d.ts +0 -1
- package/dist/donation/index.d.ts.map +1 -1
- package/dist/donation.cjs +48 -29
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +50 -3
- package/dist/donation.js.map +1 -1
- package/dist/index.cjs +43 -69
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -15
- package/dist/index.js.map +1 -1
- package/dist/managers/analytics-manager.d.ts +1 -1
- package/dist/managers/index.d.ts +0 -1
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/web3-manager.d.ts +1 -1
- package/dist/managers/web3-manager.d.ts.map +1 -1
- package/dist/node.cjs +10 -13
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +10 -13
- package/dist/node.js.map +1 -1
- package/dist/package.json +4 -10
- package/dist/payment/index.d.ts +0 -1
- package/dist/payment/index.d.ts.map +1 -1
- package/dist/payment.cjs +5 -232
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +3 -210
- package/dist/payment.js.map +1 -1
- package/dist/pers-sdk.d.ts +1 -13
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption/index.d.ts +0 -1
- package/dist/redemption/index.d.ts.map +1 -1
- package/dist/redemption/services/redemption-service.d.ts +1 -2
- package/dist/redemption/services/redemption-service.d.ts.map +1 -1
- package/dist/redemption.cjs +5 -360
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +3 -338
- package/dist/redemption.js.map +1 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +15 -21
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
- package/dist/tenant/index.d.ts +0 -1
- package/dist/tenant/index.d.ts.map +1 -1
- package/dist/tenant.cjs +5 -184
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +3 -162
- package/dist/tenant.js.map +1 -1
- package/dist/token/index.d.ts +0 -1
- package/dist/token/index.d.ts.map +1 -1
- package/dist/token.cjs +1 -25
- package/dist/token.cjs.map +1 -1
- package/dist/token.js +1 -1
- package/dist/transaction/models/transaction-request.builder.d.ts +4 -4
- package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -1
- package/dist/transaction.cjs +1 -1
- package/dist/transaction.js +1 -1
- package/dist/user/index.d.ts +0 -1
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user-status/index.d.ts +0 -1
- package/dist/user-status/index.d.ts.map +1 -1
- package/dist/user-status.cjs +0 -25
- package/dist/user-status.cjs.map +1 -1
- package/dist/user-status.js +0 -1
- package/dist/user-status.js.map +1 -1
- package/dist/user.cjs +209 -29
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +211 -3
- package/dist/user.js.map +1 -1
- package/dist/web3/index.d.ts +1 -0
- package/dist/web3/index.d.ts.map +1 -1
- package/dist/web3-chain/index.d.ts +0 -1
- package/dist/web3-chain/index.d.ts.map +1 -1
- package/dist/web3-chain.cjs +14 -29
- package/dist/web3-chain.cjs.map +1 -1
- package/dist/web3-chain.js +16 -3
- package/dist/web3-chain.js.map +1 -1
- package/dist/web3-manager.cjs +13 -0
- package/dist/web3-manager.cjs.map +1 -0
- package/dist/web3-manager.js +7 -0
- package/dist/web3-manager.js.map +1 -0
- package/dist/web3.cjs +10 -6
- package/dist/web3.cjs.map +1 -1
- package/dist/web3.js +4 -1
- package/dist/web3.js.map +1 -1
- package/package.json +4 -10
- package/dist/chunks/analytics-service-CitlimKJ.cjs +0 -49
- package/dist/chunks/analytics-service-CitlimKJ.cjs.map +0 -1
- package/dist/chunks/analytics-service-CxyrOwel.js +0 -46
- package/dist/chunks/analytics-service-CxyrOwel.js.map +0 -1
- package/dist/chunks/campaign-service-CdEz0jpP.cjs +0 -435
- package/dist/chunks/campaign-service-CdEz0jpP.cjs.map +0 -1
- package/dist/chunks/campaign-service-DrTAqFZM.js +0 -432
- package/dist/chunks/campaign-service-DrTAqFZM.js.map +0 -1
- package/dist/chunks/donation-service--6cnTvWq.cjs +0 -54
- package/dist/chunks/donation-service--6cnTvWq.cjs.map +0 -1
- package/dist/chunks/donation-service-xiXZ2Eto.js +0 -51
- package/dist/chunks/donation-service-xiXZ2Eto.js.map +0 -1
- package/dist/chunks/explorer.utils-BkS3k8hX.js.map +0 -1
- package/dist/chunks/explorer.utils-Cx3wrqAj.cjs.map +0 -1
- package/dist/chunks/index-BtDNXaFq.js +0 -13
- package/dist/chunks/index-BtDNXaFq.js.map +0 -1
- package/dist/chunks/index-CMk3Aqkk.cjs +0 -15
- package/dist/chunks/index-CMk3Aqkk.cjs.map +0 -1
- package/dist/chunks/pers-sdk-JIExM712.js.map +0 -1
- package/dist/chunks/pers-sdk-h-uoLpBx.cjs.map +0 -1
- package/dist/chunks/user-service-BGP3SZpk.js +0 -212
- package/dist/chunks/user-service-BGP3SZpk.js.map +0 -1
- package/dist/chunks/user-service-gITOx4qj.cjs +0 -215
- package/dist/chunks/user-service-gITOx4qj.cjs.map +0 -1
- package/dist/chunks/web3-chain-service-BeBjALg2.cjs.map +0 -1
- package/dist/chunks/web3-chain-service-DKHCnHQX.js.map +0 -1
package/README.md
CHANGED
|
@@ -107,84 +107,123 @@ npm install @explorins/pers-shared ethers@^6.15.0
|
|
|
107
107
|
|
|
108
108
|
### Direct Dependencies
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
|
110
|
+
The SDK bundles essential dependencies for seamless installation:
|
|
111
|
+
|
|
112
|
+
| Package | Type | Purpose |
|
|
113
|
+
|---------|------|---------|
|
|
114
|
+
| `@explorins/pers-shared` | Dependency (bundled) | Shared types, interfaces, and DTOs |
|
|
115
|
+
| `@explorins/web3-ts` | Dependency (bundled) | Web3/blockchain utilities - automatically tree-shaken when not used |
|
|
116
|
+
| `ethers` | Dependency (bundled) | Blockchain operations - automatically tree-shaken when not used |
|
|
117
|
+
|
|
118
|
+
> **Tree-Shaking Magic**: Web3 features (~500KB install size) are only included in your final bundle if you actually use them. The SDK uses subpath exports (`@explorins/pers-sdk/web3`) that modern bundlers (Vite, Webpack 5+, Angular) automatically tree-shake when unused.
|
|
119
|
+
>
|
|
120
|
+
> **Note**: `npm install` downloads ~500KB of web3 dependencies, but your production bundle will be **~3KB** if you don't import web3 features. This design prioritizes developer experience (no peer dependency hassles) while maintaining optimal production bundle sizes through automatic tree-shaking.
|
|
113
121
|
|
|
114
122
|
---
|
|
115
123
|
|
|
116
124
|
## Installation
|
|
117
125
|
|
|
118
126
|
```bash
|
|
119
|
-
#
|
|
127
|
+
# Single command installs everything - no peer dependency hassle
|
|
120
128
|
npm install @explorins/pers-sdk
|
|
121
129
|
|
|
122
|
-
# Required peer dependencies
|
|
123
|
-
npm install @explorins/pers-shared ethers@^6.15.0
|
|
124
|
-
|
|
125
130
|
# Optional: For Angular applications only
|
|
126
131
|
npm install rxjs
|
|
127
132
|
```
|
|
128
133
|
|
|
134
|
+
**Bundle Sizes (After Tree-Shaking):**
|
|
135
|
+
|
|
136
|
+
| Usage Pattern | Install Size | Runtime Bundle Size | Notes |
|
|
137
|
+
|--------------|--------------|---------------------|-------|
|
|
138
|
+
| **Core SDK only** (no web3) | ~500 KB | **~3 KB (ESM)** | Campaigns, users, tokens, auth |
|
|
139
|
+
| **With Web3 features** | ~500 KB | **~26 KB (ESM)** | Includes blockchain operations |
|
|
140
|
+
| **Development (node_modules)** | ~500 KB | N/A | All features available for development |
|
|
141
|
+
|
|
142
|
+
> **Key Insight**: The install downloads 500KB, but your production app only includes what you import. If you never `import { Web3Manager }`, those 500KB are automatically excluded from your bundle by the bundler.
|
|
143
|
+
|
|
144
|
+
**How Tree-Shaking Works:**
|
|
145
|
+
```typescript
|
|
146
|
+
// ✅ This code = ~3 KB production bundle (web3 dependencies NOT included)
|
|
147
|
+
import { createPersSDK } from '@explorins/pers-sdk';
|
|
148
|
+
const sdk = createPersSDK({...});
|
|
149
|
+
await sdk.campaign.list();
|
|
150
|
+
|
|
151
|
+
// ✅ This code = ~26 KB production bundle (web3 loaded only when imported)
|
|
152
|
+
import { Web3Manager } from '@explorins/pers-sdk/web3';
|
|
153
|
+
const web3 = new Web3Manager(sdk.api());
|
|
154
|
+
await web3.getTokenBalance({...});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Modern bundlers (Vite, Webpack 5+, Angular, Rollup) detect when web3 code is never imported and completely remove it from your production bundle through dead code elimination.
|
|
158
|
+
|
|
129
159
|
---
|
|
130
160
|
|
|
131
161
|
## Quick Start
|
|
132
162
|
|
|
133
|
-
###
|
|
163
|
+
### Browser / React / Vue
|
|
134
164
|
|
|
135
165
|
```typescript
|
|
136
|
-
import {
|
|
166
|
+
import { createPersSDK } from '@explorins/pers-sdk';
|
|
137
167
|
import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
|
|
138
168
|
|
|
139
|
-
//
|
|
140
|
-
const sdk =
|
|
141
|
-
apiProjectKey: 'your-project-key'
|
|
169
|
+
// Initialize SDK
|
|
170
|
+
const sdk = createPersSDK(new BrowserFetchClientAdapter(), {
|
|
171
|
+
apiProjectKey: 'your-project-key'
|
|
142
172
|
});
|
|
143
173
|
|
|
144
|
-
//
|
|
145
|
-
const externalJWT = await yourAuthProvider.getIdToken();
|
|
174
|
+
// Authenticate with external JWT (Firebase, Auth0, Cognito, etc.)
|
|
175
|
+
const externalJWT = await yourAuthProvider.getIdToken();
|
|
146
176
|
const authResult = await sdk.auth.loginWithToken(externalJWT, 'user');
|
|
147
|
-
console.log('Authenticated user:', authResult.user.id);
|
|
148
177
|
|
|
149
|
-
//
|
|
178
|
+
// Use SDK managers
|
|
150
179
|
const campaigns = await sdk.campaigns.getActiveCampaigns();
|
|
151
|
-
const tokens = await sdk.tokens.getTokens();
|
|
152
180
|
```
|
|
153
181
|
|
|
154
|
-
###
|
|
182
|
+
### Node.js (Convenience Function)
|
|
155
183
|
|
|
156
184
|
```typescript
|
|
157
|
-
import {
|
|
158
|
-
import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
|
|
185
|
+
import { createNodeSDK } from '@explorins/pers-sdk/node';
|
|
159
186
|
|
|
160
|
-
//
|
|
161
|
-
const sdk =
|
|
162
|
-
|
|
163
|
-
|
|
187
|
+
// One-liner setup with static JWT
|
|
188
|
+
const sdk = createNodeSDK({
|
|
189
|
+
jwt: 'your-system-jwt',
|
|
190
|
+
projectKey: 'your-project-key',
|
|
191
|
+
environment: 'production'
|
|
164
192
|
});
|
|
165
193
|
|
|
166
|
-
//
|
|
167
|
-
const
|
|
168
|
-
const
|
|
194
|
+
// Ready to use - no additional auth needed
|
|
195
|
+
const campaigns = await sdk.campaigns.getCampaigns();
|
|
196
|
+
const userClaims = await sdk.campaigns.getCampaignClaims({ userId: 'user-123' });
|
|
197
|
+
```
|
|
169
198
|
|
|
170
|
-
|
|
171
|
-
const businesses = await sdk.businesses.getActiveBusinesses();
|
|
172
|
-
const business = await sdk.businesses.getBusinessById('business-123');
|
|
199
|
+
### Complete Example (Node.js Server-Side)
|
|
173
200
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
201
|
+
```typescript
|
|
202
|
+
import { createNodeSDK } from '@explorins/pers-sdk/node';
|
|
203
|
+
|
|
204
|
+
// Initialize with static JWT (tenant/business system token)
|
|
205
|
+
const sdk = createNodeSDK({
|
|
206
|
+
jwt: process.env.PERS_JWT_TOKEN,
|
|
207
|
+
projectKey: process.env.PERS_PROJECT_KEY,
|
|
208
|
+
environment: 'production'
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
// Campaign operations (admin/system access)
|
|
212
|
+
const campaigns = await sdk.campaigns.getCampaigns();
|
|
213
|
+
const campaign = await sdk.campaigns.getCampaignById('campaign-123');
|
|
214
|
+
|
|
215
|
+
// Claim campaign for a user (system operation)
|
|
216
|
+
const claim = await sdk.campaigns.claimCampaign({
|
|
177
217
|
campaignId: 'campaign-123',
|
|
178
|
-
|
|
218
|
+
userIdentifier: 'external-user-id'
|
|
179
219
|
});
|
|
180
220
|
|
|
181
|
-
//
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
const rewardTokens = await sdk.tokens.getRewardTokens();
|
|
221
|
+
// Get user's claim history
|
|
222
|
+
const userId = claim.user?.id;
|
|
223
|
+
const userClaims = await sdk.campaigns.getCampaignClaims({ userId });
|
|
185
224
|
|
|
186
|
-
//
|
|
187
|
-
const
|
|
225
|
+
// Business operations
|
|
226
|
+
const businesses = await sdk.businesses.getActiveBusinesses();
|
|
188
227
|
```
|
|
189
228
|
|
|
190
229
|
---
|
|
@@ -196,10 +235,10 @@ const userClaims = await sdk.campaigns.getUserClaims();
|
|
|
196
235
|
**No additional dependencies required.**
|
|
197
236
|
|
|
198
237
|
```typescript
|
|
199
|
-
import {
|
|
238
|
+
import { createPersSDK } from '@explorins/pers-sdk';
|
|
200
239
|
import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
|
|
201
240
|
|
|
202
|
-
const sdk =
|
|
241
|
+
const sdk = createPersSDK(new BrowserFetchClientAdapter(), {
|
|
203
242
|
environment: 'production',
|
|
204
243
|
apiProjectKey: 'your-project-key'
|
|
205
244
|
});
|
|
@@ -208,6 +247,8 @@ const sdk = new PersSDK(new BrowserFetchClientAdapter(), {
|
|
|
208
247
|
const campaigns = await sdk.campaigns.getActiveCampaigns();
|
|
209
248
|
```
|
|
210
249
|
|
|
250
|
+
> **⚠️ Browser Note:** Always use `BrowserFetchClientAdapter` for browser/React/Vue apps. Do not import `NodeHttpClientAdapter` in browser code - it contains Node.js-specific imports that will cause build errors.
|
|
251
|
+
|
|
211
252
|
### Angular
|
|
212
253
|
|
|
213
254
|
**Requires `rxjs` peer dependency.**
|
|
@@ -256,19 +297,23 @@ export class PersSDKService {
|
|
|
256
297
|
|
|
257
298
|
### Node.js
|
|
258
299
|
|
|
259
|
-
**No additional dependencies required.**
|
|
300
|
+
**No additional dependencies required.** Use the dedicated Node.js entry point:
|
|
260
301
|
|
|
261
302
|
```typescript
|
|
262
|
-
import {
|
|
263
|
-
import { NodeHttpClientAdapter } from '@explorins/pers-sdk/platform-adapters';
|
|
303
|
+
import { createNodeSDK } from '@explorins/pers-sdk/node';
|
|
264
304
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
305
|
+
// Convenience function for Node.js - auto-configures adapter
|
|
306
|
+
const sdk = createNodeSDK({
|
|
307
|
+
jwt: 'your-jwt-token',
|
|
308
|
+
projectKey: 'your-project-key',
|
|
309
|
+
environment: 'production'
|
|
268
310
|
});
|
|
269
311
|
|
|
270
|
-
//
|
|
271
|
-
const
|
|
312
|
+
// Ready to use
|
|
313
|
+
const campaigns = await sdk.campaigns.getActiveCampaigns();
|
|
314
|
+
const userClaims = await sdk.campaigns.getCampaignClaims({
|
|
315
|
+
userId: 'user-123'
|
|
316
|
+
});
|
|
272
317
|
```
|
|
273
318
|
|
|
274
319
|
### React Native
|
|
@@ -853,11 +898,11 @@ const sdk = new PersSDK(new BrowserFetchClientAdapter(), {
|
|
|
853
898
|
For better security and performance, use IndexedDB instead of LocalStorage:
|
|
854
899
|
|
|
855
900
|
```typescript
|
|
856
|
-
import {
|
|
901
|
+
import { createPersSDK } from '@explorins/pers-sdk';
|
|
857
902
|
import { IndexedDBTokenStorage } from '@explorins/pers-sdk/core';
|
|
858
903
|
import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
|
|
859
904
|
|
|
860
|
-
const sdk =
|
|
905
|
+
const sdk = createPersSDK(new BrowserFetchClientAdapter(), {
|
|
861
906
|
environment: 'production',
|
|
862
907
|
apiProjectKey: 'your-key',
|
|
863
908
|
authStorage: new IndexedDBTokenStorage() // Secure, async storage
|
|
@@ -952,10 +997,18 @@ const retryable = ErrorUtils.isRetryable(error); // Check if retryable
|
|
|
952
997
|
|
|
953
998
|
## Bundle Size
|
|
954
999
|
|
|
955
|
-
- **
|
|
956
|
-
- **
|
|
957
|
-
-
|
|
958
|
-
-
|
|
1000
|
+
- **Installed to node_modules**: ~1.9 MB unpacked (includes both ESM + CJS builds, TypeScript definitions, source maps)
|
|
1001
|
+
- **What your bundler actually includes**:
|
|
1002
|
+
- ESM build: ~450 KB (Vite, Rollup, modern Webpack)
|
|
1003
|
+
- CJS build: ~470 KB (legacy Node.js/Webpack)
|
|
1004
|
+
- Your bundler only includes ONE of these, not both
|
|
1005
|
+
- **TypeScript definitions**: ~510 KB (used by IDE/compiler, not bundled into your app)
|
|
1006
|
+
- **Source maps**: ~440 KB (used for debugging, typically excluded from production)
|
|
1007
|
+
- **With Web3 Features**: +1.5 MB additional when installing optional `@explorins/web3-ts` + `ethers` peer dependencies
|
|
1008
|
+
- **Tree-shaking**: The main `PersSDK` class includes all managers. For smaller bundles, import from domain-specific entry points (e.g., `@explorins/pers-sdk/campaign`)
|
|
1009
|
+
- **Zero bundled dependencies**: All dependencies are peer dependencies
|
|
1010
|
+
|
|
1011
|
+
**Bottom line:** Your production bundle gets ~450 KB from this SDK (ESM), not 1.9 MB. The larger size is what's stored in `node_modules`, which includes both module formats, type definitions, and development tools.
|
|
959
1012
|
|
|
960
1013
|
---
|
|
961
1014
|
|
|
@@ -1023,16 +1076,17 @@ import type {
|
|
|
1023
1076
|
### Usage Example
|
|
1024
1077
|
|
|
1025
1078
|
```typescript
|
|
1026
|
-
import {
|
|
1079
|
+
import { createPersSDK } from '@explorins/pers-sdk';
|
|
1027
1080
|
import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
|
|
1028
1081
|
import type { CampaignDTO, CampaignClaimRequestDTO } from '@explorins/pers-shared';
|
|
1029
1082
|
|
|
1030
|
-
const sdk =
|
|
1083
|
+
const sdk = createPersSDK(new BrowserFetchClientAdapter(), {
|
|
1031
1084
|
apiProjectKey: 'your-key'
|
|
1032
1085
|
});
|
|
1033
1086
|
|
|
1034
1087
|
// Type-safe campaign operations
|
|
1035
|
-
const
|
|
1088
|
+
const response = await sdk.campaigns.getActiveCampaigns();
|
|
1089
|
+
const campaigns: CampaignDTO[] = response.data;
|
|
1036
1090
|
|
|
1037
1091
|
const claimRequest: CampaignClaimRequestDTO = {
|
|
1038
1092
|
campaignId: campaigns[0].id,
|
|
@@ -7,6 +7,4 @@
|
|
|
7
7
|
export { AnalyticsApi } from './api/analytics-api';
|
|
8
8
|
export { AnalyticsService } from './services/analytics-service';
|
|
9
9
|
export * from './models';
|
|
10
|
-
export * from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
11
|
-
export * from './models';
|
|
12
10
|
//# 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
|
|
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"}
|
|
@@ -4,18 +4,9 @@
|
|
|
4
4
|
* Re-exports from @explorins/pers-shared for consistency with backend
|
|
5
5
|
* and to provide a single import source for analytics-related types.
|
|
6
6
|
*/
|
|
7
|
-
import { AnalyticsGroupByType, AnalyticsMetricType, TransactionAnalyticsRequestDTO, TransactionAnalyticsResponseDTO, TransactionAnalyticsResultItem, GroupByExpressionDTO } from '@explorins/pers-shared
|
|
7
|
+
import { AnalyticsGroupByType, AnalyticsMetricType, TransactionAnalyticsRequestDTO, TransactionAnalyticsResponseDTO, TransactionAnalyticsResultItem, GroupByExpressionDTO } from '@explorins/pers-shared';
|
|
8
8
|
export { TransactionAnalyticsRequestDTO, TransactionAnalyticsResponseDTO, TransactionAnalyticsResultItem };
|
|
9
9
|
export type TransactionAnalyticsGroupByExpression = GroupByExpressionDTO;
|
|
10
|
-
export type TransactionAnalyticsFilters = {
|
|
11
|
-
status?: string;
|
|
12
|
-
tokenType?: string;
|
|
13
|
-
triggerProcessType?: string;
|
|
14
|
-
tenantId?: string;
|
|
15
|
-
chainId?: number;
|
|
16
|
-
type?: string;
|
|
17
|
-
[key: string]: any;
|
|
18
|
-
};
|
|
19
10
|
export type TransactionAnalyticsGroupBy = AnalyticsGroupByType;
|
|
20
11
|
export type TransactionAnalyticsMetric = AnalyticsMetricType;
|
|
21
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/models/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/models/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC/B,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG,oBAAoB,CAAC;AAMzE,MAAM,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAE/D,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,CAAC"}
|
package/dist/analytics.cjs
CHANGED
|
@@ -1,34 +1,49 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Platform-Agnostic Analytics API Client
|
|
5
|
+
*
|
|
6
|
+
* Handles analytics operations using the PERS backend.
|
|
7
|
+
* Uses @explorins/pers-shared DTOs for consistency with backend.
|
|
8
|
+
*/
|
|
9
|
+
class AnalyticsApi {
|
|
10
|
+
constructor(apiClient) {
|
|
11
|
+
this.apiClient = apiClient;
|
|
12
|
+
}
|
|
13
|
+
// ==========================================
|
|
14
|
+
// ADMIN OPERATIONS
|
|
15
|
+
// ==========================================
|
|
16
|
+
/**
|
|
17
|
+
* ADMIN: Get transaction analytics with filtering and aggregation
|
|
18
|
+
*/
|
|
19
|
+
async getTransactionAnalytics(request) {
|
|
20
|
+
return this.apiClient.post('/transactions/analytics', request);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
5
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Platform-Agnostic Analytics Service
|
|
26
|
+
*
|
|
27
|
+
* Contains analytics business logic and operations that work across platforms.
|
|
28
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
29
|
+
*
|
|
30
|
+
* Focuses only on actual backend capabilities.
|
|
31
|
+
*/
|
|
32
|
+
class AnalyticsService {
|
|
33
|
+
constructor(analyticsApi) {
|
|
34
|
+
this.analyticsApi = analyticsApi;
|
|
35
|
+
}
|
|
36
|
+
// ==========================================
|
|
37
|
+
// ADMIN OPERATIONS
|
|
38
|
+
// ==========================================
|
|
39
|
+
/**
|
|
40
|
+
* ADMIN: Get transaction analytics with filtering and aggregation
|
|
41
|
+
*/
|
|
42
|
+
async getTransactionAnalytics(request) {
|
|
43
|
+
return this.analyticsApi.getTransactionAnalytics(request);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
6
46
|
|
|
7
|
-
|
|
8
|
-
exports.
|
|
9
|
-
exports.AnalyticsService = analyticsService.AnalyticsService;
|
|
10
|
-
Object.defineProperty(exports, "AccountOwnerType", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function () { return persShared.AccountOwnerType; }
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(exports, "ApiKeyType", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return persShared.ApiKeyType; }
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "MEMBERSHIP_ROLE_HIERARCHY", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () { return persShared.MEMBERSHIP_ROLE_HIERARCHY; }
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(exports, "MembershipRole", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function () { return persShared.MembershipRole; }
|
|
25
|
-
});
|
|
26
|
-
Object.defineProperty(exports, "NativeTokenTypes", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function () { return persShared.NativeTokenTypes; }
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(exports, "hasMinimumRole", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () { return persShared.hasMinimumRole; }
|
|
33
|
-
});
|
|
47
|
+
exports.AnalyticsApi = AnalyticsApi;
|
|
48
|
+
exports.AnalyticsService = AnalyticsService;
|
|
34
49
|
//# sourceMappingURL=analytics.cjs.map
|
package/dist/analytics.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.cjs","sources":["../src/analytics/api/analytics-api.ts","../src/analytics/services/analytics-service.ts"],"sourcesContent":[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;;;;;"}
|
package/dist/analytics.js
CHANGED
|
@@ -1,3 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Platform-Agnostic Analytics API Client
|
|
3
|
+
*
|
|
4
|
+
* Handles analytics operations using the PERS backend.
|
|
5
|
+
* Uses @explorins/pers-shared DTOs for consistency with backend.
|
|
6
|
+
*/
|
|
7
|
+
class AnalyticsApi {
|
|
8
|
+
constructor(apiClient) {
|
|
9
|
+
this.apiClient = apiClient;
|
|
10
|
+
}
|
|
11
|
+
// ==========================================
|
|
12
|
+
// ADMIN OPERATIONS
|
|
13
|
+
// ==========================================
|
|
14
|
+
/**
|
|
15
|
+
* ADMIN: Get transaction analytics with filtering and aggregation
|
|
16
|
+
*/
|
|
17
|
+
async getTransactionAnalytics(request) {
|
|
18
|
+
return this.apiClient.post('/transactions/analytics', request);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Platform-Agnostic Analytics Service
|
|
24
|
+
*
|
|
25
|
+
* Contains analytics business logic and operations that work across platforms.
|
|
26
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
27
|
+
*
|
|
28
|
+
* Focuses only on actual backend capabilities.
|
|
29
|
+
*/
|
|
30
|
+
class AnalyticsService {
|
|
31
|
+
constructor(analyticsApi) {
|
|
32
|
+
this.analyticsApi = analyticsApi;
|
|
33
|
+
}
|
|
34
|
+
// ==========================================
|
|
35
|
+
// ADMIN OPERATIONS
|
|
36
|
+
// ==========================================
|
|
37
|
+
/**
|
|
38
|
+
* ADMIN: Get transaction analytics with filtering and aggregation
|
|
39
|
+
*/
|
|
40
|
+
async getTransactionAnalytics(request) {
|
|
41
|
+
return this.analyticsApi.getTransactionAnalytics(request);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { AnalyticsApi, AnalyticsService };
|
|
3
46
|
//# sourceMappingURL=analytics.js.map
|
package/dist/analytics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"analytics.js","sources":["../src/analytics/api/analytics-api.ts","../src/analytics/services/analytics-service.ts"],"sourcesContent":[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;;;;"}
|
package/dist/business/index.d.ts
CHANGED
|
@@ -8,5 +8,4 @@ export { BusinessApi } from './api/business-api';
|
|
|
8
8
|
export { BusinessMembershipApi } from './api/business-membership-api';
|
|
9
9
|
export { BusinessService } from './services/business-service';
|
|
10
10
|
export { BusinessMembershipService } from './services/business-membership-service';
|
|
11
|
-
export * from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/business/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/business/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC"}
|