@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.
- package/dist/analytics/api/analytics-api.d.ts +17 -0
- package/dist/analytics/api/analytics-api.d.ts.map +1 -0
- package/dist/analytics/index.d.ts +28 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/models/index.d.ts +61 -0
- package/dist/analytics/models/index.d.ts.map +1 -0
- package/dist/analytics/services/analytics-service.d.ts +19 -0
- package/dist/analytics/services/analytics-service.d.ts.map +1 -0
- package/dist/analytics.cjs +76 -0
- package/dist/analytics.cjs.map +1 -0
- package/dist/analytics.d.ts +28 -0
- package/dist/analytics.js +72 -0
- package/dist/analytics.js.map +1 -0
- package/dist/auth-admin/api/auth-admin-api.d.ts +27 -0
- package/dist/auth-admin/api/auth-admin-api.d.ts.map +1 -0
- package/dist/auth-admin/index.d.ts +26 -0
- package/dist/auth-admin/index.d.ts.map +1 -0
- package/dist/auth-admin/services/auth-admin-service.d.ts +23 -0
- package/dist/auth-admin/services/auth-admin-service.d.ts.map +1 -0
- package/dist/auth-admin.cjs +96 -0
- package/dist/auth-admin.cjs.map +1 -0
- package/dist/auth-admin.d.ts +26 -0
- package/dist/auth-admin.js +92 -0
- package/dist/auth-admin.js.map +1 -0
- package/dist/business/api/business-api.d.ts +133 -0
- package/dist/business/api/business-api.d.ts.map +1 -0
- package/dist/business/index.d.ts +34 -0
- package/dist/business/index.d.ts.map +1 -0
- package/{src/business/models/index.ts → dist/business/models/index.d.ts} +8 -13
- package/dist/business/models/index.d.ts.map +1 -0
- package/dist/business/services/business-service.d.ts +51 -0
- package/dist/business/services/business-service.d.ts.map +1 -0
- package/dist/business.cjs +303 -0
- package/dist/business.cjs.map +1 -0
- package/dist/business.d.ts +34 -0
- package/dist/business.js +299 -0
- package/dist/business.js.map +1 -0
- package/dist/campaign/api/campaign-api.d.ts +213 -0
- package/dist/campaign/api/campaign-api.d.ts.map +1 -0
- package/dist/campaign/index.d.ts +44 -0
- package/dist/campaign/index.d.ts.map +1 -0
- package/dist/campaign/services/campaign-service.d.ts +88 -0
- package/dist/campaign/services/campaign-service.d.ts.map +1 -0
- package/dist/campaign.cjs +506 -0
- package/dist/campaign.cjs.map +1 -0
- package/dist/campaign.d.ts +44 -0
- package/dist/campaign.js +502 -0
- package/dist/campaign.js.map +1 -0
- package/dist/core/abstractions/http-client.d.ts +22 -0
- package/dist/core/abstractions/http-client.d.ts.map +1 -0
- package/dist/core/auth/auth-provider.interface.d.ts +12 -0
- package/dist/core/auth/auth-provider.interface.d.ts.map +1 -0
- package/dist/core/auth/create-auth-provider.d.ts +27 -0
- package/dist/core/auth/create-auth-provider.d.ts.map +1 -0
- package/dist/core/auth/simple-auth-config.interface.d.ts +15 -0
- package/dist/core/auth/simple-auth-config.interface.d.ts.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/pers-api-client.d.ts +54 -0
- package/dist/core/pers-api-client.d.ts.map +1 -0
- package/dist/core/pers-config.d.ts +38 -0
- package/dist/core/pers-config.d.ts.map +1 -0
- package/dist/core/utils/jwt.function.d.ts +2 -0
- package/dist/core/utils/jwt.function.d.ts.map +1 -0
- package/dist/core.cjs +506 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +13 -0
- package/dist/core.js +497 -0
- package/dist/core.js.map +1 -0
- package/dist/donation/api/donation-api.d.ts +18 -0
- package/dist/donation/api/donation-api.d.ts.map +1 -0
- package/dist/donation/index.d.ts +25 -0
- package/dist/donation/index.d.ts.map +1 -0
- package/dist/donation/models/index.d.ts +8 -0
- package/dist/donation/models/index.d.ts.map +1 -0
- package/dist/donation/services/donation-service.d.ts +19 -0
- package/dist/donation/services/donation-service.d.ts.map +1 -0
- package/dist/donation.cjs +78 -0
- package/dist/donation.cjs.map +1 -0
- package/dist/donation.d.ts +25 -0
- package/dist/donation.js +74 -0
- package/dist/donation.js.map +1 -0
- package/dist/index.cjs +4217 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4164 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +148 -0
- package/dist/payment/api/payment-api.d.ts +105 -0
- package/dist/payment/api/payment-api.d.ts.map +1 -0
- package/dist/payment/index.d.ts +36 -0
- package/dist/payment/index.d.ts.map +1 -0
- package/dist/payment/models/index.d.ts +12 -0
- package/dist/payment/models/index.d.ts.map +1 -0
- package/dist/payment/services/payment-service.d.ts +40 -0
- package/dist/payment/services/payment-service.d.ts.map +1 -0
- package/dist/payment.cjs +258 -0
- package/dist/payment.cjs.map +1 -0
- package/dist/payment.d.ts +36 -0
- package/dist/payment.js +254 -0
- package/dist/payment.js.map +1 -0
- package/dist/pers-sdk.d.ts +29 -0
- package/dist/pers-sdk.d.ts.map +1 -0
- package/dist/redemption/api/redemption-api.d.ts +147 -0
- package/dist/redemption/api/redemption-api.d.ts.map +1 -0
- package/dist/redemption/index.d.ts +35 -0
- package/dist/redemption/index.d.ts.map +1 -0
- package/dist/redemption/models/index.d.ts +8 -0
- package/dist/redemption/models/index.d.ts.map +1 -0
- package/dist/redemption/services/redemption-service.d.ts +56 -0
- package/dist/redemption/services/redemption-service.d.ts.map +1 -0
- package/dist/redemption.cjs +333 -0
- package/dist/redemption.cjs.map +1 -0
- package/dist/redemption.d.ts +35 -0
- package/dist/redemption.js +329 -0
- package/dist/redemption.js.map +1 -0
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +18 -0
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -0
- package/dist/tenant/api/tenant-api.d.ts +56 -0
- package/dist/tenant/api/tenant-api.d.ts.map +1 -0
- package/dist/tenant/index.d.ts +34 -0
- package/dist/tenant/index.d.ts.map +1 -0
- package/dist/tenant/models/index.d.ts +11 -0
- package/dist/tenant/models/index.d.ts.map +1 -0
- package/dist/tenant/services/tenant-service.d.ts +46 -0
- package/dist/tenant/services/tenant-service.d.ts.map +1 -0
- package/dist/tenant.cjs +177 -0
- package/dist/tenant.cjs.map +1 -0
- package/dist/tenant.d.ts +34 -0
- package/dist/tenant.js +173 -0
- package/dist/tenant.js.map +1 -0
- package/dist/token/api/token-api.d.ts +64 -0
- package/dist/token/api/token-api.d.ts.map +1 -0
- package/dist/token/base/base-token-service.d.ts +87 -0
- package/dist/token/base/base-token-service.d.ts.map +1 -0
- package/dist/token/index.d.ts +13 -0
- package/dist/token/index.d.ts.map +1 -0
- package/dist/token/models/index.d.ts +18 -0
- package/dist/token/models/index.d.ts.map +1 -0
- package/dist/token/services/token-service.d.ts +68 -0
- package/dist/token/services/token-service.d.ts.map +1 -0
- package/dist/token/token-sdk.d.ts +140 -0
- package/dist/token/token-sdk.d.ts.map +1 -0
- package/dist/token.cjs +537 -0
- package/dist/token.cjs.map +1 -0
- package/dist/token.d.ts +13 -0
- package/dist/token.js +532 -0
- package/dist/token.js.map +1 -0
- package/dist/transaction/api/transaction-api.d.ts +133 -0
- package/dist/transaction/api/transaction-api.d.ts.map +1 -0
- package/dist/transaction/index.d.ts +38 -0
- package/dist/transaction/index.d.ts.map +1 -0
- package/dist/transaction/models/index.d.ts +42 -0
- package/dist/transaction/models/index.d.ts.map +1 -0
- package/dist/transaction/services/transaction-service.d.ts +56 -0
- package/dist/transaction/services/transaction-service.d.ts.map +1 -0
- package/dist/transaction.cjs +394 -0
- package/dist/transaction.cjs.map +1 -0
- package/dist/transaction.d.ts +38 -0
- package/dist/transaction.js +390 -0
- package/dist/transaction.js.map +1 -0
- package/dist/user/api/user-api.d.ts +56 -0
- package/dist/user/api/user-api.d.ts.map +1 -0
- package/dist/user/index.d.ts +36 -0
- package/dist/user/index.d.ts.map +1 -0
- package/dist/user/models/index.d.ts +12 -0
- package/dist/user/models/index.d.ts.map +1 -0
- package/dist/user/services/user-service.d.ts +46 -0
- package/dist/user/services/user-service.d.ts.map +1 -0
- package/dist/user-status/api/user-status-api.d.ts +37 -0
- package/dist/user-status/api/user-status-api.d.ts.map +1 -0
- package/dist/user-status/index.d.ts +28 -0
- package/dist/user-status/index.d.ts.map +1 -0
- package/dist/user-status/models/index.d.ts +8 -0
- package/dist/user-status/models/index.d.ts.map +1 -0
- package/dist/user-status/services/user-status-service.d.ts +26 -0
- package/dist/user-status/services/user-status-service.d.ts.map +1 -0
- package/dist/user-status.cjs +147 -0
- package/dist/user-status.cjs.map +1 -0
- package/dist/user-status.d.ts +28 -0
- package/dist/user-status.js +143 -0
- package/dist/user-status.js.map +1 -0
- package/dist/user.cjs +188 -0
- package/dist/user.cjs.map +1 -0
- package/dist/user.d.ts +36 -0
- package/dist/user.js +184 -0
- package/dist/user.js.map +1 -0
- package/dist/web3/api/web3-api.d.ts +27 -0
- package/dist/web3/api/web3-api.d.ts.map +1 -0
- package/dist/web3/index.d.ts +16 -0
- package/dist/web3/index.d.ts.map +1 -0
- package/dist/web3/models/index.d.ts +92 -0
- package/dist/web3/models/index.d.ts.map +1 -0
- package/dist/web3/services/web3-service.d.ts +21 -0
- package/dist/web3/services/web3-service.d.ts.map +1 -0
- package/dist/web3-chain/api/web3-chain-api.d.ts +19 -0
- package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -0
- package/dist/web3-chain/index.d.ts +17 -0
- package/dist/web3-chain/index.d.ts.map +1 -0
- package/dist/web3-chain/models/index.d.ts +38 -0
- package/dist/web3-chain/models/index.d.ts.map +1 -0
- package/dist/web3-chain/services/getWeb3FCD.service.d.ts +8 -0
- package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -0
- package/dist/web3-chain/services/provider.service.d.ts +15 -0
- package/dist/web3-chain/services/provider.service.d.ts.map +1 -0
- package/dist/web3-chain/services/public-http-provider.service.d.ts +8 -0
- package/dist/web3-chain/services/public-http-provider.service.d.ts.map +1 -0
- package/dist/web3-chain/services/web3-chain-service.d.ts +17 -0
- package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -0
- package/dist/web3-chain.cjs +316 -0
- package/dist/web3-chain.cjs.map +1 -0
- package/dist/web3-chain.d.ts +17 -0
- package/dist/web3-chain.js +310 -0
- package/dist/web3-chain.js.map +1 -0
- package/dist/web3.cjs +516 -0
- package/dist/web3.cjs.map +1 -0
- package/dist/web3.d.ts +16 -0
- package/dist/web3.js +513 -0
- package/dist/web3.js.map +1 -0
- package/package.json +105 -17
- package/explorins-pers-sdk-1.0.0-alpha.1.tgz +0 -0
- package/rollup.config.js +0 -84
- package/src/business/api/business-api.ts +0 -72
- package/src/business/business/tsconfig.json +0 -18
- package/src/business/index.ts +0 -52
- package/src/business/services/business-service.ts +0 -88
- package/src/core/abstractions/core-interfaces.ts +0 -56
- package/src/core/abstractions/http-client.ts +0 -23
- package/src/core/auth/auth-provider.interface.ts +0 -16
- package/src/core/auth/create-auth-provider.ts +0 -136
- package/src/core/auth/simple-auth-config.interface.ts +0 -15
- package/src/core/core.ts +0 -30
- package/src/core/pers-api-client.ts +0 -151
- package/src/core/pers-config.ts +0 -38
- package/src/core.ts +0 -30
- package/src/index.ts +0 -16
- package/src/pers-sdk.ts +0 -45
- package/tsconfig.json +0 -28
package/dist/tenant.cjs
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Platform-Agnostic Tenant API Client
|
|
5
|
+
*
|
|
6
|
+
* Handles tenant and admin operations using the PERS backend.
|
|
7
|
+
* Matches framework TenantApiService methods exactly.
|
|
8
|
+
*
|
|
9
|
+
* Note: Special header handling (bypass-auth-interceptor) should be handled by PersApiClient internally
|
|
10
|
+
* or through endpoint-specific configuration.
|
|
11
|
+
*/
|
|
12
|
+
class TenantApi {
|
|
13
|
+
constructor(apiClient) {
|
|
14
|
+
this.apiClient = apiClient;
|
|
15
|
+
this.basePath = '/tenants';
|
|
16
|
+
this.adminPath = '/admins';
|
|
17
|
+
}
|
|
18
|
+
// ==========================================
|
|
19
|
+
// PUBLIC OPERATIONS
|
|
20
|
+
// ==========================================
|
|
21
|
+
/**
|
|
22
|
+
* PUBLIC: Get tenant public information
|
|
23
|
+
* ✅ FIXED: Matches framework cache busting pattern exactly
|
|
24
|
+
*/
|
|
25
|
+
async getRemoteTenant() {
|
|
26
|
+
const timestamp = Date.now().toString();
|
|
27
|
+
const url = `${this.basePath}/public?date=${timestamp}`;
|
|
28
|
+
return this.apiClient.get(url);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* PUBLIC: Get remote login token
|
|
32
|
+
*/
|
|
33
|
+
async getRemoteLoginToken() {
|
|
34
|
+
return this.apiClient.get(`${this.basePath}/login-token`);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* PUBLIC: Get remote client configuration
|
|
38
|
+
* ✅ FIXED: Removed second parameter - PersApiClient handles bypass auth internally
|
|
39
|
+
* Note: The /tenants/client-config endpoint should be configured to bypass auth at the API client level
|
|
40
|
+
*/
|
|
41
|
+
async getRemoteClientConfig() {
|
|
42
|
+
return this.apiClient.get(`${this.basePath}/client-config`);
|
|
43
|
+
}
|
|
44
|
+
// ==========================================
|
|
45
|
+
// ADMIN OPERATIONS
|
|
46
|
+
// ==========================================
|
|
47
|
+
/**
|
|
48
|
+
* ADMIN: Update tenant information
|
|
49
|
+
* ✅ FIXED: Uses TenantPublicDTO directly like framework
|
|
50
|
+
*/
|
|
51
|
+
async updateRemoteTenant(tenantData) {
|
|
52
|
+
return this.apiClient.put(`${this.basePath}`, tenantData);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* ADMIN: Get all tenant admins
|
|
56
|
+
*/
|
|
57
|
+
async getAdmins() {
|
|
58
|
+
return this.apiClient.get(`${this.adminPath}`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* ADMIN: Create new admin
|
|
62
|
+
* ✅ FIXED: Renamed to match framework postAdmin method
|
|
63
|
+
*/
|
|
64
|
+
async postAdmin(adminData) {
|
|
65
|
+
return this.apiClient.post(`${this.adminPath}`, adminData);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* ADMIN: Update admin (toggle tenant association)
|
|
69
|
+
* ✅ FIXED: Renamed to match framework putAdmin method
|
|
70
|
+
*/
|
|
71
|
+
async putAdmin(adminId, adminData) {
|
|
72
|
+
return this.apiClient.put(`${this.adminPath}/${adminId}/tenant`, adminData);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Platform-Agnostic Tenant Service
|
|
78
|
+
*
|
|
79
|
+
* Contains tenant business logic and operations that work across platforms.
|
|
80
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
81
|
+
* Matches framework TenantApiService capabilities exactly.
|
|
82
|
+
*/
|
|
83
|
+
class TenantService {
|
|
84
|
+
constructor(tenantApi) {
|
|
85
|
+
this.tenantApi = tenantApi;
|
|
86
|
+
}
|
|
87
|
+
// ==========================================
|
|
88
|
+
// PUBLIC OPERATIONS
|
|
89
|
+
// ==========================================
|
|
90
|
+
/**
|
|
91
|
+
* PUBLIC: Get tenant public information
|
|
92
|
+
*/
|
|
93
|
+
async getRemoteTenant() {
|
|
94
|
+
return this.tenantApi.getRemoteTenant();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* PUBLIC: Get remote login token
|
|
98
|
+
*/
|
|
99
|
+
async getRemoteLoginToken() {
|
|
100
|
+
return this.tenantApi.getRemoteLoginToken();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* PUBLIC: Get remote client configuration
|
|
104
|
+
*/
|
|
105
|
+
async getRemoteClientConfig() {
|
|
106
|
+
return this.tenantApi.getRemoteClientConfig();
|
|
107
|
+
}
|
|
108
|
+
// ==========================================
|
|
109
|
+
// ADMIN OPERATIONS
|
|
110
|
+
// ==========================================
|
|
111
|
+
/**
|
|
112
|
+
* ADMIN: Update tenant information
|
|
113
|
+
* ✅ FIXED: Uses TenantPublicDTO directly like framework
|
|
114
|
+
*/
|
|
115
|
+
async updateRemoteTenant(tenantData) {
|
|
116
|
+
return this.tenantApi.updateRemoteTenant(tenantData);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* ADMIN: Get all tenant admins
|
|
120
|
+
*/
|
|
121
|
+
async getAdmins() {
|
|
122
|
+
return this.tenantApi.getAdmins();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* ADMIN: Create new admin
|
|
126
|
+
* ✅ FIXED: Renamed to match framework postAdmin method
|
|
127
|
+
*/
|
|
128
|
+
async postAdmin(adminData) {
|
|
129
|
+
return this.tenantApi.postAdmin(adminData);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* ADMIN: Update admin (toggle tenant association)
|
|
133
|
+
* ✅ FIXED: Renamed to match framework putAdmin method
|
|
134
|
+
*/
|
|
135
|
+
async putAdmin(adminId, adminData) {
|
|
136
|
+
return this.tenantApi.putAdmin(adminId, adminData);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @explorins/pers-sdk-tenant
|
|
142
|
+
*
|
|
143
|
+
* Platform-agnostic Tenant Domain SDK for PERS ecosystem
|
|
144
|
+
* Handles tenant management and admin operations for multi-tenant architecture
|
|
145
|
+
*/
|
|
146
|
+
// API Layer
|
|
147
|
+
/**
|
|
148
|
+
* Create a complete Tenant SDK instance
|
|
149
|
+
*
|
|
150
|
+
* @param apiClient - Configured PERS API client
|
|
151
|
+
* @returns Tenant SDK with flattened structure for better DX
|
|
152
|
+
*/
|
|
153
|
+
function createTenantSDK(apiClient) {
|
|
154
|
+
const tenantApi = new TenantApi(apiClient);
|
|
155
|
+
const tenantService = new TenantService(tenantApi);
|
|
156
|
+
return {
|
|
157
|
+
// Direct access to service methods (primary interface)
|
|
158
|
+
// ✅ FRAMEWORK ALIGNED: Only methods actually used by framework
|
|
159
|
+
// Public methods
|
|
160
|
+
getRemoteTenant: () => tenantService.getRemoteTenant(),
|
|
161
|
+
getRemoteLoginToken: () => tenantService.getRemoteLoginToken(),
|
|
162
|
+
getRemoteClientConfig: () => tenantService.getRemoteClientConfig(),
|
|
163
|
+
// Admin methods - ✅ FIXED: Matches framework method names exactly
|
|
164
|
+
updateRemoteTenant: (tenantData) => tenantService.updateRemoteTenant(tenantData),
|
|
165
|
+
getAdmins: () => tenantService.getAdmins(),
|
|
166
|
+
postAdmin: (adminData) => tenantService.postAdmin(adminData),
|
|
167
|
+
putAdmin: (adminId, adminData) => tenantService.putAdmin(adminId, adminData),
|
|
168
|
+
// Advanced access for edge cases
|
|
169
|
+
api: tenantApi,
|
|
170
|
+
service: tenantService
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
exports.TenantApi = TenantApi;
|
|
175
|
+
exports.TenantService = TenantService;
|
|
176
|
+
exports.createTenantSDK = createTenantSDK;
|
|
177
|
+
//# sourceMappingURL=tenant.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.cjs","sources":["../../src/tenant/api/tenant-api.ts","../../src/tenant/services/tenant-service.ts","../../src/tenant/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
|
package/dist/tenant.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @explorins/pers-sdk-tenant
|
|
3
|
+
*
|
|
4
|
+
* Platform-agnostic Tenant Domain SDK for PERS ecosystem
|
|
5
|
+
* Handles tenant management and admin operations for multi-tenant architecture
|
|
6
|
+
*/
|
|
7
|
+
export { TenantApi } from './tenant/api/tenant-api';
|
|
8
|
+
export { TenantService } from './tenant/services/tenant-service';
|
|
9
|
+
export * from './tenant/models';
|
|
10
|
+
export * from './shared/interfaces/pers-shared-lib.interfaces';
|
|
11
|
+
export * from './tenant/models';
|
|
12
|
+
import { PersApiClient } from './core/pers-api-client';
|
|
13
|
+
import { TenantApi } from './tenant/api/tenant-api';
|
|
14
|
+
import { TenantService } from './tenant/services/tenant-service';
|
|
15
|
+
import { TenantPublicDTO, AdminCreateRequestDTO } from './tenant/models';
|
|
16
|
+
/**
|
|
17
|
+
* Create a complete Tenant SDK instance
|
|
18
|
+
*
|
|
19
|
+
* @param apiClient - Configured PERS API client
|
|
20
|
+
* @returns Tenant SDK with flattened structure for better DX
|
|
21
|
+
*/
|
|
22
|
+
export declare function createTenantSDK(apiClient: PersApiClient): {
|
|
23
|
+
getRemoteTenant: () => Promise<TenantPublicDTO>;
|
|
24
|
+
getRemoteLoginToken: () => Promise<string>;
|
|
25
|
+
getRemoteClientConfig: () => Promise<TenantClientConfigDTO>;
|
|
26
|
+
updateRemoteTenant: (tenantData: TenantPublicDTO) => Promise<TenantPublicDTO>;
|
|
27
|
+
getAdmins: () => Promise<AdminDTO[]>;
|
|
28
|
+
postAdmin: (adminData: AdminCreateRequestDTO) => Promise<AdminDTO>;
|
|
29
|
+
putAdmin: (adminId: string, adminData: AdminCreateRequestDTO) => Promise<AdminDTO>;
|
|
30
|
+
api: TenantApi;
|
|
31
|
+
service: TenantService;
|
|
32
|
+
};
|
|
33
|
+
export type TenantSDK = ReturnType<typeof createTenantSDK>;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/tenant.js
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-Agnostic Tenant API Client
|
|
3
|
+
*
|
|
4
|
+
* Handles tenant and admin operations using the PERS backend.
|
|
5
|
+
* Matches framework TenantApiService methods exactly.
|
|
6
|
+
*
|
|
7
|
+
* Note: Special header handling (bypass-auth-interceptor) should be handled by PersApiClient internally
|
|
8
|
+
* or through endpoint-specific configuration.
|
|
9
|
+
*/
|
|
10
|
+
class TenantApi {
|
|
11
|
+
constructor(apiClient) {
|
|
12
|
+
this.apiClient = apiClient;
|
|
13
|
+
this.basePath = '/tenants';
|
|
14
|
+
this.adminPath = '/admins';
|
|
15
|
+
}
|
|
16
|
+
// ==========================================
|
|
17
|
+
// PUBLIC OPERATIONS
|
|
18
|
+
// ==========================================
|
|
19
|
+
/**
|
|
20
|
+
* PUBLIC: Get tenant public information
|
|
21
|
+
* ✅ FIXED: Matches framework cache busting pattern exactly
|
|
22
|
+
*/
|
|
23
|
+
async getRemoteTenant() {
|
|
24
|
+
const timestamp = Date.now().toString();
|
|
25
|
+
const url = `${this.basePath}/public?date=${timestamp}`;
|
|
26
|
+
return this.apiClient.get(url);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* PUBLIC: Get remote login token
|
|
30
|
+
*/
|
|
31
|
+
async getRemoteLoginToken() {
|
|
32
|
+
return this.apiClient.get(`${this.basePath}/login-token`);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* PUBLIC: Get remote client configuration
|
|
36
|
+
* ✅ FIXED: Removed second parameter - PersApiClient handles bypass auth internally
|
|
37
|
+
* Note: The /tenants/client-config endpoint should be configured to bypass auth at the API client level
|
|
38
|
+
*/
|
|
39
|
+
async getRemoteClientConfig() {
|
|
40
|
+
return this.apiClient.get(`${this.basePath}/client-config`);
|
|
41
|
+
}
|
|
42
|
+
// ==========================================
|
|
43
|
+
// ADMIN OPERATIONS
|
|
44
|
+
// ==========================================
|
|
45
|
+
/**
|
|
46
|
+
* ADMIN: Update tenant information
|
|
47
|
+
* ✅ FIXED: Uses TenantPublicDTO directly like framework
|
|
48
|
+
*/
|
|
49
|
+
async updateRemoteTenant(tenantData) {
|
|
50
|
+
return this.apiClient.put(`${this.basePath}`, tenantData);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* ADMIN: Get all tenant admins
|
|
54
|
+
*/
|
|
55
|
+
async getAdmins() {
|
|
56
|
+
return this.apiClient.get(`${this.adminPath}`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* ADMIN: Create new admin
|
|
60
|
+
* ✅ FIXED: Renamed to match framework postAdmin method
|
|
61
|
+
*/
|
|
62
|
+
async postAdmin(adminData) {
|
|
63
|
+
return this.apiClient.post(`${this.adminPath}`, adminData);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* ADMIN: Update admin (toggle tenant association)
|
|
67
|
+
* ✅ FIXED: Renamed to match framework putAdmin method
|
|
68
|
+
*/
|
|
69
|
+
async putAdmin(adminId, adminData) {
|
|
70
|
+
return this.apiClient.put(`${this.adminPath}/${adminId}/tenant`, adminData);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Platform-Agnostic Tenant Service
|
|
76
|
+
*
|
|
77
|
+
* Contains tenant business logic and operations that work across platforms.
|
|
78
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
79
|
+
* Matches framework TenantApiService capabilities exactly.
|
|
80
|
+
*/
|
|
81
|
+
class TenantService {
|
|
82
|
+
constructor(tenantApi) {
|
|
83
|
+
this.tenantApi = tenantApi;
|
|
84
|
+
}
|
|
85
|
+
// ==========================================
|
|
86
|
+
// PUBLIC OPERATIONS
|
|
87
|
+
// ==========================================
|
|
88
|
+
/**
|
|
89
|
+
* PUBLIC: Get tenant public information
|
|
90
|
+
*/
|
|
91
|
+
async getRemoteTenant() {
|
|
92
|
+
return this.tenantApi.getRemoteTenant();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* PUBLIC: Get remote login token
|
|
96
|
+
*/
|
|
97
|
+
async getRemoteLoginToken() {
|
|
98
|
+
return this.tenantApi.getRemoteLoginToken();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* PUBLIC: Get remote client configuration
|
|
102
|
+
*/
|
|
103
|
+
async getRemoteClientConfig() {
|
|
104
|
+
return this.tenantApi.getRemoteClientConfig();
|
|
105
|
+
}
|
|
106
|
+
// ==========================================
|
|
107
|
+
// ADMIN OPERATIONS
|
|
108
|
+
// ==========================================
|
|
109
|
+
/**
|
|
110
|
+
* ADMIN: Update tenant information
|
|
111
|
+
* ✅ FIXED: Uses TenantPublicDTO directly like framework
|
|
112
|
+
*/
|
|
113
|
+
async updateRemoteTenant(tenantData) {
|
|
114
|
+
return this.tenantApi.updateRemoteTenant(tenantData);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* ADMIN: Get all tenant admins
|
|
118
|
+
*/
|
|
119
|
+
async getAdmins() {
|
|
120
|
+
return this.tenantApi.getAdmins();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* ADMIN: Create new admin
|
|
124
|
+
* ✅ FIXED: Renamed to match framework postAdmin method
|
|
125
|
+
*/
|
|
126
|
+
async postAdmin(adminData) {
|
|
127
|
+
return this.tenantApi.postAdmin(adminData);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* ADMIN: Update admin (toggle tenant association)
|
|
131
|
+
* ✅ FIXED: Renamed to match framework putAdmin method
|
|
132
|
+
*/
|
|
133
|
+
async putAdmin(adminId, adminData) {
|
|
134
|
+
return this.tenantApi.putAdmin(adminId, adminData);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* @explorins/pers-sdk-tenant
|
|
140
|
+
*
|
|
141
|
+
* Platform-agnostic Tenant Domain SDK for PERS ecosystem
|
|
142
|
+
* Handles tenant management and admin operations for multi-tenant architecture
|
|
143
|
+
*/
|
|
144
|
+
// API Layer
|
|
145
|
+
/**
|
|
146
|
+
* Create a complete Tenant SDK instance
|
|
147
|
+
*
|
|
148
|
+
* @param apiClient - Configured PERS API client
|
|
149
|
+
* @returns Tenant SDK with flattened structure for better DX
|
|
150
|
+
*/
|
|
151
|
+
function createTenantSDK(apiClient) {
|
|
152
|
+
const tenantApi = new TenantApi(apiClient);
|
|
153
|
+
const tenantService = new TenantService(tenantApi);
|
|
154
|
+
return {
|
|
155
|
+
// Direct access to service methods (primary interface)
|
|
156
|
+
// ✅ FRAMEWORK ALIGNED: Only methods actually used by framework
|
|
157
|
+
// Public methods
|
|
158
|
+
getRemoteTenant: () => tenantService.getRemoteTenant(),
|
|
159
|
+
getRemoteLoginToken: () => tenantService.getRemoteLoginToken(),
|
|
160
|
+
getRemoteClientConfig: () => tenantService.getRemoteClientConfig(),
|
|
161
|
+
// Admin methods - ✅ FIXED: Matches framework method names exactly
|
|
162
|
+
updateRemoteTenant: (tenantData) => tenantService.updateRemoteTenant(tenantData),
|
|
163
|
+
getAdmins: () => tenantService.getAdmins(),
|
|
164
|
+
postAdmin: (adminData) => tenantService.postAdmin(adminData),
|
|
165
|
+
putAdmin: (adminId, adminData) => tenantService.putAdmin(adminId, adminData),
|
|
166
|
+
// Advanced access for edge cases
|
|
167
|
+
api: tenantApi,
|
|
168
|
+
service: tenantService
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export { TenantApi, TenantService, createTenantSDK };
|
|
173
|
+
//# sourceMappingURL=tenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.js","sources":["../../src/tenant/api/tenant-api.ts","../../src/tenant/services/tenant-service.ts","../../src/tenant/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"AAYA;;;;;;;;AAQG;MACU,SAAS,CAAA;AACpB,IAAA,WAAA,CAAoB,SAAwB,EAAA;QAAxB,IAAA,CAAA,SAAS,GAAT,SAAS;QAErB,IAAA,CAAA,QAAQ,GAAG,UAAU;QACrB,IAAA,CAAA,SAAS,GAAG,SAAS;IAHkB;;;;AAS/C;;;AAGG;AACH,IAAA,MAAM,eAAe,GAAA;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACvC,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAE;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAkB,GAAG,CAAC;IACjD;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,YAAA,CAAc,CAAC;IACnE;AAEA;;;;AAIG;AACH,IAAA,MAAM,qBAAqB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,cAAA,CAAgB,CAAC;IACpF;;;;AAMA;;;AAGG;IACH,MAAM,kBAAkB,CAAC,UAA2B,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAkB,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAE,EAAE,UAAU,CAAC;IAC5E;AAEA;;AAEG;AACH,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAa,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;IAC5D;AAEA;;;AAGG;IACH,MAAM,SAAS,CAAC,SAAgC,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAW,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAE,EAAE,SAAS,CAAC;IACtE;AAEA;;;AAGG;AACH,IAAA,MAAM,QAAQ,CAAC,OAAe,EAAE,SAAgC,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAA,OAAA,CAAS,EAAE,SAAS,CAAC;IACvF;AACD;;ACnFD;;;;;;AAMG;MACU,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,SAAoB,EAAA;QAApB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAc;;;;AAM3C;;AAEG;AACH,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;IACzC;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;IAC7C;AAEA;;AAEG;AACH,IAAA,MAAM,qBAAqB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;IAC/C;;;;AAMA;;;AAGG;IACH,MAAM,kBAAkB,CAAC,UAA2B,EAAA;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC;IACtD;AAEA;;AAEG;AACH,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IACnC;AAEA;;;AAGG;IACH,MAAM,SAAS,CAAC,SAAgC,EAAA;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;IAC5C;AAEA;;;AAGG;AACH,IAAA,MAAM,QAAQ,CAAC,OAAe,EAAE,SAAgC,EAAA;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IACpD;AACD;;AC7ED;;;;;AAKG;AAEH;AAmBA;;;;;AAKG;AACG,SAAU,eAAe,CAAC,SAAwB,EAAA;AACtD,IAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC;AAC1C,IAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC;IAElD,OAAO;;;;AAKL,QAAA,eAAe,EAAE,MAAM,aAAa,CAAC,eAAe,EAAE;AACtD,QAAA,mBAAmB,EAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE;AAC9D,QAAA,qBAAqB,EAAE,MAAM,aAAa,CAAC,qBAAqB,EAAE;;QAGlE,kBAAkB,EAAE,CAAC,UAA2B,KAC9C,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC;AAC9C,QAAA,SAAS,EAAE,MAAM,aAAa,CAAC,SAAS,EAAE;QAC1C,SAAS,EAAE,CAAC,SAAgC,KAC1C,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC;AACpC,QAAA,QAAQ,EAAE,CAAC,OAAe,EAAE,SAAgC,KAC1D,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;;AAG5C,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,OAAO,EAAE;KACV;AACH;;;;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { PersApiClient } from '../../core/pers-api-client';
|
|
2
|
+
import { TokenDTO, TokenTypeDTO, TokenCreateRequestDTO, TokenStorageData, TokenUpdateRequestDTO, TokenMetadataDTO } from '../models';
|
|
3
|
+
export declare class TokenApi {
|
|
4
|
+
private apiClient;
|
|
5
|
+
constructor(apiClient: PersApiClient);
|
|
6
|
+
private basePath;
|
|
7
|
+
/**
|
|
8
|
+
* PUBLIC: Get all remote tokens
|
|
9
|
+
* ENHANCED: Added admin filtering capability
|
|
10
|
+
*/
|
|
11
|
+
getRemoteTokens(includeInactive?: boolean): Promise<TokenDTO[]>;
|
|
12
|
+
/**
|
|
13
|
+
* PUBLIC: Get all remote token types
|
|
14
|
+
*/
|
|
15
|
+
getRemoteTokenTypes(): Promise<TokenTypeDTO[]>;
|
|
16
|
+
/**
|
|
17
|
+
* PUBLIC: Get active point token (was credit token)
|
|
18
|
+
*/
|
|
19
|
+
getRemoteActiveCreditToken(): Promise<TokenDTO>;
|
|
20
|
+
/**
|
|
21
|
+
* PUBLIC: Get reward tokens
|
|
22
|
+
* ENHANCED: Added admin filtering capability
|
|
23
|
+
*/
|
|
24
|
+
getRemoteRewardTokens(includeInactive?: boolean): Promise<TokenDTO[]>;
|
|
25
|
+
/**
|
|
26
|
+
* PUBLIC: Get stamp tokens (was status tokens)
|
|
27
|
+
* ENHANCED: Added admin filtering capability
|
|
28
|
+
*/
|
|
29
|
+
getRemoteStatusTokens(includeInactive?: boolean): Promise<TokenDTO[]>;
|
|
30
|
+
/**
|
|
31
|
+
* PUBLIC: Get token by contract address
|
|
32
|
+
*/
|
|
33
|
+
getTokenByContractAddress(contractAddress: string, contractTokenId: string | null): Promise<TokenDTO>;
|
|
34
|
+
/**
|
|
35
|
+
* ADMIN: Create new token
|
|
36
|
+
*/
|
|
37
|
+
createToken(tokenData: TokenCreateRequestDTO): Promise<TokenDTO>;
|
|
38
|
+
/**
|
|
39
|
+
* ADMIN: Update token
|
|
40
|
+
*/
|
|
41
|
+
updateToken(tokenId: string, tokenData: TokenUpdateRequestDTO): Promise<TokenDTO>;
|
|
42
|
+
/**
|
|
43
|
+
* ADMIN: Toggle token active status
|
|
44
|
+
* FIXED: Now calls correct endpoint
|
|
45
|
+
*/
|
|
46
|
+
toggleTokenActive(tokenId: string): Promise<TokenDTO>;
|
|
47
|
+
/**
|
|
48
|
+
* ADMIN: Set mainnet contract address
|
|
49
|
+
*/
|
|
50
|
+
setMainnetContract(tokenId: string, contractAddress: string, chainId: number): Promise<TokenDTO>;
|
|
51
|
+
/**
|
|
52
|
+
* ADMIN: Create token metadata
|
|
53
|
+
*/
|
|
54
|
+
createTokenMetadata(tokenId: string, tokenData: TokenStorageData): Promise<TokenDTO>;
|
|
55
|
+
/**
|
|
56
|
+
* ADMIN: Toggle token metadata status (separate from token status)
|
|
57
|
+
*/
|
|
58
|
+
toggleTokenMetadataStatus(metadataId: string): Promise<TokenMetadataDTO>;
|
|
59
|
+
/**
|
|
60
|
+
* ADMIN: Create token type
|
|
61
|
+
*/
|
|
62
|
+
createTokenType(tokenType: TokenTypeDTO): Promise<TokenTypeDTO>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=token-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-api.d.ts","sourceRoot":"","sources":["../../../src/token/api/token-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAGnB,qBAAa,QAAQ;IACP,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAa;IAM7B;;;OAGG;IACG,eAAe,CAAC,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAK5E;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIpD;;OAEG;IACG,0BAA0B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIrD;;;OAGG;IACG,qBAAqB,CAAC,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKlF;;;OAGG;IACG,qBAAqB,CAAC,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKlF;;OAEG;IACG,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAY3G;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItE;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvF;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3D;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOtG;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1F;;OAEG;IACG,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9E;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAGtE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { PersApiClient } from '../../core/pers-api-client';
|
|
2
|
+
import { TokenDTO, TokenStorageData, TokenCreateRequestDTO, TokenUpdateRequestDTO, TokenMetadataDTO } from '../models';
|
|
3
|
+
import { TokenTypeDTO } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* Abstract Base Token Service - Explicit Initialization Pattern
|
|
6
|
+
*
|
|
7
|
+
* Platform-agnostic token operations with Promise-based API.
|
|
8
|
+
* Framework services extend this and control initialization lifecycle.
|
|
9
|
+
*
|
|
10
|
+
* Benefits:
|
|
11
|
+
* - Explicit initialization control
|
|
12
|
+
* - Better error boundaries
|
|
13
|
+
* - Clear lifecycle management
|
|
14
|
+
* - Testable initialization state
|
|
15
|
+
* - Zero framework dependencies
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class BaseTokenService {
|
|
18
|
+
private _tokenApi?;
|
|
19
|
+
private _tokenBusinessService?;
|
|
20
|
+
private _isInitialized;
|
|
21
|
+
/**
|
|
22
|
+
* LIFECYCLE: Initialize token service with API client
|
|
23
|
+
* Must be called before using any token operations
|
|
24
|
+
*/
|
|
25
|
+
protected initializeTokenService(apiClient: PersApiClient): void;
|
|
26
|
+
/**
|
|
27
|
+
* LIFECYCLE: Check if token service is initialized
|
|
28
|
+
*/
|
|
29
|
+
protected get isTokenServiceInitialized(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* INTERNAL: Get token business service (throws if not initialized)
|
|
32
|
+
*/
|
|
33
|
+
private get tokenBusinessService();
|
|
34
|
+
/**
|
|
35
|
+
* PUBLIC: Get all remote tokens
|
|
36
|
+
*/
|
|
37
|
+
getRemoteTokens(): Promise<TokenDTO[]>;
|
|
38
|
+
/**
|
|
39
|
+
* PUBLIC: Get all remote token types
|
|
40
|
+
*/
|
|
41
|
+
getRemoteTokenTypes(): Promise<TokenTypeDTO[]>;
|
|
42
|
+
/**
|
|
43
|
+
* PUBLIC: Get active credit token
|
|
44
|
+
*/
|
|
45
|
+
getRemoteActiveCreditToken(): Promise<TokenDTO>;
|
|
46
|
+
/**
|
|
47
|
+
* PUBLIC: Get reward tokens
|
|
48
|
+
*/
|
|
49
|
+
getRemoteRewardTokens(): Promise<TokenDTO[]>;
|
|
50
|
+
/**
|
|
51
|
+
* PUBLIC: Get status tokens
|
|
52
|
+
*/
|
|
53
|
+
getRemoteStatusTokens(): Promise<TokenDTO[]>;
|
|
54
|
+
/**
|
|
55
|
+
* PUBLIC: Get token by contract address
|
|
56
|
+
*/
|
|
57
|
+
getTokenByContractAddress(contractAddress: string, contractTokenId: string | null): Promise<TokenDTO>;
|
|
58
|
+
/**
|
|
59
|
+
* ADMIN: Create token metadata
|
|
60
|
+
*/
|
|
61
|
+
createTokenMetadata(tokenId: string, tokenData: TokenStorageData): Promise<TokenDTO>;
|
|
62
|
+
/**
|
|
63
|
+
* ADMIN: Toggle token active status
|
|
64
|
+
*/
|
|
65
|
+
toggleTokenActive(tokenId: string): Promise<TokenDTO>;
|
|
66
|
+
/**
|
|
67
|
+
* ADMIN: Create new token
|
|
68
|
+
*/
|
|
69
|
+
createToken(tokenData: TokenCreateRequestDTO): Promise<TokenDTO>;
|
|
70
|
+
/**
|
|
71
|
+
* ADMIN: Update token
|
|
72
|
+
*/
|
|
73
|
+
updateToken(tokenId: string, tokenData: TokenUpdateRequestDTO): Promise<TokenDTO>;
|
|
74
|
+
/**
|
|
75
|
+
* ADMIN: Set mainnet contract address
|
|
76
|
+
*/
|
|
77
|
+
setMainnetContract(tokenId: string, contractAddress: string, chainId: number): Promise<TokenDTO>;
|
|
78
|
+
/**
|
|
79
|
+
* ADMIN: Toggle token metadata status
|
|
80
|
+
*/
|
|
81
|
+
toggleTokenMetadataStatus(metadataId: string): Promise<TokenMetadataDTO>;
|
|
82
|
+
/**
|
|
83
|
+
* ADMIN: Create token type
|
|
84
|
+
*/
|
|
85
|
+
createTokenType(tokenType: TokenTypeDTO): Promise<TokenTypeDTO>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=base-token-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-token-service.d.ts","sourceRoot":"","sources":["../../../src/token/base/base-token-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,8BAAsB,gBAAgB;IAEpC,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IACrD,OAAO,CAAC,cAAc,CAAS;IAM/B;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAYhE;;OAEG;IACH,SAAS,KAAK,yBAAyB,IAAI,OAAO,CAEjD;IAED;;OAEG;IACH,OAAO,KAAK,oBAAoB,GAK/B;IAMD;;OAEG;IACI,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI7C;;OAEG;IACI,mBAAmB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIrD;;OAEG;IACI,0BAA0B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAItD;;OAEG;IACI,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInD;;OAEG;IACI,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInD;;OAEG;IACI,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQ5G;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3F;;OAEG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI5D;;OAEG;IACI,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvE;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIxF;;OAEG;IACI,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvG;;OAEG;IACI,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI/E;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAGvE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @explorins/pers-sdk-token
|
|
3
|
+
*
|
|
4
|
+
* Platform-agnostic Token Domain SDK for PERS ecosystem
|
|
5
|
+
* Modern class-based approach for optimal performance and developer experience
|
|
6
|
+
*/
|
|
7
|
+
export { TokenSDK } from './token-sdk';
|
|
8
|
+
export { TokenApi } from './api/token-api';
|
|
9
|
+
export { TokenService } from './services/token-service';
|
|
10
|
+
export * from './models';
|
|
11
|
+
export * from '../shared/interfaces/pers-shared-lib.interfaces';
|
|
12
|
+
export { BaseTokenService } from './base/base-token-service';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,cAAc,UAAU,CAAC;AACzB,cAAc,iDAAiD,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Domain Models
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from @explorins/pers-shared for consistency with backend
|
|
5
|
+
* and to provide a single import source for token-related types.
|
|
6
|
+
*/
|
|
7
|
+
export type { TokenDTO, TokenTypeDTO, TokenCreateRequestDTO, TokenUpdateRequestDTO, TokenMetadataDTO, TokenStorageData } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
8
|
+
export interface TokenMetadataAttribute {
|
|
9
|
+
trait_type: TokenMetadataAttributeType;
|
|
10
|
+
value: string;
|
|
11
|
+
}
|
|
12
|
+
export type TokenMetadataAttributeType = 'expiry_date' | 'creator_account_address' | 'preview_url' | 'creatorAccountAddress';
|
|
13
|
+
export interface TokenAttribute {
|
|
14
|
+
trait_type: string;
|
|
15
|
+
value: string | number;
|
|
16
|
+
display_type?: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/token/models/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,oDAAoD,CAAC;AAG5D,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,0BAA0B,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG,yBAAyB,GAAG,aAAa,GAAG,uBAAuB,CAAA;AAE5H,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { TokenApi } from '../api/token-api';
|
|
2
|
+
import { TokenDTO, TokenStorageData, TokenCreateRequestDTO, TokenUpdateRequestDTO, TokenMetadataDTO } from '../models';
|
|
3
|
+
import { TokenTypeDTO } from '../../shared/interfaces/pers-shared-lib.interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* Platform-Agnostic Token Service
|
|
6
|
+
*
|
|
7
|
+
* Contains token business logic and operations that work across platforms.
|
|
8
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
9
|
+
* Matches framework TokenApiService capabilities exactly.
|
|
10
|
+
*/
|
|
11
|
+
export declare class TokenService {
|
|
12
|
+
private tokenApi;
|
|
13
|
+
constructor(tokenApi: TokenApi);
|
|
14
|
+
/**
|
|
15
|
+
* PUBLIC: Get all remote tokens
|
|
16
|
+
*/
|
|
17
|
+
getRemoteTokens(): Promise<TokenDTO[]>;
|
|
18
|
+
/**
|
|
19
|
+
* PUBLIC: Get all remote token types
|
|
20
|
+
*/
|
|
21
|
+
getRemoteTokenTypes(): Promise<TokenTypeDTO[]>;
|
|
22
|
+
/**
|
|
23
|
+
* PUBLIC: Get active credit token
|
|
24
|
+
*/
|
|
25
|
+
getRemoteActiveCreditToken(): Promise<TokenDTO>;
|
|
26
|
+
/**
|
|
27
|
+
* PUBLIC: Get reward tokens
|
|
28
|
+
*/
|
|
29
|
+
getRemoteRewardTokens(): Promise<TokenDTO[]>;
|
|
30
|
+
/**
|
|
31
|
+
* PUBLIC: Get status tokens
|
|
32
|
+
*/
|
|
33
|
+
getRemoteStatusTokens(): Promise<TokenDTO[]>;
|
|
34
|
+
/**
|
|
35
|
+
* PUBLIC: Get token by contract address
|
|
36
|
+
* ✅ FIXED: Matches framework parameter types exactly
|
|
37
|
+
*/
|
|
38
|
+
getTokenByContractAddress(contractAddress: string, contractTokenId: string | null): Promise<TokenDTO>;
|
|
39
|
+
/**
|
|
40
|
+
* ADMIN: Create token metadata
|
|
41
|
+
*/
|
|
42
|
+
createTokenMetadata(tokenId: string, tokenData: TokenStorageData): Promise<TokenDTO>;
|
|
43
|
+
/**
|
|
44
|
+
* ADMIN: Toggle token active status
|
|
45
|
+
*/
|
|
46
|
+
toggleTokenActive(tokenId: string): Promise<TokenDTO>;
|
|
47
|
+
/**
|
|
48
|
+
* ADMIN: Create new token
|
|
49
|
+
*/
|
|
50
|
+
createToken(tokenData: TokenCreateRequestDTO): Promise<TokenDTO>;
|
|
51
|
+
/**
|
|
52
|
+
* ADMIN: Update token
|
|
53
|
+
*/
|
|
54
|
+
updateToken(tokenId: string, tokenData: TokenUpdateRequestDTO): Promise<TokenDTO>;
|
|
55
|
+
/**
|
|
56
|
+
* ADMIN: Set mainnet contract address
|
|
57
|
+
*/
|
|
58
|
+
setMainnetContract(tokenId: string, contractAddress: string, chainId: number): Promise<TokenDTO>;
|
|
59
|
+
/**
|
|
60
|
+
* ADMIN: Toggle token metadata status
|
|
61
|
+
*/
|
|
62
|
+
toggleTokenMetadataStatus(metadataId: string): Promise<TokenMetadataDTO>;
|
|
63
|
+
/**
|
|
64
|
+
* ADMIN: Create token type
|
|
65
|
+
*/
|
|
66
|
+
createTokenType(tokenType: TokenTypeDTO): Promise<TokenTypeDTO>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=token-service.d.ts.map
|