@explorins/pers-sdk 1.6.47 → 2.0.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.
- package/README.md +159 -23
- package/dist/api-key/api/api-key-api.d.ts +5 -2
- package/dist/api-key/api/api-key-api.d.ts.map +1 -1
- package/dist/business/api/business-api.d.ts +30 -11
- package/dist/business/api/business-api.d.ts.map +1 -1
- package/dist/business/api/business-membership-api.d.ts +24 -5
- package/dist/business/api/business-membership-api.d.ts.map +1 -1
- package/dist/business/services/business-membership-service.d.ts +9 -15
- package/dist/business/services/business-membership-service.d.ts.map +1 -1
- package/dist/business/services/business-service.d.ts +11 -7
- package/dist/business/services/business-service.d.ts.map +1 -1
- package/dist/business.cjs +101 -61
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +101 -61
- package/dist/business.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +50 -13
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/services/campaign-service.d.ts +13 -12
- package/dist/campaign/services/campaign-service.d.ts.map +1 -1
- package/dist/campaign.cjs +2 -1
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +2 -1
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/{base-token-service-BSXDwrcq.js → base-token-service-DsD6lSdq.js} +2 -48
- package/dist/chunks/base-token-service-DsD6lSdq.js.map +1 -0
- package/dist/chunks/{base-token-service-CYuqPPs0.cjs → base-token-service-_64IWVES.cjs} +2 -48
- package/dist/chunks/base-token-service-_64IWVES.cjs.map +1 -0
- package/dist/chunks/{campaign-service-D-v9ZlUB.cjs → campaign-service-Ae164xl8.cjs} +74 -46
- package/dist/chunks/campaign-service-Ae164xl8.cjs.map +1 -0
- package/dist/chunks/{campaign-service-CKwkiOLx.js → campaign-service-rlK4WeSY.js} +74 -46
- package/dist/chunks/campaign-service-rlK4WeSY.js.map +1 -0
- package/dist/chunks/{donation-service-D-xFrONi.cjs → donation-service--6cnTvWq.cjs} +9 -5
- package/dist/chunks/donation-service--6cnTvWq.cjs.map +1 -0
- package/dist/chunks/{donation-service-CyJS4DIZ.js → donation-service-xiXZ2Eto.js} +9 -5
- package/dist/chunks/donation-service-xiXZ2Eto.js.map +1 -0
- package/dist/chunks/pagination-utils-9vQ-Npkr.js +166 -0
- package/dist/chunks/pagination-utils-9vQ-Npkr.js.map +1 -0
- package/dist/chunks/pagination-utils-B2jRHMSO.cjs +173 -0
- package/dist/chunks/pagination-utils-B2jRHMSO.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-DULFjOW2.cjs → pers-sdk-B_i-bGwq.cjs} +249 -235
- package/dist/chunks/pers-sdk-B_i-bGwq.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-VmeBqUEP.js → pers-sdk-CyGgL8Dg.js} +243 -229
- package/dist/chunks/pers-sdk-CyGgL8Dg.js.map +1 -0
- package/dist/chunks/{token-service-CpVwC5Eb.js → token-service-Bfj6C0yz.js} +62 -30
- package/dist/chunks/token-service-Bfj6C0yz.js.map +1 -0
- package/dist/chunks/{token-service-BWScn8Qa.cjs → token-service-BlbXrxnS.cjs} +62 -30
- package/dist/chunks/token-service-BlbXrxnS.cjs.map +1 -0
- package/dist/chunks/{transaction-service-CXjTHCFu.cjs → transaction-service-BcJfyCcq.cjs} +68 -31
- package/dist/chunks/transaction-service-BcJfyCcq.cjs.map +1 -0
- package/dist/chunks/{transaction-service-B7h_4Hg3.js → transaction-service-CnOD3scu.js} +68 -31
- package/dist/chunks/transaction-service-CnOD3scu.js.map +1 -0
- package/dist/chunks/{user-service-doT5vsBD.js → user-service-BGP3SZpk.js} +24 -12
- package/dist/chunks/user-service-BGP3SZpk.js.map +1 -0
- package/dist/chunks/{user-service-B89wBOV1.cjs → user-service-gITOx4qj.cjs} +24 -12
- package/dist/chunks/user-service-gITOx4qj.cjs.map +1 -0
- package/dist/core.cjs +10 -9
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +10 -9
- package/dist/core.js.map +1 -1
- package/dist/donation/api/donation-api.d.ts +3 -1
- package/dist/donation/api/donation-api.d.ts.map +1 -1
- package/dist/donation/services/donation-service.d.ts +3 -1
- package/dist/donation/services/donation-service.d.ts.map +1 -1
- package/dist/donation.cjs +2 -1
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +2 -1
- package/dist/donation.js.map +1 -1
- package/dist/index.cjs +23 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/managers/analytics-manager.d.ts +9 -9
- package/dist/managers/api-key-manager.d.ts +8 -6
- package/dist/managers/api-key-manager.d.ts.map +1 -1
- package/dist/managers/business-manager.d.ts +9 -7
- package/dist/managers/business-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +21 -20
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/donation-manager.d.ts +4 -2
- package/dist/managers/donation-manager.d.ts.map +1 -1
- package/dist/managers/file-manager.d.ts +2 -2
- package/dist/managers/purchase-manager.d.ts +26 -24
- package/dist/managers/purchase-manager.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +103 -91
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/tenant-manager.d.ts +5 -2
- package/dist/managers/tenant-manager.d.ts.map +1 -1
- package/dist/managers/token-manager.d.ts +6 -4
- package/dist/managers/token-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +18 -17
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/user-manager.d.ts +4 -2
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/managers/user-status-manager.d.ts +6 -4
- package/dist/managers/user-status-manager.d.ts.map +1 -1
- package/dist/managers/web3-manager.d.ts.map +1 -1
- package/dist/package.json +1 -1
- package/dist/payment/api/payment-api.d.ts +15 -18
- package/dist/payment/api/payment-api.d.ts.map +1 -1
- package/dist/payment/services/payment-service.d.ts +6 -4
- package/dist/payment/services/payment-service.d.ts.map +1 -1
- package/dist/payment.cjs +219 -15
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +209 -1
- package/dist/payment.js.map +1 -1
- package/dist/redemption/api/redemption-api.d.ts +22 -11
- package/dist/redemption/api/redemption-api.d.ts.map +1 -1
- package/dist/redemption/services/redemption-service.d.ts +11 -9
- package/dist/redemption/services/redemption-service.d.ts.map +1 -1
- package/dist/redemption.cjs +347 -15
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +337 -1
- package/dist/redemption.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/utils/pagination-utils.d.ts +184 -0
- package/dist/shared/utils/pagination-utils.d.ts.map +1 -0
- package/dist/tenant/api/tenant-api.d.ts +6 -1
- package/dist/tenant/api/tenant-api.d.ts.map +1 -1
- package/dist/tenant/services/tenant-service.d.ts +5 -2
- package/dist/tenant/services/tenant-service.d.ts.map +1 -1
- package/dist/tenant.cjs +171 -15
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +161 -1
- package/dist/tenant.js.map +1 -1
- package/dist/token/api/token-api.d.ts +24 -7
- package/dist/token/api/token-api.d.ts.map +1 -1
- package/dist/token/base/base-token-service.d.ts +5 -4
- package/dist/token/base/base-token-service.d.ts.map +1 -1
- package/dist/token/services/token-service.d.ts +10 -8
- package/dist/token/services/token-service.d.ts.map +1 -1
- package/dist/token/token-sdk.d.ts +5 -34
- package/dist/token/token-sdk.d.ts.map +1 -1
- package/dist/token.cjs +3 -2
- package/dist/token.cjs.map +1 -1
- package/dist/token.js +3 -2
- package/dist/token.js.map +1 -1
- package/dist/transaction/api/transaction-api.d.ts +48 -6
- package/dist/transaction/api/transaction-api.d.ts.map +1 -1
- package/dist/transaction/services/transaction-service.d.ts +12 -4
- package/dist/transaction/services/transaction-service.d.ts.map +1 -1
- package/dist/transaction.cjs +2 -1
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.js +2 -1
- package/dist/transaction.js.map +1 -1
- package/dist/user/api/user-api.d.ts +4 -2
- package/dist/user/api/user-api.d.ts.map +1 -1
- package/dist/user/services/user-service.d.ts +4 -2
- package/dist/user/services/user-service.d.ts.map +1 -1
- package/dist/user-status/api/user-status-api.d.ts +6 -4
- package/dist/user-status/api/user-status-api.d.ts.map +1 -1
- package/dist/user-status/index.d.ts +4 -2
- package/dist/user-status/index.d.ts.map +1 -1
- package/dist/user-status/services/user-status-service.d.ts +4 -2
- package/dist/user-status/services/user-status-service.d.ts.map +1 -1
- package/dist/user-status.cjs +22 -14
- package/dist/user-status.cjs.map +1 -1
- package/dist/user-status.js +22 -14
- package/dist/user-status.js.map +1 -1
- package/dist/user.cjs +2 -1
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +2 -1
- package/dist/user.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/base-token-service-BSXDwrcq.js.map +0 -1
- package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +0 -1
- package/dist/chunks/campaign-service-CKwkiOLx.js.map +0 -1
- package/dist/chunks/campaign-service-D-v9ZlUB.cjs.map +0 -1
- package/dist/chunks/donation-service-CyJS4DIZ.js.map +0 -1
- package/dist/chunks/donation-service-D-xFrONi.cjs.map +0 -1
- package/dist/chunks/payment-service-B4qx0qiE.cjs +0 -220
- package/dist/chunks/payment-service-B4qx0qiE.cjs.map +0 -1
- package/dist/chunks/payment-service-DfCBFosx.js +0 -217
- package/dist/chunks/payment-service-DfCBFosx.js.map +0 -1
- package/dist/chunks/pers-sdk-DULFjOW2.cjs.map +0 -1
- package/dist/chunks/pers-sdk-VmeBqUEP.js.map +0 -1
- package/dist/chunks/redemption-service-7qbeQxEM.cjs +0 -330
- package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +0 -1
- package/dist/chunks/redemption-service-BT0J5Iy7.js +0 -327
- package/dist/chunks/redemption-service-BT0J5Iy7.js.map +0 -1
- package/dist/chunks/tenant-service-DME24vr1.cjs +0 -157
- package/dist/chunks/tenant-service-DME24vr1.cjs.map +0 -1
- package/dist/chunks/tenant-service-DxtHAlaa.js +0 -154
- package/dist/chunks/tenant-service-DxtHAlaa.js.map +0 -1
- package/dist/chunks/token-service-BWScn8Qa.cjs.map +0 -1
- package/dist/chunks/token-service-CpVwC5Eb.js.map +0 -1
- package/dist/chunks/transaction-service-B7h_4Hg3.js.map +0 -1
- package/dist/chunks/transaction-service-CXjTHCFu.cjs.map +0 -1
- package/dist/chunks/user-service-B89wBOV1.cjs.map +0 -1
- package/dist/chunks/user-service-doT5vsBD.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,29 +9,63 @@ Platform-agnostic TypeScript SDK for PERS (Phygital Experience Rewards System) -
|
|
|
9
9
|
|
|
10
10
|
## Table of Contents
|
|
11
11
|
|
|
12
|
-
- [
|
|
13
|
-
- [
|
|
14
|
-
- [
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
17
|
-
- [
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
20
|
-
- [
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- [
|
|
28
|
-
- [
|
|
29
|
-
- [
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
34
|
-
- [
|
|
12
|
+
- [@explorins/pers-sdk](#explorinspers-sdk)
|
|
13
|
+
- [Table of Contents](#table-of-contents)
|
|
14
|
+
- [Overview](#overview)
|
|
15
|
+
- [Dependencies](#dependencies)
|
|
16
|
+
- [Required Peer Dependencies](#required-peer-dependencies)
|
|
17
|
+
- [Optional Dependencies (Platform-Specific)](#optional-dependencies-platform-specific)
|
|
18
|
+
- [Direct Dependencies](#direct-dependencies)
|
|
19
|
+
- [Installation](#installation)
|
|
20
|
+
- [Quick Start](#quick-start)
|
|
21
|
+
- [Minimum Viable Example](#minimum-viable-example)
|
|
22
|
+
- [Complete Example](#complete-example)
|
|
23
|
+
- [Platform Integration](#platform-integration)
|
|
24
|
+
- [Browser / React / Vue](#browser--react--vue)
|
|
25
|
+
- [Angular](#angular)
|
|
26
|
+
- [Node.js](#nodejs)
|
|
27
|
+
- [React Native](#react-native)
|
|
28
|
+
- [Architecture](#architecture)
|
|
29
|
+
- [Available Managers Reference](#available-managers-reference)
|
|
30
|
+
- [Core Features](#core-features)
|
|
31
|
+
- [Event System](#event-system)
|
|
32
|
+
- [Event Domains](#event-domains)
|
|
33
|
+
- [Event Types](#event-types)
|
|
34
|
+
- [Async Handler Support](#async-handler-support)
|
|
35
|
+
- [Authentication](#authentication)
|
|
36
|
+
- [Business Management](#business-management)
|
|
37
|
+
- [Campaign System](#campaign-system)
|
|
38
|
+
- [Token Management](#token-management)
|
|
39
|
+
- [User Token Balances (On-Chain)](#user-token-balances-on-chain)
|
|
40
|
+
- [Points Balance (ERC-20)](#points-balance-erc-20)
|
|
41
|
+
- [Stamps Collection (ERC-721 / ERC-1155)](#stamps-collection-erc-721--erc-1155)
|
|
42
|
+
- [Complete Example: Load All User Balances](#complete-example-load-all-user-balances)
|
|
43
|
+
- [Transaction Request Building](#transaction-request-building)
|
|
44
|
+
- [POS Transaction Flow](#pos-transaction-flow)
|
|
45
|
+
- [Configuration](#configuration)
|
|
46
|
+
- [API Project Key (Required)](#api-project-key-required)
|
|
47
|
+
- [Full Configuration Example](#full-configuration-example)
|
|
48
|
+
- [Configuration Options Reference](#configuration-options-reference)
|
|
49
|
+
- [Advanced Authentication](#advanced-authentication)
|
|
50
|
+
- [Using IndexedDB Storage (Recommended)](#using-indexeddb-storage-recommended)
|
|
51
|
+
- [Custom Storage Implementation](#custom-storage-implementation)
|
|
52
|
+
- [Error Handling](#error-handling)
|
|
53
|
+
- [Error Types Reference](#error-types-reference)
|
|
54
|
+
- [Bundle Size](#bundle-size)
|
|
55
|
+
- [TypeScript Types](#typescript-types)
|
|
56
|
+
- [Key Interfaces Reference](#key-interfaces-reference)
|
|
57
|
+
- [Usage Example](#usage-example)
|
|
58
|
+
- [Migration Guide](#migration-guide)
|
|
59
|
+
- [v2.0.0 Breaking Changes - Pagination](#v200-breaking-changes---pagination)
|
|
60
|
+
- [What Changed](#what-changed)
|
|
61
|
+
- [Affected Methods](#affected-methods)
|
|
62
|
+
- [PaginatedResponseDTO Structure](#paginatedresponsedto-structure)
|
|
63
|
+
- [Migration Examples](#migration-examples)
|
|
64
|
+
- [Quick Fix for Existing Code](#quick-fix-for-existing-code)
|
|
65
|
+
- [Benefits of Pagination](#benefits-of-pagination)
|
|
66
|
+
- [Documentation](#documentation)
|
|
67
|
+
- [Related Packages](#related-packages)
|
|
68
|
+
- [License](#license)
|
|
35
69
|
|
|
36
70
|
---
|
|
37
71
|
|
|
@@ -1010,6 +1044,108 @@ const claim = await sdk.campaigns.claimCampaign(claimRequest);
|
|
|
1010
1044
|
|
|
1011
1045
|
---
|
|
1012
1046
|
|
|
1047
|
+
## Migration Guide
|
|
1048
|
+
|
|
1049
|
+
### v2.0.0 Breaking Changes - Pagination
|
|
1050
|
+
|
|
1051
|
+
**Version 2.0.0 introduces standardized pagination** across all list endpoints. Previously, endpoints returned raw arrays. Now they return `PaginatedResponseDTO<T>` with pagination metadata.
|
|
1052
|
+
|
|
1053
|
+
#### What Changed
|
|
1054
|
+
|
|
1055
|
+
All methods returning lists now return paginated responses:
|
|
1056
|
+
|
|
1057
|
+
```typescript
|
|
1058
|
+
// ❌ OLD (v1.x) - Direct array
|
|
1059
|
+
const businesses: BusinessDTO[] = await sdk.businesses.getActiveBusinesses();
|
|
1060
|
+
|
|
1061
|
+
// ✅ NEW (v2.x) - Paginated response
|
|
1062
|
+
const response: PaginatedResponseDTO<BusinessDTO> = await sdk.businesses.getActiveBusinesses();
|
|
1063
|
+
const businesses: BusinessDTO[] = response.data;
|
|
1064
|
+
```
|
|
1065
|
+
|
|
1066
|
+
#### Affected Methods
|
|
1067
|
+
|
|
1068
|
+
| Manager | Method | Return Type |
|
|
1069
|
+
|---------|--------|-------------|
|
|
1070
|
+
| `businesses` | `getActiveBusinesses()` | `PaginatedResponseDTO<BusinessDTO>` |
|
|
1071
|
+
| `businesses` | `getBusinessTypes()` | `PaginatedResponseDTO<BusinessTypeDTO>` |
|
|
1072
|
+
| `campaigns` | `getActiveCampaigns()` | `PaginatedResponseDTO<CampaignDTO>` |
|
|
1073
|
+
| `campaigns` | `getUserClaims()` | `PaginatedResponseDTO<CampaignClaimDTO>` |
|
|
1074
|
+
| `tokens` | `getTokens()` | `PaginatedResponseDTO<TokenDTO>` |
|
|
1075
|
+
| `tokens` | `getRewardTokens()` | `PaginatedResponseDTO<TokenDTO>` |
|
|
1076
|
+
| `tokens` | `getStatusTokens()` | `PaginatedResponseDTO<TokenDTO>` |
|
|
1077
|
+
| `redemptions` | `getRedemptions()` | `PaginatedResponseDTO<RedemptionDTO>` |
|
|
1078
|
+
| `redemptions` | `getUserRedemptions()` | `PaginatedResponseDTO<RedemptionDTO>` |
|
|
1079
|
+
| `transactions` | `getTransactionHistory()` | `PaginatedResponseDTO<TransactionDTO>` |
|
|
1080
|
+
| `purchases` | `getAllUserPurchases()` | `PaginatedResponseDTO<PurchaseDTO>` |
|
|
1081
|
+
| `purchases` | `getActivePurchaseTokens()` | `PaginatedResponseDTO<PurchaseTokenDTO>` |
|
|
1082
|
+
| `donations` | `getDonationTypes()` | `PaginatedResponseDTO<DonationTypeDTO>` |
|
|
1083
|
+
|
|
1084
|
+
#### PaginatedResponseDTO Structure
|
|
1085
|
+
|
|
1086
|
+
```typescript
|
|
1087
|
+
import type { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
1088
|
+
|
|
1089
|
+
interface PaginatedResponseDTO<T> {
|
|
1090
|
+
data: T[]; // Array of results
|
|
1091
|
+
pagination: {
|
|
1092
|
+
currentPage: number; // Current page number (1-indexed)
|
|
1093
|
+
pageSize: number; // Items per page
|
|
1094
|
+
totalItems: number; // Total number of items across all pages
|
|
1095
|
+
totalPages: number; // Total number of pages
|
|
1096
|
+
};
|
|
1097
|
+
}
|
|
1098
|
+
```
|
|
1099
|
+
|
|
1100
|
+
#### Migration Examples
|
|
1101
|
+
|
|
1102
|
+
**Before (v1.x):**
|
|
1103
|
+
```typescript
|
|
1104
|
+
const businesses = await sdk.businesses.getActiveBusinesses();
|
|
1105
|
+
console.log('Business count:', businesses.length);
|
|
1106
|
+
businesses.forEach(b => console.log(b.name));
|
|
1107
|
+
```
|
|
1108
|
+
|
|
1109
|
+
**After (v2.x):**
|
|
1110
|
+
```typescript
|
|
1111
|
+
const response = await sdk.businesses.getActiveBusinesses();
|
|
1112
|
+
console.log('Business count:', response.data.length);
|
|
1113
|
+
console.log('Total businesses:', response.pagination.totalItems);
|
|
1114
|
+
response.data.forEach(b => console.log(b.name));
|
|
1115
|
+
```
|
|
1116
|
+
|
|
1117
|
+
**With Pagination Parameters:**
|
|
1118
|
+
```typescript
|
|
1119
|
+
// Fetch page 2 with 20 items per page
|
|
1120
|
+
const response = await sdk.businesses.getActiveBusinesses({
|
|
1121
|
+
page: 2,
|
|
1122
|
+
pageSize: 20
|
|
1123
|
+
});
|
|
1124
|
+
|
|
1125
|
+
console.log(`Page ${response.pagination.currentPage} of ${response.pagination.totalPages}`);
|
|
1126
|
+
console.log(`Showing ${response.data.length} businesses`);
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
#### Quick Fix for Existing Code
|
|
1130
|
+
|
|
1131
|
+
If you want minimal code changes, extract `.data` immediately:
|
|
1132
|
+
|
|
1133
|
+
```typescript
|
|
1134
|
+
// Quick adaptation
|
|
1135
|
+
const businesses = (await sdk.businesses.getActiveBusinesses()).data;
|
|
1136
|
+
const campaigns = (await sdk.campaigns.getActiveCampaigns()).data;
|
|
1137
|
+
const tokens = (await sdk.tokens.getTokens()).data;
|
|
1138
|
+
```
|
|
1139
|
+
|
|
1140
|
+
#### Benefits of Pagination
|
|
1141
|
+
|
|
1142
|
+
- **Performance**: Load only what you need, not entire datasets
|
|
1143
|
+
- **Consistency**: All list endpoints follow the same pattern
|
|
1144
|
+
- **Metadata**: Access total counts without loading all items
|
|
1145
|
+
- **UX**: Build proper pagination UI components
|
|
1146
|
+
|
|
1147
|
+
---
|
|
1148
|
+
|
|
1013
1149
|
## Documentation
|
|
1014
1150
|
|
|
1015
1151
|
- **Getting Started Guide**: [https://docs.pers.ninja/1.intro](https://docs.pers.ninja/1.intro)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PersApiClient } from '../../core/pers-api-client';
|
|
2
2
|
import { ApiKeyDTO, ApiKeyCreatedDTO, ApiKeyRequestDTO, ApiKeyVerificationDTO, IntegrationApiKeyType } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
3
|
+
import { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
4
|
+
import { PaginationOptions } from '../../shared';
|
|
3
5
|
/**
|
|
4
6
|
* Platform-Agnostic API Key API Client
|
|
5
7
|
*
|
|
@@ -15,9 +17,10 @@ export declare class ApiKeyApi {
|
|
|
15
17
|
*
|
|
16
18
|
* @param type Optional filter by integration API key type (database-stored tokens that can be revoked)
|
|
17
19
|
* @param includeRevoked Include revoked API keys in results (default: false)
|
|
18
|
-
* @
|
|
20
|
+
* @param options Pagination options (page, limit, sortBy, sortOrder)
|
|
21
|
+
* @returns Paginated response with API keys for the current tenant
|
|
19
22
|
*/
|
|
20
|
-
getTenantApiKeys(type?: IntegrationApiKeyType, includeRevoked?: boolean): Promise<ApiKeyDTO
|
|
23
|
+
getTenantApiKeys(type?: IntegrationApiKeyType, includeRevoked?: boolean, options?: PaginationOptions): Promise<PaginatedResponseDTO<ApiKeyDTO>>;
|
|
21
24
|
/**
|
|
22
25
|
* ADMIN: Create new API key
|
|
23
26
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-api.d.ts","sourceRoot":"","sources":["../../../src/api-key/api/api-key-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"api-key-api.d.ts","sourceRoot":"","sources":["../../../src/api-key/api/api-key-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAA6D,MAAM,cAAc,CAAC;AAE5G;;;;;GAKG;AACH,qBAAa,SAAS;IAGR,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAEpB,SAAS,EAAE,aAAa;IAE5C;;;;;;;OAOG;IACG,gBAAgB,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,cAAc,GAAE,OAAe,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAS5J;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIpE;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAGrE"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PersApiClient } from '../../core/pers-api-client';
|
|
2
2
|
import { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessCreateRequestDTO, BusinessToggleActiveRequestDTO, BusinessApiKeyDTO, BusinessTokenBalancesDTO, BusinessTypeCreateRequestDTO } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
3
|
+
import { PaginationOptions } from '../../shared/utils/pagination-utils';
|
|
4
|
+
import { PaginatedResponseDTO, SortOrder } from '@explorins/pers-shared';
|
|
3
5
|
/**
|
|
4
6
|
* Platform-Agnostic Business API Client
|
|
5
7
|
*
|
|
@@ -17,8 +19,11 @@ export declare class BusinessApi {
|
|
|
17
19
|
*
|
|
18
20
|
* Endpoint: GET /business-types
|
|
19
21
|
* Auth: @ApiSecurity('projectKey')
|
|
22
|
+
*
|
|
23
|
+
* @param options Pagination options (page, limit, sortBy, sortOrder)
|
|
24
|
+
* @returns Paginated response with business types
|
|
20
25
|
*/
|
|
21
|
-
getBusinessTypes(): Promise<BusinessTypeDTO
|
|
26
|
+
getBusinessTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessTypeDTO>>;
|
|
22
27
|
/**
|
|
23
28
|
* ADMIN: Create business type
|
|
24
29
|
*
|
|
@@ -48,25 +53,39 @@ export declare class BusinessApi {
|
|
|
48
53
|
*/
|
|
49
54
|
getCurrentBusiness(): Promise<BusinessTokenBalancesDTO>;
|
|
50
55
|
/**
|
|
51
|
-
* Get all businesses with role-based filtering
|
|
56
|
+
* Get all businesses with role-based filtering and pagination
|
|
52
57
|
*
|
|
53
|
-
* Endpoint: GET /businesses?active={boolean}&sanitize={mode}
|
|
58
|
+
* Endpoint: GET /businesses?active={boolean}&sanitize={mode}&page={number}&limit={number}
|
|
54
59
|
* Auth: @ApiSecurity('projectKey') (enhanced with role-based filtering)
|
|
60
|
+
*
|
|
55
61
|
* Note:
|
|
56
62
|
* - Project API Key users: Active businesses only (automatically filtered)
|
|
57
63
|
* - Admin JWT users: Full access with all query parameters
|
|
64
|
+
*
|
|
65
|
+
* @param options - Filter and pagination options
|
|
66
|
+
* @returns Paginated list of businesses
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Get first page of active businesses
|
|
71
|
+
* const page1 = await businessApi.getBusinesses({ active: true });
|
|
72
|
+
*
|
|
73
|
+
* // Get all businesses (admin only) with pagination
|
|
74
|
+
* const page2 = await businessApi.getBusinesses({
|
|
75
|
+
* page: 2,
|
|
76
|
+
* limit: 25,
|
|
77
|
+
* sanitize: 'soft'
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
58
80
|
*/
|
|
59
81
|
getBusinesses(options?: {
|
|
60
82
|
active?: boolean;
|
|
61
83
|
sanitize?: 'soft' | 'hard';
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* Auth: @ApiSecurity('projectKey')
|
|
68
|
-
*/
|
|
69
|
-
getActiveBusinesses(): Promise<BusinessDTO[]>;
|
|
84
|
+
page?: number;
|
|
85
|
+
limit?: number;
|
|
86
|
+
sortBy?: string;
|
|
87
|
+
sortOrder?: SortOrder;
|
|
88
|
+
}): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
70
89
|
/**
|
|
71
90
|
* Get business by ID
|
|
72
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-api.d.ts","sourceRoot":"","sources":["../../../src/business/api/business-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"business-api.d.ts","sourceRoot":"","sources":["../../../src/business/api/business-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAA6D,MAAM,qCAAqC,CAAC;AACnI,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEzE;;;;;;GAMG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;IAMzD;;;;;;;;OAQG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAMnG;;;;;OAKG;IACG,kBAAkB,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC;IAIrF;;;;;OAKG;IACG,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxE;;;;;OAKG;IACG,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQtD;;;;;OAKG;IACG,kBAAkB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAI7D;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAkB9C;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D;;;;;OAKG;IACG,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQxE;;;;;;OAMG;IACG,cAAc,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,CAAC;IAI1G;;OAEG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,CAAC;IAQ7G;;;;;OAKG;IACG,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIlE;;;;;OAKG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9F;;;;;OAKG;IACG,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;CAiBlG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PersApiClient } from '../../core/pers-api-client';
|
|
2
2
|
import { BusinessMembershipDTO, AddBusinessMemberRequestDTO, UpdateBusinessMembershipRequestDTO, MembershipRole } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
3
|
+
import { PaginatedResponseDTO, SortOrder } from '@explorins/pers-shared';
|
|
3
4
|
/**
|
|
4
5
|
* Business Membership API Client
|
|
5
6
|
*
|
|
@@ -40,24 +41,42 @@ export declare class BusinessMembershipApi {
|
|
|
40
41
|
*/
|
|
41
42
|
private getMemberPath;
|
|
42
43
|
/**
|
|
43
|
-
* List all members of a business
|
|
44
|
+
* List all members of a business with pagination
|
|
44
45
|
*
|
|
45
46
|
* Endpoint: GET /businesses/:businessId/members
|
|
46
47
|
* Min Role: VIEWER (any member can view)
|
|
47
48
|
*
|
|
48
49
|
* @param businessId - The business UUID
|
|
49
|
-
* @
|
|
50
|
+
* @param options - Pagination and filter options
|
|
51
|
+
* @returns Paginated array of business memberships with user and role details
|
|
50
52
|
*
|
|
51
53
|
* @throws {AuthenticationError} 401 - Not authenticated
|
|
52
54
|
* @throws {PersApiError} 403 - businessId in path doesn't match JWT's business
|
|
53
55
|
*
|
|
54
56
|
* @example
|
|
55
57
|
* ```typescript
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
+
* // Get first page of members
|
|
59
|
+
* const page1 = await membershipApi.getMembers('business-123');
|
|
60
|
+
* page1.data.forEach(m => console.log(`${m.userId}: ${m.role}`));
|
|
61
|
+
*
|
|
62
|
+
* // Filter by role
|
|
63
|
+
* const admins = await membershipApi.getMembers('business-123', {
|
|
64
|
+
* role: MembershipRole.ADMIN,
|
|
65
|
+
* page: 1,
|
|
66
|
+
* limit: 50
|
|
67
|
+
* });
|
|
68
|
+
*
|
|
69
|
+
* // Paginate through all members
|
|
70
|
+
* const page2 = await membershipApi.getMembers('business-123', { page: 2 });
|
|
58
71
|
* ```
|
|
59
72
|
*/
|
|
60
|
-
getMembers(businessId: string
|
|
73
|
+
getMembers(businessId: string, options?: {
|
|
74
|
+
page?: number;
|
|
75
|
+
limit?: number;
|
|
76
|
+
role?: MembershipRole;
|
|
77
|
+
sortBy?: string;
|
|
78
|
+
sortOrder?: SortOrder;
|
|
79
|
+
}): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
|
|
61
80
|
/**
|
|
62
81
|
* Add a member to a business
|
|
63
82
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-membership-api.d.ts","sourceRoot":"","sources":["../../../src/business/api/business-membership-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,kCAAkC,EAClC,cAAc,EACf,MAAM,oDAAoD,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB
|
|
1
|
+
{"version":3,"file":"business-membership-api.d.ts","sourceRoot":"","sources":["../../../src/business/api/business-membership-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,kCAAkC,EAClC,cAAc,EACf,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,cAAc,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,GACA,OAAO,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAkBvD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;IAOjC;;;;;;;;;;;;;;;;;;OAkBG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,qBAAqB,CAAC;IAQjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,qBAAqB,CAAC;IAOjC;;;;;;;;;;;;;;;;;;OAkBG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,qBAAqB,CAAC;IAQjC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CAKjC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
1
2
|
import { BusinessMembershipApi } from '../api/business-membership-api';
|
|
2
3
|
import { BusinessMembershipDTO, MembershipRole } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
|
+
import { PaginationOptions } from '../../shared/utils/pagination-utils';
|
|
3
5
|
/**
|
|
4
6
|
* Business Membership Service
|
|
5
7
|
*
|
|
@@ -24,26 +26,18 @@ export declare class BusinessMembershipService {
|
|
|
24
26
|
private membershipApi;
|
|
25
27
|
constructor(membershipApi: BusinessMembershipApi);
|
|
26
28
|
/**
|
|
27
|
-
* Get all members of a business
|
|
29
|
+
* Get all members of a business with pagination
|
|
28
30
|
*
|
|
29
31
|
* @param businessId - The business UUID
|
|
30
|
-
* @
|
|
32
|
+
* @param options - Pagination options
|
|
33
|
+
* @returns Paginated response with business memberships
|
|
31
34
|
*/
|
|
32
|
-
getMembers(businessId: string): Promise<BusinessMembershipDTO
|
|
35
|
+
getMembers(businessId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
|
|
33
36
|
/**
|
|
34
|
-
* Get members filtered by role
|
|
35
|
-
*
|
|
36
|
-
* @param businessId - The business UUID
|
|
37
|
-
* @param role - The role to filter by
|
|
38
|
-
* @returns Array of memberships with the specified role
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```typescript
|
|
42
|
-
* const owners = await service.getMembersByRole('biz-123', MembershipRole.OWNER);
|
|
43
|
-
* const adminsAndAbove = await service.getMembersWithMinRole('biz-123', MembershipRole.ADMIN);
|
|
44
|
-
* ```
|
|
37
|
+
* Get members filtered by role (client-side filtering)
|
|
38
|
+
* @deprecated Consider server-side role filtering for better performance
|
|
45
39
|
*/
|
|
46
|
-
getMembersByRole(businessId: string, role: MembershipRole): Promise<BusinessMembershipDTO
|
|
40
|
+
getMembersByRole(businessId: string, role: MembershipRole, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
|
|
47
41
|
/**
|
|
48
42
|
* Get members with at least a minimum role level
|
|
49
43
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-membership-service.d.ts","sourceRoot":"","sources":["../../../src/business/services/business-membership-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,cAAc,EAEf,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"business-membership-service.d.ts","sourceRoot":"","sources":["../../../src/business/services/business-membership-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,cAAc,EAEf,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,yBAAyB;IACxB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,qBAAqB;IAMxD;;;;;;OAMG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAIvH;;;OAGG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAavD;;;;;;;;;;;;;;OAcG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAKnC;;;;;;OAMG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAK7C;;;;;;;;;;;OAWG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAuB1C;;;;;;;OAOG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,qBAAqB,CAAC;IAIjC;;;;;;;OAOG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,qBAAqB,CAAC;IAIjC;;;;;;OAMG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIhC;;;;;;;;OAQG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAejC;;;;;;;;;;OAUG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAmBjC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO;IAIpD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO;IAItD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO;IAIpD;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO;IAIvD;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG;QAC3C,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,cAAc,EAAE,OAAO,CAAC;QACxB,iBAAiB,EAAE,OAAO,CAAC;KAC5B;IASD;;;;;;;;;OASG;IACH,aAAa,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO;CASjF"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
1
2
|
import { BusinessApi } from '../api/business-api';
|
|
2
3
|
import { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessToggleActiveRequestDTO, BusinessApiKeyDTO, BusinessTokenBalancesDTO } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
|
+
import { PaginationOptions } from '../../shared/utils/pagination-utils';
|
|
3
5
|
/**
|
|
4
6
|
* Platform-Agnostic Business Service
|
|
5
7
|
*
|
|
@@ -12,13 +14,14 @@ export declare class BusinessService {
|
|
|
12
14
|
private businessApi;
|
|
13
15
|
constructor(businessApi: BusinessApi);
|
|
14
16
|
/**
|
|
15
|
-
* Get all active businesses
|
|
17
|
+
* Get all active businesses with pagination
|
|
18
|
+
* @deprecated Use getBusinesses({ active: true }) for more control
|
|
16
19
|
*/
|
|
17
|
-
getActiveBusinesses(): Promise<BusinessDTO
|
|
20
|
+
getActiveBusinesses(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
18
21
|
/**
|
|
19
|
-
* Get all business types
|
|
22
|
+
* Get all business types with pagination
|
|
20
23
|
*/
|
|
21
|
-
getBusinessTypes(): Promise<BusinessTypeDTO
|
|
24
|
+
getBusinessTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessTypeDTO>>;
|
|
22
25
|
/**
|
|
23
26
|
* Get business by ID
|
|
24
27
|
*/
|
|
@@ -29,12 +32,13 @@ export declare class BusinessService {
|
|
|
29
32
|
getBusinessByAccount(accountAddress: string): Promise<BusinessDTO>;
|
|
30
33
|
/**
|
|
31
34
|
* Get businesses by type (client-side filtering)
|
|
35
|
+
* @deprecated Consider implementing server-side filtering for better performance
|
|
32
36
|
*/
|
|
33
|
-
getBusinessesByType(typeId: string): Promise<BusinessDTO
|
|
37
|
+
getBusinessesByType(typeId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
34
38
|
/**
|
|
35
|
-
* ADMIN: Get all businesses (active and inactive)
|
|
39
|
+
* ADMIN: Get all businesses with pagination (active and inactive)
|
|
36
40
|
*/
|
|
37
|
-
getBusinesses(): Promise<BusinessDTO
|
|
41
|
+
getBusinesses(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
|
|
38
42
|
/**
|
|
39
43
|
* ADMIN: Create business by display name
|
|
40
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business-service.d.ts","sourceRoot":"","sources":["../../../src/business/services/business-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"business-service.d.ts","sourceRoot":"","sources":["../../../src/business/services/business-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE;;;;;;;GAOG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE5C;;;OAGG;IACG,mBAAmB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAIlG;;OAEG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAInG;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D;;OAEG;IACG,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE;;;OAGG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAmBlH;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAI5F;;OAEG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,CAAC;IAI7G;;OAEG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9F;;OAEG;IACG,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;CAGlG"}
|