@explorins/pers-sdk 1.1.0-beta.0 → 1.1.3

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 (239) hide show
  1. package/dist/analytics/api/analytics-api.d.ts +17 -0
  2. package/dist/analytics/api/analytics-api.d.ts.map +1 -0
  3. package/dist/analytics/index.d.ts +28 -0
  4. package/dist/analytics/index.d.ts.map +1 -0
  5. package/dist/analytics/models/index.d.ts +61 -0
  6. package/dist/analytics/models/index.d.ts.map +1 -0
  7. package/dist/analytics/services/analytics-service.d.ts +19 -0
  8. package/dist/analytics/services/analytics-service.d.ts.map +1 -0
  9. package/dist/analytics.cjs +76 -0
  10. package/dist/analytics.cjs.map +1 -0
  11. package/dist/analytics.d.ts +28 -0
  12. package/dist/analytics.js +72 -0
  13. package/dist/analytics.js.map +1 -0
  14. package/dist/auth-admin/api/auth-admin-api.d.ts +27 -0
  15. package/dist/auth-admin/api/auth-admin-api.d.ts.map +1 -0
  16. package/dist/auth-admin/index.d.ts +26 -0
  17. package/dist/auth-admin/index.d.ts.map +1 -0
  18. package/dist/auth-admin/services/auth-admin-service.d.ts +23 -0
  19. package/dist/auth-admin/services/auth-admin-service.d.ts.map +1 -0
  20. package/dist/auth-admin.cjs +96 -0
  21. package/dist/auth-admin.cjs.map +1 -0
  22. package/dist/auth-admin.d.ts +26 -0
  23. package/dist/auth-admin.js +92 -0
  24. package/dist/auth-admin.js.map +1 -0
  25. package/dist/business/api/business-api.d.ts +133 -0
  26. package/dist/business/api/business-api.d.ts.map +1 -0
  27. package/dist/business/index.d.ts +34 -0
  28. package/dist/business/index.d.ts.map +1 -0
  29. package/{src/business/models/index.ts → dist/business/models/index.d.ts} +8 -13
  30. package/dist/business/models/index.d.ts.map +1 -0
  31. package/dist/business/services/business-service.d.ts +51 -0
  32. package/dist/business/services/business-service.d.ts.map +1 -0
  33. package/dist/business.cjs +303 -0
  34. package/dist/business.cjs.map +1 -0
  35. package/dist/business.d.ts +34 -0
  36. package/dist/business.js +299 -0
  37. package/dist/business.js.map +1 -0
  38. package/dist/campaign/api/campaign-api.d.ts +213 -0
  39. package/dist/campaign/api/campaign-api.d.ts.map +1 -0
  40. package/dist/campaign/index.d.ts +44 -0
  41. package/dist/campaign/index.d.ts.map +1 -0
  42. package/dist/campaign/services/campaign-service.d.ts +88 -0
  43. package/dist/campaign/services/campaign-service.d.ts.map +1 -0
  44. package/dist/campaign.cjs +506 -0
  45. package/dist/campaign.cjs.map +1 -0
  46. package/dist/campaign.d.ts +44 -0
  47. package/dist/campaign.js +502 -0
  48. package/dist/campaign.js.map +1 -0
  49. package/dist/core/abstractions/http-client.d.ts +22 -0
  50. package/dist/core/abstractions/http-client.d.ts.map +1 -0
  51. package/dist/core/auth/auth-provider.interface.d.ts +12 -0
  52. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -0
  53. package/dist/core/auth/create-auth-provider.d.ts +27 -0
  54. package/dist/core/auth/create-auth-provider.d.ts.map +1 -0
  55. package/dist/core/auth/simple-auth-config.interface.d.ts +15 -0
  56. package/dist/core/auth/simple-auth-config.interface.d.ts.map +1 -0
  57. package/dist/core/index.d.ts +13 -0
  58. package/dist/core/index.d.ts.map +1 -0
  59. package/dist/core/pers-api-client.d.ts +54 -0
  60. package/dist/core/pers-api-client.d.ts.map +1 -0
  61. package/dist/core/pers-config.d.ts +38 -0
  62. package/dist/core/pers-config.d.ts.map +1 -0
  63. package/dist/core/utils/jwt.function.d.ts +2 -0
  64. package/dist/core/utils/jwt.function.d.ts.map +1 -0
  65. package/dist/core.cjs +506 -0
  66. package/dist/core.cjs.map +1 -0
  67. package/dist/core.d.ts +13 -0
  68. package/dist/core.js +497 -0
  69. package/dist/core.js.map +1 -0
  70. package/dist/donation/api/donation-api.d.ts +18 -0
  71. package/dist/donation/api/donation-api.d.ts.map +1 -0
  72. package/dist/donation/index.d.ts +25 -0
  73. package/dist/donation/index.d.ts.map +1 -0
  74. package/dist/donation/models/index.d.ts +8 -0
  75. package/dist/donation/models/index.d.ts.map +1 -0
  76. package/dist/donation/services/donation-service.d.ts +19 -0
  77. package/dist/donation/services/donation-service.d.ts.map +1 -0
  78. package/dist/donation.cjs +78 -0
  79. package/dist/donation.cjs.map +1 -0
  80. package/dist/donation.d.ts +25 -0
  81. package/dist/donation.js +74 -0
  82. package/dist/donation.js.map +1 -0
  83. package/dist/index.cjs +4217 -0
  84. package/dist/index.cjs.map +1 -0
  85. package/dist/index.d.ts +21 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +4164 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/package.json +148 -0
  90. package/dist/payment/api/payment-api.d.ts +105 -0
  91. package/dist/payment/api/payment-api.d.ts.map +1 -0
  92. package/dist/payment/index.d.ts +36 -0
  93. package/dist/payment/index.d.ts.map +1 -0
  94. package/dist/payment/models/index.d.ts +12 -0
  95. package/dist/payment/models/index.d.ts.map +1 -0
  96. package/dist/payment/services/payment-service.d.ts +40 -0
  97. package/dist/payment/services/payment-service.d.ts.map +1 -0
  98. package/dist/payment.cjs +258 -0
  99. package/dist/payment.cjs.map +1 -0
  100. package/dist/payment.d.ts +36 -0
  101. package/dist/payment.js +254 -0
  102. package/dist/payment.js.map +1 -0
  103. package/dist/pers-sdk.d.ts +29 -0
  104. package/dist/pers-sdk.d.ts.map +1 -0
  105. package/dist/redemption/api/redemption-api.d.ts +147 -0
  106. package/dist/redemption/api/redemption-api.d.ts.map +1 -0
  107. package/dist/redemption/index.d.ts +35 -0
  108. package/dist/redemption/index.d.ts.map +1 -0
  109. package/dist/redemption/models/index.d.ts +8 -0
  110. package/dist/redemption/models/index.d.ts.map +1 -0
  111. package/dist/redemption/services/redemption-service.d.ts +56 -0
  112. package/dist/redemption/services/redemption-service.d.ts.map +1 -0
  113. package/dist/redemption.cjs +333 -0
  114. package/dist/redemption.cjs.map +1 -0
  115. package/dist/redemption.d.ts +35 -0
  116. package/dist/redemption.js +329 -0
  117. package/dist/redemption.js.map +1 -0
  118. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +18 -0
  119. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -0
  120. package/dist/tenant/api/tenant-api.d.ts +56 -0
  121. package/dist/tenant/api/tenant-api.d.ts.map +1 -0
  122. package/dist/tenant/index.d.ts +34 -0
  123. package/dist/tenant/index.d.ts.map +1 -0
  124. package/dist/tenant/models/index.d.ts +11 -0
  125. package/dist/tenant/models/index.d.ts.map +1 -0
  126. package/dist/tenant/services/tenant-service.d.ts +46 -0
  127. package/dist/tenant/services/tenant-service.d.ts.map +1 -0
  128. package/dist/tenant.cjs +177 -0
  129. package/dist/tenant.cjs.map +1 -0
  130. package/dist/tenant.d.ts +34 -0
  131. package/dist/tenant.js +173 -0
  132. package/dist/tenant.js.map +1 -0
  133. package/dist/token/api/token-api.d.ts +64 -0
  134. package/dist/token/api/token-api.d.ts.map +1 -0
  135. package/dist/token/base/base-token-service.d.ts +87 -0
  136. package/dist/token/base/base-token-service.d.ts.map +1 -0
  137. package/dist/token/index.d.ts +13 -0
  138. package/dist/token/index.d.ts.map +1 -0
  139. package/dist/token/models/index.d.ts +18 -0
  140. package/dist/token/models/index.d.ts.map +1 -0
  141. package/dist/token/services/token-service.d.ts +68 -0
  142. package/dist/token/services/token-service.d.ts.map +1 -0
  143. package/dist/token/token-sdk.d.ts +140 -0
  144. package/dist/token/token-sdk.d.ts.map +1 -0
  145. package/dist/token.cjs +537 -0
  146. package/dist/token.cjs.map +1 -0
  147. package/dist/token.d.ts +13 -0
  148. package/dist/token.js +532 -0
  149. package/dist/token.js.map +1 -0
  150. package/dist/transaction/api/transaction-api.d.ts +133 -0
  151. package/dist/transaction/api/transaction-api.d.ts.map +1 -0
  152. package/dist/transaction/index.d.ts +38 -0
  153. package/dist/transaction/index.d.ts.map +1 -0
  154. package/dist/transaction/models/index.d.ts +42 -0
  155. package/dist/transaction/models/index.d.ts.map +1 -0
  156. package/dist/transaction/services/transaction-service.d.ts +56 -0
  157. package/dist/transaction/services/transaction-service.d.ts.map +1 -0
  158. package/dist/transaction.cjs +394 -0
  159. package/dist/transaction.cjs.map +1 -0
  160. package/dist/transaction.d.ts +38 -0
  161. package/dist/transaction.js +390 -0
  162. package/dist/transaction.js.map +1 -0
  163. package/dist/user/api/user-api.d.ts +56 -0
  164. package/dist/user/api/user-api.d.ts.map +1 -0
  165. package/dist/user/index.d.ts +36 -0
  166. package/dist/user/index.d.ts.map +1 -0
  167. package/dist/user/models/index.d.ts +12 -0
  168. package/dist/user/models/index.d.ts.map +1 -0
  169. package/dist/user/services/user-service.d.ts +46 -0
  170. package/dist/user/services/user-service.d.ts.map +1 -0
  171. package/dist/user-status/api/user-status-api.d.ts +37 -0
  172. package/dist/user-status/api/user-status-api.d.ts.map +1 -0
  173. package/dist/user-status/index.d.ts +28 -0
  174. package/dist/user-status/index.d.ts.map +1 -0
  175. package/dist/user-status/models/index.d.ts +8 -0
  176. package/dist/user-status/models/index.d.ts.map +1 -0
  177. package/dist/user-status/services/user-status-service.d.ts +26 -0
  178. package/dist/user-status/services/user-status-service.d.ts.map +1 -0
  179. package/dist/user-status.cjs +147 -0
  180. package/dist/user-status.cjs.map +1 -0
  181. package/dist/user-status.d.ts +28 -0
  182. package/dist/user-status.js +143 -0
  183. package/dist/user-status.js.map +1 -0
  184. package/dist/user.cjs +188 -0
  185. package/dist/user.cjs.map +1 -0
  186. package/dist/user.d.ts +36 -0
  187. package/dist/user.js +184 -0
  188. package/dist/user.js.map +1 -0
  189. package/dist/web3/api/web3-api.d.ts +27 -0
  190. package/dist/web3/api/web3-api.d.ts.map +1 -0
  191. package/dist/web3/index.d.ts +16 -0
  192. package/dist/web3/index.d.ts.map +1 -0
  193. package/dist/web3/models/index.d.ts +92 -0
  194. package/dist/web3/models/index.d.ts.map +1 -0
  195. package/dist/web3/services/web3-service.d.ts +21 -0
  196. package/dist/web3/services/web3-service.d.ts.map +1 -0
  197. package/dist/web3-chain/api/web3-chain-api.d.ts +19 -0
  198. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -0
  199. package/dist/web3-chain/index.d.ts +17 -0
  200. package/dist/web3-chain/index.d.ts.map +1 -0
  201. package/dist/web3-chain/models/index.d.ts +38 -0
  202. package/dist/web3-chain/models/index.d.ts.map +1 -0
  203. package/dist/web3-chain/services/getWeb3FCD.service.d.ts +8 -0
  204. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -0
  205. package/dist/web3-chain/services/provider.service.d.ts +15 -0
  206. package/dist/web3-chain/services/provider.service.d.ts.map +1 -0
  207. package/dist/web3-chain/services/public-http-provider.service.d.ts +8 -0
  208. package/dist/web3-chain/services/public-http-provider.service.d.ts.map +1 -0
  209. package/dist/web3-chain/services/web3-chain-service.d.ts +17 -0
  210. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -0
  211. package/dist/web3-chain.cjs +316 -0
  212. package/dist/web3-chain.cjs.map +1 -0
  213. package/dist/web3-chain.d.ts +17 -0
  214. package/dist/web3-chain.js +310 -0
  215. package/dist/web3-chain.js.map +1 -0
  216. package/dist/web3.cjs +516 -0
  217. package/dist/web3.cjs.map +1 -0
  218. package/dist/web3.d.ts +16 -0
  219. package/dist/web3.js +513 -0
  220. package/dist/web3.js.map +1 -0
  221. package/package.json +105 -17
  222. package/explorins-pers-sdk-1.0.0-alpha.1.tgz +0 -0
  223. package/rollup.config.js +0 -84
  224. package/src/business/api/business-api.ts +0 -72
  225. package/src/business/business/tsconfig.json +0 -18
  226. package/src/business/index.ts +0 -52
  227. package/src/business/services/business-service.ts +0 -88
  228. package/src/core/abstractions/core-interfaces.ts +0 -56
  229. package/src/core/abstractions/http-client.ts +0 -23
  230. package/src/core/auth/auth-provider.interface.ts +0 -16
  231. package/src/core/auth/create-auth-provider.ts +0 -136
  232. package/src/core/auth/simple-auth-config.interface.ts +0 -15
  233. package/src/core/core.ts +0 -30
  234. package/src/core/pers-api-client.ts +0 -151
  235. package/src/core/pers-config.ts +0 -38
  236. package/src/core.ts +0 -30
  237. package/src/index.ts +0 -16
  238. package/src/pers-sdk.ts +0 -45
  239. package/tsconfig.json +0 -28
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Platform-Agnostic Business API Client
3
+ *
4
+ * Updated to match the new RESTful /businesses endpoints.
5
+ * Uses @explorins/pers-shared DTOs for full type safety and consistency with backend.
6
+ */
7
+ class BusinessApi {
8
+ constructor(apiClient) {
9
+ this.apiClient = apiClient;
10
+ this.basePath = '/businesses';
11
+ }
12
+ // ==========================================
13
+ // 🌐 BUSINESS TYPES MANAGEMENT
14
+ // ==========================================
15
+ /**
16
+ * Get all business types (project key required)
17
+ *
18
+ * Endpoint: GET /businesses/types
19
+ * Auth: @ApiSecurity('projectKey')
20
+ */
21
+ async getAllBusinessTypes() {
22
+ return this.apiClient.get(`${this.basePath}/types`);
23
+ }
24
+ /**
25
+ * ADMIN: Create business type
26
+ *
27
+ * Endpoint: POST /businesses/types
28
+ * Auth: @TenantAdmin()
29
+ */
30
+ async createBusinessType(dto) {
31
+ return this.apiClient.post(`${this.basePath}/types`, dto);
32
+ }
33
+ /**
34
+ * ADMIN: Update business type
35
+ *
36
+ * Endpoint: PUT /businesses/types
37
+ * Auth: @TenantAdmin()
38
+ */
39
+ async updateBusinessType(dto) {
40
+ return this.apiClient.put(`${this.basePath}/types`, dto);
41
+ }
42
+ /**
43
+ * ADMIN: Delete business type
44
+ *
45
+ * Endpoint: DELETE /businesses/types/{id}
46
+ * Auth: @TenantAdmin()
47
+ */
48
+ async deleteBusinessType(id) {
49
+ return this.apiClient.delete(`${this.basePath}/types/${id}`);
50
+ }
51
+ // ==========================================
52
+ // 🏢 BUSINESS MANAGEMENT
53
+ // ==========================================
54
+ /**
55
+ * Get current business info (business authentication required)
56
+ *
57
+ * Endpoint: GET /businesses/me
58
+ * Auth: @Business()
59
+ */
60
+ async getCurrentBusiness() {
61
+ return this.apiClient.get(`${this.basePath}/me`);
62
+ }
63
+ /**
64
+ * Get all active businesses (project key required)
65
+ *
66
+ * Endpoint: GET /businesses
67
+ * Auth: @ApiSecurity('projectKey')
68
+ * Note: Regular users automatically get active businesses only
69
+ */
70
+ async getActiveBusinesses() {
71
+ return this.apiClient.get(`${this.basePath}`);
72
+ }
73
+ /**
74
+ * Get all businesses with filtering (admin users can access inactive)
75
+ *
76
+ * Endpoint: GET /businesses?active={boolean}&sanitize={mode}
77
+ * Auth: @ApiSecurity('projectKey') (enhanced with role-based filtering)
78
+ */
79
+ async getAllBusinesses(options) {
80
+ const params = new URLSearchParams();
81
+ if (options?.active !== undefined) {
82
+ params.append('active', String(options.active));
83
+ }
84
+ if (options?.sanitize) {
85
+ params.append('sanitize', options.sanitize);
86
+ }
87
+ const queryString = params.toString();
88
+ const url = queryString ? `${this.basePath}?${queryString}` : this.basePath;
89
+ return this.apiClient.get(url);
90
+ }
91
+ /**
92
+ * ADMIN: Get all businesses (admin endpoint with full access)
93
+ *
94
+ * Endpoint: GET /businesses/admin
95
+ * Auth: @TenantAdmin()
96
+ */
97
+ async getAllBusinessesAdmin(options) {
98
+ const params = new URLSearchParams();
99
+ if (options?.active !== undefined) {
100
+ params.append('active', String(options.active));
101
+ }
102
+ if (options?.sanitize) {
103
+ params.append('sanitize', options.sanitize);
104
+ }
105
+ const queryString = params.toString();
106
+ const url = queryString ? `${this.basePath}?${queryString}` : this.basePath;
107
+ return this.apiClient.get(url);
108
+ }
109
+ /**
110
+ * Get business by ID
111
+ *
112
+ * Endpoint: GET /businesses/{id}
113
+ * Auth: @ApiSecurity('projectKey')
114
+ */
115
+ async getBusinessById(businessId) {
116
+ return this.apiClient.get(`${this.basePath}/${businessId}`);
117
+ }
118
+ /**
119
+ * Get business by account address
120
+ *
121
+ * Endpoint: GET /businesses/account/{accountAddress}
122
+ * Auth: @ApiSecurity('projectKey')
123
+ */
124
+ async getBusinessByAccount(accountAddress) {
125
+ return this.apiClient.get(`${this.basePath}/account/${accountAddress}`);
126
+ }
127
+ // ==========================================
128
+ // 🔧 ADMIN OPERATIONS
129
+ // ==========================================
130
+ /**
131
+ * ADMIN: Create business
132
+ *
133
+ * Endpoint: POST /businesses
134
+ * Auth: @TenantAdmin()
135
+ * Returns: BusinessApiKeyDTO | BusinessTokenBalancesDTO
136
+ */
137
+ async createBusiness(dto) {
138
+ return this.apiClient.post(`${this.basePath}`, dto);
139
+ }
140
+ /**
141
+ * ADMIN: Create business by display name (convenience method)
142
+ *
143
+ * This is a convenience wrapper that creates the proper DTO structure
144
+ */
145
+ async createBusinessByDisplayName(displayName) {
146
+ const dto = {
147
+ displayName,
148
+ // Add other required fields based on BusinessCreateRequestDTO structure
149
+ // You may need to check the DTO definition for required fields
150
+ };
151
+ return this.createBusiness(dto);
152
+ }
153
+ /**
154
+ * ADMIN: Create businesses from URL
155
+ *
156
+ * Endpoint: POST /businesses/bulk/url
157
+ * Auth: @TenantAdmin()
158
+ */
159
+ async createBusinessesFromUrl(url) {
160
+ return this.apiClient.post(`${this.basePath}/bulk/url`, { url });
161
+ }
162
+ /**
163
+ * ADMIN: Update business
164
+ *
165
+ * Endpoint: PUT /businesses/{id}
166
+ * Auth: @TenantAdmin()
167
+ */
168
+ async updateBusiness(id, businessData) {
169
+ return this.apiClient.put(`${this.basePath}/${id}`, businessData);
170
+ }
171
+ /**
172
+ * ADMIN: Toggle business active status
173
+ *
174
+ * Endpoint: PUT /businesses/{id}/activate
175
+ * Auth: @TenantAdmin()
176
+ */
177
+ async toggleBusinessActive(id, isActive) {
178
+ const dto = { isActive };
179
+ return this.apiClient.put(`${this.basePath}/${id}/status`, dto);
180
+ }
181
+ /**
182
+ * ADMIN: Generate new business API key
183
+ *
184
+ * Endpoint: PUT /businesses/{id}/api-key
185
+ * Auth: @TenantAdmin()
186
+ */
187
+ async generateNewBusinessApiKey(id) {
188
+ return this.apiClient.put(`${this.basePath}/${id}/api-key`, {});
189
+ }
190
+ }
191
+
192
+ /**
193
+ * Platform-Agnostic Business Service
194
+ *
195
+ * Contains business logic and operations that work across platforms.
196
+ * No framework dependencies - pure TypeScript business logic.
197
+ *
198
+ * Focuses only on actual backend capabilities.
199
+ */
200
+ class BusinessService {
201
+ constructor(businessApi) {
202
+ this.businessApi = businessApi;
203
+ }
204
+ /**
205
+ * Get all active businesses
206
+ */
207
+ async getActiveBusinesses() {
208
+ return this.businessApi.getActiveBusinesses();
209
+ }
210
+ /**
211
+ * Get all business types
212
+ */
213
+ async getAllBusinessTypes() {
214
+ return this.businessApi.getAllBusinessTypes();
215
+ }
216
+ /**
217
+ * Get business by ID
218
+ */
219
+ async getBusinessById(businessId) {
220
+ return this.businessApi.getBusinessById(businessId);
221
+ }
222
+ /**
223
+ * Get business by account address
224
+ */
225
+ async getBusinessByAccount(accountAddress) {
226
+ return this.businessApi.getBusinessByAccount(accountAddress);
227
+ }
228
+ /**
229
+ * Get businesses by type (client-side filtering)
230
+ */
231
+ async getBusinessesByType(typeId) {
232
+ const businesses = await this.getActiveBusinesses();
233
+ return businesses.filter(business => business.businessType && business.businessType.id === parseInt(typeId));
234
+ }
235
+ // ==========================================
236
+ // ADMIN OPERATIONS
237
+ // ==========================================
238
+ /**
239
+ * ADMIN: Get all businesses (active and inactive)
240
+ */
241
+ async getAllBusinesses() {
242
+ return this.businessApi.getAllBusinesses();
243
+ }
244
+ /**
245
+ * ADMIN: Create business by display name
246
+ */
247
+ async createBusinessByDisplayName(displayName) {
248
+ return this.businessApi.createBusinessByDisplayName(displayName);
249
+ }
250
+ /**
251
+ * ADMIN: Update business
252
+ */
253
+ async updateBusiness(id, businessData) {
254
+ return this.businessApi.updateBusiness(id, businessData);
255
+ }
256
+ /**
257
+ * ADMIN: Toggle business active status
258
+ */
259
+ async toggleBusinessActive(id, isActive) {
260
+ return this.businessApi.toggleBusinessActive(id, isActive);
261
+ }
262
+ }
263
+
264
+ /**
265
+ * @explorins/pers-sdk-business
266
+ *
267
+ * Platform-agnostic Business Domain SDK for PERS ecosystem
268
+ * Focuses on non-admin business operations
269
+ */
270
+ // API Layer
271
+ /**
272
+ * Create a complete Business SDK instance
273
+ *
274
+ * @param apiClient - Configured PERS API client
275
+ * @returns Business SDK with flattened structure for better DX
276
+ */
277
+ function createBusinessSDK(apiClient) {
278
+ const businessApi = new BusinessApi(apiClient);
279
+ const businessService = new BusinessService(businessApi);
280
+ return {
281
+ // Direct access to service methods (primary interface)
282
+ getActiveBusinesses: () => businessService.getActiveBusinesses(),
283
+ getAllBusinessTypes: () => businessService.getAllBusinessTypes(),
284
+ getBusinessById: (businessId) => businessService.getBusinessById(businessId),
285
+ getBusinessByAccount: (accountAddress) => businessService.getBusinessByAccount(accountAddress),
286
+ getBusinessesByType: (typeId) => businessService.getBusinessesByType(typeId),
287
+ // Admin methods
288
+ getAllBusinesses: () => businessService.getAllBusinesses(),
289
+ createBusinessByDisplayName: (displayName) => businessService.createBusinessByDisplayName(displayName),
290
+ updateBusiness: (id, businessData) => businessService.updateBusiness(id, businessData),
291
+ toggleBusinessActive: (id, isActive) => businessService.toggleBusinessActive(id, isActive),
292
+ // Advanced access for edge cases
293
+ api: businessApi,
294
+ service: businessService
295
+ };
296
+ }
297
+
298
+ export { BusinessApi, BusinessService, createBusinessSDK };
299
+ //# sourceMappingURL=business.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business.js","sources":["../../src/business/api/business-api.ts","../../src/business/services/business-service.ts","../../src/business/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ import { PersApiClient } from '../../core/pers-api-client';
2
+ import { CampaignDTO, CampaignCreateRequestDTO, CampaignUserClaimDTO, CampaignClaimRequestDTO, CampaignTriggerDTO, CampaignBusinessEngagementCreateRequestDTO, TokenUnitCreateRequestDTO } from '../../shared/interfaces/pers-shared-lib.interfaces';
3
+ /**
4
+ * Platform-Agnostic Campaign API Client (NEW - RESTful Design)
5
+ *
6
+ * Updated to use the new microservice-ready campaign controllers:
7
+ * - CampaignsController: Core campaign operations
8
+ * - CampaignTagsController: Tag management
9
+ * - CampaignTokensController: Token unit operations
10
+ * - CampaignTriggersController: Trigger system
11
+ * - CampaignEngagementsController: Business relationships
12
+ * - CampaignClaimsController: Claims processing
13
+ *
14
+ * Uses @explorins/pers-shared DTOs for consistency with backend.
15
+ * All endpoints updated to new RESTful patterns without role revelation.
16
+ */
17
+ export declare class CampaignApi {
18
+ private apiClient;
19
+ constructor(apiClient: PersApiClient);
20
+ /**
21
+ * PUBLIC: Get all active campaigns
22
+ * NEW: /campaigns (intelligent access detection)
23
+ */
24
+ getActiveCampaigns(): Promise<CampaignDTO[]>;
25
+ /**
26
+ * ADMIN: Get campaigns with filtering options
27
+ * NEW: /campaigns with query parameters (admin access detected automatically)
28
+ */
29
+ getCampaigns(options?: {
30
+ active?: boolean;
31
+ tag?: string;
32
+ limit?: number;
33
+ offset?: number;
34
+ sort?: 'name' | 'createdAt' | 'startDate';
35
+ order?: 'ASC' | 'DESC';
36
+ }): Promise<CampaignDTO[]>;
37
+ /**
38
+ * PUBLIC: Get campaign by ID
39
+ * NEW: /campaigns/{id}
40
+ */
41
+ getCampaignById(id: string): Promise<CampaignDTO>;
42
+ /**
43
+ * ADMIN: Create campaign
44
+ * NEW: POST /campaigns
45
+ */
46
+ createCampaign(campaign: CampaignCreateRequestDTO): Promise<CampaignDTO>;
47
+ /**
48
+ * ADMIN: Update campaign
49
+ * NEW: PUT /campaigns/{id}
50
+ */
51
+ updateCampaign(campaignId: string, campaign: CampaignCreateRequestDTO): Promise<CampaignDTO>;
52
+ /**
53
+ * ADMIN: Toggle campaign active status
54
+ * NEW: PUT /campaigns/{id}/status
55
+ */
56
+ toggleCampaignActive(campaignId: string): Promise<CampaignDTO>;
57
+ /**
58
+ * ADMIN: Toggle campaign testnet environment
59
+ * NEW: PUT /campaigns/{id}/environment
60
+ */
61
+ toggleCampaignTestnet(campaignId: string): Promise<CampaignDTO>;
62
+ /**
63
+ * ADMIN: Delete campaign
64
+ * NEW: DELETE /campaigns/{id}
65
+ */
66
+ deleteCampaign(campaignId: string): Promise<boolean>;
67
+ /**
68
+ * ADMIN: Get all unique campaign tags
69
+ * NEW: GET /campaign-tags
70
+ */
71
+ getAllUniqueTags(): Promise<string[]>;
72
+ /**
73
+ * ADMIN: Update campaign tags (replace all)
74
+ * NEW: PUT /campaign-tags/{id}
75
+ */
76
+ updateCampaignTags(campaignId: string, tags: string[]): Promise<CampaignDTO>;
77
+ /**
78
+ * ADMIN: Add tags to campaign
79
+ * NEW: POST /campaign-tags/{id}
80
+ */
81
+ addTagsToCampaign(campaignId: string, tags: string[]): Promise<CampaignDTO>;
82
+ /**
83
+ * ADMIN: Remove tag from campaign
84
+ * NEW: DELETE /campaign-tags/{id}/{tag}
85
+ */
86
+ removeTagFromCampaign(campaignId: string, tag: string): Promise<CampaignDTO>;
87
+ /**
88
+ * ADMIN: Create campaign token unit
89
+ * NEW: POST /campaign-tokens/{id}
90
+ */
91
+ createCampaignTokenUnit(campaignId: string, campaignTokenUnit: TokenUnitCreateRequestDTO): Promise<CampaignDTO>;
92
+ /**
93
+ * ADMIN: Update campaign token unit
94
+ * NEW: PUT /campaign-tokens/{id}/{tokenUnitId}
95
+ */
96
+ updateCampaignTokenUnit(campaignId: string, tokenUnitId: string, campaignTokenUnit: TokenUnitCreateRequestDTO): Promise<CampaignDTO>;
97
+ /**
98
+ * ADMIN: Delete campaign token unit
99
+ * NEW: DELETE /campaign-tokens/{id}/{tokenUnitId}
100
+ */
101
+ deleteCampaignTokenUnit(campaignId: string, campaignTokenUnitId: string): Promise<CampaignDTO>;
102
+ /**
103
+ * PUBLIC: Get campaign triggers catalog
104
+ * NEW: GET /campaign-triggers
105
+ */
106
+ getCampaignTriggers(): Promise<CampaignTriggerDTO[]>;
107
+ /**
108
+ * ADMIN: Create campaign trigger
109
+ * NEW: POST /campaign-triggers
110
+ */
111
+ createCampaignTrigger(trigger: any): Promise<CampaignTriggerDTO>;
112
+ /**
113
+ * ADMIN: Update campaign trigger
114
+ * NEW: PUT /campaign-triggers/{id}
115
+ */
116
+ updateCampaignTrigger(triggerId: string, trigger: any): Promise<CampaignTriggerDTO>;
117
+ /**
118
+ * ADMIN: Delete campaign trigger
119
+ * NEW: DELETE /campaign-triggers/{id}
120
+ */
121
+ deleteCampaignTrigger(triggerId: string): Promise<boolean>;
122
+ /**
123
+ * ADMIN: Set campaign trigger
124
+ * NEW: PUT /campaign-triggers/campaigns/{id}/trigger/{triggerId}
125
+ */
126
+ setCampaignTrigger(campaignId: string, triggerId: string): Promise<CampaignDTO>;
127
+ /**
128
+ * ADMIN: Create trigger condition
129
+ * NEW: POST /campaign-triggers/conditions
130
+ */
131
+ createTriggerCondition(condition: any): Promise<any>;
132
+ /**
133
+ * ADMIN: Update trigger condition
134
+ * NEW: PUT /campaign-triggers/conditions/{id}
135
+ */
136
+ updateTriggerCondition(conditionId: string, condition: any): Promise<any>;
137
+ /**
138
+ * ADMIN: Add/Remove condition to trigger
139
+ * NEW: PUT /campaign-triggers/{triggerId}/condition/{conditionId}
140
+ */
141
+ addOrRemoveConditionToTrigger(triggerId: string, conditionId: string): Promise<CampaignTriggerDTO>;
142
+ /**
143
+ * ADMIN: Add business engagement to campaign
144
+ * NEW: POST /campaign-engagements/{id}
145
+ */
146
+ addBusinessEngagementToCampaign(campaignId: string, campaignBusinessEngagement: CampaignBusinessEngagementCreateRequestDTO): Promise<CampaignDTO>;
147
+ /**
148
+ * ADMIN: Update campaign business engagement
149
+ * NEW: PUT /campaign-engagements/{id}/{businessEngagementId}
150
+ */
151
+ updateCampaignBusinessEngagement(campaignId: string, businessEngagementId: string, campaignBusinessEngagement: CampaignBusinessEngagementCreateRequestDTO): Promise<CampaignDTO>;
152
+ /**
153
+ * ADMIN: Delete campaign business engagement
154
+ * NEW: DELETE /campaign-engagements/{id}/{businessEngagementId}
155
+ */
156
+ deleteCampaignBusinessEngagement(campaignId: string, businessEngagementId: string): Promise<CampaignDTO>;
157
+ /**
158
+ * USER: Claim campaign reward
159
+ * NEW: POST /campaign-claims/user
160
+ */
161
+ claimCampaign(request: CampaignClaimRequestDTO): Promise<CampaignUserClaimDTO>;
162
+ /**
163
+ * USER: Get claims for logged user
164
+ * NEW: GET /campaign-claims/users/me
165
+ */
166
+ getClaimsForLoggedUser(): Promise<CampaignUserClaimDTO[]>;
167
+ /**
168
+ * BUSINESS: Claim campaign reward for customer
169
+ * NEW: POST /campaign-claims/business
170
+ */
171
+ businessClaimCampaign(request: any): Promise<CampaignUserClaimDTO>;
172
+ /**
173
+ * SYSTEM: Process automated claim
174
+ * NEW: POST /campaign-claims/system
175
+ */
176
+ systemClaimCampaign(request: any): Promise<CampaignUserClaimDTO>;
177
+ /**
178
+ * ADMIN: Manual claim processing
179
+ * NEW: POST /campaign-claims/admin
180
+ */
181
+ adminClaimCampaign(request: any): Promise<CampaignUserClaimDTO>;
182
+ /**
183
+ * ADMIN: Get all campaign claims
184
+ * NEW: GET /campaign-claims/admin
185
+ */
186
+ getCampaignClaims(): Promise<CampaignUserClaimDTO[]>;
187
+ /**
188
+ * ADMIN: Get campaign claims by campaign ID
189
+ * NEW: GET /campaign-claims/admin/{campaignId}
190
+ */
191
+ getCampaignClaimsByCampaignId(campaignId: string): Promise<CampaignUserClaimDTO[]>;
192
+ /**
193
+ * ADMIN: Get campaign claims by user ID
194
+ * NEW: GET /campaign-claims/admin/users/{userId}
195
+ */
196
+ getCampaignClaimsByUserId(userId: string): Promise<CampaignUserClaimDTO[]>;
197
+ /**
198
+ * ADMIN: Get campaign claims by business ID
199
+ * NEW: GET /campaign-claims/admin/businesses/{businessId}
200
+ */
201
+ getCampaignClaimsByBusinessId(businessId: string): Promise<CampaignUserClaimDTO[]>;
202
+ /**
203
+ * USER: Get user's claims for specific campaign
204
+ * NEW: GET /campaign-claims/campaigns/{campaignId}/users/me
205
+ */
206
+ getUserClaimsForCampaign(campaignId: string): Promise<CampaignUserClaimDTO[]>;
207
+ /**
208
+ * @deprecated Use getCampaigns() instead
209
+ * LEGACY: Get campaigns with active filter
210
+ */
211
+ getCampaignsLegacy(active?: boolean): Promise<CampaignDTO[]>;
212
+ }
213
+ //# sourceMappingURL=campaign-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-api.d.ts","sourceRoot":"","sources":["../../../src/campaign/api/campaign-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @explorins/pers-sdk-campaign
3
+ *
4
+ * Platform-agnostic Campaign Domain SDK for PERS ecosystem
5
+ * Handles campaign operations across different authorization levels
6
+ */
7
+ export { CampaignApi } from './api/campaign-api';
8
+ export { CampaignService } from './services/campaign-service';
9
+ export * from '../shared/interfaces/pers-shared-lib.interfaces';
10
+ import { PersApiClient } from '../core/pers-api-client';
11
+ import { CampaignApi } from './api/campaign-api';
12
+ import { CampaignService } from './services/campaign-service';
13
+ import { CampaignClaimRequestDTO, CampaignCreateRequestDTO, TokenUnitCreateRequestDTO, CampaignBusinessEngagementCreateRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
14
+ /**
15
+ * Create a complete Campaign SDK instance
16
+ *
17
+ * @param apiClient - Configured PERS API client
18
+ * @returns Campaign SDK with flattened structure for better DX
19
+ */
20
+ export declare function createCampaignSDK(apiClient: PersApiClient): {
21
+ getActiveCampaigns: () => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO[]>;
22
+ getCampaignById: (id: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
23
+ claimCampaign: (request: CampaignClaimRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaignUserClaim.dto").CampaignUserClaimDTO>;
24
+ getClaimsForLoggedUser: () => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaignUserClaim.dto").CampaignUserClaimDTO[]>;
25
+ getCampaigns: (active?: boolean) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO[]>;
26
+ getCampaignTriggers: () => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaignTrigger.dto").CampaignTriggerDTO[]>;
27
+ toggleCampaignActive: (campaignId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
28
+ toggleCampaignTestnet: (campaignId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
29
+ createCampaign: (campaign: CampaignCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
30
+ setCampaignTrigger: (campaignId: string, triggerId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
31
+ updateCampaign: (campaignId: string, campaign: CampaignCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
32
+ createCampaignTokenUnit: (campaignId: string, campaignTokenUnit: TokenUnitCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
33
+ deleteCampaignTokenUnit: (campaignId: string, campaignTokenUnitId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
34
+ addBusinessEngagementToCampaign: (campaignId: string, campaignBusinessEngagement: CampaignBusinessEngagementCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
35
+ updateCampaignBusinessEngagement: (campaignId: string, businessEngagementId: string, campaignBusinessEngagement: CampaignBusinessEngagementCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
36
+ deleteCampaignBusinessEngagement: (campaignId: string, businessEngagementId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaign.dto").CampaignDTO>;
37
+ getCampaignClaims: () => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaignUserClaim.dto").CampaignUserClaimDTO[]>;
38
+ getCampaignClaimsByUserId: (userId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaignUserClaim.dto").CampaignUserClaimDTO[]>;
39
+ getCampaignClaimsByBusinessId: (businessId: string) => Promise<import("@explorins/pers-shared/dist/cjs/dto/campaign/campaignUserClaim.dto").CampaignUserClaimDTO[]>;
40
+ api: CampaignApi;
41
+ service: CampaignService;
42
+ };
43
+ export type CampaignSDK = ReturnType<typeof createCampaignSDK>;
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/campaign/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,cAAc,iDAAiD,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,0CAA0C,EAAE,MAAM,iDAAiD,CAAC;AAE3L;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa;;0BAShC,MAAM;6BAGH,uBAAuB;;4BAIxB,OAAO;;uCAEI,MAAM;wCACL,MAAM;+BACf,wBAAwB;qCAClB,MAAM,aAAa,MAAM;iCAC7B,MAAM,YAAY,wBAAwB;0CACjC,MAAM,qBAAqB,yBAAyB;0CACpD,MAAM,uBAAuB,MAAM;kDAC3B,MAAM,8BAA8B,0CAA0C;mDAC7E,MAAM,wBAAwB,MAAM,8BAA8B,0CAA0C;mDAC5G,MAAM,wBAAwB,MAAM;;wCAE/C,MAAM;gDACE,MAAM;;;EAMrD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { CampaignApi } from '../api/campaign-api';
2
+ import { CampaignDTO, CampaignCreateRequestDTO, CampaignUserClaimDTO, CampaignClaimRequestDTO, CampaignTriggerDTO, TokenUnitCreateRequestDTO, CampaignBusinessEngagementCreateRequestDTO } from '../../shared/interfaces/pers-shared-lib.interfaces';
3
+ /**
4
+ * Platform-Agnostic Campaign Service
5
+ *
6
+ * Contains campaign business logic and operations that work across platforms.
7
+ * No framework dependencies - pure TypeScript business logic.
8
+ *
9
+ * Focuses only on actual backend capabilities.
10
+ */
11
+ export declare class CampaignService {
12
+ private campaignApi;
13
+ constructor(campaignApi: CampaignApi);
14
+ /**
15
+ * PUBLIC: Get all active campaigns
16
+ */
17
+ getActiveCampaigns(): Promise<CampaignDTO[]>;
18
+ /**
19
+ * PUBLIC: Get campaign by ID
20
+ */
21
+ getCampaignById(id: string): Promise<CampaignDTO>;
22
+ /**
23
+ * AUTH: Claim campaign
24
+ */
25
+ claimCampaign(request: CampaignClaimRequestDTO): Promise<CampaignUserClaimDTO>;
26
+ /**
27
+ * AUTH: Get claims for logged user
28
+ */
29
+ getClaimsForLoggedUser(): Promise<CampaignUserClaimDTO[]>;
30
+ /**
31
+ * ADMIN: Get campaigns with optional active filter
32
+ */
33
+ getCampaigns(active?: boolean): Promise<CampaignDTO[]>;
34
+ /**
35
+ * ADMIN: Get campaign triggers
36
+ */
37
+ getCampaignTriggers(): Promise<CampaignTriggerDTO[]>;
38
+ /**
39
+ * ADMIN: Toggle campaign active status
40
+ */
41
+ toggleCampaignActive(campaignId: string): Promise<CampaignDTO>;
42
+ /**
43
+ * ADMIN: Toggle campaign testnet environment
44
+ */
45
+ toggleCampaignTestnet(campaignId: string): Promise<CampaignDTO>;
46
+ /**
47
+ * ADMIN: Create campaign
48
+ */
49
+ createCampaign(campaign: CampaignCreateRequestDTO): Promise<CampaignDTO>;
50
+ /**
51
+ * ADMIN: Set campaign trigger
52
+ */
53
+ setCampaignTrigger(campaignId: string, triggerId: string): Promise<CampaignDTO>;
54
+ /**
55
+ * ADMIN: Update campaign
56
+ */
57
+ updateCampaign(campaignId: string, campaign: CampaignCreateRequestDTO): Promise<CampaignDTO>;
58
+ /**
59
+ * ADMIN: Create campaign token unit
60
+ */
61
+ createCampaignTokenUnit(campaignId: string, campaignTokenUnit: TokenUnitCreateRequestDTO): Promise<CampaignDTO>;
62
+ /**
63
+ * ADMIN: Delete campaign token unit
64
+ */
65
+ deleteCampaignTokenUnit(campaignId: string, campaignTokenUnitId: string): Promise<CampaignDTO>;
66
+ /**
67
+ * ADMIN: Add business engagement to campaign
68
+ */
69
+ addBusinessEngagementToCampaign(campaignId: string, campaignBusinessEngagement: CampaignBusinessEngagementCreateRequestDTO): Promise<CampaignDTO>;
70
+ /**
71
+ * ADMIN: Update campaign business engagement
72
+ */
73
+ updateCampaignBusinessEngagement(campaignId: string, businessEngagementId: string, campaignBusinessEngagement: CampaignBusinessEngagementCreateRequestDTO): Promise<CampaignDTO>;
74
+ deleteCampaignBusinessEngagement(campaignId: string, businessEngagementId: string): Promise<CampaignDTO>;
75
+ /**
76
+ * ADMIN: Get all campaign claims
77
+ */
78
+ getCampaignClaims(): Promise<CampaignUserClaimDTO[]>;
79
+ /**
80
+ * ADMIN: Get campaign claims by user ID
81
+ */
82
+ getCampaignClaimsByUserId(userId: string): Promise<CampaignUserClaimDTO[]>;
83
+ /**
84
+ * ADMIN: Get campaign claims by business ID
85
+ */
86
+ getCampaignClaimsByBusinessId(businessId: string): Promise<CampaignUserClaimDTO[]>;
87
+ }
88
+ //# sourceMappingURL=campaign-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-service.d.ts","sourceRoot":"","sources":["../../../src/campaign/services/campaign-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,0CAA0C,EAC3C,MAAM,oDAAoD,CAAC;AAE5D;;;;;;;GAOG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAM5C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAIlD;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQvD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIpF;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAQ/D;;OAEG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI5D;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAI1D;;OAEG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpE;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9E;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrF;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIlG;;OAEG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrH;;OAEG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpG;;OAEG;IACG,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,0BAA0B,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvJ;;OAEG;IACG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,0BAA0B,EAAE,0CAA0C,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhL,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9G;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI1D;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIhF;;OAEG;IACG,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAGzF"}