celitech-sdk 1.1.71 → 1.1.73

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 (289) hide show
  1. package/.github/workflows/publish_npmjs.yml +1 -0
  2. package/.manifest.json +12 -12
  3. package/README.md +2 -2
  4. package/dist/http/client.d.ts +14 -0
  5. package/dist/http/client.d.ts.map +1 -0
  6. package/dist/http/client.js +36 -0
  7. package/dist/http/client.js.map +1 -0
  8. package/dist/http/environment.d.ts +4 -0
  9. package/dist/http/environment.d.ts.map +1 -0
  10. package/dist/http/environment.js +8 -0
  11. package/dist/http/environment.js.map +1 -0
  12. package/dist/http/error.d.ts +7 -0
  13. package/dist/http/error.d.ts.map +1 -0
  14. package/dist/http/error.js +12 -0
  15. package/dist/http/error.js.map +1 -0
  16. package/dist/http/handlers/handler-chain.d.ts +8 -0
  17. package/dist/http/handlers/handler-chain.d.ts.map +1 -0
  18. package/dist/http/handlers/handler-chain.js +34 -0
  19. package/dist/http/handlers/handler-chain.js.map +1 -0
  20. package/dist/http/handlers/hook-handler.d.ts +12 -0
  21. package/dist/http/handlers/hook-handler.d.ts.map +1 -0
  22. package/dist/http/handlers/hook-handler.js +49 -0
  23. package/dist/http/handlers/hook-handler.js.map +1 -0
  24. package/dist/http/handlers/request-validation-handler.d.ts +9 -0
  25. package/dist/http/handlers/request-validation-handler.d.ts.map +1 -0
  26. package/dist/http/handlers/request-validation-handler.js +78 -0
  27. package/dist/http/handlers/request-validation-handler.js.map +1 -0
  28. package/dist/http/handlers/response-validation-handler.d.ts +11 -0
  29. package/dist/http/handlers/response-validation-handler.d.ts.map +1 -0
  30. package/dist/http/handlers/response-validation-handler.js +89 -0
  31. package/dist/http/handlers/response-validation-handler.js.map +1 -0
  32. package/dist/http/handlers/retry-handler.d.ts +9 -0
  33. package/dist/http/handlers/retry-handler.d.ts.map +1 -0
  34. package/dist/http/handlers/retry-handler.js +47 -0
  35. package/dist/http/handlers/retry-handler.js.map +1 -0
  36. package/dist/http/handlers/terminating-handler.d.ts +8 -0
  37. package/dist/http/handlers/terminating-handler.d.ts.map +1 -0
  38. package/dist/http/handlers/terminating-handler.js +45 -0
  39. package/dist/http/handlers/terminating-handler.js.map +1 -0
  40. package/dist/http/hooks/custom-hook.d.ts +9 -0
  41. package/dist/http/hooks/custom-hook.d.ts.map +1 -0
  42. package/dist/http/hooks/custom-hook.js +84 -0
  43. package/dist/http/hooks/custom-hook.js.map +1 -0
  44. package/dist/http/hooks/hook.d.ts +31 -0
  45. package/dist/http/hooks/hook.d.ts.map +1 -0
  46. package/dist/http/hooks/hook.js +3 -0
  47. package/dist/http/hooks/hook.js.map +1 -0
  48. package/dist/http/index.d.ts +5 -0
  49. package/dist/http/index.d.ts.map +1 -0
  50. package/dist/http/index.js +21 -0
  51. package/dist/http/index.js.map +1 -0
  52. package/dist/http/serializer.d.ts +13 -0
  53. package/dist/http/serializer.d.ts.map +1 -0
  54. package/dist/http/serializer.js +150 -0
  55. package/dist/http/serializer.js.map +1 -0
  56. package/dist/http/transport/request-builder.d.ts +24 -0
  57. package/dist/http/transport/request-builder.d.ts.map +1 -0
  58. package/dist/http/transport/request-builder.js +130 -0
  59. package/dist/http/transport/request-builder.js.map +1 -0
  60. package/dist/http/transport/request.d.ts +53 -0
  61. package/dist/http/transport/request.d.ts.map +1 -0
  62. package/dist/http/transport/request.js +116 -0
  63. package/dist/http/transport/request.js.map +1 -0
  64. package/dist/http/types.d.ts +60 -0
  65. package/dist/http/types.d.ts.map +1 -0
  66. package/dist/http/types.js +16 -0
  67. package/dist/http/types.js.map +1 -0
  68. package/dist/index.d.ts +20 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +52 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/services/base-service.d.ts +14 -0
  73. package/dist/services/base-service.d.ts.map +1 -0
  74. package/dist/services/base-service.js +27 -0
  75. package/dist/services/base-service.js.map +1 -0
  76. package/dist/services/destinations/destinations.d.ts +12 -0
  77. package/dist/services/destinations/destinations.d.ts.map +1 -0
  78. package/dist/services/destinations/destinations.js +43 -0
  79. package/dist/services/destinations/destinations.js.map +1 -0
  80. package/dist/services/destinations/index.d.ts +2 -0
  81. package/dist/services/destinations/index.d.ts.map +1 -0
  82. package/dist/services/destinations/index.js +18 -0
  83. package/dist/services/destinations/index.js.map +1 -0
  84. package/dist/services/destinations/models/destinations.d.ts +76 -0
  85. package/dist/services/destinations/models/destinations.d.ts.map +1 -0
  86. package/dist/services/destinations/models/destinations.js +49 -0
  87. package/dist/services/destinations/models/destinations.js.map +1 -0
  88. package/dist/services/destinations/models/index.d.ts +3 -0
  89. package/dist/services/destinations/models/index.d.ts.map +1 -0
  90. package/dist/services/destinations/models/index.js +19 -0
  91. package/dist/services/destinations/models/index.js.map +1 -0
  92. package/dist/services/destinations/models/list-destinations-ok-response.d.ts +140 -0
  93. package/dist/services/destinations/models/list-destinations-ok-response.d.ts.map +1 -0
  94. package/dist/services/destinations/models/list-destinations-ok-response.js +36 -0
  95. package/dist/services/destinations/models/list-destinations-ok-response.js.map +1 -0
  96. package/dist/services/e-sim/e-sim.d.ts +35 -0
  97. package/dist/services/e-sim/e-sim.d.ts.map +1 -0
  98. package/dist/services/e-sim/e-sim.js +120 -0
  99. package/dist/services/e-sim/e-sim.js.map +1 -0
  100. package/dist/services/e-sim/index.d.ts +2 -0
  101. package/dist/services/e-sim/index.d.ts.map +1 -0
  102. package/dist/services/e-sim/index.js +18 -0
  103. package/dist/services/e-sim/index.js.map +1 -0
  104. package/dist/services/e-sim/models/device.d.ts +90 -0
  105. package/dist/services/e-sim/models/device.d.ts.map +1 -0
  106. package/dist/services/e-sim/models/device.js +54 -0
  107. package/dist/services/e-sim/models/device.js.map +1 -0
  108. package/dist/services/e-sim/models/get-esim-device-ok-response.d.ts +163 -0
  109. package/dist/services/e-sim/models/get-esim-device-ok-response.d.ts.map +1 -0
  110. package/dist/services/e-sim/models/get-esim-device-ok-response.js +36 -0
  111. package/dist/services/e-sim/models/get-esim-device-ok-response.js.map +1 -0
  112. package/dist/services/e-sim/models/get-esim-history-ok-response-esim.d.ts +154 -0
  113. package/dist/services/e-sim/models/get-esim-history-ok-response-esim.d.ts.map +1 -0
  114. package/dist/services/e-sim/models/get-esim-history-ok-response-esim.js +40 -0
  115. package/dist/services/e-sim/models/get-esim-history-ok-response-esim.js.map +1 -0
  116. package/dist/services/e-sim/models/get-esim-history-ok-response.d.ts +249 -0
  117. package/dist/services/e-sim/models/get-esim-history-ok-response.d.ts.map +1 -0
  118. package/dist/services/e-sim/models/get-esim-history-ok-response.js +36 -0
  119. package/dist/services/e-sim/models/get-esim-history-ok-response.js.map +1 -0
  120. package/dist/services/e-sim/models/get-esim-mac-ok-response-esim.d.ts +76 -0
  121. package/dist/services/e-sim/models/get-esim-mac-ok-response-esim.d.ts.map +1 -0
  122. package/dist/services/e-sim/models/get-esim-mac-ok-response-esim.js +49 -0
  123. package/dist/services/e-sim/models/get-esim-mac-ok-response-esim.js.map +1 -0
  124. package/dist/services/e-sim/models/get-esim-mac-ok-response.d.ts +140 -0
  125. package/dist/services/e-sim/models/get-esim-mac-ok-response.d.ts.map +1 -0
  126. package/dist/services/e-sim/models/get-esim-mac-ok-response.js +36 -0
  127. package/dist/services/e-sim/models/get-esim-mac-ok-response.js.map +1 -0
  128. package/dist/services/e-sim/models/get-esim-ok-response-esim.d.ts +90 -0
  129. package/dist/services/e-sim/models/get-esim-ok-response-esim.d.ts.map +1 -0
  130. package/dist/services/e-sim/models/get-esim-ok-response-esim.js +54 -0
  131. package/dist/services/e-sim/models/get-esim-ok-response-esim.js.map +1 -0
  132. package/dist/services/e-sim/models/get-esim-ok-response.d.ts +163 -0
  133. package/dist/services/e-sim/models/get-esim-ok-response.d.ts.map +1 -0
  134. package/dist/services/e-sim/models/get-esim-ok-response.js +36 -0
  135. package/dist/services/e-sim/models/get-esim-ok-response.js.map +1 -0
  136. package/dist/services/e-sim/models/history.d.ts +76 -0
  137. package/dist/services/e-sim/models/history.d.ts.map +1 -0
  138. package/dist/services/e-sim/models/history.js +45 -0
  139. package/dist/services/e-sim/models/history.js.map +1 -0
  140. package/dist/services/e-sim/models/index.d.ts +10 -0
  141. package/dist/services/e-sim/models/index.d.ts.map +1 -0
  142. package/dist/services/e-sim/models/index.js +26 -0
  143. package/dist/services/e-sim/models/index.js.map +1 -0
  144. package/dist/services/e-sim/request-params.d.ts +4 -0
  145. package/dist/services/e-sim/request-params.d.ts.map +1 -0
  146. package/dist/services/e-sim/request-params.js +3 -0
  147. package/dist/services/e-sim/request-params.js.map +1 -0
  148. package/dist/services/packages/index.d.ts +2 -0
  149. package/dist/services/packages/index.d.ts.map +1 -0
  150. package/dist/services/packages/index.js +18 -0
  151. package/dist/services/packages/index.js.map +1 -0
  152. package/dist/services/packages/models/index.d.ts +3 -0
  153. package/dist/services/packages/models/index.d.ts.map +1 -0
  154. package/dist/services/packages/models/index.js +19 -0
  155. package/dist/services/packages/models/index.js.map +1 -0
  156. package/dist/services/packages/models/list-packages-ok-response.d.ts +223 -0
  157. package/dist/services/packages/models/list-packages-ok-response.d.ts.map +1 -0
  158. package/dist/services/packages/models/list-packages-ok-response.js +42 -0
  159. package/dist/services/packages/models/list-packages-ok-response.js.map +1 -0
  160. package/dist/services/packages/models/packages.d.ts +118 -0
  161. package/dist/services/packages/models/packages.d.ts.map +1 -0
  162. package/dist/services/packages/models/packages.js +64 -0
  163. package/dist/services/packages/models/packages.js.map +1 -0
  164. package/dist/services/packages/packages.d.ts +21 -0
  165. package/dist/services/packages/packages.d.ts.map +1 -0
  166. package/dist/services/packages/packages.js +59 -0
  167. package/dist/services/packages/packages.js.map +1 -0
  168. package/dist/services/packages/request-params.d.ts +11 -0
  169. package/dist/services/packages/request-params.d.ts.map +1 -0
  170. package/dist/services/packages/request-params.js +3 -0
  171. package/dist/services/packages/request-params.js.map +1 -0
  172. package/dist/services/purchases/index.d.ts +2 -0
  173. package/dist/services/purchases/index.d.ts.map +1 -0
  174. package/dist/services/purchases/index.js +18 -0
  175. package/dist/services/purchases/index.js.map +1 -0
  176. package/dist/services/purchases/models/create-purchase-ok-response-profile.d.ts +62 -0
  177. package/dist/services/purchases/models/create-purchase-ok-response-profile.d.ts.map +1 -0
  178. package/dist/services/purchases/models/create-purchase-ok-response-profile.js +39 -0
  179. package/dist/services/purchases/models/create-purchase-ok-response-profile.js.map +1 -0
  180. package/dist/services/purchases/models/create-purchase-ok-response-purchase.d.ts +132 -0
  181. package/dist/services/purchases/models/create-purchase-ok-response-purchase.d.ts.map +1 -0
  182. package/dist/services/purchases/models/create-purchase-ok-response-purchase.js +69 -0
  183. package/dist/services/purchases/models/create-purchase-ok-response-purchase.js.map +1 -0
  184. package/dist/services/purchases/models/create-purchase-ok-response.d.ts +315 -0
  185. package/dist/services/purchases/models/create-purchase-ok-response.d.ts.map +1 -0
  186. package/dist/services/purchases/models/create-purchase-ok-response.js +46 -0
  187. package/dist/services/purchases/models/create-purchase-ok-response.js.map +1 -0
  188. package/dist/services/purchases/models/create-purchase-request.d.ts +160 -0
  189. package/dist/services/purchases/models/create-purchase-request.d.ts.map +1 -0
  190. package/dist/services/purchases/models/create-purchase-request.js +79 -0
  191. package/dist/services/purchases/models/create-purchase-request.js.map +1 -0
  192. package/dist/services/purchases/models/edit-purchase-ok-response.d.ts +104 -0
  193. package/dist/services/purchases/models/edit-purchase-ok-response.d.ts.map +1 -0
  194. package/dist/services/purchases/models/edit-purchase-ok-response.js +59 -0
  195. package/dist/services/purchases/models/edit-purchase-ok-response.js.map +1 -0
  196. package/dist/services/purchases/models/edit-purchase-request.d.ts +104 -0
  197. package/dist/services/purchases/models/edit-purchase-request.d.ts.map +1 -0
  198. package/dist/services/purchases/models/edit-purchase-request.js +59 -0
  199. package/dist/services/purchases/models/edit-purchase-request.js.map +1 -0
  200. package/dist/services/purchases/models/get-purchase-consumption-ok-response.d.ts +62 -0
  201. package/dist/services/purchases/models/get-purchase-consumption-ok-response.d.ts.map +1 -0
  202. package/dist/services/purchases/models/get-purchase-consumption-ok-response.js +41 -0
  203. package/dist/services/purchases/models/get-purchase-consumption-ok-response.js.map +1 -0
  204. package/dist/services/purchases/models/index.d.ts +16 -0
  205. package/dist/services/purchases/models/index.d.ts.map +1 -0
  206. package/dist/services/purchases/models/index.js +32 -0
  207. package/dist/services/purchases/models/index.js.map +1 -0
  208. package/dist/services/purchases/models/list-purchases-ok-response.d.ts +622 -0
  209. package/dist/services/purchases/models/list-purchases-ok-response.d.ts.map +1 -0
  210. package/dist/services/purchases/models/list-purchases-ok-response.js +42 -0
  211. package/dist/services/purchases/models/list-purchases-ok-response.js.map +1 -0
  212. package/dist/services/purchases/models/package_.d.ts +104 -0
  213. package/dist/services/purchases/models/package_.d.ts.map +1 -0
  214. package/dist/services/purchases/models/package_.js +59 -0
  215. package/dist/services/purchases/models/package_.js.map +1 -0
  216. package/dist/services/purchases/models/purchases-esim.d.ts +48 -0
  217. package/dist/services/purchases/models/purchases-esim.d.ts.map +1 -0
  218. package/dist/services/purchases/models/purchases-esim.js +35 -0
  219. package/dist/services/purchases/models/purchases-esim.js.map +1 -0
  220. package/dist/services/purchases/models/purchases.d.ts +372 -0
  221. package/dist/services/purchases/models/purchases.d.ts.map +1 -0
  222. package/dist/services/purchases/models/purchases.js +91 -0
  223. package/dist/services/purchases/models/purchases.js.map +1 -0
  224. package/dist/services/purchases/models/top-up-esim-ok-response-profile.d.ts +48 -0
  225. package/dist/services/purchases/models/top-up-esim-ok-response-profile.d.ts.map +1 -0
  226. package/dist/services/purchases/models/top-up-esim-ok-response-profile.js +35 -0
  227. package/dist/services/purchases/models/top-up-esim-ok-response-profile.js.map +1 -0
  228. package/dist/services/purchases/models/top-up-esim-ok-response-purchase.d.ts +132 -0
  229. package/dist/services/purchases/models/top-up-esim-ok-response-purchase.d.ts.map +1 -0
  230. package/dist/services/purchases/models/top-up-esim-ok-response-purchase.js +69 -0
  231. package/dist/services/purchases/models/top-up-esim-ok-response-purchase.js.map +1 -0
  232. package/dist/services/purchases/models/top-up-esim-ok-response.d.ts +292 -0
  233. package/dist/services/purchases/models/top-up-esim-ok-response.d.ts.map +1 -0
  234. package/dist/services/purchases/models/top-up-esim-ok-response.js +46 -0
  235. package/dist/services/purchases/models/top-up-esim-ok-response.js.map +1 -0
  236. package/dist/services/purchases/models/top-up-esim-request.d.ts +146 -0
  237. package/dist/services/purchases/models/top-up-esim-request.d.ts.map +1 -0
  238. package/dist/services/purchases/models/top-up-esim-request.js +74 -0
  239. package/dist/services/purchases/models/top-up-esim-request.js.map +1 -0
  240. package/dist/services/purchases/purchases.d.ts +49 -0
  241. package/dist/services/purchases/purchases.d.ts.map +1 -0
  242. package/dist/services/purchases/purchases.js +162 -0
  243. package/dist/services/purchases/purchases.js.map +1 -0
  244. package/dist/services/purchases/request-params.d.ts +11 -0
  245. package/dist/services/purchases/request-params.d.ts.map +1 -0
  246. package/dist/services/purchases/request-params.js +3 -0
  247. package/dist/services/purchases/request-params.js.map +1 -0
  248. package/examples/package.json +1 -1
  249. package/package.json +1 -1
  250. package/src/http/handlers/hook-handler.ts +6 -4
  251. package/src/http/handlers/response-validation-handler.ts +1 -1
  252. package/src/http/handlers/retry-handler.ts +8 -5
  253. package/src/http/hooks/hook.ts +3 -2
  254. package/src/http/serializer.ts +7 -4
  255. package/src/http/transport/request-builder.ts +145 -0
  256. package/src/http/transport/request.ts +45 -36
  257. package/src/services/destinations/destinations.ts +14 -11
  258. package/src/services/destinations/models/destinations.ts +3 -3
  259. package/src/services/destinations/models/list-destinations-ok-response.ts +3 -3
  260. package/src/services/e-sim/e-sim.ts +57 -45
  261. package/src/services/e-sim/models/device.ts +3 -3
  262. package/src/services/e-sim/models/get-esim-device-ok-response.ts +3 -3
  263. package/src/services/e-sim/models/get-esim-history-ok-response-esim.ts +3 -3
  264. package/src/services/e-sim/models/get-esim-history-ok-response.ts +3 -3
  265. package/src/services/e-sim/models/get-esim-mac-ok-response-esim.ts +3 -3
  266. package/src/services/e-sim/models/get-esim-mac-ok-response.ts +3 -3
  267. package/src/services/e-sim/models/get-esim-ok-response-esim.ts +3 -3
  268. package/src/services/e-sim/models/get-esim-ok-response.ts +3 -3
  269. package/src/services/e-sim/models/history.ts +3 -3
  270. package/src/services/packages/models/list-packages-ok-response.ts +3 -3
  271. package/src/services/packages/models/packages.ts +3 -3
  272. package/src/services/packages/packages.ts +22 -19
  273. package/src/services/purchases/models/create-purchase-ok-response-profile.ts +3 -3
  274. package/src/services/purchases/models/create-purchase-ok-response-purchase.ts +3 -3
  275. package/src/services/purchases/models/create-purchase-ok-response.ts +3 -3
  276. package/src/services/purchases/models/create-purchase-request.ts +3 -3
  277. package/src/services/purchases/models/edit-purchase-ok-response.ts +3 -3
  278. package/src/services/purchases/models/edit-purchase-request.ts +3 -3
  279. package/src/services/purchases/models/get-purchase-consumption-ok-response.ts +3 -3
  280. package/src/services/purchases/models/list-purchases-ok-response.ts +3 -3
  281. package/src/services/purchases/models/package_.ts +3 -3
  282. package/src/services/purchases/models/purchases-esim.ts +3 -3
  283. package/src/services/purchases/models/purchases.ts +3 -3
  284. package/src/services/purchases/models/top-up-esim-ok-response-profile.ts +3 -3
  285. package/src/services/purchases/models/top-up-esim-ok-response-purchase.ts +3 -3
  286. package/src/services/purchases/models/top-up-esim-ok-response.ts +3 -3
  287. package/src/services/purchases/models/top-up-esim-request.ts +3 -3
  288. package/src/services/purchases/purchases.ts +81 -66
  289. package/.github/PROTECTED_BRANCHES.txt +0 -1
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PurchasesService = void 0;
13
+ const zod_1 = require("zod");
14
+ const base_service_1 = require("../base-service");
15
+ const http_1 = require("../../http");
16
+ const request_builder_1 = require("../../http/transport/request-builder");
17
+ const list_purchases_ok_response_1 = require("./models/list-purchases-ok-response");
18
+ const create_purchase_request_1 = require("./models/create-purchase-request");
19
+ const create_purchase_ok_response_1 = require("./models/create-purchase-ok-response");
20
+ const top_up_esim_request_1 = require("./models/top-up-esim-request");
21
+ const top_up_esim_ok_response_1 = require("./models/top-up-esim-ok-response");
22
+ const edit_purchase_request_1 = require("./models/edit-purchase-request");
23
+ const edit_purchase_ok_response_1 = require("./models/edit-purchase-ok-response");
24
+ const get_purchase_consumption_ok_response_1 = require("./models/get-purchase-consumption-ok-response");
25
+ class PurchasesService extends base_service_1.BaseService {
26
+ /**
27
+ * This endpoint can be used to list all the successful purchases made between a given interval.
28
+ * @param {string} [iccid] - ID of the eSIM
29
+ * @param {string} [afterDate] - Start date of the interval for filtering purchases in the format 'yyyy-MM-dd'
30
+ * @param {string} [beforeDate] - End date of the interval for filtering purchases in the format 'yyyy-MM-dd'
31
+ * @param {string} [referenceId] - The referenceId that was provided by the partner during the purchase or topup flow.
32
+ * @param {string} [afterCursor] - To get the next batch of results, use this parameter. It tells the API where to start fetching data after the last item you received. It helps you avoid repeats and efficiently browse through large sets of data.
33
+ * @param {number} [limit] - Maximum number of purchases to be returned in the response. The value must be greater than 0 and less than or equal to 100. If not provided, the default value is 20
34
+ * @param {number} [after] - Epoch value representing the start of the time interval for filtering purchases
35
+ * @param {number} [before] - Epoch value representing the end of the time interval for filtering purchases
36
+ * @returns {Promise<HttpResponse<ListPurchasesOkResponse>>} Successful Response
37
+ */
38
+ listPurchases(params, requestConfig) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const request = new request_builder_1.RequestBuilder()
41
+ .setConfig(this.config)
42
+ .setBaseUrl(this.config)
43
+ .setMethod('GET')
44
+ .setPath('/purchases')
45
+ .setRequestSchema(zod_1.z.any())
46
+ .setResponseSchema(list_purchases_ok_response_1.listPurchasesOkResponseResponse)
47
+ .setRequestContentType(http_1.ContentType.Json)
48
+ .setResponseContentType(http_1.ContentType.Json)
49
+ .setRetryAttempts(this.config, requestConfig)
50
+ .setRetryDelayMs(this.config, requestConfig)
51
+ .setResponseValidation(this.config, requestConfig)
52
+ .addQueryParam('iccid', params === null || params === void 0 ? void 0 : params.iccid)
53
+ .addQueryParam('afterDate', params === null || params === void 0 ? void 0 : params.afterDate)
54
+ .addQueryParam('beforeDate', params === null || params === void 0 ? void 0 : params.beforeDate)
55
+ .addQueryParam('referenceId', params === null || params === void 0 ? void 0 : params.referenceId)
56
+ .addQueryParam('afterCursor', params === null || params === void 0 ? void 0 : params.afterCursor)
57
+ .addQueryParam('limit', params === null || params === void 0 ? void 0 : params.limit)
58
+ .addQueryParam('after', params === null || params === void 0 ? void 0 : params.after)
59
+ .addQueryParam('before', params === null || params === void 0 ? void 0 : params.before)
60
+ .build();
61
+ return this.client.call(request);
62
+ });
63
+ }
64
+ /**
65
+ * This endpoint is used to purchase a new eSIM by providing the package details.
66
+ * @returns {Promise<HttpResponse<CreatePurchaseOkResponse>>} Successful Response
67
+ */
68
+ createPurchase(body, requestConfig) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const request = new request_builder_1.RequestBuilder()
71
+ .setConfig(this.config)
72
+ .setBaseUrl(this.config)
73
+ .setMethod('POST')
74
+ .setPath('/purchases')
75
+ .setRequestSchema(create_purchase_request_1.createPurchaseRequestRequest)
76
+ .setResponseSchema(create_purchase_ok_response_1.createPurchaseOkResponseResponse)
77
+ .setRequestContentType(http_1.ContentType.Json)
78
+ .setResponseContentType(http_1.ContentType.Json)
79
+ .setRetryAttempts(this.config, requestConfig)
80
+ .setRetryDelayMs(this.config, requestConfig)
81
+ .setResponseValidation(this.config, requestConfig)
82
+ .addHeaderParam('Content-Type', 'application/json')
83
+ .addBody(body)
84
+ .build();
85
+ return this.client.call(request);
86
+ });
87
+ }
88
+ /**
89
+ * This endpoint is used to top-up an eSIM with the previously associated destination by providing an existing ICCID and the package details. The top-up is not feasible for eSIMs in "DELETED" or "ERROR" state.
90
+ * @returns {Promise<HttpResponse<TopUpEsimOkResponse>>} Successful Response
91
+ */
92
+ topUpEsim(body, requestConfig) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const request = new request_builder_1.RequestBuilder()
95
+ .setConfig(this.config)
96
+ .setBaseUrl(this.config)
97
+ .setMethod('POST')
98
+ .setPath('/purchases/topup')
99
+ .setRequestSchema(top_up_esim_request_1.topUpEsimRequestRequest)
100
+ .setResponseSchema(top_up_esim_ok_response_1.topUpEsimOkResponseResponse)
101
+ .setRequestContentType(http_1.ContentType.Json)
102
+ .setResponseContentType(http_1.ContentType.Json)
103
+ .setRetryAttempts(this.config, requestConfig)
104
+ .setRetryDelayMs(this.config, requestConfig)
105
+ .setResponseValidation(this.config, requestConfig)
106
+ .addHeaderParam('Content-Type', 'application/json')
107
+ .addBody(body)
108
+ .build();
109
+ return this.client.call(request);
110
+ });
111
+ }
112
+ /**
113
+ * This endpoint allows you to modify the dates of an existing package with a future activation start time. Editing can only be performed for packages that have not been activated, and it cannot change the package size. The modification must not change the package duration category to ensure pricing consistency.
114
+ * @returns {Promise<HttpResponse<EditPurchaseOkResponse>>} Successful Response
115
+ */
116
+ editPurchase(body, requestConfig) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ const request = new request_builder_1.RequestBuilder()
119
+ .setConfig(this.config)
120
+ .setBaseUrl(this.config)
121
+ .setMethod('POST')
122
+ .setPath('/purchases/edit')
123
+ .setRequestSchema(edit_purchase_request_1.editPurchaseRequestRequest)
124
+ .setResponseSchema(edit_purchase_ok_response_1.editPurchaseOkResponseResponse)
125
+ .setRequestContentType(http_1.ContentType.Json)
126
+ .setResponseContentType(http_1.ContentType.Json)
127
+ .setRetryAttempts(this.config, requestConfig)
128
+ .setRetryDelayMs(this.config, requestConfig)
129
+ .setResponseValidation(this.config, requestConfig)
130
+ .addHeaderParam('Content-Type', 'application/json')
131
+ .addBody(body)
132
+ .build();
133
+ return this.client.call(request);
134
+ });
135
+ }
136
+ /**
137
+ * This endpoint can be called for consumption notifications (e.g. every 1 hour or when the user clicks a button). It returns the data balance (consumption) of purchased packages.
138
+ * @param {string} purchaseId - ID of the purchase
139
+ * @returns {Promise<HttpResponse<GetPurchaseConsumptionOkResponse>>} Successful Response
140
+ */
141
+ getPurchaseConsumption(purchaseId, requestConfig) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ const request = new request_builder_1.RequestBuilder()
144
+ .setConfig(this.config)
145
+ .setBaseUrl(this.config)
146
+ .setMethod('GET')
147
+ .setPath('/purchases/{purchaseId}/consumption')
148
+ .setRequestSchema(zod_1.z.any())
149
+ .setResponseSchema(get_purchase_consumption_ok_response_1.getPurchaseConsumptionOkResponseResponse)
150
+ .setRequestContentType(http_1.ContentType.Json)
151
+ .setResponseContentType(http_1.ContentType.Json)
152
+ .setRetryAttempts(this.config, requestConfig)
153
+ .setRetryDelayMs(this.config, requestConfig)
154
+ .setResponseValidation(this.config, requestConfig)
155
+ .addPathParam('purchaseId', purchaseId)
156
+ .build();
157
+ return this.client.call(request);
158
+ });
159
+ }
160
+ }
161
+ exports.PurchasesService = PurchasesService;
162
+ //# sourceMappingURL=purchases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../../src/services/purchases/purchases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface ListPurchasesParams {
2
+ iccid?: string;
3
+ afterDate?: string;
4
+ beforeDate?: string;
5
+ referenceId?: string;
6
+ afterCursor?: string;
7
+ limit?: number;
8
+ after?: number;
9
+ before?: number;
10
+ }
11
+ //# sourceMappingURL=request-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-params.d.ts","sourceRoot":"","sources":["../../../src/services/purchases/request-params.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=request-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-params.js","sourceRoot":"","sources":["../../../src/services/purchases/request-params.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Celitech",
3
- "version": "1.1.71",
3
+ "version": "1.1.73",
4
4
  "private": true,
