@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.
Files changed (171) hide show
  1. package/README.md +113 -59
  2. package/dist/analytics/index.d.ts +0 -2
  3. package/dist/analytics/index.d.ts.map +1 -1
  4. package/dist/analytics/models/index.d.ts +1 -10
  5. package/dist/analytics/models/index.d.ts.map +1 -1
  6. package/dist/analytics.cjs +44 -29
  7. package/dist/analytics.cjs.map +1 -1
  8. package/dist/analytics.js +45 -2
  9. package/dist/analytics.js.map +1 -1
  10. package/dist/business/index.d.ts +0 -1
  11. package/dist/business/index.d.ts.map +1 -1
  12. package/dist/business.cjs +7 -774
  13. package/dist/business.cjs.map +1 -1
  14. package/dist/business.js +3 -751
  15. package/dist/business.js.map +1 -1
  16. package/dist/campaign/index.d.ts +0 -1
  17. package/dist/campaign/index.d.ts.map +1 -1
  18. package/dist/campaign.cjs +429 -29
  19. package/dist/campaign.cjs.map +1 -1
  20. package/dist/campaign.js +431 -3
  21. package/dist/campaign.js.map +1 -1
  22. package/dist/chunks/business-membership-service-8KC_qRj7.cjs +756 -0
  23. package/dist/chunks/business-membership-service-8KC_qRj7.cjs.map +1 -0
  24. package/dist/chunks/business-membership-service-D6vaVQTR.js +751 -0
  25. package/dist/chunks/business-membership-service-D6vaVQTR.js.map +1 -0
  26. package/dist/chunks/{web3-chain-service-BeBjALg2.cjs → index-B-g2JPVK.cjs} +1 -220
  27. package/dist/chunks/index-B-g2JPVK.cjs.map +1 -0
  28. package/dist/chunks/{web3-chain-service-DKHCnHQX.js → index-CKm_V5XE.js} +2 -219
  29. package/dist/chunks/index-CKm_V5XE.js.map +1 -0
  30. package/dist/chunks/payment-service-Bkw7ZXev.cjs +214 -0
  31. package/dist/chunks/payment-service-Bkw7ZXev.cjs.map +1 -0
  32. package/dist/chunks/payment-service-IvM6rryM.js +211 -0
  33. package/dist/chunks/payment-service-IvM6rryM.js.map +1 -0
  34. package/dist/chunks/{pers-sdk-JIExM712.js → pers-sdk-DYnIZvcx.js} +12 -291
  35. package/dist/chunks/pers-sdk-DYnIZvcx.js.map +1 -0
  36. package/dist/chunks/{pers-sdk-h-uoLpBx.cjs → pers-sdk-Dr9W8stD.cjs} +38 -318
  37. package/dist/chunks/pers-sdk-Dr9W8stD.cjs.map +1 -0
  38. package/dist/chunks/redemption-service-D-hBqh42.js +339 -0
  39. package/dist/chunks/redemption-service-D-hBqh42.js.map +1 -0
  40. package/dist/chunks/redemption-service-rMB6T2W5.cjs +342 -0
  41. package/dist/chunks/redemption-service-rMB6T2W5.cjs.map +1 -0
  42. package/dist/chunks/tenant-service-CsRA3O2V.js +163 -0
  43. package/dist/chunks/tenant-service-CsRA3O2V.js.map +1 -0
  44. package/dist/chunks/tenant-service-fj-pkXTw.cjs +166 -0
  45. package/dist/chunks/tenant-service-fj-pkXTw.cjs.map +1 -0
  46. package/dist/chunks/{transaction-request.builder-DrqTWcyC.cjs → transaction-request.builder-BwWmfHXm.cjs} +6 -6
  47. package/dist/chunks/{transaction-request.builder-DrqTWcyC.cjs.map → transaction-request.builder-BwWmfHXm.cjs.map} +1 -1
  48. package/dist/chunks/{transaction-request.builder-DltmruUC.js → transaction-request.builder-C1FPWmYN.js} +6 -6
  49. package/dist/chunks/{transaction-request.builder-DltmruUC.js.map → transaction-request.builder-C1FPWmYN.js.map} +1 -1
  50. package/dist/chunks/web3-chain-service-D68-0WaW.cjs +224 -0
  51. package/dist/chunks/web3-chain-service-D68-0WaW.cjs.map +1 -0
  52. package/dist/chunks/web3-chain-service-DuvxmKSj.js +221 -0
  53. package/dist/chunks/web3-chain-service-DuvxmKSj.js.map +1 -0
  54. package/dist/chunks/{explorer.utils-Cx3wrqAj.cjs → web3-manager-C_cFaMCm.cjs} +411 -144
  55. package/dist/chunks/web3-manager-C_cFaMCm.cjs.map +1 -0
  56. package/dist/chunks/{explorer.utils-BkS3k8hX.js → web3-manager-OExwBWB7.js} +412 -146
  57. package/dist/chunks/web3-manager-OExwBWB7.js.map +1 -0
  58. package/dist/core.cjs +18 -21
  59. package/dist/core.cjs.map +1 -1
  60. package/dist/core.js +10 -12
  61. package/dist/core.js.map +1 -1
  62. package/dist/donation/index.d.ts +0 -1
  63. package/dist/donation/index.d.ts.map +1 -1
  64. package/dist/donation.cjs +48 -29
  65. package/dist/donation.cjs.map +1 -1
  66. package/dist/donation.js +50 -3
  67. package/dist/donation.js.map +1 -1
  68. package/dist/index.cjs +43 -69
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.d.ts +1 -3
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +13 -15
  73. package/dist/index.js.map +1 -1
  74. package/dist/managers/analytics-manager.d.ts +1 -1
  75. package/dist/managers/index.d.ts +0 -1
  76. package/dist/managers/index.d.ts.map +1 -1
  77. package/dist/managers/web3-manager.d.ts +1 -1
  78. package/dist/managers/web3-manager.d.ts.map +1 -1
  79. package/dist/node.cjs +10 -13
  80. package/dist/node.cjs.map +1 -1
  81. package/dist/node.js +10 -13
  82. package/dist/node.js.map +1 -1
  83. package/dist/package.json +4 -10
  84. package/dist/payment/index.d.ts +0 -1
  85. package/dist/payment/index.d.ts.map +1 -1
  86. package/dist/payment.cjs +5 -232
  87. package/dist/payment.cjs.map +1 -1
  88. package/dist/payment.js +3 -210
  89. package/dist/payment.js.map +1 -1
  90. package/dist/pers-sdk.d.ts +1 -13
  91. package/dist/pers-sdk.d.ts.map +1 -1
  92. package/dist/redemption/index.d.ts +0 -1
  93. package/dist/redemption/index.d.ts.map +1 -1
  94. package/dist/redemption/services/redemption-service.d.ts +1 -2
  95. package/dist/redemption/services/redemption-service.d.ts.map +1 -1
  96. package/dist/redemption.cjs +5 -360
  97. package/dist/redemption.cjs.map +1 -1
  98. package/dist/redemption.js +3 -338
  99. package/dist/redemption.js.map +1 -1
  100. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +15 -21
  101. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
  102. package/dist/tenant/index.d.ts +0 -1
  103. package/dist/tenant/index.d.ts.map +1 -1
  104. package/dist/tenant.cjs +5 -184
  105. package/dist/tenant.cjs.map +1 -1
  106. package/dist/tenant.js +3 -162
  107. package/dist/tenant.js.map +1 -1
  108. package/dist/token/index.d.ts +0 -1
  109. package/dist/token/index.d.ts.map +1 -1
  110. package/dist/token.cjs +1 -25
  111. package/dist/token.cjs.map +1 -1
  112. package/dist/token.js +1 -1
  113. package/dist/transaction/models/transaction-request.builder.d.ts +4 -4
  114. package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -1
  115. package/dist/transaction.cjs +1 -1
  116. package/dist/transaction.js +1 -1
  117. package/dist/user/index.d.ts +0 -1
  118. package/dist/user/index.d.ts.map +1 -1
  119. package/dist/user-status/index.d.ts +0 -1
  120. package/dist/user-status/index.d.ts.map +1 -1
  121. package/dist/user-status.cjs +0 -25
  122. package/dist/user-status.cjs.map +1 -1
  123. package/dist/user-status.js +0 -1
  124. package/dist/user-status.js.map +1 -1
  125. package/dist/user.cjs +209 -29
  126. package/dist/user.cjs.map +1 -1
  127. package/dist/user.js +211 -3
  128. package/dist/user.js.map +1 -1
  129. package/dist/web3/index.d.ts +1 -0
  130. package/dist/web3/index.d.ts.map +1 -1
  131. package/dist/web3-chain/index.d.ts +0 -1
  132. package/dist/web3-chain/index.d.ts.map +1 -1
  133. package/dist/web3-chain.cjs +14 -29
  134. package/dist/web3-chain.cjs.map +1 -1
  135. package/dist/web3-chain.js +16 -3
  136. package/dist/web3-chain.js.map +1 -1
  137. package/dist/web3-manager.cjs +13 -0
  138. package/dist/web3-manager.cjs.map +1 -0
  139. package/dist/web3-manager.js +7 -0
  140. package/dist/web3-manager.js.map +1 -0
  141. package/dist/web3.cjs +10 -6
  142. package/dist/web3.cjs.map +1 -1
  143. package/dist/web3.js +4 -1
  144. package/dist/web3.js.map +1 -1
  145. package/package.json +4 -10
  146. package/dist/chunks/analytics-service-CitlimKJ.cjs +0 -49
  147. package/dist/chunks/analytics-service-CitlimKJ.cjs.map +0 -1
  148. package/dist/chunks/analytics-service-CxyrOwel.js +0 -46
  149. package/dist/chunks/analytics-service-CxyrOwel.js.map +0 -1
  150. package/dist/chunks/campaign-service-CdEz0jpP.cjs +0 -435
  151. package/dist/chunks/campaign-service-CdEz0jpP.cjs.map +0 -1
  152. package/dist/chunks/campaign-service-DrTAqFZM.js +0 -432
  153. package/dist/chunks/campaign-service-DrTAqFZM.js.map +0 -1
  154. package/dist/chunks/donation-service--6cnTvWq.cjs +0 -54
  155. package/dist/chunks/donation-service--6cnTvWq.cjs.map +0 -1
  156. package/dist/chunks/donation-service-xiXZ2Eto.js +0 -51
  157. package/dist/chunks/donation-service-xiXZ2Eto.js.map +0 -1
  158. package/dist/chunks/explorer.utils-BkS3k8hX.js.map +0 -1
  159. package/dist/chunks/explorer.utils-Cx3wrqAj.cjs.map +0 -1
  160. package/dist/chunks/index-BtDNXaFq.js +0 -13
  161. package/dist/chunks/index-BtDNXaFq.js.map +0 -1
  162. package/dist/chunks/index-CMk3Aqkk.cjs +0 -15
  163. package/dist/chunks/index-CMk3Aqkk.cjs.map +0 -1
  164. package/dist/chunks/pers-sdk-JIExM712.js.map +0 -1
  165. package/dist/chunks/pers-sdk-h-uoLpBx.cjs.map +0 -1
  166. package/dist/chunks/user-service-BGP3SZpk.js +0 -212
  167. package/dist/chunks/user-service-BGP3SZpk.js.map +0 -1
  168. package/dist/chunks/user-service-gITOx4qj.cjs +0 -215
  169. package/dist/chunks/user-service-gITOx4qj.cjs.map +0 -1
  170. package/dist/chunks/web3-chain-service-BeBjALg2.cjs.map +0 -1
  171. package/dist/chunks/web3-chain-service-DKHCnHQX.js.map +0 -1
