@explorins/pers-sdk 1.3.15 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +351 -81
  2. package/dist/chunks/base-token-service-D0KANDgM.js +139 -0
  3. package/dist/chunks/base-token-service-D0KANDgM.js.map +1 -0
  4. package/dist/chunks/base-token-service-zNfPjHRx.cjs +141 -0
  5. package/dist/chunks/base-token-service-zNfPjHRx.cjs.map +1 -0
  6. package/dist/chunks/{pers-sdk-DiwCwBiC.cjs → pers-sdk-CI2YXKb_.cjs} +1335 -50
  7. package/dist/chunks/pers-sdk-CI2YXKb_.cjs.map +1 -0
  8. package/dist/chunks/{pers-sdk-Rc8YKyNc.js → pers-sdk-CVSAFBLh.js} +1325 -51
  9. package/dist/chunks/pers-sdk-CVSAFBLh.js.map +1 -0
  10. package/dist/chunks/{base-token-service-BA81_Ouq.js → token-sdk-BW4kkJb3.js} +2 -137
  11. package/dist/chunks/token-sdk-BW4kkJb3.js.map +1 -0
  12. package/dist/chunks/{base-token-service-BQ6uFoki.cjs → token-sdk-CiAbOb6c.cjs} +1 -137
  13. package/dist/chunks/token-sdk-CiAbOb6c.cjs.map +1 -0
  14. package/dist/core/index.d.ts +2 -0
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core.cjs +22 -1
  17. package/dist/core.cjs.map +1 -1
  18. package/dist/core.js +11 -1
  19. package/dist/core.js.map +1 -1
  20. package/dist/index.cjs +21 -5
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.ts +4 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/legacy-pers-sdk.d.ts +79 -0
  27. package/dist/legacy-pers-sdk.d.ts.map +1 -0
  28. package/dist/managers/analytics-manager.d.ts +28 -0
  29. package/dist/managers/analytics-manager.d.ts.map +1 -0
  30. package/dist/managers/auth-manager.d.ts +80 -0
  31. package/dist/managers/auth-manager.d.ts.map +1 -0
  32. package/dist/managers/business-manager.d.ts +83 -0
  33. package/dist/managers/business-manager.d.ts.map +1 -0
  34. package/dist/managers/campaign-manager.d.ts +158 -0
  35. package/dist/managers/campaign-manager.d.ts.map +1 -0
  36. package/dist/managers/donation-manager.d.ts +27 -0
  37. package/dist/managers/donation-manager.d.ts.map +1 -0
  38. package/dist/managers/index.d.ts +18 -0
  39. package/dist/managers/index.d.ts.map +1 -0
  40. package/dist/managers/payment-manager.d.ts +44 -0
  41. package/dist/managers/payment-manager.d.ts.map +1 -0
  42. package/dist/managers/redemption-manager.d.ts +91 -0
  43. package/dist/managers/redemption-manager.d.ts.map +1 -0
  44. package/dist/managers/tenant-manager.d.ts +60 -0
  45. package/dist/managers/tenant-manager.d.ts.map +1 -0
  46. package/dist/managers/token-manager.d.ts +81 -0
  47. package/dist/managers/token-manager.d.ts.map +1 -0
  48. package/dist/managers/transaction-manager.d.ts +62 -0
  49. package/dist/managers/transaction-manager.d.ts.map +1 -0
  50. package/dist/managers/user-manager.d.ts +72 -0
  51. package/dist/managers/user-manager.d.ts.map +1 -0
  52. package/dist/package.json +6 -1
  53. package/dist/pers-sdk.d.ts +302 -13
  54. package/dist/pers-sdk.d.ts.map +1 -1
  55. package/dist/platform-adapters/angular-http-client.d.ts +35 -0
  56. package/dist/platform-adapters/angular-http-client.d.ts.map +1 -0
  57. package/dist/platform-adapters/browser-fetch-client.d.ts +30 -0
  58. package/dist/platform-adapters/browser-fetch-client.d.ts.map +1 -0
  59. package/dist/platform-adapters/index.d.ts +11 -0
  60. package/dist/platform-adapters/index.d.ts.map +1 -0
  61. package/dist/platform-adapters/node-http-client.d.ts +30 -0
  62. package/dist/platform-adapters/node-http-client.d.ts.map +1 -0
  63. package/dist/platform-adapters.cjs +201 -0
  64. package/dist/platform-adapters.cjs.map +1 -0
  65. package/dist/platform-adapters.js +197 -0
  66. package/dist/platform-adapters.js.map +1 -0
  67. package/dist/token.cjs +6 -5
  68. package/dist/token.cjs.map +1 -1
  69. package/dist/token.js +2 -1
  70. package/dist/token.js.map +1 -1
  71. package/package.json +6 -1
  72. package/dist/chunks/base-token-service-BA81_Ouq.js.map +0 -1
  73. package/dist/chunks/base-token-service-BQ6uFoki.cjs.map +0 -1
  74. package/dist/chunks/pers-sdk-DiwCwBiC.cjs.map +0 -1
  75. package/dist/chunks/pers-sdk-Rc8YKyNc.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import { PersApiClient } from '../core/pers-api-client';
