@explorins/pers-sdk 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/dist/analytics/api/analytics-api.d.ts +17 -0
  2. package/dist/analytics/api/analytics-api.d.ts.map +1 -0
  3. package/{src/analytics/index.ts → dist/analytics/index.d.ts} +28 -52
  4. package/dist/analytics/index.d.ts.map +1 -0
  5. package/dist/analytics/models/index.d.ts +61 -0
  6. package/dist/analytics/models/index.d.ts.map +1 -0
  7. package/dist/analytics/services/analytics-service.d.ts +19 -0
  8. package/dist/analytics/services/analytics-service.d.ts.map +1 -0
  9. package/dist/analytics.cjs +76 -0
  10. package/dist/analytics.cjs.map +1 -0
  11. package/dist/analytics.js +72 -0
  12. package/dist/analytics.js.map +1 -0
  13. package/dist/auth-admin/api/auth-admin-api.d.ts +27 -0
  14. package/dist/auth-admin/api/auth-admin-api.d.ts.map +1 -0
  15. package/dist/auth-admin/index.d.ts +26 -0
  16. package/dist/auth-admin/index.d.ts.map +1 -0
  17. package/dist/auth-admin/services/auth-admin-service.d.ts +23 -0
  18. package/dist/auth-admin/services/auth-admin-service.d.ts.map +1 -0
  19. package/dist/auth-admin.cjs +96 -0
  20. package/dist/auth-admin.cjs.map +1 -0
  21. package/dist/auth-admin.js +92 -0
  22. package/dist/auth-admin.js.map +1 -0
  23. package/dist/business/api/business-api.d.ts +133 -0
  24. package/dist/business/api/business-api.d.ts.map +1 -0
  25. package/dist/business/index.d.ts +34 -0
  26. package/dist/business/index.d.ts.map +1 -0
  27. package/dist/business/models/index.d.ts +8 -0
  28. package/dist/business/models/index.d.ts.map +1 -0
  29. package/dist/business/services/business-service.d.ts +51 -0
  30. package/dist/business/services/business-service.d.ts.map +1 -0
  31. package/dist/business.cjs +303 -0
  32. package/dist/business.cjs.map +1 -0
  33. package/dist/business.js +299 -0
  34. package/dist/business.js.map +1 -0
  35. package/dist/campaign/api/campaign-api.d.ts +213 -0
  36. package/dist/campaign/api/campaign-api.d.ts.map +1 -0
  37. package/dist/campaign/index.d.ts +44 -0
  38. package/dist/campaign/index.d.ts.map +1 -0
  39. package/dist/campaign/services/campaign-service.d.ts +88 -0
  40. package/dist/campaign/services/campaign-service.d.ts.map +1 -0
  41. package/dist/campaign.cjs +506 -0
  42. package/dist/campaign.cjs.map +1 -0
  43. package/dist/campaign.js +502 -0
  44. package/dist/campaign.js.map +1 -0
  45. package/dist/core/abstractions/http-client.d.ts +22 -0
  46. package/dist/core/abstractions/http-client.d.ts.map +1 -0
  47. package/dist/core/auth/auth-provider.interface.d.ts +12 -0
  48. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -0
  49. package/dist/core/auth/create-auth-provider.d.ts +27 -0
  50. package/dist/core/auth/create-auth-provider.d.ts.map +1 -0
  51. package/dist/core/auth/simple-auth-config.interface.d.ts +15 -0
  52. package/dist/core/auth/simple-auth-config.interface.d.ts.map +1 -0
  53. package/dist/core/index.d.ts +13 -0
  54. package/dist/core/index.d.ts.map +1 -0
  55. package/dist/core/pers-api-client.d.ts +54 -0
  56. package/dist/core/pers-api-client.d.ts.map +1 -0
  57. package/dist/core/pers-config.d.ts +38 -0
  58. package/dist/core/pers-config.d.ts.map +1 -0
  59. package/dist/core/utils/jwt.function.d.ts +2 -0
  60. package/dist/core/utils/jwt.function.d.ts.map +1 -0
  61. package/dist/core.cjs +506 -0
  62. package/dist/core.cjs.map +1 -0
  63. package/dist/core.js +497 -0
  64. package/dist/core.js.map +1 -0
  65. package/dist/donation/api/donation-api.d.ts +18 -0
  66. package/dist/donation/api/donation-api.d.ts.map +1 -0
  67. package/dist/donation/index.d.ts +25 -0
  68. package/dist/donation/index.d.ts.map +1 -0
  69. package/{src/donation/models/index.ts → dist/donation/models/index.d.ts} +8 -11
  70. package/dist/donation/models/index.d.ts.map +1 -0
  71. package/dist/donation/services/donation-service.d.ts +19 -0
  72. package/dist/donation/services/donation-service.d.ts.map +1 -0
  73. package/dist/donation.cjs +78 -0
  74. package/dist/donation.cjs.map +1 -0
  75. package/dist/donation.js +74 -0
  76. package/dist/donation.js.map +1 -0
  77. package/dist/index.cjs +4217 -0
  78. package/dist/index.cjs.map +1 -0
  79. package/dist/index.d.ts +21 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +4164 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/package.json +129 -0
  84. package/dist/payment/api/payment-api.d.ts +105 -0
  85. package/dist/payment/api/payment-api.d.ts.map +1 -0
  86. package/dist/payment/index.d.ts +36 -0
  87. package/dist/payment/index.d.ts.map +1 -0
  88. package/dist/payment/models/index.d.ts +12 -0
  89. package/dist/payment/models/index.d.ts.map +1 -0
  90. package/dist/payment/services/payment-service.d.ts +40 -0
  91. package/dist/payment/services/payment-service.d.ts.map +1 -0
  92. package/dist/payment.cjs +258 -0
  93. package/dist/payment.cjs.map +1 -0
  94. package/dist/payment.js +254 -0
  95. package/dist/payment.js.map +1 -0
  96. package/dist/pers-sdk.d.ts +29 -0
  97. package/dist/pers-sdk.d.ts.map +1 -0
  98. package/dist/redemption/api/redemption-api.d.ts +147 -0
  99. package/dist/redemption/api/redemption-api.d.ts.map +1 -0
  100. package/dist/redemption/index.d.ts +35 -0
  101. package/dist/redemption/index.d.ts.map +1 -0
  102. package/dist/redemption/models/index.d.ts +8 -0
  103. package/dist/redemption/models/index.d.ts.map +1 -0
  104. package/dist/redemption/services/redemption-service.d.ts +56 -0
  105. package/dist/redemption/services/redemption-service.d.ts.map +1 -0
  106. package/dist/redemption.cjs +333 -0
  107. package/dist/redemption.cjs.map +1 -0
  108. package/dist/redemption.js +329 -0
  109. package/dist/redemption.js.map +1 -0
  110. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +18 -0
  111. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -0
  112. package/dist/tenant/api/tenant-api.d.ts +56 -0
  113. package/dist/tenant/api/tenant-api.d.ts.map +1 -0
  114. package/dist/tenant/index.d.ts +34 -0
  115. package/dist/tenant/index.d.ts.map +1 -0
  116. package/dist/tenant/models/index.d.ts +11 -0
  117. package/dist/tenant/models/index.d.ts.map +1 -0
  118. package/dist/tenant/services/tenant-service.d.ts +46 -0
  119. package/dist/tenant/services/tenant-service.d.ts.map +1 -0
  120. package/dist/tenant.cjs +177 -0
  121. package/dist/tenant.cjs.map +1 -0
  122. package/dist/tenant.js +173 -0
  123. package/dist/tenant.js.map +1 -0
  124. package/dist/token/api/token-api.d.ts +64 -0
  125. package/dist/token/api/token-api.d.ts.map +1 -0
  126. package/dist/token/base/base-token-service.d.ts +87 -0
  127. package/dist/token/base/base-token-service.d.ts.map +1 -0
  128. package/dist/token/index.d.ts +13 -0
  129. package/dist/token/index.d.ts.map +1 -0
  130. package/dist/token/models/index.d.ts +18 -0
  131. package/dist/token/models/index.d.ts.map +1 -0
  132. package/dist/token/services/token-service.d.ts +68 -0
  133. package/dist/token/services/token-service.d.ts.map +1 -0
  134. package/dist/token/token-sdk.d.ts +140 -0
  135. package/dist/token/token-sdk.d.ts.map +1 -0
  136. package/dist/token.cjs +537 -0
  137. package/dist/token.cjs.map +1 -0
  138. package/dist/token.js +532 -0
  139. package/dist/token.js.map +1 -0
  140. package/dist/transaction/api/transaction-api.d.ts +133 -0
  141. package/dist/transaction/api/transaction-api.d.ts.map +1 -0
  142. package/dist/transaction/index.d.ts +38 -0
  143. package/dist/transaction/index.d.ts.map +1 -0
  144. package/dist/transaction/models/index.d.ts +42 -0
  145. package/dist/transaction/models/index.d.ts.map +1 -0
  146. package/dist/transaction/services/transaction-service.d.ts +56 -0
  147. package/dist/transaction/services/transaction-service.d.ts.map +1 -0
  148. package/dist/transaction.cjs +394 -0
  149. package/dist/transaction.cjs.map +1 -0
  150. package/dist/transaction.js +390 -0
  151. package/dist/transaction.js.map +1 -0
  152. package/dist/user/api/user-api.d.ts +56 -0
  153. package/dist/user/api/user-api.d.ts.map +1 -0
  154. package/dist/user/index.d.ts +36 -0
  155. package/dist/user/index.d.ts.map +1 -0
  156. package/{src/user/models/index.ts → dist/user/models/index.d.ts} +12 -10
  157. package/dist/user/models/index.d.ts.map +1 -0
  158. package/dist/user/services/user-service.d.ts +46 -0
  159. package/dist/user/services/user-service.d.ts.map +1 -0
  160. package/dist/user-status/api/user-status-api.d.ts +37 -0
  161. package/dist/user-status/api/user-status-api.d.ts.map +1 -0
  162. package/dist/user-status/index.d.ts +28 -0
  163. package/dist/user-status/index.d.ts.map +1 -0
  164. package/{src/user-status/models/index.ts → dist/user-status/models/index.d.ts} +8 -11
  165. package/dist/user-status/models/index.d.ts.map +1 -0
  166. package/dist/user-status/services/user-status-service.d.ts +26 -0
  167. package/dist/user-status/services/user-status-service.d.ts.map +1 -0
  168. package/dist/user-status.cjs +147 -0
  169. package/dist/user-status.cjs.map +1 -0
  170. package/dist/user-status.js +143 -0
  171. package/dist/user-status.js.map +1 -0
  172. package/dist/user.cjs +188 -0
  173. package/dist/user.cjs.map +1 -0
  174. package/dist/user.js +184 -0
  175. package/dist/user.js.map +1 -0
  176. package/dist/web3/api/web3-api.d.ts +27 -0
  177. package/dist/web3/api/web3-api.d.ts.map +1 -0
  178. package/dist/web3/index.d.ts +16 -0
  179. package/dist/web3/index.d.ts.map +1 -0
  180. package/dist/web3/models/index.d.ts +92 -0
  181. package/dist/web3/models/index.d.ts.map +1 -0
  182. package/dist/web3/services/web3-service.d.ts +21 -0
  183. package/dist/web3/services/web3-service.d.ts.map +1 -0
  184. package/dist/web3-chain/api/web3-chain-api.d.ts +19 -0
  185. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -0
  186. package/dist/web3-chain/index.d.ts +17 -0
  187. package/dist/web3-chain/index.d.ts.map +1 -0
  188. package/{src/web3-chain/models/index.ts → dist/web3-chain/models/index.d.ts} +38 -45
  189. package/dist/web3-chain/models/index.d.ts.map +1 -0
  190. package/dist/web3-chain/services/getWeb3FCD.service.d.ts +8 -0
  191. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -0
  192. package/dist/web3-chain/services/provider.service.d.ts +15 -0
  193. package/dist/web3-chain/services/provider.service.d.ts.map +1 -0
  194. package/dist/web3-chain/services/public-http-provider.service.d.ts +8 -0
  195. package/dist/web3-chain/services/public-http-provider.service.d.ts.map +1 -0
  196. package/dist/web3-chain/services/web3-chain-service.d.ts +17 -0
  197. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -0
  198. package/dist/web3-chain.cjs +316 -0
  199. package/dist/web3-chain.cjs.map +1 -0
  200. package/dist/web3-chain.js +310 -0
  201. package/dist/web3-chain.js.map +1 -0
  202. package/dist/web3.cjs +516 -0
  203. package/dist/web3.cjs.map +1 -0
  204. package/dist/web3.js +513 -0
  205. package/dist/web3.js.map +1 -0
  206. package/package.json +56 -72
  207. package/config/domains.js +0 -22
  208. package/explorins-pers-sdk-1.0.0-alpha.1.tgz +0 -0
  209. package/rollup.config.js +0 -74
  210. package/scripts/copy-declarations.js +0 -147
  211. package/src/analytics/api/analytics-api.ts +0 -24
  212. package/src/analytics/models/index.ts +0 -74
  213. package/src/analytics/services/analytics-service.ts +0 -28
  214. package/src/auth-admin/api/auth-admin-api.ts +0 -42
  215. package/src/auth-admin/index.ts +0 -47
  216. package/src/auth-admin/services/auth-admin-service.ts +0 -36
  217. package/src/business/api/business-api.ts +0 -234
  218. package/src/business/index.ts +0 -53
  219. package/src/business/models/index.ts +0 -13
  220. package/src/business/services/business-service.ts +0 -88
  221. package/src/campaign/api/campaign-api.ts +0 -376
  222. package/src/campaign/index.ts +0 -67
  223. package/src/campaign/services/campaign-service.ts +0 -164
  224. package/src/core/abstractions/http-client.ts +0 -24
  225. package/src/core/auth/auth-provider.interface.ts +0 -16
  226. package/src/core/auth/create-auth-provider.ts +0 -136
  227. package/src/core/auth/simple-auth-config.interface.ts +0 -15
  228. package/src/core/index.ts +0 -33
  229. package/src/core/pers-api-client.ts +0 -343
  230. package/src/core/pers-config.ts +0 -65
  231. package/src/core/utils/jwt.function.ts +0 -24
  232. package/src/donation/api/donation-api.ts +0 -24
  233. package/src/donation/index.ts +0 -47
  234. package/src/donation/services/donation-service.ts +0 -25
  235. package/src/index.ts +0 -55
  236. package/src/payment/api/payment-api.ts +0 -185
  237. package/src/payment/index.ts +0 -64
  238. package/src/payment/models/index.ts +0 -29
  239. package/src/payment/services/payment-service.ts +0 -70
  240. package/src/pers-sdk.ts +0 -45
  241. package/src/redemption/api/redemption-api.ts +0 -241
  242. package/src/redemption/index.ts +0 -60
  243. package/src/redemption/models/index.ts +0 -17
  244. package/src/redemption/services/redemption-service.ts +0 -103
  245. package/src/shared/interfaces/pers-shared-lib.interfaces.ts +0 -99
  246. package/src/tenant/api/tenant-api.ts +0 -92
  247. package/src/tenant/index.ts +0 -61
  248. package/src/tenant/models/index.ts +0 -20
  249. package/src/tenant/services/tenant-service.ts +0 -78
  250. package/src/token/api/token-api.ts +0 -129
  251. package/src/token/base/base-token-service.ts +0 -167
  252. package/src/token/index.ts +0 -38
  253. package/src/token/models/index.ts +0 -30
  254. package/src/token/services/token-service.ts +0 -125
  255. package/src/token/token-sdk.ts +0 -231
  256. package/src/transaction/api/transaction-api.ts +0 -296
  257. package/src/transaction/index.ts +0 -65
  258. package/src/transaction/models/index.ts +0 -60
  259. package/src/transaction/services/transaction-service.ts +0 -104
  260. package/src/user/api/user-api.ts +0 -98
  261. package/src/user/index.ts +0 -62
  262. package/src/user/services/user-service.ts +0 -75
  263. package/src/user-status/api/user-status-api.ts +0 -78
  264. package/src/user-status/index.ts +0 -55
  265. package/src/user-status/services/user-status-service.ts +0 -51
  266. package/src/web3/api/web3-api.ts +0 -68
  267. package/src/web3/index.ts +0 -38
  268. package/src/web3/models/index.ts +0 -150
  269. package/src/web3/services/web3-service.ts +0 -338
  270. package/src/web3-chain/api/web3-chain-api.ts +0 -42
  271. package/src/web3-chain/index.ts +0 -27
  272. package/src/web3-chain/services/getWeb3FCD.service.ts +0 -47
  273. package/src/web3-chain/services/provider.service.ts +0 -123
  274. package/src/web3-chain/services/public-http-provider.service.ts +0 -26
  275. package/src/web3-chain/services/web3-chain-service.ts +0 -131
  276. package/tsconfig.json +0 -28
@@ -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.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":"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"}
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-service.d.ts","sourceRoot":"","sources":["../../../src/token/services/token-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAElF;;;;;;GAMG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAMtC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIpD;;OAEG;IACG,0BAA0B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIrD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIlD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIlD;;;OAGG;IACG,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQ3G;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1F;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3D;;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;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItG;;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;CAQtE"}