package/dist/user.js CHANGED
@@ -1,4 +1,212 @@
1
- export { U as UserApi, a as UserService } from './chunks/user-service-BGP3SZpk.js';
2
- export { AccountOwnerType, ApiKeyType, MEMBERSHIP_ROLE_HIERARCHY, MembershipRole, NativeTokenTypes, hasMinimumRole } from '@explorins/pers-shared';
3
- import './chunks/pagination-utils-9vQ-Npkr.js';
1
+ import { b as buildPaginationParams, n as normalizeToPaginated } from './chunks/pagination-utils-9vQ-Npkr.js';
2
+
3
+ /**
4
+ * Platform-Agnostic User API Client
5
+ *
6
+ * Handles user operations using the PERS backend RESTful API.
7
+ * Updated to use new /users endpoints with enhanced security and consistency.
8
+ * Maintains framework UserApiService method compatibility.
9
+ */
10
+ class UserApi {
11
+ constructor(apiClient) {
12
+ this.apiClient = apiClient;
13
+ this.basePath = '/users';
14
+ }
15
+ // ==========================================
16
+ // PUBLIC OPERATIONS
17
+ // ==========================================
18
+ /**
19
+ * PUBLIC: Get all users public profiles with optional filtering
20
+ * Uses new RESTful /users/public endpoint
21
+ */
22
+ async getAllUsersPublicProfiles(filter = null, options) {
23
+ let url = `${this.basePath}/public`;
24
+ const params = new URLSearchParams();
25
+ if (filter) {
26
+ // Same parameter pattern for compatibility
27
+ params.set('filterKey', filter.key);
28
+ params.set('filterValue', filter.value);
29
+ }
30
+ // Add pagination parameters
31
+ if (options) {
32
+ Object.entries(buildPaginationParams(options)).forEach(([key, value]) => {
33
+ params.set(key, value);
34
+ });
35
+ }
36
+ if (params.toString()) {
37
+ url += `?${params.toString()}`;
38
+ }
39
+ const response = await this.apiClient.get(url);
40
+ return normalizeToPaginated(response);
41
+ }
42
+ // ==========================================
43
+ // AUTHENTICATED OPERATIONS
44
+ // ==========================================
45
+ /**
46
+ * AUTH: Get current authenticated user
47
+ * Uses new RESTful /users/me endpoint
48
+ */
49
+ async getRemoteUser() {
50
+ return this.apiClient.get(`${this.basePath}/me`);
51
+ }
52
+ /**
53
+ * AUTH: Update current authenticated user
54
+ * Uses new RESTful /users/me endpoint
55
+ */
56
+ async updateRemoteUser(updateRequest) {
57
+ return this.apiClient.put(`${this.basePath}/me`, updateRequest);
58
+ }
59
+ // ==========================================
60
+ // ADMIN OPERATIONS
61
+ // ==========================================
62
+ /**
63
+ * BUSINESS/ADMIN: Create or update user account
64
+ *
65
+ * Creates a new user or updates an existing one.
66
+ * - Business auth: Can create/update single users (requires canManageUsers permission)
67
+ * - Admin auth: Can create/update single users or bulk operations
68
+ *
69
+ * @param userData - User data for creation/update
70
+ * @returns Created or updated user
71
+ */
72
+ async createOrUpdateUser(userData) {
73
+ return this.apiClient.post(this.basePath, userData);
74
+ }
75
+ /**
76
+ * ADMIN: Bulk create or update users
77
+ *
78
+ * Creates or updates multiple users in a single operation.
79
+ * Requires admin authentication - business auth cannot perform bulk operations.
80
+ *
81
+ * @param users - Array of user data for creation/update
82
+ * @returns Array of created/updated users
83
+ */
84
+ async createOrUpdateUsers(users) {
85
+ return this.apiClient.post(this.basePath, users);
86
+ }
87
+ /**
88
+ * ADMIN: Get all remote users with query parameters
89
+ * Uses new RESTful /users endpoint with role-based access
90
+ * Note: Admin users get full data, non-admin users get public profiles only
91
+ */
92
+ async getAllRemoteUsers(options) {
93
+ const params = buildPaginationParams(options);
94
+ const url = `${this.basePath}?merge=soft${params ? '&' + params.toString() : ''}`;
95
+ const response = await this.apiClient.get(url);
96
+ return normalizeToPaginated(response);
97
+ }
98
+ /**
99
+ * ADMIN: Update user as admin
100
+ * Uses new RESTful /users/{id} endpoint
101
+ */
102
+ async updateUserAsAdmin(id, userData) {
103
+ return this.apiClient.put(`${this.basePath}/${id}`, userData);
104
+ }
105
+ /**
106
+ * ADMIN: Toggle user active status
107
+ * Uses new consistent /users/{id}/status endpoint
108
+ * Enhanced: Follows RESTful status management pattern across all domains
109
+ */
110
+ async toggleUserActiveStatusByUser(user) {
111
+ return this.apiClient.put(`${this.basePath}/${user.id}/status`, {});
112
+ }
113
+ /**
114
+ * ADMIN: Get user by unique identifier
115
+ * Uses new RESTful /users/{id} endpoint
116
+ */
117
+ async getUserByUniqueIdentifier(id) {
118
+ return this.apiClient.get(`${this.basePath}/${id}`);
119
+ }
120
+ }
121
+
122
+ /**
123
+ * Platform-Agnostic User Service
124
+ *
125
+ * Contains user business logic and operations that work across platforms.
126
+ * No framework dependencies - pure TypeScript business logic.
127
+ * Matches framework UserApiService capabilities exactly.
128
+ */
129
+ class UserService {
130
+ constructor(userApi) {
131
+ this.userApi = userApi;
132
+ }
133
+ // ==========================================
134
+ // PUBLIC OPERATIONS
135
+ // ==========================================
136
+ /**
137
+ * PUBLIC: Get all users public profiles with optional filtering
138
+ * ✅ FIXED: Uses framework-compatible inline filter type
139
+ */
140
+ async getAllUsersPublicProfiles(filter = null, options) {
141
+ return this.userApi.getAllUsersPublicProfiles(filter, options);
142
+ }
143
+ // ==========================================
144
+ // AUTHENTICATED OPERATIONS
145
+ // ==========================================
146
+ /**
147
+ * AUTH: Get current authenticated user
148
+ */
149
+ async getRemoteUser() {
150
+ return this.userApi.getRemoteUser();
151
+ }
152
+ /**
153
+ * AUTH: Update current authenticated user
154
+ */
155
+ async updateRemoteUser(updateRequest) {
156
+ return this.userApi.updateRemoteUser(updateRequest);
157
+ }
158
+ // ==========================================
159
+ // ADMIN OPERATIONS
160
+ // ==========================================
161
+ /**
162
+ * BUSINESS/ADMIN: Create or update user account
163
+ *
164
+ * Creates a new user or updates an existing one.
165
+ * - Business auth: Can create/update single users (requires canManageUsers permission)
166
+ * - Admin auth: Can create/update single users or bulk operations
167
+ *
168
+ * @param userData - User data for creation/update
169
+ * @returns Created or updated user
170
+ */
171
+ async createOrUpdateUser(userData) {
172
+ return this.userApi.createOrUpdateUser(userData);
173
+ }
174
+ /**
175
+ * ADMIN: Bulk create or update users
176
+ *
177
+ * Creates or updates multiple users in a single operation.
178
+ * Requires admin authentication - business auth cannot perform bulk operations.
179
+ *
180
+ * @param users - Array of user data for creation/update
181
+ * @returns Array of created/updated users
182
+ */
183
+ async createOrUpdateUsers(users) {
184
+ return this.userApi.createOrUpdateUsers(users);
185
+ }
186
+ /**
187
+ * ADMIN: Get all remote users
188
+ * ✅ FIXED: Matches API method signature (no parameters needed)
189
+ */
190
+ async getAllRemoteUsers(options) {
191
+ return this.userApi.getAllRemoteUsers(options);
192
+ }
193
+ /**
194
+ * ADMIN: Update user as admin
195
+ */
196
+ async updateUserAsAdmin(id, userData) {
197
+ return this.userApi.updateUserAsAdmin(id, userData);
198
+ }
199
+ async getUserByUniqueIdentifier(id) {
200
+ return this.userApi.getUserByUniqueIdentifier(id);
201
+ }
202
+ /**
203
+ * ADMIN: Toggle user active status by user object
204
+ * ✅ FIXED: Matches API method signature exactly
205
+ */
206
+ async toggleUserActiveStatusByUser(user) {
207
+ return this.userApi.toggleUserActiveStatusByUser(user);
208
+ }
209
+ }
210
+
211
+ export { UserApi, UserService };
4
212
  //# sourceMappingURL=user.js.map