2
+ import { TenantSDK } from '../tenant';
3
+ import type { TenantPublicDTO, TenantClientConfigDTO, AdminDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
+ import type { AdminCreateRequestDTO } from '../tenant/models';
5
+ /**
6
+ * Tenant Manager - Clean, high-level interface for tenant operations
7
+ *
8
+ * Provides a simplified API for common tenant management tasks while maintaining
9
+ * access to the full tenant SDK for advanced use cases.
10
+ */
11
+ export declare class TenantManager {
12
+ private apiClient;
13
+ private tenantSDK;
14
+ constructor(apiClient: PersApiClient);
15
+ /**
16
+ * Get current tenant information
17
+ *
18
+ * @returns Promise resolving to tenant data
19
+ */
20
+ getTenantInfo(): Promise<TenantPublicDTO>;
21
+ /**
22
+ * Get tenant login token
23
+ *
24
+ * @returns Promise resolving to login token
25
+ */
26
+ getLoginToken(): Promise<string>;
27
+ /**
28
+ * Get tenant client configuration
29
+ *
30
+ * @returns Promise resolving to client config
31
+ */
32
+ getClientConfig(): Promise<TenantClientConfigDTO>;
33
+ /**
34
+ * Admin: Update tenant data
35
+ *
36
+ * @param tenantData - Updated tenant data
37
+ * @returns Promise resolving to updated tenant
38
+ */
39
+ updateTenant(tenantData: TenantPublicDTO): Promise<TenantPublicDTO>;
40
+ /**
41
+ * Admin: Get all admins
42
+ *
43
+ * @returns Promise resolving to array of admins
44
+ */
45
+ getAdmins(): Promise<AdminDTO[]>;
46
+ /**
47
+ * Admin: Create new admin
48
+ *
49
+ * @param adminData - Admin data
50
+ * @returns Promise resolving to created admin
51
+ */
52
+ createAdmin(adminData: AdminCreateRequestDTO): Promise<AdminDTO>;
53
+ /**
54
+ * Get the full tenant SDK for advanced operations
55
+ *
56
+ * @returns TenantSDK instance
57
+ */
58
+ getTenantSDK(): TenantSDK;
59
+ }
60
+ //# sourceMappingURL=tenant-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-manager.d.ts","sourceRoot":"","sources":["../../src/managers/tenant-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAmB,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAEV,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACT,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D;;;;;GAKG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,SAAS,CAAY;gBAET,SAAS,EAAE,aAAa;IAI5C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAI/C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAIvD;;;;;OAKG;IACG,YAAY,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAIzE;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItC;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItE;;;;OAIG;IACH,YAAY,IAAI,SAAS;CAG1B"}
@@ -0,0 +1,81 @@
1
+ import { PersApiClient } from '../core/pers-api-client';
2
+ import { TokenSDK } from '../token';
3
+ import type { TokenDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
+ /**
5
+ * Token Manager - Clean, high-level interface for token operations
6
+ *
7
+ * Provides a simplified API for common token management tasks while maintaining
8
+ * access to the full token SDK for advanced use cases.
9
+ */
10
+ export declare class TokenManager {
11
+ private apiClient;
12
+ private tokenSDK;
13
+ constructor(apiClient: PersApiClient);
14
+ /**
15
+ * Get all available tokens
16
+ *
17
+ * @returns Promise resolving to array of tokens
18
+ */
19
+ getTokens(): Promise<TokenDTO[]>;
20
+ /**
21
+ * Get all token types
22
+ *
23
+ * @returns Promise resolving to token types
24
+ */
25
+ getTokenTypes(): Promise<import("@explorins/pers-shared").TokenTypeDTO[]>;
26
+ /**
27
+ * Get active credit token
28
+ *
29
+ * @returns Promise resolving to active credit token
30
+ */
31
+ getActiveCreditToken(): Promise<TokenDTO>;
32
+ /**
33
+ * Get reward tokens
34
+ *
35
+ * @returns Promise resolving to reward tokens
36
+ */
37
+ getRewardTokens(): Promise<TokenDTO[]>;
38
+ /**
39
+ * Get status tokens
40
+ *
41
+ * @returns Promise resolving to status tokens
42
+ */
43
+ getStatusTokens(): Promise<TokenDTO[]>;
44
+ /**
45
+ * Get token by contract address
46
+ *
47
+ * @param contractAddress - Contract address to search for
48
+ * @param contractTokenId - Optional contract token ID
49
+ * @returns Promise resolving to token
50
+ */
51
+ getTokenByContract(contractAddress: string, contractTokenId?: string | null): Promise<TokenDTO>;
52
+ /**
53
+ * Admin: Create new token
54
+ *
55
+ * @param tokenData - Token creation data
56
+ * @returns Promise resolving to created token
57
+ */
58
+ createToken(tokenData: any): Promise<TokenDTO>;
59
+ /**
60
+ * Admin: Update token
61
+ *
62
+ * @param tokenId - Token ID to update
63
+ * @param tokenData - Token update data
64
+ * @returns Promise resolving to updated token
65
+ */
66
+ updateToken(tokenId: string, tokenData: any): Promise<TokenDTO>;
67
+ /**
68
+ * Admin: Toggle token active status
69
+ *
70
+ * @param tokenId - Token ID to toggle
71
+ * @returns Promise resolving to updated token
72
+ */
73
+ toggleTokenActive(tokenId: string): Promise<TokenDTO>;
74
+ /**
75
+ * Get the full token SDK for advanced operations
76
+ *
77
+ * @returns TokenSDK instance
78
+ */
79
+ getTokenSDK(): TokenSDK;
80
+ }
81
+ //# sourceMappingURL=token-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../src/managers/token-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAEhF;;;;;GAKG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,QAAQ,CAAW;gBAEP,SAAS,EAAE,aAAa;IAI5C;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItC;;;;OAIG;IACG,aAAa;IAInB;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI/C;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5C;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5C;;;;;;OAMG;IACG,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrG;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpD;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrE;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3D;;;;OAIG;IACH,WAAW,IAAI,QAAQ;CAKxB"}
@@ -0,0 +1,62 @@
1
+ import { PersApiClient } from '../core/pers-api-client';
2
+ import { TransactionSDK } from '../transaction';
3
+ import type { TransactionDTO, TransactionRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
+ import type { TransactionPaginationParams } from '../transaction/models';
5
+ /**
6
+ * Transaction Manager - Clean, high-level interface for transaction operations
7
+ *
8
+ * Provides a simplified API for common transaction management tasks while maintaining
9
+ * access to the full transaction SDK for advanced use cases.
10
+ */
11
+ export declare class TransactionManager {
12
+ private apiClient;
13
+ private transactionSDK;
14
+ constructor(apiClient: PersApiClient);
15
+ /**
16
+ * Get transaction by ID
17
+ *
18
+ * @param transactionId - ID of the transaction
19
+ * @returns Promise resolving to transaction data
20
+ */
21
+ getTransactionById(transactionId: string): Promise<TransactionDTO>;
22
+ /**
23
+ * Create a new transaction
24
+ *
25
+ * @param transactionData - Transaction data
26
+ * @returns Promise resolving to transaction response
27
+ */
28
+ createTransaction(transactionData: TransactionRequestDTO): Promise<import("@explorins/pers-shared").TransactionRequestResponseDTO>;
29
+ /**
30
+ * Get user's transaction history
31
+ *
32
+ * @param type - Transaction type filter
33
+ * @returns Promise resolving to array of user's transactions
34
+ */
35
+ getUserTransactionHistory(type: string): Promise<TransactionDTO[]>;
36
+ /**
37
+ * Admin: Get all tenant transactions
38
+ *
39
+ * @returns Promise resolving to array of tenant transactions
40
+ */
41
+ getTenantTransactions(): Promise<TransactionDTO[]>;
42
+ /**
43
+ * Admin: Get paginated transactions
44
+ *
45
+ * @param params - Pagination parameters
46
+ * @returns Promise resolving to paginated transaction results
47
+ */
48
+ getPaginatedTransactions(params: TransactionPaginationParams): Promise<import("..").TransactionPaginationResponse>;
49
+ /**
50
+ * Admin: Export transactions as CSV
51
+ *
52
+ * @returns Promise resolving to CSV blob
53
+ */
54
+ exportTransactionsCSV(): Promise<Blob>;
55
+ /**
56
+ * Get the full transaction SDK for advanced operations
57
+ *
58
+ * @returns TransactionSDK instance
59
+ */
60
+ getTransactionSDK(): TransactionSDK;
61
+ }
62
+ //# sourceMappingURL=transaction-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/managers/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAwB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE;;;;;GAKG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,cAAc,CAAiB;gBAEnB,SAAS,EAAE,aAAa;IAI5C;;;;;OAKG;IACG,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxE;;;;;OAKG;IACG,iBAAiB,CAAC,eAAe,EAAE,qBAAqB;IAI9D;;;;;OAKG;IACG,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIxE;;;;OAIG;IACG,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIxD;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,2BAA2B;IAIlE;;;;OAIG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;OAIG;IACH,iBAAiB,IAAI,cAAc;CAGpC"}
@@ -0,0 +1,72 @@
1
+ import { PersApiClient } from '../core/pers-api-client';
2
+ import { UserPublicProfileDTO, UserSDK } from '../user';
3
+ import type { UserDTO, UserCreateRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
+ /**
5
+ * User Manager - Clean, high-level interface for user operations
6
+ *
7
+ * Provides a simplified API for common user management tasks while maintaining
8
+ * access to the full user SDK for advanced use cases.
9
+ */
10
+ export declare class UserManager {
11
+ private apiClient;
12
+ private userSDK;
13
+ constructor(apiClient: PersApiClient);
14
+ /**
15
+ * Get current user profile
16
+ *
17
+ * @returns Promise resolving to current user data
18
+ */
19
+ getCurrentUser(): Promise<UserDTO>;
20
+ /**
21
+ * Update current user profile
22
+ *
23
+ * @param userData - User data to update
24
+ * @returns Promise resolving to updated user data
25
+ */
26
+ updateCurrentUser(userData: UserCreateRequestDTO): Promise<UserDTO>;
27
+ /**
28
+ * Get user by unique identifier
29
+ *
30
+ * @param identifier - Unique identifier for the user
31
+ * @returns Promise resolving to user data
32
+ */
33
+ getUserById(identifier: string): Promise<UserDTO>;
34
+ /**
35
+ * Get all users public profiles with optional filtering
36
+ *
37
+ * @param filter - Optional filter criteria
38
+ * @returns Promise resolving to array of user public profiles
39
+ */
40
+ getAllUsersPublic(filter?: {
41
+ key: string;
42
+ value: string;
43
+ }): Promise<UserPublicProfileDTO[]>;
44
+ /**
45
+ * Admin: Get all users
46
+ *
47
+ * @returns Promise resolving to array of all users
48
+ */
49
+ getAllUsers(): Promise<UserDTO[]>;
50
+ /**
51
+ * Admin: Update user data
52
+ *
53
+ * @param userId - ID of user to update
54
+ * @param userData - User data to update
55
+ * @returns Promise resolving to updated user data
56
+ */
57
+ updateUser(userId: string, userData: UserCreateRequestDTO): Promise<UserDTO>;
58
+ /**
59
+ * Admin: Toggle user active status
60
+ *
61
+ * @param user - User to toggle status for
62
+ * @returns Promise resolving to updated user data
63
+ */
64
+ toggleUserStatus(user: UserDTO): Promise<UserDTO>;
65
+ /**
66
+ * Get the full user SDK for advanced operations
67
+ *
68
+ * @returns UserSDK instance
69
+ */
70
+ getUserSDK(): UserSDK;
71
+ }
72
+ //# sourceMappingURL=user-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-manager.d.ts","sourceRoot":"","sources":["../../src/managers/user-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAiB,oBAAoB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAErG;;;;;GAKG;AACH,qBAAa,WAAW;IAGV,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,OAAO,CAAU;gBAEL,SAAS,EAAE,aAAa;IAI5C;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;;;;OAKG;IACG,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE;;;;;OAKG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIjG;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIvC;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF;;;;;OAKG;IACG,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAKtB"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorins/pers-sdk",
3
- "version": "1.3.15",
3
+ "version": "1.5.2",
4
4
  "description": "Platform-agnostic SDK for PERS (Phygital Experience Rewards System) - Core business logic and API integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -99,6 +99,11 @@
99
99
  "types": "./dist/web3/index.d.ts",
100
100
  "import": "./dist/web3.js",
101
101
  "require": "./dist/web3.cjs"
102
+ },
103
+ "./platform-adapters": {
104
+ "types": "./dist/platform-adapters/index.d.ts",
105
+ "import": "./dist/platform-adapters.js",
106
+ "require": "./dist/platform-adapters.cjs"
102
107
  }
103
108
  },
104
109
  "scripts": {
@@ -1,21 +1,172 @@
1
1
  /**
2
- * PERS SDK - Platform-agnostic TypeScript SDK for PERS API
2
+ * PERS SDK - Platform-agnostic TypeScript SDK with High-Level Managers
3
3
  *
4
- * Provides a simple wrapper around the core API client with
5
- * intelligent authentication and token management.
4
+ * ## Overview
5
+ *
6
+ * The PERS SDK provides a comprehensive interface for integrating with the PERS
7
+ * (Phygital Experience Rewards System) platform. It features a clean manager-based
8
+ * architecture that abstracts complex domain operations into intuitive high-level APIs.
9
+ *
10
+ * ## Architecture
11
+ *
12
+ * ```
13
+ * PersSDK
14
+ * ├── Domain Managers (Recommended) // High-level, intuitive APIs
15
+ * │ ├── auth: AuthManager // Authentication & user sessions
16
+ * │ ├── users: UserManager // User profile management
17
+ * │ ├── tokens: TokenManager // Token balances & transfers
18
+ * │ ├── businesses: BusinessManager // Business operations
19
+ * │ ├── campaigns: CampaignManager // Marketing campaigns
20
+ * │ ├── redemptions: RedemptionManager // Reward redemptions
21
+ * │ ├── transactions: TransactionManager // Transaction history
22
+ * │ ├── payments: PaymentManager // Payment processing
23
+ * │ └── analytics: AnalyticsManager // Reporting & analytics
24
+ * ├── Domain SDKs (Advanced) // Full-featured domain access
25
+ * │ ├── createBusinessSDK()
26
+ * │ ├── createCampaignSDK()
27
+ * │ └── TokenSDK, etc.
28
+ * └── Core API Client (Expert) // Direct REST API access
29
+ * └── api(): PersApiClient
30
+ * ```
31
+ *
32
+ * ## Usage Patterns
33
+ *
34
+ * ### 1. High-Level Manager Pattern (Recommended)
35
+ *
36
+ * ```typescript
37
+ * import { PersSDK } from '@explorins/pers-sdk';
38
+ * import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
39
+ *
40
+ * const sdk = new PersSDK(new BrowserFetchClientAdapter(), {
41
+ * environment: 'production',
42
+ * apiProjectKey: 'your-project-key'
43
+ * });
44
+ *
45
+ * // Clean, intuitive manager interface
46
+ * const user = await sdk.auth.getCurrentUser();
47
+ * const campaigns = await sdk.campaigns.getActiveCampaigns();
48
+ * const balances = await sdk.tokens.getTokens();
49
+ * ```
50
+ *
51
+ * ### 2. Advanced Domain SDK Access
52
+ *
53
+ * ```typescript
54
+ * // Access full SDK capabilities when needed
55
+ * const campaignSDK = sdk.campaigns.getCampaignSDK();
56
+ * const advancedCampaignOps = await campaignSDK.api.createComplexCampaign(data);
57
+ * ```
58
+ *
59
+ * ### 3. Direct API Client Access
60
+ *
61
+ * ```typescript
62
+ * // For custom endpoints or advanced operations
63
+ * const apiClient = sdk.api();
64
+ * const customData = await apiClient.get('/custom-endpoint');
65
+ * ```
66
+ *
67
+ * ## Platform Integration
68
+ *
69
+ * The SDK provides pre-built adapters for common platforms:
70
+ *
71
+ * - **Angular**: `AngularHttpClientAdapter`
72
+ * - **Browser/React/Vue**: `BrowserFetchClientAdapter`
73
+ * - **Node.js**: `NodeHttpClientAdapter`
74
+ * - **Custom**: Implement `HttpClient` interface
75
+ *
76
+ * ## Features
77
+ *
78
+ * - ✅ **Type-safe**: Full TypeScript support with comprehensive type definitions
79
+ * - ✅ **Platform-agnostic**: Works in browsers, Node.js, React Native, and more
80
+ * - ✅ **Authentication**: Automatic token management and refresh
81
+ * - ✅ **Error handling**: Comprehensive error handling with typed exceptions
82
+ * - ✅ **Modular**: Import only the domains you need
83
+ * - ✅ **Manager pattern**: Clean, high-level APIs for common operations
84
+ * - ✅ **Backward compatible**: Maintains compatibility with existing integrations
85
+ * - ✅ **Tree-shakable**: Optimized for minimal bundle size
86
+ *
87
+ * @example Basic Setup
88
+ * ```typescript
89
+ * import { PersSDK } from '@explorins/pers-sdk';
90
+ * import { BrowserFetchClientAdapter } from '@explorins/pers-sdk/platform-adapters';
91
+ *
92
+ * const sdk = new PersSDK(new BrowserFetchClientAdapter(), {
93
+ * environment: 'production',
94
+ * apiProjectKey: 'your-project-key'
95
+ * });
96
+ * ```
97
+ *
98
+ * @example Authentication Flow
99
+ * ```typescript
100
+ * // Login with external JWT (Firebase, Auth0, etc.)
101
+ * await sdk.auth.loginWithToken(firebaseJWT, 'user');
102
+ *
103
+ * // Check authentication status
104
+ * if (await sdk.auth.isAuthenticated()) {
105
+ * const user = await sdk.auth.getCurrentUser();
106
+ * console.log('Welcome,', user.name);
107
+ * }
108
+ * ```
109
+ *
110
+ * @example Business Operations
111
+ * ```typescript
112
+ * // Get active businesses
113
+ * const businesses = await sdk.businesses.getActiveBusinesses();
114
+ *
115
+ * // Get business details
116
+ * const business = await sdk.businesses.getBusinessById(businessId);
117
+ *
118
+ * // Admin: Create new business
119
+ * const newBusiness = await sdk.businesses.createBusiness({
120
+ * name: 'New Business',
121
+ * location: 'City Center',
122
+ * type: 'restaurant'
123
+ * });
124
+ * ```
125
+ *
126
+ * @example Campaign Management
127
+ * ```typescript
128
+ * // Get active campaigns
129
+ * const campaigns = await sdk.campaigns.getActiveCampaigns();
130
+ *
131
+ * // Claim a campaign
132
+ * await sdk.campaigns.claimCampaign({
133
+ * campaignId: 'campaign-123',
134
+ * metadata: { source: 'mobile-app' }
135
+ * });
136
+ *
137
+ * // Get user's claims
138
+ * const claims = await sdk.campaigns.getUserClaims();
139
+ * ```
140
+ *
141
+ * @example Token Operations
142
+ * ```typescript
143
+ * // Get user's token balances
144
+ * const tokens = await sdk.tokens.getTokens();
145
+ *
146
+ * // Transfer tokens between users
147
+ * await sdk.tokens.transferTokens({
148
+ * fromUserId: 'user-1',
149
+ * toUserId: 'user-2',
150
+ * tokenType: 'CREDIT',
151
+ * amount: 100
152
+ * });
153
+ * ```
154
+ *
155
+ * @since 1.3.0 - Manager pattern architecture
6
156
  */
7
157
  import { HttpClient } from './core/abstractions/http-client';
8
158
  import { PersConfig } from './core/pers-config';
9
159
  import { PersApiClient } from './core/pers-api-client';
160
+ import { AuthManager, UserManager, TokenManager, BusinessManager, CampaignManager, RedemptionManager, TransactionManager, PaymentManager, TenantManager, AnalyticsManager, DonationManager } from './managers';
10
161
  /**
11
- * Main PERS SDK class
162
+ * PERS SDK class with domain managers
12
163
  *
13
- * Minimal wrapper around PersApiClient providing a clean interface
14
- * for platform-specific implementations.
164
+ * Main SDK interface providing clean, high-level managers for common operations
165
+ * while maintaining full access to the underlying API client and domain SDKs.
15
166
  *
16
167
  * @example
17
168
  * ```typescript
18
- * import { createPersSDK, createAuthProvider } from '@explorins/pers-sdk/core';
169
+ * import { PersSDK, createAuthProvider } from '@explorins/pers-sdk/core';
19
170
  * import { BrowserHttpClient } from '@explorins/pers-sdk/browser';
20
171
  *
21
172
  * const authProvider = createAuthProvider({
@@ -28,12 +179,29 @@ import { PersApiClient } from './core/pers-api-client';
28
179
  * authProvider
29
180
  * });
30
181
  *
182
+ * // High-level manager interface
183
+ * const user = await sdk.auth.getCurrentUser();
184
+ * const tokens = await sdk.tokens.getTokens();
185
+ * const businesses = await sdk.business.getActiveBusinesses();
186
+ *
187
+ * // Direct API access for advanced operations
31
188
  * const apiClient = sdk.api();
32
- * const user = await apiClient.get('/users/me');
189
+ * const customData = await apiClient.get('/custom-endpoint');
33
190
  * ```
34
191
  */
35
192
  export declare class PersSDK {
36
193
  private apiClient;
194
+ private _auth;
195
+ private _users;
196
+ private _tokens;
197
+ private _businesses;
198
+ private _campaigns;
199
+ private _redemptions;
200
+ private _transactions;
201
+ private _payments;
202
+ private _tenants;
203
+ private _analytics;
204
+ private _donations;
37
205
  /**
38
206
  * Creates a new PERS SDK instance
39
207
  *
@@ -42,9 +210,126 @@ export declare class PersSDK {
42
210
  */
43
211
  constructor(httpClient: HttpClient, config: PersConfig);
44
212
  /**
45
- * Gets the API client for making PERS API requests
213
+ * Authentication manager - High-level auth operations
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * await sdk.auth.loginWithToken(jwtToken);
218
+ * const user = await sdk.auth.getCurrentUser();
219
+ * const isAuth = await sdk.auth.isAuthenticated();
220
+ * ```
221
+ */
222
+ get auth(): AuthManager;
223
+ /**
224
+ * User manager - High-level user operations
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * const user = await sdk.user.getCurrentUser();
229
+ * await sdk.user.updateCurrentUser(userData);
230
+ * const users = await sdk.user.getAllUsersPublic();
231
+ * ```
232
+ */
233
+ get users(): UserManager;
234
+ /**
235
+ * Token manager - High-level token operations
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * const tokens = await sdk.tokens.getTokens();
240
+ * const creditToken = await sdk.tokens.getActiveCreditToken();
241
+ * const rewards = await sdk.tokens.getRewardTokens();
242
+ * ```
243
+ */
244
+ get tokens(): TokenManager;
245
+ /**
246
+ * Business manager - High-level business operations
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const businesses = await sdk.business.getActiveBusinesses();
251
+ * const business = await sdk.business.getBusinessById(id);
252
+ * const types = await sdk.business.getBusinessTypes();
253
+ * ```
254
+ */
255
+ get businesses(): BusinessManager;
256
+ /**
257
+ * Campaign manager - High-level campaign operations
258
+ *
259
+ * @example
260
+ * ```typescript
261
+ * const campaigns = await sdk.campaigns.getActiveCampaigns();
262
+ * await sdk.campaigns.claimCampaign(claimData);
263
+ * const claims = await sdk.campaigns.getUserClaims();
264
+ * ```
265
+ */
266
+ get campaigns(): CampaignManager;
267
+ /**
268
+ * Redemption manager - High-level redemption operations
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * const redemptions = await sdk.redemptions.getActiveRedemptions();
273
+ * await sdk.redemptions.redeemOffer(redemptionId);
274
+ * const history = await sdk.redemptions.getUserRedemptions();
275
+ * ```
276
+ */
277
+ get redemptions(): RedemptionManager;
278
+ /**
279
+ * Transaction manager - High-level transaction operations
46
280
  *
47
- * This is the main interface for interacting with the PERS backend.
281
+ * @example
282
+ * ```typescript
283
+ * const transaction = await sdk.transactions.getTransactionById(id);
284
+ * await sdk.transactions.createTransaction(txData);
285
+ * const history = await sdk.transactions.getUserTransactionHistory('all');
286
+ * ```
287
+ */
288
+ get transactions(): TransactionManager;
289
+ /**
290
+ * Payment manager - High-level payment operations
291
+ *
292
+ * @example
293
+ * ```typescript
294
+ * const intent = await sdk.payments.createPaymentIntent(100, 'usd', 'email@example.com', 'Purchase');
295
+ * const tokens = await sdk.payments.getActivePurchaseTokens();
296
+ * const purchases = await sdk.payments.getAllUserPurchases();
297
+ * ```
298
+ */
299
+ get payments(): PaymentManager;
300
+ /**
301
+ * Tenant manager - High-level tenant operations
302
+ *
303
+ * @example
304
+ * ```typescript
305
+ * const tenant = await sdk.tenant.getTenantInfo();
306
+ * const config = await sdk.tenant.getClientConfig();
307
+ * const admins = await sdk.tenant.getAdmins();
308
+ * ```
309
+ */
310
+ get tenants(): TenantManager;
311
+ /**
312
+ * Analytics manager - High-level analytics operations
313
+ *
314
+ * @example
315
+ * ```typescript
316
+ * const analytics = await sdk.analytics.getTransactionAnalytics(request);
317
+ * ```
318
+ */
319
+ get analytics(): AnalyticsManager;
320
+ /**
321
+ * Donation manager - High-level donation operations
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * const types = await sdk.donations.getDonationTypes();
326
+ * ```
327
+ */
328
+ get donations(): DonationManager;
329
+ /**
330
+ * Gets the API client for direct PERS API requests
331
+ *
332
+ * Use this for advanced operations not covered by the managers.
48
333
  * The returned client handles authentication, token refresh, and error handling automatically.
49
334
  *
50
335
  * @returns Configured PersApiClient instance
@@ -52,8 +337,8 @@ export declare class PersSDK {
52
337
  * @example
53
338
  * ```typescript
54
339
  * const apiClient = sdk.api();
55
- * const user = await apiClient.get<User>('/users/me');
56
- * await apiClient.post('/users', userData);
340
+ * const customData = await apiClient.get<CustomType>('/custom-endpoint');
341
+ * await apiClient.post('/custom-endpoint', customData);
57
342
  * ```
58
343
  */
59
344
  api(): PersApiClient;
@@ -65,7 +350,11 @@ export declare class PersSDK {
65
350
  isProduction(): boolean;
66
351
  }
67
352
  /**
68
- * Simple factory function
353
+ * Factory function for creating PERS SDK
354
+ *
355
+ * @param httpClient Platform-specific HTTP client implementation
356
+ * @param config SDK configuration options
357
+ * @returns PERS SDK instance
69
358
  */
70
359
  export declare function createPersSDK(httpClient: HttpClient, config: PersConfig): PersSDK;
71
360
  //# sourceMappingURL=pers-sdk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pers-sdk.d.ts","sourceRoot":"","sources":["../src/pers-sdk.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAgB;IAEjC;;;;;OAKG;gBACS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAItD;;;;;;;;;;;;;;OAcG;IACH,GAAG,IAAI,aAAa;IAIpB;;;;OAIG;IACH,YAAY,IAAI,OAAO;CAGxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACjB,OAAO,CAET"}
1
+ {"version":3,"file":"pers-sdk.d.ts","sourceRoot":"","sources":["../src/pers-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2JG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAkB;IAEpC;;;;;OAKG;gBACS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAiBtD;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;;;;;;OASG;IACH,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;;;;;;;OASG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED;;;;;;;;;OASG;IACH,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAED;;;;;;;;;OASG;IACH,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAED;;;;;;;;;OASG;IACH,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;;;;;;;;OASG;IACH,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG,IAAI,aAAa;IAIpB;;;;OAIG;IACH,YAAY,IAAI,OAAO;CAGxB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACjB,OAAO,CAET"}