5
5
  "dependencies": {
6
6
  "celitech-sdk": "file:../",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "celitech-sdk",
3
- "version": "1.1.71",
3
+ "version": "1.1.73",
4
4
  "description": "Welcome to the CELITECH API documentation! Useful links: [Homepage](https://www.celitech.com) | [Support email](mailto:support@celitech.com) | [Blog](https://www.celitech.com/blog/) ",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,18 +20,20 @@ export class HookHandler implements RequestHandler {
20
20
  const response = await this.next.handle(nextRequest);
21
21
 
22
22
  if (response.metadata.status < 400) {
23
- return await this.hook.afterResponse(request, response, hookParams);
23
+ return await this.hook.afterResponse(request.toHookRequest(), response, hookParams);
24
24
  }
25
25
 
26
- const error = await this.hook.onError(request, response, hookParams);
26
+ const error = await this.hook.onError(request.toHookRequest(), response, hookParams);
27
27
 
28
28
  throw new HttpError(error.metadata, error.error);
29
29
  }
30
30
 
31
31
  private async beforeRequest<T>(request: Request<T>, hookParams: Map<string, string>): Promise<Request<T>> {
32
- const hookRequest = await this.hook.beforeRequest(request, hookParams);
32
+ const hookRequest = request.toHookRequest();
33
33
 
34
- request.updateFromHookRequest(hookRequest);
34
+ const newRequest = await this.hook.beforeRequest(hookRequest, hookParams);
35
+
36
+ request.updateFromHookRequest(newRequest);
35
37
 
36
38
  return request;
37
39
  }
@@ -57,7 +57,7 @@ export class ResponseValidationHandler implements RequestHandler {
57
57
  }
58
58
 
59
59
  private validate<T>(request: Request<T>, data: any): T {
60
- if (request.config.validation?.responseValidation) {
60
+ if (request.validation?.responseValidation) {
61
61
  return request.responseSchema.parse(data);
62
62
  }
63
63
  return data;
@@ -10,15 +10,14 @@ export class RetryHandler implements RequestHandler {
10
10
  throw new Error('No next handler set in retry handler.');
11
11
  }
12
12
 
13
- const retry = request.getRetry();
14
- for (let attempt = 1; attempt <= retry.attempts; attempt++) {
13
+ for (let attempt = 1; attempt <= request.retry.attempts; attempt++) {
15
14
  try {
16
15
  return await this.next.handle(request);
17
16
  } catch (error: any) {
18
- if (!this.shouldRetry(error) || attempt === retry.attempts) {
17
+ if (!this.shouldRetry(error) || attempt === request.retry.attempts) {
19
18
  throw error;
20
19
  }
21
- await this.delay(retry.delayMs);
20
+ await this.delay(request.retry.delayMs);
22
21
  }
23
22
  }
24
23
 
@@ -29,7 +28,11 @@ export class RetryHandler implements RequestHandler {
29
28
  return error instanceof HttpError && (error.metadata.status >= 500 || error.metadata.status === 408);
30
29
  }
31
30
 
32
- private delay(delayMs: number): Promise<void> {
31
+ private delay(delayMs: number | undefined): Promise<void> {
32
+ if (!delayMs) {
33
+ return Promise.resolve();
34
+ }
35
+
33
36
  return new Promise((resolve, reject) => {
34
37
  setTimeout(() => resolve(), delayMs);
35
38
  });
@@ -1,12 +1,13 @@
1
1
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
2
2
 
3
3
  export interface HttpRequest {
4
+ baseUrl: string;
4
5
  method: HttpMethod;
5
6
  path: string;
6
- headers?: Map<string, unknown>;
7
+ headers: Map<string, unknown>;
7
8
  body?: BodyInit;
8
9
  abortSignal?: AbortSignal;
9
- queryParams?: Map<string, unknown>;
10
+ queryParams: Map<string, unknown>;
10
11
  }
11
12
 
12
13
  interface HttpMetadata {
@@ -25,7 +25,7 @@ export function serializeQuery(
25
25
  _style = SerializationStyle.FORM,
26
26
  explode = true,
27
27
  ): string {
28
- if (!queryParams || !Object.entries(queryParams)) {
28
+ if (!queryParams || !Object.entries(queryParams).length) {
29
29
  return '';
30
30
  }
31
31
 
@@ -58,9 +58,12 @@ export function serializeQuery(
58
58
  return `?${query}`;
59
59
  }
60
60
 
61
- export function serializeHeader(headers?: Record<string, unknown>, explode = false): Record<string, string> {
62
- if (!headers) {
63
- return {};
61
+ export function serializeHeader(
62
+ headers?: Record<string, unknown>,
63
+ explode = false,
64
+ ): Record<string, string> | undefined {
65
+ if (!headers || !Object.entries(headers).length) {
66
+ return undefined;
64
67
  }
65
68
 
66
69
  return Object.entries(headers).reduce((acc, [key, value]) => {
@@ -0,0 +1,145 @@
1
+ import z, { ZodType } from 'zod';
2
+ import { Request, CreateRequestParameters } from './request';
3
+ import { ContentType, HttpMethod, SdkConfig, RequestConfig, RetryOptions, ValidationOptions } from '../types';
4
+ import { Environment } from '../environment';
5
+
6
+ export class RequestBuilder<T> {
7
+ private params: CreateRequestParameters<T>;
8
+
9
+ constructor() {
10
+ this.params = {
11
+ baseUrl: Environment.DEFAULT,
12
+ method: 'GET',
13
+ path: '',
14
+ config: {},
15
+ responseSchema: z.any(),
16
+ requestSchema: z.any(),
17
+ requestContentType: ContentType.Json,
18
+ responseContentType: ContentType.Json,
19
+ retry: {
20
+ attempts: 3,
21
+ delayMs: 150,
22
+ },
23
+ validation: {
24
+ responseValidation: true,
25
+ },
26
+ pathParams: new Map(),
27
+ queryParams: new Map(),
28
+ headers: new Map(),
29
+ };
30
+ }
31
+
32
+ setRetryAttempts(sdkConfig?: SdkConfig, requestConfig?: RequestConfig): RequestBuilder<T> {
33
+ if (requestConfig?.retry?.attempts !== undefined) {
34
+ this.params.retry.attempts = requestConfig.retry.attempts;
35
+ } else if (sdkConfig?.retry?.attempts !== undefined) {
36
+ this.params.retry.attempts = sdkConfig.retry.attempts;
37
+ }
38
+
39
+ return this;
40
+ }
41
+
42
+ setRetryDelayMs(sdkConfig?: SdkConfig, requestConfig?: RequestConfig): RequestBuilder<T> {
43
+ if (requestConfig?.retry?.delayMs !== undefined) {
44
+ this.params.retry.delayMs = requestConfig.retry.delayMs;
45
+ } else if (sdkConfig?.retry?.delayMs !== undefined) {
46
+ this.params.retry.delayMs = sdkConfig.retry.delayMs;
47
+ }
48
+
49
+ return this;
50
+ }
51
+
52
+ setResponseValidation(sdkConfig: SdkConfig, requestConfig?: RequestConfig): RequestBuilder<T> {
53
+ if (requestConfig?.validation?.responseValidation !== undefined) {
54
+ this.params.validation.responseValidation = requestConfig.validation.responseValidation;
55
+ } else if (sdkConfig?.validation?.responseValidation !== undefined) {
56
+ this.params.validation.responseValidation = sdkConfig.validation.responseValidation;
57
+ }
58
+
59
+ return this;
60
+ }
61
+
62
+ setBaseUrl(sdkConfig: SdkConfig): RequestBuilder<T> {
63
+ if (sdkConfig?.baseUrl !== undefined) {
64
+ this.params.baseUrl = sdkConfig.baseUrl;
65
+ }
66
+
67
+ return this;
68
+ }
69
+
70
+ setMethod(method: HttpMethod): RequestBuilder<T> {
71
+ this.params.method = method;
72
+ return this;
73
+ }
74
+
75
+ setPath(path: string): RequestBuilder<T> {
76
+ this.params.path = path;
77
+ return this;
78
+ }
79
+
80
+ setConfig(config: SdkConfig): RequestBuilder<T> {
81
+ this.params.config = config;
82
+ return this;
83
+ }
84
+
85
+ setRequestContentType(contentType: ContentType): RequestBuilder<T> {
86
+ this.params.requestContentType = contentType;
87
+ return this;
88
+ }
89
+
90
+ setResponseContentType(contentType: ContentType): RequestBuilder<T> {
91
+ this.params.responseContentType = contentType;
92
+ return this;
93
+ }
94
+
95
+ setRequestSchema(requestSchema: ZodType): RequestBuilder<T> {
96
+ this.params.requestSchema = requestSchema;
97
+ return this;
98
+ }
99
+
100
+ setResponseSchema(responseSchema: ZodType): RequestBuilder<T> {
101
+ this.params.responseSchema = responseSchema;
102
+ return this;
103
+ }
104
+
105
+ addBody(body?: any): RequestBuilder<T> {
106
+ if (body !== undefined) {
107
+ this.params.body = body;
108
+ }
109
+ return this;
110
+ }
111
+
112
+ addPathParam(key: string, value: unknown): RequestBuilder<T> {
113
+ if (value === undefined) {
114
+ return this;
115
+ }
116
+
117
+ this.params.pathParams.set(key, value);
118
+
119
+ return this;
120
+ }
121
+
122
+ addQueryParam(key: string, value: unknown): RequestBuilder<T> {
123
+ if (value === undefined) {
124
+ return this;
125
+ }
126
+
127
+ this.params.queryParams.set(key, value);
128
+
129
+ return this;
130
+ }
131
+
132
+ addHeaderParam(key: string, value: unknown): RequestBuilder<T> {
133
+ if (value === undefined) {
134
+ return this;
135
+ }
136
+
137
+ this.params.headers.set(key, value);
138
+
139
+ return this;
140
+ }
141
+
142
+ public build(): Request<T> {
143
+ return new Request<T>(this.params);
144
+ }
145
+ }
@@ -1,21 +1,28 @@
1
1
  import { ZodType } from 'zod';
2
- import { ContentType, HttpMethod, SdkConfig, RetryOptions, RequestConfig } from '../types';
2
+ import { ContentType, HttpMethod, SdkConfig, RetryOptions, RequestConfig, ValidationOptions } from '../types';
3
3
  import { serializeHeader, serializePath, serializeQuery } from '../serializer';
4
4
  import { HttpRequest } from '../hooks/hook';
5
5
 
6
- interface CreateRequestParameters<T> {
6
+ export interface CreateRequestParameters<T> {
7
+ baseUrl: string;
7
8
  method: HttpMethod;
8
9
  body?: any;
10
+ headers: Map<string, unknown>;
11
+ queryParams: Map<string, unknown>;
12
+ pathParams: Map<string, unknown>;
9
13
  path: string;
10
14
  config: SdkConfig;
11
15
  responseSchema: ZodType<T, any, any>;
12
16
  requestSchema: ZodType;
13
17
  requestContentType: ContentType;
14
18
  responseContentType: ContentType;
15
- requestConfig?: RequestConfig;
19
+ validation: ValidationOptions;
20
+ retry: RetryOptions;
16
21
  }
17
22
 
18
23
  export class Request<T> {
24
+ public baseUrl: string = '';
25
+
19
26
  public headers: Map<string, unknown> = new Map();
20
27
 
21
28
  public queryParams: Map<string, unknown> = new Map();
@@ -40,23 +47,33 @@ export class Request<T> {
40
47
 
41
48
  private readonly pathPattern: string;
42
49
 
50
+ public validation: ValidationOptions = {} as any;
51
+
52
+ public retry: RetryOptions = {} as any;
53
+
43
54
  constructor(params: CreateRequestParameters<T>) {
55
+ this.baseUrl = params.baseUrl;
44
56
  this.method = params.method;
45
57
  this.pathPattern = params.path;
46
58
  this.body = params.body;
47
59
  this.path = this.constructPath();
48
60
  this.config = params.config;
61
+ this.pathParams = params.pathParams;
62
+ this.headers = params.headers;
63
+ this.queryParams = params.queryParams;
49
64
  this.responseSchema = params.responseSchema;
50
65
  this.requestSchema = params.requestSchema;
51
66
  this.requestContentType = params.requestContentType;
52
67
  this.responseContentType = params.responseContentType;
53
- this.applyRequestConfig(params.requestConfig);
68
+ this.retry = params.retry;
69
+ this.validation = params.validation;
54
70
  }
55
71
 
56
72
  addHeaderParam(key: string, value: unknown): void {
57
73
  if (value === undefined) {
58
74
  return;
59
75
  }
76
+
60
77
  this.headers.set(key, value);
61
78
  }
62
79
 
@@ -64,6 +81,7 @@ export class Request<T> {
64
81
  if (value === undefined) {
65
82
  return;
66
83
  }
84
+
67
85
  this.queryParams.set(key, value);
68
86
  }
69
87
 
@@ -71,6 +89,7 @@ export class Request<T> {
71
89
  if (value === undefined) {
72
90
  return;
73
91
  }
92
+
74
93
  this.pathParams.set(key, value);
75
94
  }
76
95
 
@@ -78,14 +97,8 @@ export class Request<T> {
78
97
  if (body === undefined) {
79
98
  return;
80
99
  }
81
- this.body = body;
82
- }
83
100
 
84
- getRetry(): Required<RetryOptions> {
85
- return {
86
- attempts: this.config.retry?.attempts ?? 3,
87
- delayMs: this.config.retry?.delayMs ?? 150,
88
- };
101
+ this.body = body;
89
102
  }
90
103
 
91
104
  getFetchArgs(): { url: string; requestInit: RequestInit } {
@@ -94,10 +107,14 @@ export class Request<T> {
94
107
  requestInit: {
95
108
  method: this.method,
96
109
  body: this.body,
97
- headers: this.constructHeadersInit(),
98
110
  },
99
111
  };
100
112
 
113
+ const headersInit = this.constructHeadersInit();
114
+ if (!!headersInit) {
115
+ fetchArgs.requestInit['headers'] = headersInit;
116
+ }
117
+
101
118
  if (this.config.timeout !== undefined) {
102
119
  fetchArgs.requestInit = {
103
120
  ...fetchArgs.requestInit,
@@ -109,39 +126,28 @@ export class Request<T> {
109
126
  }
110
127
 
111
128
  public updateFromHookRequest(hookRequest: HttpRequest) {
129
+ this.baseUrl = hookRequest.baseUrl;
112
130
  this.method = hookRequest.method;
113
131
  this.path = hookRequest.path;
114
132
  this.body = hookRequest.body;
115
- this.headers = hookRequest.headers || new Map();
116
- this.queryParams = hookRequest.queryParams || new Map();
133
+ this.headers = hookRequest.headers;
134
+ this.queryParams = hookRequest.queryParams;
117
135
  }
118
136
 
119
- private applyRequestConfig(requestConfig: RequestConfig | undefined) {
120
- this.config = {
121
- ...this.config,
122
- retry: {
123
- attempts: requestConfig?.retry?.attempts || this.config.retry?.attempts || 3,
124
- delayMs: requestConfig?.retry?.delayMs || this.config.retry?.delayMs || 150,
125
- },
126
- validation: {
127
- responseValidation: this.applyResponseValidation(requestConfig),
128
- },
137
+ public toHookRequest(): HttpRequest {
138
+ return {
139
+ baseUrl: this.baseUrl,
140
+ method: this.method,
141
+ path: this.path,
142
+ headers: this.headers,
143
+ body: this.body,
144
+ queryParams: this.queryParams,
129
145
  };
130
146
  }
131
147
 
132
- private applyResponseValidation(requestConfig: RequestConfig | undefined): boolean {
133
- if (requestConfig?.validation?.responseValidation !== undefined) {
134
- return requestConfig?.validation.responseValidation;
135
- }
136
- if (this.config?.validation?.responseValidation !== undefined) {
137
- return this.config?.validation?.responseValidation;
138
- }
139
- return true;
140
- }
141
-
142
148
  private constructFullUrl(): string {
143
149
  const queryString = this.constructQueryString();
144
- return `${this.config.baseUrl}${this.constructPath()}${queryString}`;
150
+ return `${this.baseUrl}${this.constructPath()}${queryString}`;
145
151
  }
146
152
 
147
153
  private constructPath(): string {
@@ -149,8 +155,11 @@ export class Request<T> {
149
155
  return serializePath(this.pathPattern, pathParamsRecord);
150
156
  }
151
157
 
152
- private constructHeadersInit(): HeadersInit {
158
+ private constructHeadersInit(): HeadersInit | undefined {
153
159
  const headerParamsRecord: Record<string, unknown> = this.constructParamsRecord(this.headers);
160
+ if (Object.entries(headerParamsRecord).length === 0) {
161
+ return undefined;
162
+ }
154
163
  return serializeHeader(headerParamsRecord);
155
164
  }
156
165