package/dist/user.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"user.js","sources":["../src/user/api/user-api.ts","../src/user/services/user-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { Web3Manager } from '../managers/web3-manager';
1
2
  export type { TokenBalanceRequest, TokenBalance, TokenMetadata, TokenCollection, TokenCollectionRequest, AbiInput } from './application/web3-application.service';
2
3
  export * from './infrastructure';
3
4
  export { Web3ApplicationService } from './application';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web3/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACT,MAAM,wCAAwC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web3/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACT,MAAM,wCAAwC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,wBAAwB,CAAC"}
@@ -2,5 +2,4 @@ export { Web3ChainApi } from './api/web3-chain-api';
2
2
  export { Web3ChainService } from './services/web3-chain-service';
3
3
  export * from './models';
4
4
  export type { ChainData } from './models';
5
- export * from '../shared/interfaces/pers-shared-lib.interfaces';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web3-chain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,cAAc,iDAAiD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web3-chain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
@@ -1,38 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var web3ChainService = require('./chunks/web3-chain-service-BeBjALg2.cjs');
4
- var index = require('./chunks/index-CMk3Aqkk.cjs');
5
- var persShared = require('@explorins/pers-shared');
3
+ var web3ChainService = require('./chunks/web3-chain-service-D68-0WaW.cjs');
4
+ require('./chunks/index-B-g2JPVK.cjs');
5
+ require('@explorins/pers-shared');
6
6
  require('./chunks/index-B6-bbNnd.cjs');
7
7
  require('@explorins/web3-ts/ethers');
8
8
 
9
-
9
+ /**
10
+ * Web3 Chain Domain Models
11
+ *
12
+ * Minimal interface definitions matching framework usage exactly.
13
+ * Local ChainData interface to avoid external dependency issues.
14
+ */
15
+ const ChainTypes = {
16
+ PUBLIC: 'PUBLIC',
17
+ PRIVATE: 'PRIVATE'
18
+ };
10
19
 
11
20
  exports.Web3ChainApi = web3ChainService.Web3ChainApi;
12
21
  exports.Web3ChainService = web3ChainService.Web3ChainService;
13
- exports.ChainTypes = index.ChainTypes;
14
- Object.defineProperty(exports, "AccountOwnerType", {
15
- enumerable: true,
16
- get: function () { return persShared.AccountOwnerType; }
17
- });
18
- Object.defineProperty(exports, "ApiKeyType", {
19
- enumerable: true,
20
- get: function () { return persShared.ApiKeyType; }
21
- });
22
- Object.defineProperty(exports, "MEMBERSHIP_ROLE_HIERARCHY", {
23
- enumerable: true,
24
- get: function () { return persShared.MEMBERSHIP_ROLE_HIERARCHY; }
25
- });
26
- Object.defineProperty(exports, "MembershipRole", {
27
- enumerable: true,
28
- get: function () { return persShared.MembershipRole; }
29
- });
30
- Object.defineProperty(exports, "NativeTokenTypes", {
31
- enumerable: true,
32
- get: function () { return persShared.NativeTokenTypes; }
33
- });
34
- Object.defineProperty(exports, "hasMinimumRole", {
35
- enumerable: true,
36
- get: function () { return persShared.hasMinimumRole; }
37
- });
22
+ exports.ChainTypes = ChainTypes;
38
23
  //# sourceMappingURL=web3-chain.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"web3-chain.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"web3-chain.cjs","sources":["../src/web3-chain/models/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAAA;;;;;AAKG;AAsBI,MAAM,UAAU,GAAG;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE;;;;;;;"}
@@ -1,6 +1,19 @@
1
- export { W as Web3ChainApi, c as Web3ChainService } from './chunks/web3-chain-service-DKHCnHQX.js';
2
- export { C as ChainTypes } from './chunks/index-BtDNXaFq.js';
3
- export { AccountOwnerType, ApiKeyType, MEMBERSHIP_ROLE_HIERARCHY, MembershipRole, NativeTokenTypes, hasMinimumRole } from '@explorins/pers-shared';
1
+ export { W as Web3ChainApi, a as Web3ChainService } from './chunks/web3-chain-service-DuvxmKSj.js';
2
+ import './chunks/index-CKm_V5XE.js';
3
+ import '@explorins/pers-shared';
4
4
  import './chunks/index-DBLskLuH.js';
5
5
  import '@explorins/web3-ts/ethers';
6
+
7
+ /**
8
+ * Web3 Chain Domain Models
9
+ *
10
+ * Minimal interface definitions matching framework usage exactly.
11
+ * Local ChainData interface to avoid external dependency issues.
12
+ */
13
+ const ChainTypes = {
14
+ PUBLIC: 'PUBLIC',
15
+ PRIVATE: 'PRIVATE'
16
+ };
17
+
18
+ export { ChainTypes };
6
19
  //# sourceMappingURL=web3-chain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web3-chain.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"web3-chain.js","sources":["../src/web3-chain/models/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;;;AAKG;AAsBI,MAAM,UAAU,GAAG;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE;;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var web3Manager = require('./chunks/web3-manager-C_cFaMCm.cjs');
4
+ require('./chunks/web3-chain-service-D68-0WaW.cjs');
5
+ require('@explorins/pers-shared');
6
+ require('@explorins/web3-ts/ethers');
7
+ require('./chunks/index-B6-bbNnd.cjs');
8
+ require('./chunks/index-B-g2JPVK.cjs');
9
+
10
+
11
+
12
+ exports.Web3Manager = web3Manager.Web3Manager;
13
+ //# sourceMappingURL=web3-manager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3-manager.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ export { W as Web3Manager } from './chunks/web3-manager-OExwBWB7.js';
2
+ import './chunks/web3-chain-service-DuvxmKSj.js';
3
+ import '@explorins/pers-shared';
4
+ import '@explorins/web3-ts/ethers';
5
+ import './chunks/index-DBLskLuH.js';
6
+ import './chunks/index-CKm_V5XE.js';
7
+ //# sourceMappingURL=web3-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3-manager.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/dist/web3.cjs CHANGED
@@ -1,14 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var explorer_utils = require('./chunks/explorer.utils-Cx3wrqAj.cjs');
3
+ var web3Manager = require('./chunks/web3-manager-C_cFaMCm.cjs');
4
4
  require('@explorins/web3-ts/ethers');
5
5
  require('./chunks/index-B6-bbNnd.cjs');
6
+ require('./chunks/web3-chain-service-D68-0WaW.cjs');
7
+ require('./chunks/index-B-g2JPVK.cjs');
8
+ require('@explorins/pers-shared');
6
9
 
7
10
 
8
11
 
9
- exports.IPFSInfrastructureApi = explorer_utils.IPFSInfrastructureApi;
10
- exports.Web3ApplicationService = explorer_utils.Web3ApplicationService;
11
- exports.Web3InfrastructureApi = explorer_utils.Web3InfrastructureApi;
12
- exports.getExplorerUrl = explorer_utils.getExplorerUrl;
13
- exports.getExplorerUrlByChainId = explorer_utils.getExplorerUrlByChainId;
12
+ exports.IPFSInfrastructureApi = web3Manager.IPFSInfrastructureApi;
13
+ exports.Web3ApplicationService = web3Manager.Web3ApplicationService;
14
+ exports.Web3InfrastructureApi = web3Manager.Web3InfrastructureApi;
15
+ exports.Web3Manager = web3Manager.Web3Manager;
16
+ exports.getExplorerUrl = web3Manager.getExplorerUrl;
17
+ exports.getExplorerUrlByChainId = web3Manager.getExplorerUrlByChainId;
14
18
  //# sourceMappingURL=web3.cjs.map
package/dist/web3.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"web3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"web3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
package/dist/web3.js CHANGED
@@ -1,4 +1,7 @@
1
- export { I as IPFSInfrastructureApi, W as Web3ApplicationService, a as Web3InfrastructureApi, g as getExplorerUrl, b as getExplorerUrlByChainId } from './chunks/explorer.utils-BkS3k8hX.js';
1
+ export { I as IPFSInfrastructureApi, a as Web3ApplicationService, b as Web3InfrastructureApi, W as Web3Manager, g as getExplorerUrl, c as getExplorerUrlByChainId } from './chunks/web3-manager-OExwBWB7.js';
2
2
  import '@explorins/web3-ts/ethers';
3
3
  import './chunks/index-DBLskLuH.js';
4
+ import './chunks/web3-chain-service-DuvxmKSj.js';
5
+ import './chunks/index-CKm_V5XE.js';
6
+ import '@explorins/pers-shared';
4
7
  //# sourceMappingURL=web3.js.map
package/dist/web3.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"web3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"web3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorins/pers-sdk",
3
- "version": "2.0.7",
3
+ "version": "2.0.11",
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",
@@ -122,22 +122,21 @@
122
122
  "test": "jest",
123
123
  "test:watch": "jest --watch",
124
124
  "lint": "eslint src/**/*.ts",
125
- "demo:ts": "tsc examples/server-side-demo.ts --outDir .demo-compiled --module esnext --target es2020 --moduleResolution bundler --skipLibCheck && cd examples && node ../.demo-compiled/server-side-demo.js && cd .. && rimraf .demo-compiled",
126
125
  "prepublishOnly": "npm run clean && npm run build",
127
126
  "publish-version": "npm run clean && npm run build && npm version patch && npm publish",
128
127
  "publish-with-docs": "npm run clean && npm run build && npm run docs && npm version patch && npm publish"
129
128
  },
