@explorins/pers-sdk 2.1.3 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics/api/analytics-api.d.ts +175 -1
- package/dist/analytics/api/analytics-api.d.ts.map +1 -1
- package/dist/analytics/models/index.d.ts +2 -5
- package/dist/analytics/models/index.d.ts.map +1 -1
- package/dist/analytics/services/analytics-service.d.ts +32 -1
- package/dist/analytics/services/analytics-service.d.ts.map +1 -1
- package/dist/analytics.cjs +9 -44
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +2 -45
- package/dist/analytics.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +59 -4
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/services/campaign-service.d.ts +49 -7
- package/dist/campaign/services/campaign-service.d.ts.map +1 -1
- package/dist/campaign.cjs +150 -14
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +150 -14
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/analytics-service-B9IfG6ox.js +271 -0
- package/dist/chunks/analytics-service-B9IfG6ox.js.map +1 -0
- package/dist/chunks/analytics-service-DwkeBB08.cjs +274 -0
- package/dist/chunks/analytics-service-DwkeBB08.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-fWg-J3_h.js → pers-sdk-CAM0iQyK.js} +982 -189
- package/dist/chunks/pers-sdk-CAM0iQyK.js.map +1 -0
- package/dist/chunks/{pers-sdk-BQw3QUWR.cjs → pers-sdk-Di_R6AiT.cjs} +986 -190
- package/dist/chunks/pers-sdk-Di_R6AiT.cjs.map +1 -0
- package/dist/chunks/{redemption-service-D-hBqh42.js → redemption-service-CQtTLdic.js} +32 -10
- package/dist/chunks/redemption-service-CQtTLdic.js.map +1 -0
- package/dist/chunks/{redemption-service-rMB6T2W5.cjs → redemption-service-DsH7sRdv.cjs} +32 -10
- package/dist/chunks/redemption-service-DsH7sRdv.cjs.map +1 -0
- package/dist/chunks/{transaction-request.builder-C1vVVFto.js → transaction-request.builder-C8ahJYwi.js} +122 -70
- package/dist/chunks/transaction-request.builder-C8ahJYwi.js.map +1 -0
- package/dist/chunks/{transaction-request.builder-BpgtuMMq.cjs → transaction-request.builder-CkYd5bl6.cjs} +122 -70
- package/dist/chunks/transaction-request.builder-CkYd5bl6.cjs.map +1 -0
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core.cjs +5 -4
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +4 -4
- package/dist/index.cjs +13 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/managers/analytics-manager.d.ts +165 -2
- package/dist/managers/analytics-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +180 -30
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/index.d.ts +1 -0
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +52 -2
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +66 -131
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/trigger-source-manager.d.ts +194 -0
- package/dist/managers/trigger-source-manager.d.ts.map +1 -0
- package/dist/managers/user-manager.d.ts +38 -7
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/node.cjs +4 -4
- package/dist/node.js +4 -4
- package/dist/package.json +2 -2
- package/dist/pers-sdk.d.ts +33 -2
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption/api/redemption-api.d.ts +8 -4
- package/dist/redemption/api/redemption-api.d.ts.map +1 -1
- package/dist/redemption/services/redemption-service.d.ts +7 -3
- package/dist/redemption/services/redemption-service.d.ts.map +1 -1
- package/dist/redemption.cjs +1 -1
- package/dist/redemption.js +1 -1
- package/dist/transaction/api/transaction-api.d.ts +37 -42
- package/dist/transaction/api/transaction-api.d.ts.map +1 -1
- package/dist/transaction/models/index.d.ts +21 -0
- package/dist/transaction/models/index.d.ts.map +1 -1
- package/dist/transaction/services/transaction-service.d.ts +10 -15
- package/dist/transaction/services/transaction-service.d.ts.map +1 -1
- package/dist/transaction.cjs +1 -1
- package/dist/transaction.js +1 -1
- package/dist/trigger-source/api/trigger-source-api.d.ts +86 -0
- package/dist/trigger-source/api/trigger-source-api.d.ts.map +1 -0
- package/dist/trigger-source/index.d.ts +9 -0
- package/dist/trigger-source/index.d.ts.map +1 -0
- package/dist/trigger-source/services/trigger-source-service.d.ts +42 -0
- package/dist/trigger-source/services/trigger-source-service.d.ts.map +1 -0
- package/dist/user/api/user-api.d.ts +26 -1
- package/dist/user/api/user-api.d.ts.map +1 -1
- package/dist/user/services/user-service.d.ts +3 -1
- package/dist/user/services/user-service.d.ts.map +1 -1
- package/dist/user.cjs +34 -4
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +34 -4
- package/dist/user.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunks/pers-sdk-BQw3QUWR.cjs.map +0 -1
- package/dist/chunks/pers-sdk-fWg-J3_h.js.map +0 -1
- package/dist/chunks/redemption-service-D-hBqh42.js.map +0 -1
- package/dist/chunks/redemption-service-rMB6T2W5.cjs.map +0 -1
- package/dist/chunks/transaction-request.builder-BpgtuMMq.cjs.map +0 -1
- package/dist/chunks/transaction-request.builder-C1vVVFto.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-manager.d.ts","sourceRoot":"","sources":["../../src/managers/campaign-manager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"campaign-manager.d.ts","sourceRoot":"","sources":["../../src/managers/campaign-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/managers/index.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export { TenantManager } from './tenant-manager';
|
|
|
18
18
|
export { ApiKeyManager } from './api-key-manager';
|
|
19
19
|
export { AnalyticsManager } from './analytics-manager';
|
|
20
20
|
export { DonationManager } from './donation-manager';
|
|
21
|
+
export { TriggerSourceManager } from './trigger-source-manager';
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PaginatedResponseDTO } from '@explorins/pers-shared';
|
|
1
|
+
import { PaginatedResponseDTO, RedemptionRedeemIncludeRelation } from '@explorins/pers-shared';
|
|
2
2
|
import { PersApiClient } from '../core/pers-api-client';
|
|
3
3
|
import { PersEventEmitter } from '../core/events';
|
|
4
4
|
import { RedemptionService } from '../redemption';
|
|
@@ -342,7 +342,57 @@ export declare class RedemptionManager {
|
|
|
342
342
|
* });
|
|
343
343
|
* ```
|
|
344
344
|
*/
|
|
345
|
-
getUserRedemptions(options?: PaginationOptions): Promise<PaginatedResponseDTO<RedemptionRedeemDTO>>;
|
|
345
|
+
getUserRedemptions(options?: PaginationOptions, include?: RedemptionRedeemIncludeRelation[]): Promise<PaginatedResponseDTO<RedemptionRedeemDTO>>;
|
|
346
|
+
/**
|
|
347
|
+
* Admin: Get all redemption redeems with filtering and enriched data
|
|
348
|
+
*
|
|
349
|
+
* Retrieves all redemption redeems across the platform with filtering capabilities.
|
|
350
|
+
* This is an admin-level operation that allows monitoring and analytics of redemption
|
|
351
|
+
* activity. Supports filtering by user, redemption offer, and enrichment of related entities.
|
|
352
|
+
*
|
|
353
|
+
* @param filters - Filter options (userId, redemptionId, pagination)
|
|
354
|
+
* @param include - Optional relations to include for enrichment
|
|
355
|
+
* @returns Promise resolving to paginated list of redemption redeems
|
|
356
|
+
* @throws {PersApiError} When not authenticated as admin
|
|
357
|
+
*
|
|
358
|
+
* @example Get All Redeems
|
|
359
|
+
* ```typescript
|
|
360
|
+
* // Admin operation - get all redemption redeems
|
|
361
|
+
* const { data: allRedeems, pagination } = await sdk.redemptions.getRedemptionRedeems();
|
|
362
|
+
*
|
|
363
|
+
* console.log(`Total redeems: ${pagination.total}`);
|
|
364
|
+
* console.log(`Page ${pagination.page} of ${pagination.pages}`);
|
|
365
|
+
* ```
|
|
366
|
+
*
|
|
367
|
+
* @example Filter by User
|
|
368
|
+
* ```typescript
|
|
369
|
+
* // Get redeems for specific user
|
|
370
|
+
* const { data: userRedeems } = await sdk.redemptions.getRedemptionRedeems({
|
|
371
|
+
* userId: 'user-123',
|
|
372
|
+
* limit: 50
|
|
373
|
+
* });
|
|
374
|
+
*
|
|
375
|
+
* console.log(`User has ${userRedeems.length} redemptions`);
|
|
376
|
+
* ```
|
|
377
|
+
*
|
|
378
|
+
* @example With Enriched Data
|
|
379
|
+
* ```typescript
|
|
380
|
+
* const { data: redeems } = await sdk.redemptions.getRedemptionRedeems(
|
|
381
|
+
* { page: 1, limit: 20 },
|
|
382
|
+
* ['redemption', 'user', 'business']
|
|
383
|
+
* );
|
|
384
|
+
*
|
|
385
|
+
* redeems.forEach(redeem => {
|
|
386
|
+
* const redemptionName = redeem.included?.redemption?.name || 'Unknown';
|
|
387
|
+
* const userEmail = redeem.included?.user?.email || redeem.userId;
|
|
388
|
+
* console.log(`${redemptionName} - ${userEmail}`);
|
|
389
|
+
* });
|
|
390
|
+
* ```
|
|
391
|
+
*/
|
|
392
|
+
getRedemptionRedeems(filters?: {
|
|
393
|
+
userId?: string;
|
|
394
|
+
redemptionId?: string;
|
|
395
|
+
} & PaginationOptions, include?: RedemptionRedeemIncludeRelation[]): Promise<PaginatedResponseDTO<RedemptionRedeemDTO>>;
|
|
346
396
|
/**
|
|
347
397
|
* Admin: Create new redemption offer
|
|
348
398
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemption-manager.d.ts","sourceRoot":"","sources":["../../src/managers/redemption-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"redemption-manager.d.ts","sourceRoot":"","sources":["../../src/managers/redemption-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { PersApiClient } from '../core/pers-api-client';
|
|
2
2
|
import { PersEventEmitter } from '../core/events';
|
|
3
|
-
import { TransactionService } from '../transaction';
|
|
4
|
-
import { PaginatedResponseDTO, TransactionAnalyticsRequestDTO, TransactionAnalyticsResponseDTO, TransactionPaginationRequestDTO, TransactionRequestResponseDTO,
|
|
3
|
+
import { TransactionService, TransactionQueryOptions } from '../transaction';
|
|
4
|
+
import { PaginatedResponseDTO, TransactionAnalyticsRequestDTO, TransactionAnalyticsResponseDTO, TransactionPaginationRequestDTO, TransactionRequestResponseDTO, TransactionIncludeRelation } from '@explorins/pers-shared';
|
|
5
5
|
import { AccountSelectorDTO, TransactionDTO, TransactionRequestDTO, TransactionSubmissionRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
6
|
-
import { PaginationOptions } from '../shared/utils/pagination-utils';
|
|
7
6
|
/**
|
|
8
7
|
* Transaction Manager - Clean, high-level interface for transaction operations
|
|
9
8
|
*
|
|
@@ -50,8 +49,8 @@ import { PaginationOptions } from '../shared/utils/pagination-utils';
|
|
|
50
49
|
*
|
|
51
50
|
* @example Administrative Reporting
|
|
52
51
|
* ```typescript
|
|
53
|
-
* // Admin: Get
|
|
54
|
-
* const allTransactions = await sdk.transactions.
|
|
52
|
+
* // Admin: Get paginated transactions for analysis
|
|
53
|
+
* const allTransactions = await sdk.transactions.getPaginatedTransactions({ page: 1, limit: 100 });
|
|
55
54
|
*
|
|
56
55
|
* // Export transaction data
|
|
57
56
|
* const csvBlob = await sdk.transactions.exportTransactionsCSV();
|
|
@@ -72,13 +71,18 @@ export declare class TransactionManager {
|
|
|
72
71
|
* Provides complete transaction audit trail and verification data.
|
|
73
72
|
*
|
|
74
73
|
* @param transactionId - Unique transaction identifier
|
|
74
|
+
* @param include - Optional relations to include (sender, recipient, business) for enriched entity data
|
|
75
75
|
* @returns Promise resolving to complete transaction data
|
|
76
76
|
* @throws {PersApiError} When transaction with specified ID is not found or access denied
|
|
77
77
|
*
|
|
78
78
|
* @example
|
|
79
79
|
* ```typescript
|
|
80
80
|
* try {
|
|
81
|
-
*
|
|
81
|
+
* // Get transaction with enriched sender/recipient data
|
|
82
|
+
* const transaction = await sdk.transactions.getTransactionById(
|
|
83
|
+
* 'txn-abc123',
|
|
84
|
+
* ['sender', 'recipient', 'business']
|
|
85
|
+
* );
|
|
82
86
|
*
|
|
83
87
|
* console.log('Transaction Details:');
|
|
84
88
|
* console.log('ID:', transaction.id);
|
|
@@ -91,16 +95,19 @@ export declare class TransactionManager {
|
|
|
91
95
|
* console.log('Description:', transaction.description);
|
|
92
96
|
* }
|
|
93
97
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
98
|
+
* // Access enriched sender data
|
|
99
|
+
* if (transaction.included?.sender) {
|
|
100
|
+
* console.log('Sender:', transaction.included.sender);
|
|
96
101
|
* }
|
|
97
102
|
*
|
|
98
|
-
* //
|
|
99
|
-
* if (transaction.
|
|
100
|
-
* console.log('
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
103
|
+
* // Access enriched recipient data
|
|
104
|
+
* if (transaction.included?.recipient) {
|
|
105
|
+
* console.log('Recipient:', transaction.included.recipient);
|
|
106
|
+
* }
|
|
107
|
+
*
|
|
108
|
+
* // Access enriched business data
|
|
109
|
+
* if (transaction.included?.engagedBusiness) {
|
|
110
|
+
* console.log('Business:', transaction.included.engagedBusiness.displayName);
|
|
104
111
|
* }
|
|
105
112
|
*
|
|
106
113
|
* // Show blockchain confirmation
|
|
@@ -113,7 +120,7 @@ export declare class TransactionManager {
|
|
|
113
120
|
* }
|
|
114
121
|
* ```
|
|
115
122
|
*/
|
|
116
|
-
getTransactionById(transactionId: string): Promise<TransactionDTO>;
|
|
123
|
+
getTransactionById(transactionId: string, include?: TransactionIncludeRelation[]): Promise<TransactionDTO>;
|
|
117
124
|
/**
|
|
118
125
|
* Create a new transaction
|
|
119
126
|
*
|
|
@@ -197,147 +204,61 @@ export declare class TransactionManager {
|
|
|
197
204
|
/**
|
|
198
205
|
* Get user's transaction history
|
|
199
206
|
*
|
|
200
|
-
* Retrieves transaction history for the authenticated user
|
|
201
|
-
*
|
|
207
|
+
* Retrieves transaction history for the authenticated user with comprehensive
|
|
208
|
+
* filtering options. Provides chronological view of all user's loyalty
|
|
202
209
|
* activities including purchases, rewards, redemptions, and transfers.
|
|
210
|
+
* Optionally enrich with related entities (sender, recipient, business).
|
|
203
211
|
*
|
|
204
|
-
* @param
|
|
205
|
-
* @
|
|
206
|
-
* @returns Promise resolving to array of user's transactions
|
|
212
|
+
* @param options - Query options including filters, pagination, and include relations
|
|
213
|
+
* @returns Promise resolving to paginated transaction data with optional included entities
|
|
207
214
|
*
|
|
208
215
|
* @example All Transactions
|
|
209
216
|
* ```typescript
|
|
210
|
-
* const
|
|
217
|
+
* const result = await sdk.transactions.getUserTransactionHistory();
|
|
211
218
|
*
|
|
212
|
-
* console.log(`
|
|
219
|
+
* console.log(`Transaction History (${result.data.length} of ${result.pagination.total} transactions)`);
|
|
213
220
|
*
|
|
214
|
-
*
|
|
221
|
+
* result.data.forEach((transaction, index) => {
|
|
215
222
|
* const date = new Date(transaction.createdAt).toLocaleDateString();
|
|
216
223
|
* console.log(`\n${index + 1}. ${transaction.type} - ${date}`);
|
|
217
224
|
* console.log(` ${transaction.description || 'No description'}`);
|
|
218
225
|
* console.log(` Status: ${transaction.status}`);
|
|
219
|
-
*
|
|
220
|
-
* if (transaction.amount && transaction.currency) {
|
|
221
|
-
* console.log(` Amount: ${transaction.amount} ${transaction.currency}`);
|
|
222
|
-
* }
|
|
223
|
-
*
|
|
224
|
-
* if (transaction.business) {
|
|
225
|
-
* console.log(` Business: ${transaction.business.displayName}`);
|
|
226
|
-
* }
|
|
227
226
|
* });
|
|
228
227
|
* ```
|
|
229
228
|
*
|
|
230
|
-
* @example
|
|
229
|
+
* @example Filter by Role and Status
|
|
231
230
|
* ```typescript
|
|
232
|
-
* // Get only
|
|
233
|
-
* const
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* if (purchase.amount) {
|
|
240
|
-
* totalSpent += purchase.amount;
|
|
241
|
-
* }
|
|
242
|
-
*
|
|
243
|
-
* if (purchase.tokensEarned?.length) {
|
|
244
|
-
* purchase.tokensEarned.forEach(reward => {
|
|
245
|
-
* totalRewards += reward.amount;
|
|
246
|
-
* });
|
|
247
|
-
* }
|
|
231
|
+
* // Get only completed sent transactions
|
|
232
|
+
* const sent = await sdk.transactions.getUserTransactionHistory({
|
|
233
|
+
* role: TransactionRole.SENDER,
|
|
234
|
+
* status: TransactionStatus.COMPLETED,
|
|
235
|
+
* include: ['recipient', 'business'],
|
|
236
|
+
* page: 1,
|
|
237
|
+
* limit: 50
|
|
248
238
|
* });
|
|
249
239
|
*
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
* console.log(`Total spent: $${totalSpent.toFixed(2)}`);
|
|
253
|
-
* console.log(`Total rewards earned: ${totalRewards} points`);
|
|
254
|
-
* ```
|
|
255
|
-
*
|
|
256
|
-
* @example Recent Activity
|
|
257
|
-
* ```typescript
|
|
258
|
-
* const recentTransactions = await sdk.transactions.getUserTransactionHistory('ALL');
|
|
259
|
-
*
|
|
260
|
-
* // Filter to last 30 days
|
|
261
|
-
* const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000);
|
|
262
|
-
* const recentActivity = recentTransactions.filter(t =>
|
|
263
|
-
* new Date(t.createdAt) > thirtyDaysAgo
|
|
264
|
-
* );
|
|
265
|
-
*
|
|
266
|
-
* console.log(`Recent Activity (${recentActivity.length} transactions in last 30 days):`);
|
|
267
|
-
*
|
|
268
|
-
* // Group by type
|
|
269
|
-
* const activityByType = recentActivity.reduce((acc, t) => {
|
|
270
|
-
* acc[t.type] = (acc[t.type] || 0) + 1;
|
|
271
|
-
* return acc;
|
|
272
|
-
* }, {});
|
|
273
|
-
*
|
|
274
|
-
* Object.entries(activityByType).forEach(([type, count]) => {
|
|
275
|
-
* console.log(`${type}: ${count} transactions`);
|
|
240
|
+
* sent.data.forEach(tx => {
|
|
241
|
+
* console.log(`Sent to: ${tx.included?.recipient?.displayName || tx.recipientAddress}`);
|
|
276
242
|
* });
|
|
277
243
|
* ```
|
|
278
|
-
*/
|
|
279
|
-
getUserTransactionHistory(role?: TransactionRole, options?: PaginationOptions): Promise<PaginatedResponseDTO<TransactionDTO>>;
|
|
280
|
-
/**
|
|
281
|
-
* Admin: Get all tenant transactions
|
|
282
|
-
*
|
|
283
|
-
* Retrieves all transactions across the entire tenant/organization for
|
|
284
|
-
* comprehensive reporting and analysis. This operation requires administrator
|
|
285
|
-
* privileges and provides system-wide transaction visibility.
|
|
286
244
|
*
|
|
287
|
-
* @
|
|
288
|
-
* @returns Promise resolving to array of all tenant transactions
|
|
289
|
-
* @throws {PersApiError} When not authenticated as administrator
|
|
290
|
-
*
|
|
291
|
-
* @example
|
|
245
|
+
* @example Filter by Trigger Process (Campaign/Redemption)
|
|
292
246
|
* ```typescript
|
|
293
|
-
* //
|
|
294
|
-
* const
|
|
295
|
-
*
|
|
296
|
-
*
|
|
297
|
-
* console.log(`Total transactions: ${allTransactions.length}`);
|
|
298
|
-
*
|
|
299
|
-
* // Analyze by status
|
|
300
|
-
* const statusCounts = allTransactions.reduce((acc, t) => {
|
|
301
|
-
* acc[t.status] = (acc[t.status] || 0) + 1;
|
|
302
|
-
* return acc;
|
|
303
|
-
* }, {});
|
|
304
|
-
*
|
|
305
|
-
* console.log('\nBy status:');
|
|
306
|
-
* Object.entries(statusCounts).forEach(([status, count]) => {
|
|
307
|
-
* console.log(`${status}: ${count} transactions`);
|
|
247
|
+
* // Get all transactions triggered by a specific campaign claim
|
|
248
|
+
* const claimTxs = await sdk.transactions.getUserTransactionHistory({
|
|
249
|
+
* triggerProcessId: 'claim-abc123',
|
|
250
|
+
* include: ['sender', 'recipient', 'business']
|
|
308
251
|
* });
|
|
309
252
|
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
* console.log('\nBy type:');
|
|
317
|
-
* Object.entries(typeCounts).forEach(([type, count]) => {
|
|
318
|
-
* console.log(`${type}: ${count} transactions`);
|
|
253
|
+
* claimTxs.data.forEach(tx => {
|
|
254
|
+
* console.log('Transaction from claim:', tx.id);
|
|
255
|
+
* if (tx.included?.engagedBusiness) {
|
|
256
|
+
* console.log('Business:', tx.included.engagedBusiness.displayName);
|
|
257
|
+
* }
|
|
319
258
|
* });
|
|
320
|
-
*
|
|
321
|
-
* // Calculate volume metrics
|
|
322
|
-
* const totalVolume = allTransactions.reduce((sum, t) =>
|
|
323
|
-
* sum + (t.amount || 0), 0
|
|
324
|
-
* );
|
|
325
|
-
*
|
|
326
|
-
* const avgTransactionSize = totalVolume / allTransactions.length;
|
|
327
|
-
*
|
|
328
|
-
* console.log('\nVolume metrics:');
|
|
329
|
-
* console.log(`Total volume: $${totalVolume.toFixed(2)}`);
|
|
330
|
-
* console.log(`Average transaction: $${avgTransactionSize.toFixed(2)}`);
|
|
331
|
-
*
|
|
332
|
-
* // Recent activity analysis
|
|
333
|
-
* const last24Hours = allTransactions.filter(t =>
|
|
334
|
-
* new Date(t.createdAt) > new Date(Date.now() - 24 * 60 * 60 * 1000)
|
|
335
|
-
* );
|
|
336
|
-
*
|
|
337
|
-
* console.log(`\n⏰ Last 24 hours: ${last24Hours.length} transactions`);
|
|
338
259
|
* ```
|
|
339
260
|
*/
|
|
340
|
-
|
|
261
|
+
getUserTransactionHistory(options?: TransactionQueryOptions): Promise<PaginatedResponseDTO<TransactionDTO>>;
|
|
341
262
|
/**
|
|
342
263
|
* Admin: Get paginated transactions
|
|
343
264
|
*
|
|
@@ -400,8 +321,22 @@ export declare class TransactionManager {
|
|
|
400
321
|
* console.log(`$${transaction.amount} - ${transaction.business?.displayName}`);
|
|
401
322
|
* });
|
|
402
323
|
* ```
|
|
324
|
+
*
|
|
325
|
+
* @example With Included Relations
|
|
326
|
+
* ```typescript
|
|
327
|
+
* // Include sender and recipient entities
|
|
328
|
+
* const result = await sdk.transactions.getPaginatedTransactions(
|
|
329
|
+
* { page: 1, limit: 50 },
|
|
330
|
+
* ['sender', 'recipient', 'business']
|
|
331
|
+
* );
|
|
332
|
+
*
|
|
333
|
+
* result.data.forEach(tx => {
|
|
334
|
+
* if (tx.included?.sender) console.log('From:', tx.included.sender);
|
|
335
|
+
* if (tx.included?.recipient) console.log('To:', tx.included.recipient);
|
|
336
|
+
* });
|
|
337
|
+
* ```
|
|
403
338
|
*/
|
|
404
|
-
getPaginatedTransactions(params: TransactionPaginationRequestDTO): Promise<PaginatedResponseDTO<TransactionDTO>>;
|
|
339
|
+
getPaginatedTransactions(params: TransactionPaginationRequestDTO, include?: TransactionIncludeRelation[]): Promise<PaginatedResponseDTO<TransactionDTO>>;
|
|
405
340
|
/**
|
|
406
341
|
* Admin: Export transactions as CSV
|
|
407
342
|
*
|
|
@@ -1 +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,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
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,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAkB,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,6BAA6B,EAAmB,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC5O,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAE7J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,0BAA0B,EAAE,GACrC,OAAO,CAAC,cAAc,CAAC;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,iBAAiB,CAAC,eAAe,EAAE,qBAAqB;IAa9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACG,yBAAyB,CAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EG;IACG,wBAAwB,CAC5B,MAAM,EAAE,+BAA+B,EACvC,OAAO,CAAC,EAAE,0BAA0B,EAAE,GACrC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;OAQG;IACG,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAI/F;;;;;;;;OAQG;IACG,8BAA8B,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAI5G;;;;;;;OAOG;IACG,uBAAuB,CAAC,YAAY,EAAE,+BAA+B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAapH;;;;;;;OAOG;IACG,yBAAyB,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAInH;;;;;;;OAOG;IACG,4BAA4B,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAItH;;;;;;;;OAQG;IACG,uBAAuB,CAAC,gBAAgB,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAIzH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,qBAAqB,IAAI,kBAAkB;CAG5C"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { PaginatedResponseDTO, SortOrder, TriggerSourceDTO, TriggerSourceCreateRequestDTO, TriggerSourceType } from '@explorins/pers-shared';
|
|
2
|
+
import { PersApiClient } from '../core/pers-api-client';
|
|
3
|
+
import { PersEventEmitter } from '../core/events';
|
|
4
|
+
import { TriggerSourceService } from '../trigger-source';
|
|
5
|
+
/**
|
|
6
|
+
* TriggerSource Manager - Clean, high-level interface for trigger source operations
|
|
7
|
+
*
|
|
8
|
+
* Manages trigger sources which are physical or digital activation points for campaigns:
|
|
9
|
+
* - QR_CODE: Scannable QR codes
|
|
10
|
+
* - NFC_TAG: NFC tap points
|
|
11
|
+
* - GPS_GEOFENCE: Location-based triggers
|
|
12
|
+
* - API_WEBHOOK: External system integration
|
|
13
|
+
* - TRANSACTION: Purchase/payment based triggers
|
|
14
|
+
*
|
|
15
|
+
* Trigger sources are independent entities that can be created, managed, and then
|
|
16
|
+
* assigned to campaigns. This separation allows reuse and flexible campaign configuration.
|
|
17
|
+
*
|
|
18
|
+
* @group Managers
|
|
19
|
+
* @category TriggerSource Management
|
|
20
|
+
*
|
|
21
|
+
* @example Basic TriggerSource Operations
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Get all QR code trigger sources
|
|
24
|
+
* const qrSources = await sdk.triggerSources.getAll({ type: 'QR_CODE' });
|
|
25
|
+
*
|
|
26
|
+
* // Create a new QR code trigger source
|
|
27
|
+
* const source = await sdk.triggerSources.create({
|
|
28
|
+
* type: 'QR_CODE',
|
|
29
|
+
* name: 'Store Entrance QR',
|
|
30
|
+
* businessId: 'business-123'
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // Assign to campaign (via CampaignManager)
|
|
34
|
+
* await sdk.campaigns.assignTriggerSource('campaign-456', source.id);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class TriggerSourceManager {
|
|
38
|
+
private apiClient;
|
|
39
|
+
private events?;
|
|
40
|
+
private triggerSourceService;
|
|
41
|
+
constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
|
|
42
|
+
/**
|
|
43
|
+
* Get trigger sources with optional filters and pagination
|
|
44
|
+
*
|
|
45
|
+
* Retrieves trigger sources (QR codes, NFC tags, GPS geofences, webhooks, etc.)
|
|
46
|
+
* that can be used to activate campaigns. Supports filtering by type, business,
|
|
47
|
+
* campaign association, and active status.
|
|
48
|
+
*
|
|
49
|
+
* @param options - Filter and pagination options
|
|
50
|
+
* @returns Promise resolving to paginated trigger sources
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Get all QR code trigger sources
|
|
55
|
+
* const qrSources = await sdk.triggerSources.getAll({ type: 'QR_CODE' });
|
|
56
|
+
*
|
|
57
|
+
* // Get trigger sources for a specific business
|
|
58
|
+
* const businessSources = await sdk.triggerSources.getAll({
|
|
59
|
+
* businessId: 'business-123',
|
|
60
|
+
* active: true,
|
|
61
|
+
* page: 1,
|
|
62
|
+
* limit: 20
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* // Get trigger sources assigned to a campaign
|
|
66
|
+
* const campaignSources = await sdk.triggerSources.getAll({
|
|
67
|
+
* campaignId: 'campaign-456'
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
getAll(options?: {
|
|
72
|
+
type?: TriggerSourceType;
|
|
73
|
+
businessId?: string;
|
|
74
|
+
campaignId?: string;
|
|
75
|
+
active?: boolean;
|
|
76
|
+
page?: number;
|
|
77
|
+
limit?: number;
|
|
78
|
+
sortBy?: 'name' | 'createdAt' | 'type';
|
|
79
|
+
sortOrder?: SortOrder;
|
|
80
|
+
}): Promise<PaginatedResponseDTO<TriggerSourceDTO>>;
|
|
81
|
+
/**
|
|
82
|
+
* Get trigger source by ID
|
|
83
|
+
*
|
|
84
|
+
* Retrieves detailed information for a specific trigger source including
|
|
85
|
+
* its type, location, metadata, and usage analytics.
|
|
86
|
+
*
|
|
87
|
+
* @param triggerSourceId - UUID of the trigger source
|
|
88
|
+
* @returns Promise resolving to trigger source details
|
|
89
|
+
* @throws {PersApiError} When trigger source with specified ID is not found
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const source = await sdk.triggerSources.getById('source-123');
|
|
94
|
+
*
|
|
95
|
+
* console.log('Trigger Source:', source.name);
|
|
96
|
+
* console.log('Type:', source.type);
|
|
97
|
+
* console.log('Active:', source.isActive);
|
|
98
|
+
*
|
|
99
|
+
* if (source.coordsLatitude && source.coordsLongitude) {
|
|
100
|
+
* console.log('Location:', source.coordsLatitude, source.coordsLongitude);
|
|
101
|
+
* }
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
getById(triggerSourceId: string): Promise<TriggerSourceDTO>;
|
|
105
|
+
/**
|
|
106
|
+
* Admin: Create a new trigger source
|
|
107
|
+
*
|
|
108
|
+
* Creates a new trigger source (QR code, NFC tag, GPS geofence, webhook, or
|
|
109
|
+
* transaction-based trigger) that can be assigned to campaigns. Requires
|
|
110
|
+
* administrator privileges.
|
|
111
|
+
*
|
|
112
|
+
* @param triggerSource - Trigger source creation data
|
|
113
|
+
* @returns Promise resolving to created trigger source
|
|
114
|
+
* @throws {PersApiError} When not authenticated as admin or validation fails
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* // Create a QR code trigger source
|
|
119
|
+
* const qrSource = await sdk.triggerSources.create({
|
|
120
|
+
* type: 'QR_CODE',
|
|
121
|
+
* name: 'Store Entrance QR',
|
|
122
|
+
* description: 'QR code at main entrance',
|
|
123
|
+
* businessId: 'business-123',
|
|
124
|
+
* coordsLatitude: 47.6062,
|
|
125
|
+
* coordsLongitude: -122.3321
|
|
126
|
+
* });
|
|
127
|
+
*
|
|
128
|
+
* // Create an NFC tag trigger source
|
|
129
|
+
* const nfcSource = await sdk.triggerSources.create({
|
|
130
|
+
* type: 'NFC_TAG',
|
|
131
|
+
* name: 'Product Display NFC',
|
|
132
|
+
* metadata: { productId: 'SKU-12345' }
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* // Create a GPS geofence trigger source
|
|
136
|
+
* const geoSource = await sdk.triggerSources.create({
|
|
137
|
+
* type: 'GPS_GEOFENCE',
|
|
138
|
+
* name: 'Store Area',
|
|
139
|
+
* coordsLatitude: 47.6062,
|
|
140
|
+
* coordsLongitude: -122.3321,
|
|
141
|
+
* metadata: { radiusMeters: 100 }
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
create(triggerSource: TriggerSourceCreateRequestDTO): Promise<TriggerSourceDTO>;
|
|
146
|
+
/**
|
|
147
|
+
* Admin: Update a trigger source
|
|
148
|
+
*
|
|
149
|
+
* Updates an existing trigger source's configuration. All fields are optional;
|
|
150
|
+
* only provided fields will be updated. Requires administrator privileges.
|
|
151
|
+
*
|
|
152
|
+
* @param triggerSourceId - UUID of the trigger source to update
|
|
153
|
+
* @param triggerSource - Updated trigger source data (partial)
|
|
154
|
+
* @returns Promise resolving to updated trigger source
|
|
155
|
+
* @throws {PersApiError} When not authenticated as admin or trigger source not found
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* // Update trigger source name and location
|
|
160
|
+
* const updated = await sdk.triggerSources.update('source-123', {
|
|
161
|
+
* name: 'Updated Store Entrance QR',
|
|
162
|
+
* description: 'New description',
|
|
163
|
+
* coordsLatitude: 47.6063,
|
|
164
|
+
* coordsLongitude: -122.3322
|
|
165
|
+
* });
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
update(triggerSourceId: string, triggerSource: Partial<TriggerSourceCreateRequestDTO>): Promise<TriggerSourceDTO>;
|
|
169
|
+
/**
|
|
170
|
+
* Admin: Delete a trigger source
|
|
171
|
+
*
|
|
172
|
+
* Soft deletes a trigger source, making it inactive. The trigger source will
|
|
173
|
+
* be removed from any campaigns it was assigned to. Requires administrator
|
|
174
|
+
* privileges.
|
|
175
|
+
*
|
|
176
|
+
* @param triggerSourceId - UUID of the trigger source to delete
|
|
177
|
+
* @returns Promise resolving to success status
|
|
178
|
+
* @throws {PersApiError} When not authenticated as admin or trigger source not found
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* const success = await sdk.triggerSources.delete('source-123');
|
|
183
|
+
* console.log('Trigger source deleted:', success);
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
delete(triggerSourceId: string): Promise<boolean>;
|
|
187
|
+
/**
|
|
188
|
+
* Get the full trigger source service for advanced operations
|
|
189
|
+
*
|
|
190
|
+
* @returns TriggerSourceService instance with full API access
|
|
191
|
+
*/
|
|
192
|
+
getTriggerSourceService(): TriggerSourceService;
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=trigger-source-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-source-manager.d.ts","sourceRoot":"","sources":["../../src/managers/trigger-source-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAoB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,oBAAoB,CAAuB;gBAGzC,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE;QACrB,IAAI,CAAC,EAAE,iBAAiB,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;QACvC,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAInD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,MAAM,CAAC,aAAa,EAAE,6BAA6B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAarF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,OAAO,CAAC,6BAA6B,CAAC,GACpD,OAAO,CAAC,gBAAgB,CAAC;IAa5B;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAavD;;;;OAIG;IACH,uBAAuB,IAAI,oBAAoB;CAGhD"}
|