@explorins/pers-sdk 1.6.4 → 1.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -342
- package/dist/analytics/index.d.ts +0 -16
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics.cjs +5 -73
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +1 -72
- package/dist/analytics.js.map +1 -1
- package/dist/business/index.d.ts +0 -24
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business.cjs +5 -273
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +1 -272
- package/dist/business.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +3 -3
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/index.d.ts +0 -34
- package/dist/campaign/index.d.ts.map +1 -1
- package/dist/campaign.cjs +5 -447
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +1 -446
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/analytics-service-CitlimKJ.cjs +49 -0
- package/dist/chunks/analytics-service-CitlimKJ.cjs.map +1 -0
- package/dist/chunks/analytics-service-CxyrOwel.js +46 -0
- package/dist/chunks/analytics-service-CxyrOwel.js.map +1 -0
- package/dist/chunks/{token-sdk-BW4kkJb3.js → base-token-service-BSXDwrcq.js} +138 -204
- package/dist/chunks/base-token-service-BSXDwrcq.js.map +1 -0
- package/dist/chunks/{token-sdk-CiAbOb6c.cjs → base-token-service-CYuqPPs0.cjs} +140 -207
- package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +1 -0
- package/dist/chunks/business-service-Cq3-oksM.cjs +241 -0
- package/dist/chunks/business-service-Cq3-oksM.cjs.map +1 -0
- package/dist/chunks/business-service-DrC-TNGa.js +238 -0
- package/dist/chunks/business-service-DrC-TNGa.js.map +1 -0
- package/dist/chunks/campaign-service-CWK9I388.cjs +403 -0
- package/dist/chunks/campaign-service-CWK9I388.cjs.map +1 -0
- package/dist/chunks/campaign-service-Dd7gMjC9.js +400 -0
- package/dist/chunks/campaign-service-Dd7gMjC9.js.map +1 -0
- package/dist/chunks/donation-service-CyJS4DIZ.js +47 -0
- package/dist/chunks/donation-service-CyJS4DIZ.js.map +1 -0
- package/dist/chunks/donation-service-D-xFrONi.cjs +50 -0
- package/dist/chunks/donation-service-D-xFrONi.cjs.map +1 -0
- package/dist/chunks/{index-CJ9Jfa4A.js → explorer.utils-Ckll15ja.js} +108 -172
- package/dist/chunks/explorer.utils-Ckll15ja.js.map +1 -0
- package/dist/chunks/{index-CzEluQmf.cjs → explorer.utils-GpskbLl1.cjs} +106 -174
- package/dist/chunks/explorer.utils-GpskbLl1.cjs.map +1 -0
- package/dist/chunks/index-BtDNXaFq.js +13 -0
- package/dist/chunks/index-BtDNXaFq.js.map +1 -0
- package/dist/chunks/index-CMk3Aqkk.cjs +15 -0
- package/dist/chunks/index-CMk3Aqkk.cjs.map +1 -0
- package/dist/chunks/payment-service-B4qx0qiE.cjs +220 -0
- package/dist/chunks/payment-service-B4qx0qiE.cjs.map +1 -0
- package/dist/chunks/payment-service-DfCBFosx.js +217 -0
- package/dist/chunks/payment-service-DfCBFosx.js.map +1 -0
- package/dist/chunks/pers-sdk-Bd6BZHgt.js +5672 -0
- package/dist/chunks/pers-sdk-Bd6BZHgt.js.map +1 -0
- package/dist/chunks/pers-sdk-CmyPEhy7.cjs +5705 -0
- package/dist/chunks/pers-sdk-CmyPEhy7.cjs.map +1 -0
- package/dist/chunks/redemption-service-7qbeQxEM.cjs +330 -0
- package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +1 -0
- package/dist/chunks/redemption-service-BT0J5Iy7.js +327 -0
- package/dist/chunks/redemption-service-BT0J5Iy7.js.map +1 -0
- package/dist/chunks/tenant-service-Ba7xrWED.cjs +171 -0
- package/dist/chunks/tenant-service-Ba7xrWED.cjs.map +1 -0
- package/dist/chunks/tenant-service-DELk412y.js +168 -0
- package/dist/chunks/tenant-service-DELk412y.js.map +1 -0
- package/dist/chunks/token-service-BWScn8Qa.cjs +208 -0
- package/dist/chunks/token-service-BWScn8Qa.cjs.map +1 -0
- package/dist/chunks/token-service-CpVwC5Eb.js +205 -0
- package/dist/chunks/token-service-CpVwC5Eb.js.map +1 -0
- package/dist/chunks/user-service-D1Rn4U8u.cjs +153 -0
- package/dist/chunks/user-service-D1Rn4U8u.cjs.map +1 -0
- package/dist/chunks/user-service-D6mTa_WZ.js +150 -0
- package/dist/chunks/user-service-D6mTa_WZ.js.map +1 -0
- package/dist/chunks/{index-BfOoX87y.cjs → web3-chain-service-D75TcHkh.cjs} +28 -53
- package/dist/chunks/web3-chain-service-D75TcHkh.cjs.map +1 -0
- package/dist/chunks/{index-CM21r58m.js → web3-chain-service-Dp5Z8p9I.js} +28 -51
- package/dist/chunks/web3-chain-service-Dp5Z8p9I.js.map +1 -0
- package/dist/core/auth/api/auth-api.d.ts +11 -14
- package/dist/core/auth/api/auth-api.d.ts.map +1 -1
- package/dist/core/auth/auth-provider.interface.d.ts +36 -68
- package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
- package/dist/core/auth/default-auth-provider.d.ts +13 -59
- package/dist/core/auth/default-auth-provider.d.ts.map +1 -1
- package/dist/core/auth/index.d.ts +8 -14
- package/dist/core/auth/index.d.ts.map +1 -1
- package/dist/core/auth/refresh-manager.d.ts +15 -0
- package/dist/core/auth/refresh-manager.d.ts.map +1 -0
- package/dist/core/auth/services/auth-service.d.ts +15 -21
- package/dist/core/auth/services/auth-service.d.ts.map +1 -1
- package/dist/core/auth/token-storage.d.ts +26 -48
- package/dist/core/auth/token-storage.d.ts.map +1 -1
- package/dist/core/environment.d.ts +2 -4
- package/dist/core/environment.d.ts.map +1 -1
- package/dist/core/errors/index.d.ts +1 -5
- package/dist/core/errors/index.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/pers-api-client.d.ts +14 -156
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core/pers-config.d.ts +13 -12
- package/dist/core/pers-config.d.ts.map +1 -1
- package/dist/core/utils/jwt.function.d.ts +9 -0
- package/dist/core/utils/jwt.function.d.ts.map +1 -1
- package/dist/core.cjs +22 -18
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +13 -14
- package/dist/core.js.map +1 -1
- package/dist/donation/index.d.ts +0 -15
- package/dist/donation/index.d.ts.map +1 -1
- package/dist/donation.cjs +5 -75
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +1 -74
- package/dist/donation.js.map +1 -1
- package/dist/index.cjs +50 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -15
- package/dist/managers/analytics-manager.d.ts +290 -10
- package/dist/managers/analytics-manager.d.ts.map +1 -1
- package/dist/managers/auth-manager.d.ts +123 -23
- package/dist/managers/auth-manager.d.ts.map +1 -1
- package/dist/managers/business-manager.d.ts +273 -18
- package/dist/managers/business-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +585 -46
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/donation-manager.d.ts +5 -5
- package/dist/managers/donation-manager.d.ts.map +1 -1
- package/dist/managers/file-manager.d.ts +430 -13
- package/dist/managers/file-manager.d.ts.map +1 -1
- package/dist/managers/purchase-manager.d.ts +340 -15
- package/dist/managers/purchase-manager.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +450 -27
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/tenant-manager.d.ts +5 -5
- package/dist/managers/tenant-manager.d.ts.map +1 -1
- package/dist/managers/token-manager.d.ts +245 -21
- package/dist/managers/token-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +447 -18
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/user-manager.d.ts +216 -14
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/managers/web3-manager.d.ts +4 -4
- package/dist/managers/web3-manager.d.ts.map +1 -1
- package/dist/package.json +10 -4
- package/dist/payment/index.d.ts +0 -21
- package/dist/payment/index.d.ts.map +1 -1
- package/dist/payment.cjs +5 -255
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +1 -254
- package/dist/payment.js.map +1 -1
- package/dist/pers-sdk.d.ts +141 -34
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption/index.d.ts +0 -25
- package/dist/redemption/index.d.ts.map +1 -1
- package/dist/redemption.cjs +5 -365
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +1 -364
- package/dist/redemption.js.map +1 -1
- package/dist/tenant/index.d.ts +0 -22
- package/dist/tenant/index.d.ts.map +1 -1
- package/dist/tenant.cjs +5 -203
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +1 -202
- package/dist/tenant.js.map +1 -1
- package/dist/token.cjs +6 -6
- package/dist/token.js +2 -2
- package/dist/transaction/index.d.ts +0 -22
- package/dist/transaction/index.d.ts.map +1 -1
- package/dist/transaction.cjs +0 -40
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.js +1 -40
- package/dist/transaction.js.map +1 -1
- package/dist/user/index.d.ts +0 -25
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user.cjs +5 -185
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +1 -184
- package/dist/user.js.map +1 -1
- package/dist/web3/index.d.ts +0 -11
- package/dist/web3/index.d.ts.map +1 -1
- package/dist/web3-chain/index.d.ts +0 -9
- package/dist/web3-chain/index.d.ts.map +1 -1
- package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -1
- package/dist/web3-chain.cjs +5 -6
- package/dist/web3-chain.cjs.map +1 -1
- package/dist/web3-chain.js +2 -2
- package/dist/web3.cjs +6 -10
- package/dist/web3.cjs.map +1 -1
- package/dist/web3.js +1 -4
- package/dist/web3.js.map +1 -1
- package/package.json +10 -4
- package/dist/chunks/base-token-service-D0KANDgM.js +0 -139
- package/dist/chunks/base-token-service-D0KANDgM.js.map +0 -1
- package/dist/chunks/base-token-service-zNfPjHRx.cjs +0 -141
- package/dist/chunks/base-token-service-zNfPjHRx.cjs.map +0 -1
- package/dist/chunks/index-BfOoX87y.cjs.map +0 -1
- package/dist/chunks/index-CJ9Jfa4A.js.map +0 -1
- package/dist/chunks/index-CM21r58m.js.map +0 -1
- package/dist/chunks/index-CzEluQmf.cjs.map +0 -1
- package/dist/chunks/pers-sdk-DbPwFKrf.cjs +0 -3378
- package/dist/chunks/pers-sdk-DbPwFKrf.cjs.map +0 -1
- package/dist/chunks/pers-sdk-Z6MKeFBX.js +0 -3353
- package/dist/chunks/pers-sdk-Z6MKeFBX.js.map +0 -1
- package/dist/chunks/token-sdk-BW4kkJb3.js.map +0 -1
- package/dist/chunks/token-sdk-CiAbOb6c.cjs.map +0 -1
- package/dist/core/auth/auth-constants.d.ts +0 -33
- package/dist/core/auth/auth-constants.d.ts.map +0 -1
- package/dist/core/auth/auth-errors.d.ts +0 -8
- package/dist/core/auth/auth-errors.d.ts.map +0 -1
- package/dist/core/auth/create-auth-provider.d.ts +0 -27
- package/dist/core/auth/create-auth-provider.d.ts.map +0 -1
- package/dist/core/auth/token-refresh.d.ts +0 -91
- package/dist/core/auth/token-refresh.d.ts.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-Agnostic Business API Client
|
|
3
|
+
*
|
|
4
|
+
* Updated to match the actual RESTful endpoints:
|
|
5
|
+
* - /businesses for business operations
|
|
6
|
+
* - /business-types for business type operations (separate controller)
|
|
7
|
+
*/
|
|
8
|
+
class BusinessApi {
|
|
9
|
+
constructor(apiClient) {
|
|
10
|
+
this.apiClient = apiClient;
|
|
11
|
+
this.basePath = '/businesses';
|
|
12
|
+
this.businessTypesPath = '/businesses/types';
|
|
13
|
+
}
|
|
14
|
+
// ==========================================
|
|
15
|
+
// 🌐 BUSINESS TYPES MANAGEMENT
|
|
16
|
+
// ==========================================
|
|
17
|
+
/**
|
|
18
|
+
* Get all business types (project key required)
|
|
19
|
+
*
|
|
20
|
+
* Endpoint: GET /business-types
|
|
21
|
+
* Auth: @ApiSecurity('projectKey')
|
|
22
|
+
*/
|
|
23
|
+
async getBusinessTypes() {
|
|
24
|
+
return this.apiClient.get(this.businessTypesPath);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* ADMIN: Create business type
|
|
28
|
+
*
|
|
29
|
+
* Endpoint: POST /business-types
|
|
30
|
+
* Auth: @TenantAdmin()
|
|
31
|
+
*/
|
|
32
|
+
async createBusinessType(dto) {
|
|
33
|
+
return this.apiClient.post(this.businessTypesPath, dto);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* ADMIN: Update business type
|
|
37
|
+
*
|
|
38
|
+
* Endpoint: PUT /business-types
|
|
39
|
+
* Auth: @TenantAdmin()
|
|
40
|
+
*/
|
|
41
|
+
async updateBusinessType(dto) {
|
|
42
|
+
return this.apiClient.put(this.businessTypesPath, dto);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* ADMIN: Delete business type
|
|
46
|
+
*
|
|
47
|
+
* Endpoint: DELETE /business-types/{id}
|
|
48
|
+
* Auth: @TenantAdmin()
|
|
49
|
+
*/
|
|
50
|
+
async deleteBusinessType(id) {
|
|
51
|
+
return this.apiClient.delete(`${this.businessTypesPath}/${id}`);
|
|
52
|
+
}
|
|
53
|
+
// ==========================================
|
|
54
|
+
// 🏢 BUSINESS MANAGEMENT
|
|
55
|
+
// ==========================================
|
|
56
|
+
/**
|
|
57
|
+
* Get current business info (business authentication required)
|
|
58
|
+
*
|
|
59
|
+
* Endpoint: GET /businesses/me
|
|
60
|
+
* Auth: @Business()
|
|
61
|
+
*/
|
|
62
|
+
async getCurrentBusiness() {
|
|
63
|
+
return this.apiClient.get(`${this.basePath}/me`);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get all businesses with role-based filtering
|
|
67
|
+
*
|
|
68
|
+
* Endpoint: GET /businesses?active={boolean}&sanitize={mode}
|
|
69
|
+
* Auth: @ApiSecurity('projectKey') (enhanced with role-based filtering)
|
|
70
|
+
* Note:
|
|
71
|
+
* - Project API Key users: Active businesses only (automatically filtered)
|
|
72
|
+
* - Admin JWT users: Full access with all query parameters
|
|
73
|
+
*/
|
|
74
|
+
async getBusinesses(options) {
|
|
75
|
+
const params = new URLSearchParams();
|
|
76
|
+
if (options?.active !== undefined) {
|
|
77
|
+
params.append('active', String(options.active));
|
|
78
|
+
}
|
|
79
|
+
if (options?.sanitize) {
|
|
80
|
+
params.append('sanitize', options.sanitize);
|
|
81
|
+
}
|
|
82
|
+
const queryString = params.toString();
|
|
83
|
+
const url = queryString ? `${this.basePath}?${queryString}` : this.basePath;
|
|
84
|
+
return this.apiClient.get(url);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get all active businesses (convenience method)
|
|
88
|
+
*
|
|
89
|
+
* Endpoint: GET /businesses
|
|
90
|
+
* Auth: @ApiSecurity('projectKey')
|
|
91
|
+
*/
|
|
92
|
+
async getActiveBusinesses() {
|
|
93
|
+
return this.apiClient.get(this.basePath);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get business by ID
|
|
97
|
+
*
|
|
98
|
+
* Endpoint: GET /businesses/{id}
|
|
99
|
+
* Auth: @ApiSecurity('projectKey')
|
|
100
|
+
*/
|
|
101
|
+
async getBusinessById(businessId) {
|
|
102
|
+
return this.apiClient.get(`${this.basePath}/${businessId}`);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get business by account address
|
|
106
|
+
*
|
|
107
|
+
* Endpoint: GET /businesses/account/{accountAddress}
|
|
108
|
+
* Auth: @ApiSecurity('projectKey')
|
|
109
|
+
*/
|
|
110
|
+
async getBusinessByAccount(accountAddress) {
|
|
111
|
+
return this.apiClient.get(`${this.basePath}/account/${accountAddress}`);
|
|
112
|
+
}
|
|
113
|
+
// ==========================================
|
|
114
|
+
// 🔧 ADMIN OPERATIONS
|
|
115
|
+
// ==========================================
|
|
116
|
+
/**
|
|
117
|
+
* ADMIN: Create business
|
|
118
|
+
*
|
|
119
|
+
* Endpoint: POST /businesses
|
|
120
|
+
* Auth: @TenantAdmin()
|
|
121
|
+
* Returns: BusinessApiKeyDTO | BusinessTokenBalancesDTO
|
|
122
|
+
*/
|
|
123
|
+
async createBusiness(dto) {
|
|
124
|
+
return this.apiClient.post(this.basePath, dto);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* ADMIN: Create business by display name (convenience method)
|
|
128
|
+
*/
|
|
129
|
+
async createBusinessByDisplayName(displayName) {
|
|
130
|
+
const dto = {
|
|
131
|
+
displayName,
|
|
132
|
+
// Add other required fields based on BusinessCreateRequestDTO structure
|
|
133
|
+
};
|
|
134
|
+
return this.createBusiness(dto);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* ADMIN: Create businesses from URL
|
|
138
|
+
*
|
|
139
|
+
* Endpoint: POST /businesses/bulk/url
|
|
140
|
+
* Auth: @TenantAdmin()
|
|
141
|
+
*/
|
|
142
|
+
async createBusinessesFromUrl(url) {
|
|
143
|
+
return this.apiClient.post(`${this.basePath}/bulk/url`, { url });
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* ADMIN: Update business
|
|
147
|
+
*
|
|
148
|
+
* Endpoint: PUT /businesses/{id}
|
|
149
|
+
* Auth: @TenantAdmin()
|
|
150
|
+
*/
|
|
151
|
+
async updateBusiness(id, businessData) {
|
|
152
|
+
return this.apiClient.put(`${this.basePath}/${id}`, businessData);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* ADMIN: Toggle business active status
|
|
156
|
+
*
|
|
157
|
+
* Endpoint: PUT /businesses/{id}/status
|
|
158
|
+
* Auth: @TenantAdmin()
|
|
159
|
+
*/
|
|
160
|
+
async toggleBusinessActive(id, dto) {
|
|
161
|
+
return this.apiClient.put(`${this.basePath}/${id}/status`, dto);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Platform-Agnostic Business Service
|
|
167
|
+
*
|
|
168
|
+
* Contains business logic and operations that work across platforms.
|
|
169
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
170
|
+
*
|
|
171
|
+
* Focuses only on actual backend capabilities.
|
|
172
|
+
*/
|
|
173
|
+
class BusinessService {
|
|
174
|
+
constructor(businessApi) {
|
|
175
|
+
this.businessApi = businessApi;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get all active businesses
|
|
179
|
+
*/
|
|
180
|
+
async getActiveBusinesses() {
|
|
181
|
+
return this.businessApi.getActiveBusinesses();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get all business types
|
|
185
|
+
*/
|
|
186
|
+
async getBusinessTypes() {
|
|
187
|
+
return this.businessApi.getBusinessTypes();
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get business by ID
|
|
191
|
+
*/
|
|
192
|
+
async getBusinessById(businessId) {
|
|
193
|
+
return this.businessApi.getBusinessById(businessId);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get business by account address
|
|
197
|
+
*/
|
|
198
|
+
async getBusinessByAccount(accountAddress) {
|
|
199
|
+
return this.businessApi.getBusinessByAccount(accountAddress);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get businesses by type (client-side filtering)
|
|
203
|
+
*/
|
|
204
|
+
async getBusinessesByType(typeId) {
|
|
205
|
+
const businesses = await this.getActiveBusinesses();
|
|
206
|
+
return businesses.filter(business => business.businessType && business.businessType.id === parseInt(typeId));
|
|
207
|
+
}
|
|
208
|
+
// ==========================================
|
|
209
|
+
// ADMIN OPERATIONS
|
|
210
|
+
// ==========================================
|
|
211
|
+
/**
|
|
212
|
+
* ADMIN: Get all businesses (active and inactive)
|
|
213
|
+
*/
|
|
214
|
+
async getBusinesses() {
|
|
215
|
+
return this.businessApi.getBusinesses();
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* ADMIN: Create business by display name
|
|
219
|
+
*/
|
|
220
|
+
async createBusinessByDisplayName(displayName) {
|
|
221
|
+
return this.businessApi.createBusinessByDisplayName(displayName);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* ADMIN: Update business
|
|
225
|
+
*/
|
|
226
|
+
async updateBusiness(id, businessData) {
|
|
227
|
+
return this.businessApi.updateBusiness(id, businessData);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* ADMIN: Toggle business active status
|
|
231
|
+
*/
|
|
232
|
+
async toggleBusinessActive(id, dto) {
|
|
233
|
+
return this.businessApi.toggleBusinessActive(id, dto);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export { BusinessApi as B, BusinessService as a };
|
|
238
|
+
//# sourceMappingURL=business-service-DrC-TNGa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-service-DrC-TNGa.js","sources":["../../src/business/api/business-api.ts","../../src/business/services/business-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
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
|
+
class CampaignApi {
|
|
18
|
+
constructor(apiClient) {
|
|
19
|
+
this.apiClient = apiClient;
|
|
20
|
+
}
|
|
21
|
+
// ==========================================
|
|
22
|
+
// CORE CAMPAIGN OPERATIONS (/campaigns)
|
|
23
|
+
// ==========================================
|
|
24
|
+
/**
|
|
25
|
+
* PUBLIC: Get all active campaigns
|
|
26
|
+
* NEW: /campaigns (intelligent access detection)
|
|
27
|
+
*/
|
|
28
|
+
async getActiveCampaigns() {
|
|
29
|
+
return this.apiClient.get('/campaigns');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* ADMIN: Get campaigns with filtering options
|
|
33
|
+
* NEW: /campaigns with query parameters (admin access detected automatically)
|
|
34
|
+
*/
|
|
35
|
+
async getCampaigns(options) {
|
|
36
|
+
let url = '/campaigns';
|
|
37
|
+
const params = [];
|
|
38
|
+
if (options) {
|
|
39
|
+
if (options.active !== undefined)
|
|
40
|
+
params.push(`active=${options.active}`);
|
|
41
|
+
if (options.tag)
|
|
42
|
+
params.push(`tag=${encodeURIComponent(options.tag)}`);
|
|
43
|
+
if (options.limit)
|
|
44
|
+
params.push(`limit=${options.limit}`);
|
|
45
|
+
if (options.offset)
|
|
46
|
+
params.push(`offset=${options.offset}`);
|
|
47
|
+
if (options.sort)
|
|
48
|
+
params.push(`sort=${options.sort}`);
|
|
49
|
+
if (options.order)
|
|
50
|
+
params.push(`order=${options.order}`);
|
|
51
|
+
}
|
|
52
|
+
if (params.length > 0) {
|
|
53
|
+
url += `?${params.join('&')}`;
|
|
54
|
+
}
|
|
55
|
+
return this.apiClient.get(url);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* PUBLIC: Get campaign by ID
|
|
59
|
+
* NEW: /campaigns/{id}
|
|
60
|
+
*/
|
|
61
|
+
async getCampaignById(id) {
|
|
62
|
+
return this.apiClient.get(`/campaigns/${id}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* ADMIN: Create campaign
|
|
66
|
+
* NEW: POST /campaigns
|
|
67
|
+
*/
|
|
68
|
+
async createCampaign(campaign) {
|
|
69
|
+
return this.apiClient.post('/campaigns', campaign);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* ADMIN: Update campaign
|
|
73
|
+
* NEW: PUT /campaigns/{id}
|
|
74
|
+
*/
|
|
75
|
+
async updateCampaign(campaignId, campaign) {
|
|
76
|
+
return this.apiClient.put(`/campaigns/${campaignId}`, campaign);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* ADMIN: Toggle campaign active status
|
|
80
|
+
* NEW: PUT /campaigns/{id}/status
|
|
81
|
+
*/
|
|
82
|
+
async toggleCampaignActive(campaignId) {
|
|
83
|
+
return this.apiClient.put(`/campaigns/${campaignId}/status`, {});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* ADMIN: Toggle campaign testnet environment
|
|
87
|
+
* NEW: PUT /campaigns/{id}/environment
|
|
88
|
+
*/
|
|
89
|
+
async toggleCampaignTestnet(campaignId) {
|
|
90
|
+
return this.apiClient.put(`/campaigns/${campaignId}/environment`, {});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* ADMIN: Delete campaign
|
|
94
|
+
* NEW: DELETE /campaigns/{id}
|
|
95
|
+
*/
|
|
96
|
+
async deleteCampaign(campaignId) {
|
|
97
|
+
return this.apiClient.delete(`/campaigns/${campaignId}`);
|
|
98
|
+
}
|
|
99
|
+
// ==========================================
|
|
100
|
+
// TAG MANAGEMENT (/campaign-tags)
|
|
101
|
+
// ==========================================
|
|
102
|
+
/**
|
|
103
|
+
* ADMIN: Get all unique campaign tags
|
|
104
|
+
* NEW: GET /campaign-tags
|
|
105
|
+
*/
|
|
106
|
+
async getAllUniqueTags() {
|
|
107
|
+
return this.apiClient.get('/campaigns/tags');
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* ADMIN: Update campaign tags (replace all)
|
|
111
|
+
* NEW: PUT /campaign-tags/{id}
|
|
112
|
+
*/
|
|
113
|
+
async updateCampaignTags(campaignId, tags) {
|
|
114
|
+
return this.apiClient.put(`/campaigns/${campaignId}/tags`, { tags });
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* ADMIN: Add tags to campaign
|
|
118
|
+
* NEW: POST /campaign-tags/{id}
|
|
119
|
+
*/
|
|
120
|
+
async addTagsToCampaign(campaignId, tags) {
|
|
121
|
+
return this.apiClient.post(`/campaigns/${campaignId}/tags`, { tags });
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* ADMIN: Remove tag from campaign
|
|
125
|
+
* NEW: DELETE /campaign-tags/{id}/{tag}
|
|
126
|
+
*/
|
|
127
|
+
async removeTagFromCampaign(campaignId, tag) {
|
|
128
|
+
return this.apiClient.delete(`/campaigns/${campaignId}/tags/${encodeURIComponent(tag)}`);
|
|
129
|
+
}
|
|
130
|
+
// ==========================================
|
|
131
|
+
// TOKEN MANAGEMENT (/campaign-tokens)
|
|
132
|
+
// ==========================================
|
|
133
|
+
/**
|
|
134
|
+
* ADMIN: Create campaign token unit
|
|
135
|
+
* NEW: POST /campaign-tokens/{id}
|
|
136
|
+
*/
|
|
137
|
+
async createCampaignTokenUnit(campaignId, campaignTokenUnit) {
|
|
138
|
+
return this.apiClient.post(`/campaigns/${campaignId}/tokens`, campaignTokenUnit);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* ADMIN: Update campaign token unit
|
|
142
|
+
* NEW: PUT /campaign-tokens/{id}/{tokenUnitId}
|
|
143
|
+
*/
|
|
144
|
+
async updateCampaignTokenUnit(campaignId, tokenUnitId, campaignTokenUnit) {
|
|
145
|
+
return this.apiClient.put(`/campaigns/${campaignId}/tokens/${tokenUnitId}`, campaignTokenUnit);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* ADMIN: Delete campaign token unit
|
|
149
|
+
* NEW: DELETE /campaign-tokens/{id}/{tokenUnitId}
|
|
150
|
+
*/
|
|
151
|
+
async deleteCampaignTokenUnit(campaignId, campaignTokenUnitId) {
|
|
152
|
+
return this.apiClient.delete(`/campaigns/${campaignId}/tokens/${campaignTokenUnitId}`);
|
|
153
|
+
}
|
|
154
|
+
// ==========================================
|
|
155
|
+
// TRIGGER SYSTEM (/campaign-triggers)
|
|
156
|
+
// ==========================================
|
|
157
|
+
/**
|
|
158
|
+
* PUBLIC: Get campaign triggers catalog
|
|
159
|
+
* NEW: GET /campaign-triggers
|
|
160
|
+
*/
|
|
161
|
+
async getCampaignTriggers() {
|
|
162
|
+
return this.apiClient.get(`/campaign-triggers`);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* ADMIN: Create campaign trigger
|
|
166
|
+
* NEW: POST /campaign-triggers
|
|
167
|
+
*/
|
|
168
|
+
async createCampaignTrigger(trigger) {
|
|
169
|
+
return this.apiClient.post(`/campaign-triggers`, trigger);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* ADMIN: Update campaign trigger
|
|
173
|
+
* NEW: PUT /campaign-triggers/{id}
|
|
174
|
+
*/
|
|
175
|
+
async updateCampaignTrigger(triggerId, trigger) {
|
|
176
|
+
return this.apiClient.put(`/campaign-triggers/${triggerId}`, trigger);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* ADMIN: Delete campaign trigger
|
|
180
|
+
* NEW: DELETE /campaign-triggers/{id}
|
|
181
|
+
*/
|
|
182
|
+
async deleteCampaignTrigger(triggerId) {
|
|
183
|
+
return this.apiClient.delete(`/campaign-triggers/${triggerId}`);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* ADMIN: Assign trigger to campaign
|
|
187
|
+
* NEW: PUT /campaign-triggers/{triggerId}/assign/{campaignId}
|
|
188
|
+
*/
|
|
189
|
+
async setCampaignTrigger(campaignId, triggerId) {
|
|
190
|
+
return this.apiClient.put(`/campaign-triggers/${triggerId}/assign/${campaignId}`, {});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* ADMIN: Create trigger condition
|
|
194
|
+
* NEW: POST /campaign-triggers/conditions
|
|
195
|
+
*/
|
|
196
|
+
async createTriggerCondition(condition) {
|
|
197
|
+
return this.apiClient.post('/campaign-triggers/conditions', condition);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* ADMIN: Update trigger condition
|
|
201
|
+
* NEW: PUT /campaign-triggers/conditions/{id}
|
|
202
|
+
*/
|
|
203
|
+
async updateTriggerCondition(conditionId, condition) {
|
|
204
|
+
return this.apiClient.put(`/campaign-triggers/conditions/${conditionId}`, condition);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* ADMIN: Add/Remove condition to trigger
|
|
208
|
+
* NEW: PUT /campaign-triggers/{triggerId}/conditions/{conditionId}
|
|
209
|
+
*/
|
|
210
|
+
async addOrRemoveConditionToTrigger(triggerId, conditionId) {
|
|
211
|
+
return this.apiClient.put(`/campaign-triggers/${triggerId}/conditions/${conditionId}`, {});
|
|
212
|
+
}
|
|
213
|
+
// ==========================================
|
|
214
|
+
// BUSINESS ENGAGEMENTS (/campaign-engagements)
|
|
215
|
+
// ==========================================
|
|
216
|
+
/**
|
|
217
|
+
* ADMIN: Add business engagement to campaign
|
|
218
|
+
* NEW: POST /campaign-engagements/{id}
|
|
219
|
+
*/
|
|
220
|
+
async addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement) {
|
|
221
|
+
return this.apiClient.post(`/campaigns/${campaignId}/engagements`, campaignBusinessEngagement);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* ADMIN: Update campaign business engagement
|
|
225
|
+
* NEW: PUT /campaign-engagements/{id}/{businessEngagementId}
|
|
226
|
+
*/
|
|
227
|
+
async updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement) {
|
|
228
|
+
return this.apiClient.put(`/campaigns/${campaignId}/engagements/${businessEngagementId}`, campaignBusinessEngagement);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* ADMIN: Delete campaign business engagement
|
|
232
|
+
* NEW: DELETE /campaign-engagements/{id}/{businessEngagementId}
|
|
233
|
+
*/
|
|
234
|
+
async deleteCampaignBusinessEngagement(campaignId, businessEngagementId) {
|
|
235
|
+
return this.apiClient.delete(`/campaigns/${campaignId}/engagements/${businessEngagementId}`);
|
|
236
|
+
}
|
|
237
|
+
// ==========================================
|
|
238
|
+
// CLAIMS PROCESSING (/campaign-claims)
|
|
239
|
+
// ==========================================
|
|
240
|
+
/**
|
|
241
|
+
* USER: Claim campaign reward
|
|
242
|
+
*/
|
|
243
|
+
async claimCampaign(request) {
|
|
244
|
+
return this.apiClient.post('/campaigns/claims', request);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Unified claims retrieval method - handles all contexts
|
|
248
|
+
* USER: Automatically shows own claims (/campaigns/claims/me)
|
|
249
|
+
* ADMIN/BUSINESS: Shows all accessible claims with optional filters
|
|
250
|
+
*/
|
|
251
|
+
async getClaims(filters) {
|
|
252
|
+
// User context - use /me endpoint
|
|
253
|
+
if (filters?.userContext) {
|
|
254
|
+
const queryString = filters.campaignId ? `?campaignId=${encodeURIComponent(filters.campaignId)}` : '';
|
|
255
|
+
return this.apiClient.get(`/campaigns/claims/me${queryString}`);
|
|
256
|
+
}
|
|
257
|
+
// Admin/Business context - use main endpoint with filters
|
|
258
|
+
const validParams = Object.entries(filters || {})
|
|
259
|
+
.filter(([key, value]) => key !== 'userContext' && value !== undefined)
|
|
260
|
+
.map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
|
|
261
|
+
.join('&');
|
|
262
|
+
const queryString = validParams ? `?${validParams}` : '';
|
|
263
|
+
return this.apiClient.get(`/campaigns/claims${queryString}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Platform-Agnostic Campaign Service
|
|
269
|
+
*
|
|
270
|
+
* Contains campaign business logic and operations that work across platforms.
|
|
271
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
272
|
+
*
|
|
273
|
+
* Focuses only on actual backend capabilities.
|
|
274
|
+
*/
|
|
275
|
+
class CampaignService {
|
|
276
|
+
constructor(campaignApi) {
|
|
277
|
+
this.campaignApi = campaignApi;
|
|
278
|
+
}
|
|
279
|
+
// ==========================================
|
|
280
|
+
// PUBLIC OPERATIONS
|
|
281
|
+
// ==========================================
|
|
282
|
+
/**
|
|
283
|
+
* PUBLIC: Get all active campaigns
|
|
284
|
+
*/
|
|
285
|
+
async getActiveCampaigns() {
|
|
286
|
+
return this.campaignApi.getActiveCampaigns();
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* PUBLIC: Get campaign by ID
|
|
290
|
+
*/
|
|
291
|
+
async getCampaignById(id) {
|
|
292
|
+
return this.campaignApi.getCampaignById(id);
|
|
293
|
+
}
|
|
294
|
+
// ==========================================
|
|
295
|
+
// AUTHENTICATED OPERATIONS
|
|
296
|
+
// ==========================================
|
|
297
|
+
/**
|
|
298
|
+
* AUTH: Claim campaign
|
|
299
|
+
*/
|
|
300
|
+
async claimCampaign(request) {
|
|
301
|
+
return this.campaignApi.claimCampaign(request);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* AUTH: Get claims for logged user
|
|
305
|
+
*/
|
|
306
|
+
async getClaimsForLoggedUser() {
|
|
307
|
+
return this.campaignApi.getClaims({ userContext: true });
|
|
308
|
+
}
|
|
309
|
+
// ==========================================
|
|
310
|
+
// ADMIN OPERATIONS
|
|
311
|
+
// ==========================================
|
|
312
|
+
/**
|
|
313
|
+
* ADMIN: Get campaigns with optional active filter
|
|
314
|
+
*/
|
|
315
|
+
async getCampaigns(active) {
|
|
316
|
+
return this.campaignApi.getCampaigns(active !== undefined ? { active } : undefined);
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* ADMIN: Get campaign triggers
|
|
320
|
+
*/
|
|
321
|
+
async getCampaignTriggers() {
|
|
322
|
+
return this.campaignApi.getCampaignTriggers();
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* ADMIN: Toggle campaign active status
|
|
326
|
+
*/
|
|
327
|
+
async toggleCampaignActive(campaignId) {
|
|
328
|
+
return this.campaignApi.toggleCampaignActive(campaignId);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* ADMIN: Toggle campaign testnet environment
|
|
332
|
+
*/
|
|
333
|
+
async toggleCampaignTestnet(campaignId) {
|
|
334
|
+
return this.campaignApi.toggleCampaignTestnet(campaignId);
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* ADMIN: Create campaign
|
|
338
|
+
*/
|
|
339
|
+
async createCampaign(campaign) {
|
|
340
|
+
return this.campaignApi.createCampaign(campaign);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* ADMIN: Set campaign trigger
|
|
344
|
+
*/
|
|
345
|
+
async setCampaignTrigger(campaignId, triggerId) {
|
|
346
|
+
return this.campaignApi.setCampaignTrigger(campaignId, triggerId);
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* ADMIN: Update campaign
|
|
350
|
+
*/
|
|
351
|
+
async updateCampaign(campaignId, campaign) {
|
|
352
|
+
return this.campaignApi.updateCampaign(campaignId, campaign);
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* ADMIN: Create campaign token unit
|
|
356
|
+
*/
|
|
357
|
+
async createCampaignTokenUnit(campaignId, campaignTokenUnit) {
|
|
358
|
+
return this.campaignApi.createCampaignTokenUnit(campaignId, campaignTokenUnit);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* ADMIN: Delete campaign token unit
|
|
362
|
+
*/
|
|
363
|
+
async deleteCampaignTokenUnit(campaignId, campaignTokenUnitId) {
|
|
364
|
+
return this.campaignApi.deleteCampaignTokenUnit(campaignId, campaignTokenUnitId);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* ADMIN: Add business engagement to campaign
|
|
368
|
+
*/
|
|
369
|
+
async addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement) {
|
|
370
|
+
return this.campaignApi.addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* ADMIN: Update campaign business engagement
|
|
374
|
+
*/
|
|
375
|
+
async updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement) {
|
|
376
|
+
return this.campaignApi.updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement);
|
|
377
|
+
}
|
|
378
|
+
async deleteCampaignBusinessEngagement(campaignId, businessEngagementId) {
|
|
379
|
+
return this.campaignApi.deleteCampaignBusinessEngagement(campaignId, businessEngagementId);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* ADMIN: Get all campaign claims
|
|
383
|
+
*/
|
|
384
|
+
async getCampaignClaims() {
|
|
385
|
+
return this.campaignApi.getClaims();
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* ADMIN: Get campaign claims by user ID
|
|
389
|
+
*/
|
|
390
|
+
async getCampaignClaimsByUserId(userId) {
|
|
391
|
+
return this.campaignApi.getClaims({ userId });
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* ADMIN: Get campaign claims by business ID
|
|
395
|
+
*/
|
|
396
|
+
async getCampaignClaimsByBusinessId(businessId) {
|
|
397
|
+
return this.campaignApi.getClaims({ businessId });
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
exports.CampaignApi = CampaignApi;
|
|
402
|
+
exports.CampaignService = CampaignService;
|
|
403
|
+
//# sourceMappingURL=campaign-service-CWK9I388.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign-service-CWK9I388.cjs","sources":["../../src/campaign/api/campaign-api.ts","../../src/campaign/services/campaign-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|