130
129
  "dependencies": {
131
- "@explorins/web3-ts": "^0.3.77"
130
+ "@explorins/pers-shared": "^2.1.75",
131
+ "@explorins/web3-ts": "^0.3.77",
132
+ "ethers": "^6.15.0"
132
133
  },
133
134
  "devDependencies": {
134
- "@explorins/pers-shared": "^2.1.72",
135
135
  "@rollup/plugin-commonjs": "^29.0.0",
136
136
  "@rollup/plugin-json": "^6.1.0",
137
137
  "@rollup/plugin-node-resolve": "^16.0.3",
138
138
  "@rollup/plugin-typescript": "^11.1.6",
139
139
  "@types/jest": "^29.5.12",
140
- "@types/node": "^25.2.1",
141
140
  "jest": "^29.7.0",
142
141
  "rimraf": "^5.0.5",
143
142
  "rollup": "^4.50.0",
@@ -146,11 +145,6 @@
146
145
  "typedoc-plugin-markdown": "^3.17.1",
147
146
  "typescript": "^5.4.5"
148
147
  },
149
- "peerDependencies": {
150
- "@explorins/pers-shared": "*",
151
- "ethers": "^6.15.0"
152
- },
153
- "peerDependenciesMeta": {},
154
148
  "publishConfig": {
155
149
  "access": "public",
156
150
  "registry": "https://registry.npmjs.org/"
@@ -1,49 +0,0 @@
1
- 'use strict';
2
-
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
- }
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
- }
46
-
47
- exports.AnalyticsApi = AnalyticsApi;
48
- exports.AnalyticsService = AnalyticsService;
49
- //# sourceMappingURL=analytics-service-CitlimKJ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics-service-CitlimKJ.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;;;;;"}
@@ -1,46 +0,0 @@
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 as A, AnalyticsService as a };
46
- //# sourceMappingURL=analytics-service-CxyrOwel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics-service-CxyrOwel.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;;;;"}