@explorins/pers-sdk 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) 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.d.ts +28 -0
  12. package/dist/analytics.js +72 -0
  13. package/dist/analytics.js.map +1 -0
  14. package/dist/auth-admin/api/auth-admin-api.d.ts +27 -0
  15. package/dist/auth-admin/api/auth-admin-api.d.ts.map +1 -0
  16. package/dist/auth-admin/index.d.ts +26 -0
  17. package/dist/auth-admin/index.d.ts.map +1 -0
  18. package/dist/auth-admin/services/auth-admin-service.d.ts +23 -0
  19. package/dist/auth-admin/services/auth-admin-service.d.ts.map +1 -0
  20. package/dist/auth-admin.cjs +96 -0
  21. package/dist/auth-admin.cjs.map +1 -0
  22. package/dist/auth-admin.d.ts +26 -0
  23. package/dist/auth-admin.js +92 -0
  24. package/dist/auth-admin.js.map +1 -0
  25. package/dist/business/api/business-api.d.ts +133 -0
  26. package/dist/business/api/business-api.d.ts.map +1 -0
  27. package/dist/business/index.d.ts +34 -0
  28. package/dist/business/index.d.ts.map +1 -0
  29. package/dist/business/models/index.d.ts +8 -0
  30. package/dist/business/models/index.d.ts.map +1 -0
  31. package/dist/business/services/business-service.d.ts +51 -0
  32. package/dist/business/services/business-service.d.ts.map +1 -0
  33. package/dist/business.cjs +303 -0
  34. package/dist/business.cjs.map +1 -0
  35. package/dist/business.d.ts +34 -0
  36. package/dist/business.js +299 -0
  37. package/dist/business.js.map +1 -0
  38. package/dist/campaign/api/campaign-api.d.ts +213 -0
  39. package/dist/campaign/api/campaign-api.d.ts.map +1 -0
  40. package/dist/campaign/index.d.ts +44 -0
  41. package/dist/campaign/index.d.ts.map +1 -0
  42. package/dist/campaign/services/campaign-service.d.ts +88 -0
  43. package/dist/campaign/services/campaign-service.d.ts.map +1 -0
  44. package/dist/campaign.cjs +506 -0
  45. package/dist/campaign.cjs.map +1 -0
  46. package/dist/campaign.d.ts +44 -0
  47. package/dist/campaign.js +502 -0
  48. package/dist/campaign.js.map +1 -0
  49. package/dist/core/abstractions/http-client.d.ts +22 -0
  50. package/dist/core/abstractions/http-client.d.ts.map +1 -0
  51. package/dist/core/auth/auth-provider.interface.d.ts +12 -0
  52. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -0
  53. package/dist/core/auth/create-auth-provider.d.ts +27 -0
  54. package/dist/core/auth/create-auth-provider.d.ts.map +1 -0
  55. package/dist/core/auth/simple-auth-config.interface.d.ts +15 -0
  56. package/dist/core/auth/simple-auth-config.interface.d.ts.map +1 -0
  57. package/dist/core/index.d.ts +13 -0
  58. package/dist/core/index.d.ts.map +1 -0
  59. package/dist/core/pers-api-client.d.ts +54 -0
  60. package/dist/core/pers-api-client.d.ts.map +1 -0
  61. package/dist/core/pers-config.d.ts +38 -0
  62. package/dist/core/pers-config.d.ts.map +1 -0
  63. package/dist/core/utils/jwt.function.d.ts +2 -0
  64. package/dist/core/utils/jwt.function.d.ts.map +1 -0
  65. package/dist/core.cjs +506 -0
  66. package/dist/core.cjs.map +1 -0
  67. package/dist/core.d.ts +13 -0
  68. package/dist/core.js +497 -0
  69. package/dist/core.js.map +1 -0
  70. package/dist/donation/api/donation-api.d.ts +18 -0
  71. package/dist/donation/api/donation-api.d.ts.map +1 -0
  72. package/dist/donation/index.d.ts +25 -0
  73. package/dist/donation/index.d.ts.map +1 -0
  74. package/{src/donation/models/index.ts → dist/donation/models/index.d.ts} +8 -11
  75. package/dist/donation/models/index.d.ts.map +1 -0
  76. package/dist/donation/services/donation-service.d.ts +19 -0
  77. package/dist/donation/services/donation-service.d.ts.map +1 -0
  78. package/dist/donation.cjs +78 -0
  79. package/dist/donation.cjs.map +1 -0
  80. package/dist/donation.d.ts +25 -0
  81. package/dist/donation.js +74 -0
  82. package/dist/donation.js.map +1 -0
  83. package/dist/index.cjs +4217 -0
  84. package/dist/index.cjs.map +1 -0
  85. package/dist/index.d.ts +21 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +4164 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/package.json +148 -0
  90. package/dist/payment/api/payment-api.d.ts +105 -0
  91. package/dist/payment/api/payment-api.d.ts.map +1 -0
  92. package/dist/payment/index.d.ts +36 -0
  93. package/dist/payment/index.d.ts.map +1 -0
  94. package/dist/payment/models/index.d.ts +12 -0
  95. package/dist/payment/models/index.d.ts.map +1 -0
  96. package/dist/payment/services/payment-service.d.ts +40 -0
  97. package/dist/payment/services/payment-service.d.ts.map +1 -0
  98. package/dist/payment.cjs +258 -0
  99. package/dist/payment.cjs.map +1 -0
  100. package/dist/payment.d.ts +36 -0
  101. package/dist/payment.js +254 -0
  102. package/dist/payment.js.map +1 -0
  103. package/dist/pers-sdk.d.ts +29 -0
  104. package/dist/pers-sdk.d.ts.map +1 -0
  105. package/dist/redemption/api/redemption-api.d.ts +147 -0
  106. package/dist/redemption/api/redemption-api.d.ts.map +1 -0
  107. package/dist/redemption/index.d.ts +35 -0
  108. package/dist/redemption/index.d.ts.map +1 -0
  109. package/dist/redemption/models/index.d.ts +8 -0
  110. package/dist/redemption/models/index.d.ts.map +1 -0
  111. package/dist/redemption/services/redemption-service.d.ts +56 -0
  112. package/dist/redemption/services/redemption-service.d.ts.map +1 -0
  113. package/dist/redemption.cjs +333 -0
  114. package/dist/redemption.cjs.map +1 -0
  115. package/dist/redemption.d.ts +35 -0
  116. package/dist/redemption.js +329 -0
  117. package/dist/redemption.js.map +1 -0
  118. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +18 -0
  119. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -0
  120. package/dist/tenant/api/tenant-api.d.ts +56 -0
  121. package/dist/tenant/api/tenant-api.d.ts.map +1 -0
  122. package/dist/tenant/index.d.ts +34 -0
  123. package/dist/tenant/index.d.ts.map +1 -0
  124. package/dist/tenant/models/index.d.ts +11 -0
  125. package/dist/tenant/models/index.d.ts.map +1 -0
  126. package/dist/tenant/services/tenant-service.d.ts +46 -0
  127. package/dist/tenant/services/tenant-service.d.ts.map +1 -0
  128. package/dist/tenant.cjs +177 -0
  129. package/dist/tenant.cjs.map +1 -0
  130. package/dist/tenant.d.ts +34 -0
  131. package/dist/tenant.js +173 -0
  132. package/dist/tenant.js.map +1 -0
  133. package/dist/token/api/token-api.d.ts +64 -0
  134. package/dist/token/api/token-api.d.ts.map +1 -0
  135. package/dist/token/base/base-token-service.d.ts +87 -0
  136. package/dist/token/base/base-token-service.d.ts.map +1 -0
  137. package/dist/token/index.d.ts +13 -0
  138. package/dist/token/index.d.ts.map +1 -0
  139. package/dist/token/models/index.d.ts +18 -0
  140. package/dist/token/models/index.d.ts.map +1 -0
  141. package/dist/token/services/token-service.d.ts +68 -0
  142. package/dist/token/services/token-service.d.ts.map +1 -0
  143. package/dist/token/token-sdk.d.ts +140 -0
  144. package/dist/token/token-sdk.d.ts.map +1 -0
  145. package/dist/token.cjs +537 -0
  146. package/dist/token.cjs.map +1 -0
  147. package/dist/token.d.ts +13 -0
  148. package/dist/token.js +532 -0
  149. package/dist/token.js.map +1 -0
  150. package/dist/transaction/api/transaction-api.d.ts +133 -0
  151. package/dist/transaction/api/transaction-api.d.ts.map +1 -0
  152. package/dist/transaction/index.d.ts +38 -0
  153. package/dist/transaction/index.d.ts.map +1 -0
  154. package/dist/transaction/models/index.d.ts +42 -0
  155. package/dist/transaction/models/index.d.ts.map +1 -0
  156. package/dist/transaction/services/transaction-service.d.ts +56 -0
  157. package/dist/transaction/services/transaction-service.d.ts.map +1 -0
  158. package/dist/transaction.cjs +394 -0
  159. package/dist/transaction.cjs.map +1 -0
  160. package/dist/transaction.d.ts +38 -0
  161. package/dist/transaction.js +390 -0
  162. package/dist/transaction.js.map +1 -0
  163. package/dist/user/api/user-api.d.ts +56 -0
  164. package/dist/user/api/user-api.d.ts.map +1 -0
  165. package/dist/user/index.d.ts +36 -0
  166. package/dist/user/index.d.ts.map +1 -0
  167. package/{src/user/models/index.ts → dist/user/models/index.d.ts} +12 -10
  168. package/dist/user/models/index.d.ts.map +1 -0
  169. package/dist/user/services/user-service.d.ts +46 -0
  170. package/dist/user/services/user-service.d.ts.map +1 -0
  171. package/dist/user-status/api/user-status-api.d.ts +37 -0
  172. package/dist/user-status/api/user-status-api.d.ts.map +1 -0
  173. package/dist/user-status/index.d.ts +28 -0
  174. package/dist/user-status/index.d.ts.map +1 -0
  175. package/{src/user-status/models/index.ts → dist/user-status/models/index.d.ts} +8 -11
  176. package/dist/user-status/models/index.d.ts.map +1 -0
  177. package/dist/user-status/services/user-status-service.d.ts +26 -0
  178. package/dist/user-status/services/user-status-service.d.ts.map +1 -0
  179. package/dist/user-status.cjs +147 -0
  180. package/dist/user-status.cjs.map +1 -0
  181. package/dist/user-status.d.ts +28 -0
  182. package/dist/user-status.js +143 -0
  183. package/dist/user-status.js.map +1 -0
  184. package/dist/user.cjs +188 -0
  185. package/dist/user.cjs.map +1 -0
  186. package/dist/user.d.ts +36 -0
  187. package/dist/user.js +184 -0
  188. package/dist/user.js.map +1 -0
  189. package/dist/web3/api/web3-api.d.ts +27 -0
  190. package/dist/web3/api/web3-api.d.ts.map +1 -0
  191. package/dist/web3/index.d.ts +16 -0
  192. package/dist/web3/index.d.ts.map +1 -0
  193. package/dist/web3/models/index.d.ts +92 -0
  194. package/dist/web3/models/index.d.ts.map +1 -0
  195. package/dist/web3/services/web3-service.d.ts +21 -0
  196. package/dist/web3/services/web3-service.d.ts.map +1 -0
  197. package/dist/web3-chain/api/web3-chain-api.d.ts +19 -0
  198. package/dist/web3-chain/api/web3-chain-api.d.ts.map +1 -0
  199. package/dist/web3-chain/index.d.ts +17 -0
  200. package/dist/web3-chain/index.d.ts.map +1 -0
  201. package/{src/web3-chain/models/index.ts → dist/web3-chain/models/index.d.ts} +38 -45
  202. package/dist/web3-chain/models/index.d.ts.map +1 -0
  203. package/dist/web3-chain/services/getWeb3FCD.service.d.ts +8 -0
  204. package/dist/web3-chain/services/getWeb3FCD.service.d.ts.map +1 -0
  205. package/dist/web3-chain/services/provider.service.d.ts +15 -0
  206. package/dist/web3-chain/services/provider.service.d.ts.map +1 -0
  207. package/dist/web3-chain/services/public-http-provider.service.d.ts +8 -0
  208. package/dist/web3-chain/services/public-http-provider.service.d.ts.map +1 -0
  209. package/dist/web3-chain/services/web3-chain-service.d.ts +17 -0
  210. package/dist/web3-chain/services/web3-chain-service.d.ts.map +1 -0
  211. package/dist/web3-chain.cjs +316 -0
  212. package/dist/web3-chain.cjs.map +1 -0
  213. package/dist/web3-chain.d.ts +17 -0
  214. package/dist/web3-chain.js +310 -0
  215. package/dist/web3-chain.js.map +1 -0
  216. package/dist/web3.cjs +516 -0
  217. package/dist/web3.cjs.map +1 -0
  218. package/dist/web3.d.ts +16 -0
  219. package/dist/web3.js +513 -0
  220. package/dist/web3.js.map +1 -0
  221. package/package.json +70 -67
  222. package/config/domains.js +0 -22
  223. package/explorins-pers-sdk-1.0.0-alpha.1.tgz +0 -0
  224. package/rollup.config.js +0 -74
  225. package/scripts/copy-declarations.js +0 -147
  226. package/src/analytics/api/analytics-api.ts +0 -24
  227. package/src/analytics/models/index.ts +0 -74
  228. package/src/analytics/services/analytics-service.ts +0 -28
  229. package/src/auth-admin/api/auth-admin-api.ts +0 -42
  230. package/src/auth-admin/index.ts +0 -47
  231. package/src/auth-admin/services/auth-admin-service.ts +0 -36
  232. package/src/business/api/business-api.ts +0 -234
  233. package/src/business/index.ts +0 -53
  234. package/src/business/models/index.ts +0 -13
  235. package/src/business/services/business-service.ts +0 -88
  236. package/src/campaign/api/campaign-api.ts +0 -376
  237. package/src/campaign/index.ts +0 -67
  238. package/src/campaign/services/campaign-service.ts +0 -164
  239. package/src/core/abstractions/http-client.ts +0 -24
  240. package/src/core/auth/auth-provider.interface.ts +0 -16
  241. package/src/core/auth/create-auth-provider.ts +0 -136
  242. package/src/core/auth/simple-auth-config.interface.ts +0 -15
  243. package/src/core/index.ts +0 -33
  244. package/src/core/pers-api-client.ts +0 -343
  245. package/src/core/pers-config.ts +0 -65
  246. package/src/core/utils/jwt.function.ts +0 -24
  247. package/src/donation/api/donation-api.ts +0 -24
  248. package/src/donation/index.ts +0 -47
  249. package/src/donation/services/donation-service.ts +0 -25
  250. package/src/index.ts +0 -55
  251. package/src/payment/api/payment-api.ts +0 -185
  252. package/src/payment/index.ts +0 -64
  253. package/src/payment/models/index.ts +0 -29
  254. package/src/payment/services/payment-service.ts +0 -70
  255. package/src/pers-sdk.ts +0 -45
  256. package/src/redemption/api/redemption-api.ts +0 -241
  257. package/src/redemption/index.ts +0 -60
  258. package/src/redemption/models/index.ts +0 -17
  259. package/src/redemption/services/redemption-service.ts +0 -103
  260. package/src/shared/interfaces/pers-shared-lib.interfaces.ts +0 -99
  261. package/src/tenant/api/tenant-api.ts +0 -92
  262. package/src/tenant/index.ts +0 -61
  263. package/src/tenant/models/index.ts +0 -20
  264. package/src/tenant/services/tenant-service.ts +0 -78
  265. package/src/token/api/token-api.ts +0 -129
  266. package/src/token/base/base-token-service.ts +0 -167
  267. package/src/token/index.ts +0 -38
  268. package/src/token/models/index.ts +0 -30
  269. package/src/token/services/token-service.ts +0 -125
  270. package/src/token/token-sdk.ts +0 -231
  271. package/src/transaction/api/transaction-api.ts +0 -296
  272. package/src/transaction/index.ts +0 -65
  273. package/src/transaction/models/index.ts +0 -60
  274. package/src/transaction/services/transaction-service.ts +0 -104
  275. package/src/user/api/user-api.ts +0 -98
  276. package/src/user/index.ts +0 -62
  277. package/src/user/services/user-service.ts +0 -75
  278. package/src/user-status/api/user-status-api.ts +0 -78
  279. package/src/user-status/index.ts +0 -55
  280. package/src/user-status/services/user-status-service.ts +0 -51
  281. package/src/web3/api/web3-api.ts +0 -68
  282. package/src/web3/index.ts +0 -38
  283. package/src/web3/models/index.ts +0 -150
  284. package/src/web3/services/web3-service.ts +0 -338
  285. package/src/web3-chain/api/web3-chain-api.ts +0 -42
  286. package/src/web3-chain/index.ts +0 -27
  287. package/src/web3-chain/services/getWeb3FCD.service.ts +0 -47
  288. package/src/web3-chain/services/provider.service.ts +0 -123
  289. package/src/web3-chain/services/public-http-provider.service.ts +0 -26
  290. package/src/web3-chain/services/web3-chain-service.ts +0 -131
  291. package/tsconfig.json +0 -28
@@ -0,0 +1,502 @@
1
+ /**
2
+ * Platform-Agnostic Campaign API Client (NEW - RESTful Design)
3
+ *
4
+ * Updated to use the new microservice-ready campaign controllers:
5
+ * - CampaignsController: Core campaign operations
6
+ * - CampaignTagsController: Tag management
7
+ * - CampaignTokensController: Token unit operations
8
+ * - CampaignTriggersController: Trigger system
9
+ * - CampaignEngagementsController: Business relationships
10
+ * - CampaignClaimsController: Claims processing
11
+ *
12
+ * Uses @explorins/pers-shared DTOs for consistency with backend.
13
+ * All endpoints updated to new RESTful patterns without role revelation.
14
+ */
15
+ class CampaignApi {
16
+ constructor(apiClient) {
17
+ this.apiClient = apiClient;
18
+ }
19
+ // ==========================================
20
+ // CORE CAMPAIGN OPERATIONS (/campaigns)
21
+ // ==========================================
22
+ /**
23
+ * PUBLIC: Get all active campaigns
24
+ * NEW: /campaigns (intelligent access detection)
25
+ */
26
+ async getActiveCampaigns() {
27
+ return this.apiClient.get('/campaigns');
28
+ }
29
+ /**
30
+ * ADMIN: Get campaigns with filtering options
31
+ * NEW: /campaigns with query parameters (admin access detected automatically)
32
+ */
33
+ async getCampaigns(options) {
34
+ let url = '/campaigns';
35
+ const params = [];
36
+ if (options) {
37
+ if (options.active !== undefined)
38
+ params.push(`active=${options.active}`);
39
+ if (options.tag)
40
+ params.push(`tag=${encodeURIComponent(options.tag)}`);
41
+ if (options.limit)
42
+ params.push(`limit=${options.limit}`);
43
+ if (options.offset)
44
+ params.push(`offset=${options.offset}`);
45
+ if (options.sort)
46
+ params.push(`sort=${options.sort}`);
47
+ if (options.order)
48
+ params.push(`order=${options.order}`);
49
+ }
50
+ if (params.length > 0) {
51
+ url += `?${params.join('&')}`;
52
+ }
53
+ return this.apiClient.get(url);
54
+ }
55
+ /**
56
+ * PUBLIC: Get campaign by ID
57
+ * NEW: /campaigns/{id}
58
+ */
59
+ async getCampaignById(id) {
60
+ return this.apiClient.get(`/campaigns/${id}`);
61
+ }
62
+ /**
63
+ * ADMIN: Create campaign
64
+ * NEW: POST /campaigns
65
+ */
66
+ async createCampaign(campaign) {
67
+ return this.apiClient.post('/campaigns', campaign);
68
+ }
69
+ /**
70
+ * ADMIN: Update campaign
71
+ * NEW: PUT /campaigns/{id}
72
+ */
73
+ async updateCampaign(campaignId, campaign) {
74
+ return this.apiClient.put(`/campaigns/${campaignId}`, campaign);
75
+ }
76
+ /**
77
+ * ADMIN: Toggle campaign active status
78
+ * NEW: PUT /campaigns/{id}/status
79
+ */
80
+ async toggleCampaignActive(campaignId) {
81
+ return this.apiClient.put(`/campaigns/${campaignId}/status`, {});
82
+ }
83
+ /**
84
+ * ADMIN: Toggle campaign testnet environment
85
+ * NEW: PUT /campaigns/{id}/environment
86
+ */
87
+ async toggleCampaignTestnet(campaignId) {
88
+ return this.apiClient.put(`/campaigns/${campaignId}/environment`, {});
89
+ }
90
+ /**
91
+ * ADMIN: Delete campaign
92
+ * NEW: DELETE /campaigns/{id}
93
+ */
94
+ async deleteCampaign(campaignId) {
95
+ return this.apiClient.delete(`/campaigns/${campaignId}`);
96
+ }
97
+ // ==========================================
98
+ // TAG MANAGEMENT (/campaign-tags)
99
+ // ==========================================
100
+ /**
101
+ * ADMIN: Get all unique campaign tags
102
+ * NEW: GET /campaign-tags
103
+ */
104
+ async getAllUniqueTags() {
105
+ return this.apiClient.get('/campaign-tags');
106
+ }
107
+ /**
108
+ * ADMIN: Update campaign tags (replace all)
109
+ * NEW: PUT /campaign-tags/{id}
110
+ */
111
+ async updateCampaignTags(campaignId, tags) {
112
+ return this.apiClient.put(`/campaign-tags/${campaignId}`, { tags });
113
+ }
114
+ /**
115
+ * ADMIN: Add tags to campaign
116
+ * NEW: POST /campaign-tags/{id}
117
+ */
118
+ async addTagsToCampaign(campaignId, tags) {
119
+ return this.apiClient.post(`/campaign-tags/${campaignId}`, { tags });
120
+ }
121
+ /**
122
+ * ADMIN: Remove tag from campaign
123
+ * NEW: DELETE /campaign-tags/{id}/{tag}
124
+ */
125
+ async removeTagFromCampaign(campaignId, tag) {
126
+ return this.apiClient.delete(`/campaign-tags/${campaignId}/${encodeURIComponent(tag)}`);
127
+ }
128
+ // ==========================================
129
+ // TOKEN MANAGEMENT (/campaign-tokens)
130
+ // ==========================================
131
+ /**
132
+ * ADMIN: Create campaign token unit
133
+ * NEW: POST /campaign-tokens/{id}
134
+ */
135
+ async createCampaignTokenUnit(campaignId, campaignTokenUnit) {
136
+ return this.apiClient.post(`/campaign-tokens/${campaignId}`, campaignTokenUnit);
137
+ }
138
+ /**
139
+ * ADMIN: Update campaign token unit
140
+ * NEW: PUT /campaign-tokens/{id}/{tokenUnitId}
141
+ */
142
+ async updateCampaignTokenUnit(campaignId, tokenUnitId, campaignTokenUnit) {
143
+ return this.apiClient.put(`/campaign-tokens/${campaignId}/${tokenUnitId}`, campaignTokenUnit);
144
+ }
145
+ /**
146
+ * ADMIN: Delete campaign token unit
147
+ * NEW: DELETE /campaign-tokens/{id}/{tokenUnitId}
148
+ */
149
+ async deleteCampaignTokenUnit(campaignId, campaignTokenUnitId) {
150
+ return this.apiClient.delete(`/campaign-tokens/${campaignId}/${campaignTokenUnitId}`);
151
+ }
152
+ // ==========================================
153
+ // TRIGGER SYSTEM (/campaign-triggers)
154
+ // ==========================================
155
+ /**
156
+ * PUBLIC: Get campaign triggers catalog
157
+ * NEW: GET /campaign-triggers
158
+ */
159
+ async getCampaignTriggers() {
160
+ return this.apiClient.get('/campaign-triggers');
161
+ }
162
+ /**
163
+ * ADMIN: Create campaign trigger
164
+ * NEW: POST /campaign-triggers
165
+ */
166
+ async createCampaignTrigger(trigger) {
167
+ return this.apiClient.post('/campaign-triggers', trigger);
168
+ }
169
+ /**
170
+ * ADMIN: Update campaign trigger
171
+ * NEW: PUT /campaign-triggers/{id}
172
+ */
173
+ async updateCampaignTrigger(triggerId, trigger) {
174
+ return this.apiClient.put(`/campaign-triggers/${triggerId}`, trigger);
175
+ }
176
+ /**
177
+ * ADMIN: Delete campaign trigger
178
+ * NEW: DELETE /campaign-triggers/{id}
179
+ */
180
+ async deleteCampaignTrigger(triggerId) {
181
+ return this.apiClient.delete(`/campaign-triggers/${triggerId}`);
182
+ }
183
+ /**
184
+ * ADMIN: Set campaign trigger
185
+ * NEW: PUT /campaign-triggers/campaigns/{id}/trigger/{triggerId}
186
+ */
187
+ async setCampaignTrigger(campaignId, triggerId) {
188
+ return this.apiClient.put(`/campaign-triggers/campaigns/${campaignId}/trigger/${triggerId}`, {});
189
+ }
190
+ /**
191
+ * ADMIN: Create trigger condition
192
+ * NEW: POST /campaign-triggers/conditions
193
+ */
194
+ async createTriggerCondition(condition) {
195
+ return this.apiClient.post('/campaign-triggers/conditions', condition);
196
+ }
197
+ /**
198
+ * ADMIN: Update trigger condition
199
+ * NEW: PUT /campaign-triggers/conditions/{id}
200
+ */
201
+ async updateTriggerCondition(conditionId, condition) {
202
+ return this.apiClient.put(`/campaign-triggers/conditions/${conditionId}`, condition);
203
+ }
204
+ /**
205
+ * ADMIN: Add/Remove condition to trigger
206
+ * NEW: PUT /campaign-triggers/{triggerId}/condition/{conditionId}
207
+ */
208
+ async addOrRemoveConditionToTrigger(triggerId, conditionId) {
209
+ return this.apiClient.put(`/campaign-triggers/${triggerId}/condition/${conditionId}`, {});
210
+ }
211
+ // ==========================================
212
+ // BUSINESS ENGAGEMENTS (/campaign-engagements)
213
+ // ==========================================
214
+ /**
215
+ * ADMIN: Add business engagement to campaign
216
+ * NEW: POST /campaign-engagements/{id}
217
+ */
218
+ async addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement) {
219
+ return this.apiClient.post(`/campaign-engagements/${campaignId}`, campaignBusinessEngagement);
220
+ }
221
+ /**
222
+ * ADMIN: Update campaign business engagement
223
+ * NEW: PUT /campaign-engagements/{id}/{businessEngagementId}
224
+ */
225
+ async updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement) {
226
+ return this.apiClient.put(`/campaign-engagements/${campaignId}/${businessEngagementId}`, campaignBusinessEngagement);
227
+ }
228
+ /**
229
+ * ADMIN: Delete campaign business engagement
230
+ * NEW: DELETE /campaign-engagements/{id}/{businessEngagementId}
231
+ */
232
+ async deleteCampaignBusinessEngagement(campaignId, businessEngagementId) {
233
+ return this.apiClient.delete(`/campaign-engagements/${campaignId}/${businessEngagementId}`);
234
+ }
235
+ // ==========================================
236
+ // CLAIMS PROCESSING (/campaign-claims)
237
+ // ==========================================
238
+ /**
239
+ * USER: Claim campaign reward
240
+ * NEW: POST /campaign-claims/user
241
+ */
242
+ async claimCampaign(request) {
243
+ return this.apiClient.post('/campaign-claims/user', request);
244
+ }
245
+ /**
246
+ * USER: Get claims for logged user
247
+ * NEW: GET /campaign-claims/users/me
248
+ */
249
+ async getClaimsForLoggedUser() {
250
+ return this.apiClient.get('/campaign-claims/users/me');
251
+ }
252
+ /**
253
+ * BUSINESS: Claim campaign reward for customer
254
+ * NEW: POST /campaign-claims/business
255
+ */
256
+ async businessClaimCampaign(request) {
257
+ return this.apiClient.post('/campaign-claims/business', request);
258
+ }
259
+ /**
260
+ * SYSTEM: Process automated claim
261
+ * NEW: POST /campaign-claims/system
262
+ */
263
+ async systemClaimCampaign(request) {
264
+ return this.apiClient.post('/campaign-claims/system', request);
265
+ }
266
+ /**
267
+ * ADMIN: Manual claim processing
268
+ * NEW: POST /campaign-claims/admin
269
+ */
270
+ async adminClaimCampaign(request) {
271
+ return this.apiClient.post('/campaign-claims/admin', request);
272
+ }
273
+ /**
274
+ * ADMIN: Get all campaign claims
275
+ * NEW: GET /campaign-claims/admin
276
+ */
277
+ async getCampaignClaims() {
278
+ return this.apiClient.get('/campaign-claims/admin');
279
+ }
280
+ /**
281
+ * ADMIN: Get campaign claims by campaign ID
282
+ * NEW: GET /campaign-claims/admin/{campaignId}
283
+ */
284
+ async getCampaignClaimsByCampaignId(campaignId) {
285
+ return this.apiClient.get(`/campaign-claims/admin/${campaignId}`);
286
+ }
287
+ /**
288
+ * ADMIN: Get campaign claims by user ID
289
+ * NEW: GET /campaign-claims/admin/users/{userId}
290
+ */
291
+ async getCampaignClaimsByUserId(userId) {
292
+ return this.apiClient.get(`/campaign-claims/admin/users/${userId}`);
293
+ }
294
+ /**
295
+ * ADMIN: Get campaign claims by business ID
296
+ * NEW: GET /campaign-claims/admin/businesses/{businessId}
297
+ */
298
+ async getCampaignClaimsByBusinessId(businessId) {
299
+ return this.apiClient.get(`/campaign-claims/admin/businesses/${businessId}`);
300
+ }
301
+ /**
302
+ * USER: Get user's claims for specific campaign
303
+ * NEW: GET /campaign-claims/campaigns/{campaignId}/users/me
304
+ */
305
+ async getUserClaimsForCampaign(campaignId) {
306
+ return this.apiClient.get(`/campaign-claims/campaigns/${campaignId}/users/me`);
307
+ }
308
+ // ==========================================
309
+ // BACKWARD COMPATIBILITY (DEPRECATED)
310
+ // ==========================================
311
+ /**
312
+ * @deprecated Use getCampaigns() instead
313
+ * LEGACY: Get campaigns with active filter
314
+ */
315
+ async getCampaignsLegacy(active) {
316
+ console.warn('CampaignApi.getCampaignsLegacy() is deprecated. Use getCampaigns() instead.');
317
+ return this.getCampaigns(active !== undefined ? { active } : undefined);
318
+ }
319
+ }
320
+
321
+ /**
322
+ * Platform-Agnostic Campaign Service
323
+ *
324
+ * Contains campaign business logic and operations that work across platforms.
325
+ * No framework dependencies - pure TypeScript business logic.
326
+ *
327
+ * Focuses only on actual backend capabilities.
328
+ */
329
+ class CampaignService {
330
+ constructor(campaignApi) {
331
+ this.campaignApi = campaignApi;
332
+ }
333
+ // ==========================================
334
+ // PUBLIC OPERATIONS
335
+ // ==========================================
336
+ /**
337
+ * PUBLIC: Get all active campaigns
338
+ */
339
+ async getActiveCampaigns() {
340
+ return this.campaignApi.getActiveCampaigns();
341
+ }
342
+ /**
343
+ * PUBLIC: Get campaign by ID
344
+ */
345
+ async getCampaignById(id) {
346
+ return this.campaignApi.getCampaignById(id);
347
+ }
348
+ // ==========================================
349
+ // AUTHENTICATED OPERATIONS
350
+ // ==========================================
351
+ /**
352
+ * AUTH: Claim campaign
353
+ */
354
+ async claimCampaign(request) {
355
+ return this.campaignApi.claimCampaign(request);
356
+ }
357
+ /**
358
+ * AUTH: Get claims for logged user
359
+ */
360
+ async getClaimsForLoggedUser() {
361
+ return this.campaignApi.getClaimsForLoggedUser();
362
+ }
363
+ // ==========================================
364
+ // ADMIN OPERATIONS
365
+ // ==========================================
366
+ /**
367
+ * ADMIN: Get campaigns with optional active filter
368
+ */
369
+ async getCampaigns(active) {
370
+ return this.campaignApi.getCampaigns(active !== undefined ? { active } : undefined);
371
+ }
372
+ /**
373
+ * ADMIN: Get campaign triggers
374
+ */
375
+ async getCampaignTriggers() {
376
+ return this.campaignApi.getCampaignTriggers();
377
+ }
378
+ /**
379
+ * ADMIN: Toggle campaign active status
380
+ */
381
+ async toggleCampaignActive(campaignId) {
382
+ return this.campaignApi.toggleCampaignActive(campaignId);
383
+ }
384
+ /**
385
+ * ADMIN: Toggle campaign testnet environment
386
+ */
387
+ async toggleCampaignTestnet(campaignId) {
388
+ return this.campaignApi.toggleCampaignTestnet(campaignId);
389
+ }
390
+ /**
391
+ * ADMIN: Create campaign
392
+ */
393
+ async createCampaign(campaign) {
394
+ return this.campaignApi.createCampaign(campaign);
395
+ }
396
+ /**
397
+ * ADMIN: Set campaign trigger
398
+ */
399
+ async setCampaignTrigger(campaignId, triggerId) {
400
+ return this.campaignApi.setCampaignTrigger(campaignId, triggerId);
401
+ }
402
+ /**
403
+ * ADMIN: Update campaign
404
+ */
405
+ async updateCampaign(campaignId, campaign) {
406
+ return this.campaignApi.updateCampaign(campaignId, campaign);
407
+ }
408
+ /**
409
+ * ADMIN: Create campaign token unit
410
+ */
411
+ async createCampaignTokenUnit(campaignId, campaignTokenUnit) {
412
+ return this.campaignApi.createCampaignTokenUnit(campaignId, campaignTokenUnit);
413
+ }
414
+ /**
415
+ * ADMIN: Delete campaign token unit
416
+ */
417
+ async deleteCampaignTokenUnit(campaignId, campaignTokenUnitId) {
418
+ return this.campaignApi.deleteCampaignTokenUnit(campaignId, campaignTokenUnitId);
419
+ }
420
+ /**
421
+ * ADMIN: Add business engagement to campaign
422
+ */
423
+ async addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement) {
424
+ return this.campaignApi.addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement);
425
+ }
426
+ /**
427
+ * ADMIN: Update campaign business engagement
428
+ */
429
+ async updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement) {
430
+ return this.campaignApi.updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement);
431
+ }
432
+ async deleteCampaignBusinessEngagement(campaignId, businessEngagementId) {
433
+ return this.campaignApi.deleteCampaignBusinessEngagement(campaignId, businessEngagementId);
434
+ }
435
+ /**
436
+ * ADMIN: Get all campaign claims
437
+ */
438
+ async getCampaignClaims() {
439
+ return this.campaignApi.getCampaignClaims();
440
+ }
441
+ /**
442
+ * ADMIN: Get campaign claims by user ID
443
+ */
444
+ async getCampaignClaimsByUserId(userId) {
445
+ return this.campaignApi.getCampaignClaimsByUserId(userId);
446
+ }
447
+ /**
448
+ * ADMIN: Get campaign claims by business ID
449
+ */
450
+ async getCampaignClaimsByBusinessId(businessId) {
451
+ return this.campaignApi.getCampaignClaimsByBusinessId(businessId);
452
+ }
453
+ }
454
+
455
+ /**
456
+ * @explorins/pers-sdk-campaign
457
+ *
458
+ * Platform-agnostic Campaign Domain SDK for PERS ecosystem
459
+ * Handles campaign operations across different authorization levels
460
+ */
461
+ // API Layer
462
+ /**
463
+ * Create a complete Campaign SDK instance
464
+ *
465
+ * @param apiClient - Configured PERS API client
466
+ * @returns Campaign SDK with flattened structure for better DX
467
+ */
468
+ function createCampaignSDK(apiClient) {
469
+ const campaignApi = new CampaignApi(apiClient);
470
+ const campaignService = new CampaignService(campaignApi);
471
+ return {
472
+ // Direct access to service methods (primary interface)
473
+ // Public methods
474
+ getActiveCampaigns: () => campaignService.getActiveCampaigns(),
475
+ getCampaignById: (id) => campaignService.getCampaignById(id),
476
+ // Auth methods
477
+ claimCampaign: (request) => campaignService.claimCampaign(request),
478
+ getClaimsForLoggedUser: () => campaignService.getClaimsForLoggedUser(),
479
+ // Admin methods
480
+ getCampaigns: (active) => campaignService.getCampaigns(active),
481
+ getCampaignTriggers: () => campaignService.getCampaignTriggers(),
482
+ toggleCampaignActive: (campaignId) => campaignService.toggleCampaignActive(campaignId),
483
+ toggleCampaignTestnet: (campaignId) => campaignService.toggleCampaignTestnet(campaignId),
484
+ createCampaign: (campaign) => campaignService.createCampaign(campaign),
485
+ setCampaignTrigger: (campaignId, triggerId) => campaignService.setCampaignTrigger(campaignId, triggerId),
486
+ updateCampaign: (campaignId, campaign) => campaignService.updateCampaign(campaignId, campaign),
487
+ createCampaignTokenUnit: (campaignId, campaignTokenUnit) => campaignService.createCampaignTokenUnit(campaignId, campaignTokenUnit),
488
+ deleteCampaignTokenUnit: (campaignId, campaignTokenUnitId) => campaignService.deleteCampaignTokenUnit(campaignId, campaignTokenUnitId),
489
+ addBusinessEngagementToCampaign: (campaignId, campaignBusinessEngagement) => campaignService.addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement),
490
+ updateCampaignBusinessEngagement: (campaignId, businessEngagementId, campaignBusinessEngagement) => campaignService.updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement),
491
+ deleteCampaignBusinessEngagement: (campaignId, businessEngagementId) => campaignService.deleteCampaignBusinessEngagement(campaignId, businessEngagementId),
492
+ getCampaignClaims: () => campaignService.getCampaignClaims(),
493
+ getCampaignClaimsByUserId: (userId) => campaignService.getCampaignClaimsByUserId(userId),
494
+ getCampaignClaimsByBusinessId: (businessId) => campaignService.getCampaignClaimsByBusinessId(businessId),
495
+ // Advanced access for edge cases
496
+ api: campaignApi,
497
+ service: campaignService
498
+ };
499
+ }
500
+
501
+ export { CampaignApi, CampaignService, createCampaignSDK };
502
+ //# sourceMappingURL=campaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.js","sources":["../../src/campaign/api/campaign-api.ts","../../src/campaign/services/campaign-service.ts","../../src/campaign/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Platform-agnostic HTTP client interface
3
+ * To be implemented by platform-specific adapters (Angular, React Native, etc.)
4
+ */
5
+ export interface HttpClient {
6
+ get<T>(url: string, options?: RequestOptions): Promise<T>;
7
+ post<T>(url: string, body: any, options?: RequestOptions): Promise<T>;
8
+ put<T>(url: string, body: any, options?: RequestOptions): Promise<T>;
9
+ delete<T>(url: string, options?: RequestOptions): Promise<T>;
10
+ }
11
+ export interface RequestOptions {
12
+ headers?: Record<string, string>;
13
+ params?: Record<string, string>;
14
+ timeout?: number;
15
+ responseType?: 'json' | 'blob' | 'text' | 'arraybuffer';
16
+ }
17
+ export interface HttpResponse<T> {
18
+ data: T;
19
+ status: number;
20
+ headers: Record<string, string>;
21
+ }
22
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/core/abstractions/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;CACzD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC"}
@@ -0,0 +1,12 @@
1
+ export interface PersAuthProvider {
2
+ getToken(): Promise<string | null>;
3
+ getProjectKey(): Promise<string | null>;
4
+ authType: 'admin' | 'user' | 'firebase';
5
+ onTokenExpired?: () => Promise<void>;
6
+ }
7
+ export interface PersRequestOptions {
8
+ headers?: Record<string, string>;
9
+ }
10
+ export * from './simple-auth-config.interface';
11
+ export * from './create-auth-provider';
12
+ //# sourceMappingURL=auth-provider.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.interface.d.ts","sourceRoot":"","sources":["../../../src/core/auth/auth-provider.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAGD,cAAc,gCAAgC,CAAC;AAG/C,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { PersAuthProvider } from './auth-provider.interface';
2
+ import { SimpleAuthConfig } from './simple-auth-config.interface';
3
+ /**
4
+ * Creates a platform-agnostic AuthProvider from simple configuration
5
+ *
6
+ * This factory function is completely platform-agnostic and can be used
7
+ * across Angular, React, Vue, Node.js, or any other JavaScript environment.
8
+ *
9
+ * Features:
10
+ * - Token caching with refresh support
11
+ * - Automatic token refresh on expiration
12
+ * - Configurable token providers
13
+ * - Platform-independent (no localStorage assumptions)
14
+ *
15
+ * @param config - Simple auth configuration
16
+ * @returns AuthProvider implementation
17
+ */
18
+ export declare function createAuthProvider(config: SimpleAuthConfig): PersAuthProvider;
19
+ /**
20
+ * Platform-specific localStorage token provider for browsers
21
+ * This is a convenience function for browser environments
22
+ */
23
+ /**
24
+ * Platform-specific environment variable token provider for Node.js
25
+ * This is a convenience function for Node.js environments
26
+ */
27
+ //# sourceMappingURL=create-auth-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-auth-provider.d.ts","sourceRoot":"","sources":["../../../src/core/auth/create-auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CA2F7E;AAED;;;GAGG;AAUH;;;GAGG"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Simple Auth Configuration Interface - Dev-Friendly Alternative
3
+ *
4
+ * Instead of implementing AuthProvider, developers can use this simple config
5
+ * which will be automatically converted to a full AuthProvider implementation.
6
+ */
7
+ export interface SimpleAuthConfig {
8
+ authType?: 'admin' | 'user' | 'firebase';
9
+ token?: string;
10
+ tokenProvider?: () => Promise<string | null>;
11
+ projectKey?: string;
12
+ onTokenExpired?: () => Promise<void>;
13
+ onTokenRefreshed?: (newToken: string) => void;
14
+ }
15
+ //# sourceMappingURL=simple-auth-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-auth-config.interface.d.ts","sourceRoot":"","sources":["../../../src/core/auth/simple-auth-config.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @explorins/pers-sdk/core - Core SDK Entry Point
3
+ *
4
+ * Platform-agnostic PERS API client and core functionality
5
+ */
6
+ export * from './pers-api-client';
7
+ export * from './pers-config';
8
+ export type { PersEnvironment, PersApiVersion } from './pers-config';
9
+ export { PersAuthProvider, SimpleAuthConfig, createAuthProvider, } from './auth/auth-provider.interface';
10
+ export type { PersRequestOptions as AuthRequestOptions } from './auth/auth-provider.interface';
11
+ export * from './abstractions/http-client';
12
+ export { PersSDK, createPersSDK } from '../pers-sdk';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,gCAAgC,CAAC;AAKxC,YAAY,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAG/F,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}