@kohost/api-client 3.0.0-beta.9 → 3.0.0-beta.91

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 (277) hide show
  1. package/README.md +71 -0
  2. package/dist/cjs/AMQPClient/index.js +296 -0
  3. package/dist/cjs/{Client.js → Client/index.js} +1907 -598
  4. package/dist/cjs/Commands/CheckInReservationCommand.js +19 -0
  5. package/dist/cjs/Commands/CheckOutReservationCommand.js +20 -0
  6. package/dist/cjs/Commands/Command.js +34 -0
  7. package/dist/cjs/Commands/CreateImageUploadEndpointCommand.js +17 -0
  8. package/dist/cjs/Commands/CreateShortLinkCommand.js +20 -0
  9. package/dist/cjs/Commands/DiscoverCategoriesCommand.js +20 -0
  10. package/dist/cjs/Commands/DiscoverReservationSpaceCategoryAvailabilitiesCommand.js +20 -0
  11. package/dist/cjs/Commands/DiscoverReservationsCommand.js +20 -0
  12. package/dist/cjs/Commands/DiscoverRoomsCommand.js +37 -0
  13. package/dist/cjs/Commands/DiscoverUsersCommand.js +19 -0
  14. package/dist/cjs/Commands/GetMobileKeyCommand.js +24 -0
  15. package/dist/cjs/Commands/GetProductsCommand.js +17 -0
  16. package/dist/cjs/Commands/OCRDocumentCommand.js +15 -0
  17. package/dist/cjs/Commands/SellProductsCommand.js +17 -0
  18. package/dist/cjs/Commands/SendEmailCommand.js +24 -0
  19. package/dist/cjs/Commands/SendSMSCommand.js +21 -0
  20. package/dist/cjs/Commands/SetAlarmCommand.js +17 -0
  21. package/dist/cjs/Commands/SetCourtesyCommand.js +17 -0
  22. package/dist/cjs/Commands/SetDimmerCommand.js +17 -0
  23. package/dist/cjs/Commands/SetLockCommand.js +17 -0
  24. package/dist/cjs/Commands/SetMediaCommand.js +17 -0
  25. package/dist/cjs/Commands/SetSceneCommand.js +17 -0
  26. package/dist/cjs/Commands/SetSwitchCommand.js +17 -0
  27. package/dist/cjs/Commands/SetThermostatCommand.js +17 -0
  28. package/dist/cjs/Commands/SetWindowCoveringCommand.js +17 -0
  29. package/dist/cjs/Commands/UpdateReservationCommand.js +19 -0
  30. package/dist/cjs/Commands/UpdateUserCommand.js +41 -0
  31. package/dist/cjs/Commands/UploadImageCommand.js +17 -0
  32. package/dist/cjs/Commands/index.js +57 -0
  33. package/dist/cjs/Errors/AppError.js +8 -0
  34. package/dist/cjs/Errors/AuthenticationError.js +9 -0
  35. package/dist/cjs/Errors/AuthorizationError.js +9 -0
  36. package/dist/cjs/Errors/ConflictError.js +9 -0
  37. package/dist/cjs/Errors/DeviceCommError.js +9 -0
  38. package/dist/cjs/Errors/LoginError.js +9 -0
  39. package/dist/cjs/Errors/NotFoundError.js +9 -0
  40. package/dist/cjs/Errors/RequestError.js +9 -0
  41. package/dist/cjs/Errors/SystemCommError.js +9 -0
  42. package/dist/cjs/Errors/TokenExpiredError.js +9 -0
  43. package/dist/cjs/Errors/UnprocessableRequestError.js +9 -0
  44. package/dist/cjs/Errors/ValidationError.js +9 -0
  45. package/dist/cjs/Errors/index.js +16 -0
  46. package/dist/cjs/Events/ApplicationInUseEvent.js +21 -0
  47. package/dist/cjs/Events/ApplicationOutOfUseEvent.js +21 -0
  48. package/dist/cjs/Events/EmailEvent.js +18 -0
  49. package/dist/cjs/Events/Event.js +55 -0
  50. package/dist/cjs/Events/SMSEvent.js +18 -0
  51. package/dist/cjs/Events/SMSSentEvent.js +17 -0
  52. package/dist/cjs/Events/SceneSetEvent.js +17 -0
  53. package/dist/cjs/Events/ShortLinkCreatedEvent.js +17 -0
  54. package/dist/cjs/Events/SystemAlarmUpdatedEvent.js +17 -0
  55. package/dist/cjs/Events/SystemCameraUpdatedEvent.js +17 -0
  56. package/dist/cjs/Events/SystemCategoryUpdatedEvent.js +17 -0
  57. package/dist/cjs/Events/SystemCourtesyUpdatedEvent.js +17 -0
  58. package/dist/cjs/Events/SystemCredentialUpdatedEvent.js +17 -0
  59. package/dist/cjs/Events/SystemDimmerUpdatedEvent.js +17 -0
  60. package/dist/cjs/Events/SystemEntityDeletedEvent.js +17 -0
  61. package/dist/cjs/Events/SystemGatewayUpdatedEvent.js +17 -0
  62. package/dist/cjs/Events/SystemLockUpdatedEvent.js +17 -0
  63. package/dist/cjs/Events/SystemMediaSourceUpdatedEvent.js +17 -0
  64. package/dist/cjs/Events/SystemMotionSensorUpdatedEvent.js +17 -0
  65. package/dist/cjs/Events/SystemOrganizationUpdatedEvent.js +17 -0
  66. package/dist/cjs/Events/SystemProductUpdatedEvent.js +17 -0
  67. package/dist/cjs/Events/SystemPropertyUpdatedEvent.js +17 -0
  68. package/dist/cjs/Events/SystemReservationUpdatedEvent.js +17 -0
  69. package/dist/cjs/Events/SystemSceneControllerUpdatedEvent.js +17 -0
  70. package/dist/cjs/Events/SystemSpaceUpdatedEvent.js +17 -0
  71. package/dist/cjs/Events/SystemSwitchUpdatedEvent.js +17 -0
  72. package/dist/cjs/Events/SystemThermostatUpdatedEvent.js +17 -0
  73. package/dist/cjs/Events/SystemUserUpdatedEvent.js +17 -0
  74. package/dist/cjs/Events/SystemWindowCoveringUpdatedEvent.js +17 -0
  75. package/dist/cjs/Events/index.js +65 -0
  76. package/dist/cjs/Models/Alarm.js +35 -0
  77. package/dist/cjs/Models/Announcement.js +34 -0
  78. package/dist/cjs/Models/Camera.js +35 -0
  79. package/dist/cjs/Models/Category.js +36 -0
  80. package/dist/cjs/Models/Courtesy.js +39 -0
  81. package/dist/cjs/Models/Credential.js +35 -0
  82. package/dist/cjs/Models/Dimmer.js +61 -0
  83. package/dist/cjs/Models/DiscoveredDevice.js +36 -0
  84. package/dist/cjs/Models/EmailMessage.js +35 -0
  85. package/dist/cjs/Models/EnergyReport.js +35 -0
  86. package/dist/cjs/Models/EnergyReportShard.js +35 -0
  87. package/dist/cjs/Models/Gateway.js +35 -0
  88. package/dist/cjs/Models/Identification.js +38 -0
  89. package/dist/cjs/Models/Kohost.js +96 -0
  90. package/dist/cjs/Models/Lock.js +39 -0
  91. package/dist/cjs/Models/MediaFile.js +48 -0
  92. package/dist/cjs/Models/MediaSource.js +35 -0
  93. package/dist/cjs/Models/MotionSensor.js +35 -0
  94. package/dist/cjs/Models/Order.js +97 -0
  95. package/dist/cjs/Models/Organization.js +34 -0
  96. package/dist/cjs/Models/Product.js +35 -0
  97. package/dist/cjs/Models/Property.js +34 -0
  98. package/dist/cjs/Models/Reservation.js +114 -0
  99. package/dist/cjs/Models/Room.js +217 -0
  100. package/dist/cjs/Models/Scene.js +169 -0
  101. package/dist/cjs/Models/ShortLink.js +35 -0
  102. package/dist/cjs/Models/SmsMessage.js +35 -0
  103. package/dist/cjs/Models/Space.js +97 -0
  104. package/dist/cjs/Models/Switch.js +39 -0
  105. package/dist/cjs/Models/SystemUser.js +55 -0
  106. package/dist/cjs/Models/Thermostat.js +86 -0
  107. package/dist/cjs/Models/Ticket.js +55 -0
  108. package/dist/cjs/Models/User.js +115 -0
  109. package/dist/cjs/Models/WindowCovering.js +55 -0
  110. package/dist/cjs/Models/index.js +72 -0
  111. package/dist/cjs/SocketIoClient/index.js +74 -0
  112. package/dist/cjs/defs/deviceTypes.js +15 -0
  113. package/dist/cjs/defs/formalDeviceTypes.js +6 -0
  114. package/dist/cjs/defs/index.js +11 -0
  115. package/dist/cjs/{index.cjs.js → index.js} +7 -1
  116. package/dist/cjs/schemas/AlarmSchema.d.ts +158 -0
  117. package/dist/cjs/schemas/AnnouncementSchema.d.ts +60 -0
  118. package/dist/cjs/schemas/CameraSchema.d.ts +149 -0
  119. package/dist/cjs/schemas/CategorySchema.d.ts +82 -0
  120. package/dist/cjs/schemas/CourtesySchema.d.ts +148 -0
  121. package/dist/cjs/schemas/CredentialSchema.d.ts +53 -0
  122. package/dist/cjs/schemas/DefinitionsSchema.d.ts +10 -0
  123. package/dist/cjs/schemas/DimmerSchema.d.ts +147 -0
  124. package/dist/cjs/schemas/DiscoveredDeviceSchema.d.ts +39 -0
  125. package/dist/cjs/schemas/EmailMessageSchema.d.ts +49 -0
  126. package/dist/cjs/schemas/EnergyReportSchema.d.ts +57 -0
  127. package/dist/cjs/schemas/EnergyReportShardSchema.d.ts +61 -0
  128. package/dist/cjs/schemas/GatewaySchema.d.ts +145 -0
  129. package/dist/cjs/schemas/IdentificationSchema.d.ts +45 -0
  130. package/dist/cjs/schemas/LockSchema.d.ts +152 -0
  131. package/dist/cjs/schemas/MediaFileSchema.d.ts +43 -0
  132. package/dist/cjs/schemas/MediaSourceSchema.d.ts +244 -0
  133. package/dist/cjs/schemas/MotionSensorSchema.d.ts +143 -0
  134. package/dist/cjs/schemas/OrderSchema.d.ts +91 -0
  135. package/dist/cjs/schemas/OrganizationSchema.d.ts +34 -0
  136. package/dist/cjs/schemas/PaymentSchema.d.ts +33 -0
  137. package/dist/cjs/schemas/ProductSchema.d.ts +66 -0
  138. package/dist/cjs/schemas/PropertySchema.d.ts +144 -0
  139. package/dist/cjs/schemas/ReservationSchema.d.ts +119 -0
  140. package/dist/cjs/schemas/RoomSchema.d.ts +1103 -0
  141. package/dist/cjs/schemas/SceneSchema.d.ts +57 -0
  142. package/dist/cjs/schemas/ShortLinkSchema.d.ts +20 -0
  143. package/dist/cjs/schemas/SmsMessageSchema.d.ts +40 -0
  144. package/dist/cjs/schemas/SpaceSchema.d.ts +73 -0
  145. package/dist/cjs/schemas/SwitchSchema.d.ts +148 -0
  146. package/dist/cjs/schemas/SystemUserSchema.d.ts +194 -0
  147. package/dist/cjs/schemas/ThermostatSchema.d.ts +178 -0
  148. package/dist/cjs/schemas/TicketSchema.d.ts +90 -0
  149. package/dist/cjs/schemas/UserSchema.d.ts +287 -0
  150. package/dist/cjs/schemas/WindowCoveringSchema.d.ts +147 -0
  151. package/dist/cjs/schemas/alarm.json +81 -0
  152. package/dist/cjs/schemas/announcement.json +41 -0
  153. package/dist/cjs/schemas/camera.json +50 -0
  154. package/dist/cjs/schemas/category.json +42 -0
  155. package/dist/cjs/schemas/courtesy.json +48 -0
  156. package/dist/cjs/schemas/credential.json +44 -0
  157. package/dist/cjs/schemas/definitions.json +223 -0
  158. package/dist/cjs/schemas/dimmer.json +42 -0
  159. package/dist/cjs/schemas/discoveredDevice.json +31 -0
  160. package/dist/cjs/schemas/emailMessage.json +71 -0
  161. package/dist/cjs/schemas/energyReport.json +86 -0
  162. package/dist/cjs/schemas/energyReportShard.json +75 -0
  163. package/dist/cjs/schemas/gateway.json +34 -0
  164. package/dist/cjs/schemas/identification.json +61 -0
  165. package/dist/cjs/schemas/lock.json +50 -0
  166. package/dist/cjs/schemas/mediaFile.json +70 -0
  167. package/dist/cjs/schemas/mediaSource.json +187 -0
  168. package/dist/cjs/schemas/motionSensor.json +32 -0
  169. package/dist/cjs/schemas/order.json +182 -0
  170. package/dist/cjs/schemas/organization.json +40 -0
  171. package/dist/cjs/schemas/payment.json +47 -0
  172. package/dist/cjs/schemas/product.json +41 -0
  173. package/dist/cjs/schemas/property.json +347 -0
  174. package/dist/cjs/schemas/reservation.json +137 -0
  175. package/dist/cjs/schemas/room.json +98 -0
  176. package/dist/cjs/schemas/scene.json +121 -0
  177. package/dist/cjs/schemas/shortLink.json +30 -0
  178. package/dist/cjs/schemas/smsMessage.json +61 -0
  179. package/dist/cjs/schemas/space.json +129 -0
  180. package/dist/cjs/schemas/switch.json +44 -0
  181. package/dist/cjs/schemas/systemUser.json +98 -0
  182. package/dist/cjs/schemas/thermostat.json +150 -0
  183. package/dist/cjs/schemas/ticket.json +181 -0
  184. package/dist/cjs/schemas/user.json +170 -0
  185. package/dist/cjs/schemas/windowCovering.json +42 -0
  186. package/dist/cjs/utils/errorFactory.js +8 -0
  187. package/dist/cjs/utils/eventFactory.js +10 -0
  188. package/dist/cjs/utils/getDeviceTypes.js +7 -0
  189. package/dist/cjs/utils/getFormalDeviceType.js +5 -0
  190. package/dist/cjs/utils/index.js +11 -0
  191. package/dist/cjs/utils/schema.js +25 -0
  192. package/dist/esm/Client.js +2013 -637
  193. package/dist/esm/Client.js.map +4 -4
  194. package/dist/esm/Commands.js +499 -120
  195. package/dist/esm/Commands.js.map +3 -3
  196. package/dist/esm/Errors.js +73 -22
  197. package/dist/esm/Errors.js.map +3 -3
  198. package/dist/esm/Events.js +414 -73
  199. package/dist/esm/Events.js.map +3 -3
  200. package/dist/esm/Models.js +3313 -3921
  201. package/dist/esm/Models.js.map +4 -4
  202. package/dist/esm/SocketIoClient.js +4846 -0
  203. package/dist/esm/SocketIoClient.js.map +7 -0
  204. package/dist/esm/defs.js +168 -112
  205. package/dist/esm/defs.js.map +4 -4
  206. package/dist/esm/index.js +17 -10
  207. package/dist/esm/utils.js +451 -73
  208. package/dist/esm/utils.js.map +3 -3
  209. package/dist/useCases/AdminUpdateCustomer.js +1 -1
  210. package/dist/useCases/AssignSpaceToReservation.js +32 -0
  211. package/dist/useCases/{AdminCreateProperty.js → BatchNotifyCheckIn.js} +2 -2
  212. package/dist/useCases/{AdminCreateCustomer.js → BatchNotifyCheckOut.js} +2 -2
  213. package/dist/useCases/BatchNotifyMissedCheckOut.js +32 -0
  214. package/dist/useCases/{AdminUpdateProperty.js → CheckOutReservation.js} +3 -3
  215. package/dist/useCases/{AdminListCustomers.js → CreateAnnouncement.js} +3 -3
  216. package/dist/useCases/CreateCateory.js +32 -0
  217. package/dist/useCases/CreateImageUploadEndpoint.js +32 -0
  218. package/dist/useCases/CreateMediaSource.js +32 -0
  219. package/dist/useCases/CreateOrganization.js +32 -0
  220. package/dist/useCases/{AdminLoginUser.js → CreateProperty.js} +2 -2
  221. package/dist/useCases/DeleteAnnouncement.js +32 -0
  222. package/dist/useCases/DeleteCategory.js +32 -0
  223. package/dist/useCases/DeleteMediaFile.js +32 -0
  224. package/dist/useCases/DeleteMediaSource.js +32 -0
  225. package/dist/useCases/{AdminCreateAdminUser.js → DescribeAnnouncement.js} +4 -4
  226. package/dist/useCases/{ListIntegrations.js → DescribeCategory.js} +3 -3
  227. package/dist/useCases/{DeleteSource.js → DescribeLockCredential.js} +3 -3
  228. package/dist/useCases/{AdminListAdminUsers.js → DescribeMediaSource.js} +3 -3
  229. package/dist/useCases/DescribeMyAccessCredentials.js +32 -0
  230. package/dist/useCases/{AdminDescribeCustomer.js → DescribeOrganization.js} +2 -2
  231. package/dist/useCases/{DescribeIntegration.js → DescribeProduct.js} +2 -2
  232. package/dist/useCases/DescribeProperty.js +32 -0
  233. package/dist/useCases/DescribeReservationEarlyCheckInProducts.js +32 -0
  234. package/dist/useCases/DescribeReservationLateCheckOutProducts.js +32 -0
  235. package/dist/useCases/{AdminDescribeProperty.js → DescribeReservationRoomUpgrades.js} +2 -2
  236. package/dist/useCases/{AdminRefreshToken.js → ListAnnouncements.js} +3 -3
  237. package/dist/useCases/ListCategories.js +32 -0
  238. package/dist/useCases/ListMediaSources.js +32 -0
  239. package/dist/useCases/{CreateSource.js → ListMyOrders.js} +4 -4
  240. package/dist/useCases/{AdminListProperties.js → ListMyTickets.js} +2 -2
  241. package/dist/useCases/ListOrders.js +32 -0
  242. package/dist/useCases/{DeleteIntegration.js → ListOrganizations.js} +3 -3
  243. package/dist/useCases/ListProperties.js +32 -0
  244. package/dist/useCases/ListScenes.js +32 -0
  245. package/dist/useCases/ListTeam.js +32 -0
  246. package/dist/useCases/ListUserOrders.js +32 -0
  247. package/dist/useCases/ListUserSpaces.js +32 -0
  248. package/dist/useCases/LogoutUser.js +32 -0
  249. package/dist/useCases/PurchaseReservationEarlyCheckInProducts.js +32 -0
  250. package/dist/useCases/PurchaseReservationLateCheckOutProducts.js +32 -0
  251. package/dist/useCases/{CreateIntegrationDeviceMapEntry.js → PurchaseReservationRoomUpgrades.js} +2 -2
  252. package/dist/useCases/RequestLoginLink.js +1 -1
  253. package/dist/useCases/{CreateIntegration.js → RequestMyKeyToken.js} +2 -2
  254. package/dist/useCases/RequestPWAToken.js +32 -0
  255. package/dist/useCases/SendCheckInSMS.js +32 -0
  256. package/dist/useCases/SendCheckOutSMS.js +32 -0
  257. package/dist/useCases/SendRoomControlSMS.js +32 -0
  258. package/dist/useCases/{SetSource.js → SetDimmer.js} +2 -2
  259. package/dist/useCases/{DescribeSource.js → SetMediaSource.js} +3 -3
  260. package/dist/useCases/{UpdateSource.js → SetRoomScene.js} +3 -3
  261. package/dist/useCases/SetSpaceScene.js +32 -0
  262. package/dist/useCases/TipUser.js +32 -0
  263. package/dist/useCases/UpdateAnnouncement.js +32 -0
  264. package/dist/useCases/UpdateCategory.js +32 -0
  265. package/dist/useCases/{UpdateIntegration.js → UpdateMediaSource.js} +3 -3
  266. package/dist/useCases/UpdateProperty.js +32 -0
  267. package/dist/useCases/UpdateReservationExpectedArrivalTime.js +32 -0
  268. package/dist/useCases/{ListSources.js → UploadImage.js} +4 -4
  269. package/package.json +37 -14
  270. package/dist/cjs/Commands.js +0 -643
  271. package/dist/cjs/Errors.js +0 -176
  272. package/dist/cjs/Events.js +0 -387
  273. package/dist/cjs/Models.js +0 -3612
  274. package/dist/cjs/defs.js +0 -178
  275. package/dist/cjs/utils.js +0 -250
  276. package/dist/useCases/AdminRequestLoginLink.js +0 -32
  277. package/dist/useCases/DescribeReservationCheckinStatus.js +0 -32
package/dist/esm/defs.js CHANGED
@@ -14,12 +14,12 @@ var require_deviceTypes = __commonJS({
14
14
  "thermostat",
15
15
  "lock",
16
16
  "windowCovering",
17
- "sceneController",
18
17
  "courtesy",
19
18
  "alarm",
20
19
  "camera",
21
- "source",
22
- "motionSensor"
20
+ "mediaSource",
21
+ "motionSensor",
22
+ "gateway"
23
23
  ];
24
24
  module.exports = types;
25
25
  }
@@ -481,8 +481,9 @@ var require_axios = __commonJS({
481
481
  var isFileList = kindOfTest("FileList");
482
482
  var isStream = /* @__PURE__ */ __name((val) => isObject(val) && isFunction(val.pipe), "isStream");
483
483
  var isFormData = /* @__PURE__ */ __name((thing) => {
484
- const pattern = "[object FormData]";
485
- return thing && (typeof FormData === "function" && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern);
484
+ let kind;
485
+ return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance
486
+ kind === "object" && isFunction(thing.toString) && thing.toString() === "[object FormData]"));
486
487
  }, "isFormData");
487
488
  var isURLSearchParams = kindOfTest("URLSearchParams");
488
489
  var trim = /* @__PURE__ */ __name((str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""), "trim");
@@ -645,7 +646,7 @@ var require_axios = __commonJS({
645
646
  var isHTMLForm = kindOfTest("HTMLFormElement");
646
647
  var toCamelCase = /* @__PURE__ */ __name((str) => {
647
648
  return str.toLowerCase().replace(
648
- /[_-\s]([a-z\d])(\w*)/g,
649
+ /[-_\s]([a-z\d])(\w*)/g,
649
650
  /* @__PURE__ */ __name(function replacer(m, p1, p2) {
650
651
  return p1.toUpperCase() + p2;
651
652
  }, "replacer")
@@ -657,8 +658,9 @@ var require_axios = __commonJS({
657
658
  const descriptors2 = Object.getOwnPropertyDescriptors(obj);
658
659
  const reducedDescriptors = {};
659
660
  forEach(descriptors2, (descriptor, name) => {
660
- if (reducer(descriptor, name, obj) !== false) {
661
- reducedDescriptors[name] = descriptor;
661
+ let ret;
662
+ if ((ret = reducer(descriptor, name, obj)) !== false) {
663
+ reducedDescriptors[name] = ret || descriptor;
662
664
  }
663
665
  });
664
666
  Object.defineProperties(obj, reducedDescriptors);
@@ -699,6 +701,25 @@ var require_axios = __commonJS({
699
701
  value = +value;
700
702
  return Number.isFinite(value) ? value : defaultValue;
701
703
  }, "toFiniteNumber");
704
+ var ALPHA = "abcdefghijklmnopqrstuvwxyz";
705
+ var DIGIT = "0123456789";
706
+ var ALPHABET = {
707
+ DIGIT,
708
+ ALPHA,
709
+ ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
710
+ };
711
+ var generateString = /* @__PURE__ */ __name((size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
712
+ let str = "";
713
+ const { length } = alphabet;
714
+ while (size--) {
715
+ str += alphabet[Math.random() * length | 0];
716
+ }
717
+ return str;
718
+ }, "generateString");
719
+ function isSpecCompliantForm(thing) {
720
+ return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === "FormData" && thing[Symbol.iterator]);
721
+ }
722
+ __name(isSpecCompliantForm, "isSpecCompliantForm");
702
723
  var toJSONObject = /* @__PURE__ */ __name((obj) => {
703
724
  const stack = new Array(10);
704
725
  const visit = /* @__PURE__ */ __name((source, i) => {
@@ -721,6 +742,8 @@ var require_axios = __commonJS({
721
742
  }, "visit");
722
743
  return visit(obj, 0);
723
744
  }, "toJSONObject");
745
+ var isAsyncFn = kindOfTest("AsyncFunction");
746
+ var isThenable = /* @__PURE__ */ __name((thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch), "isThenable");
724
747
  var utils = {
725
748
  isArray,
726
749
  isArrayBuffer,
@@ -768,7 +791,12 @@ var require_axios = __commonJS({
768
791
  findKey,
769
792
  global: _global,
770
793
  isContextDefined,
771
- toJSONObject
794
+ ALPHABET,
795
+ generateString,
796
+ isSpecCompliantForm,
797
+ toJSONObject,
798
+ isAsyncFn,
799
+ isThenable
772
800
  };
773
801
  function AxiosError(message, code, config, request, response) {
774
802
  Error.call(this);
@@ -840,8 +868,7 @@ var require_axios = __commonJS({
840
868
  customProps && Object.assign(axiosError, customProps);
841
869
  return axiosError;
842
870
  };
843
- var browser = typeof self == "object" ? self.FormData : window.FormData;
844
- var FormData$2 = browser;
871
+ var httpAdapter = null;
845
872
  function isVisitable(thing) {
846
873
  return utils.isPlainObject(thing) || utils.isArray(thing);
847
874
  }
@@ -866,15 +893,11 @@ var require_axios = __commonJS({
866
893
  var predicates = utils.toFlatObject(utils, {}, null, /* @__PURE__ */ __name(function filter(prop) {
867
894
  return /^is[A-Z]/.test(prop);
868
895
  }, "filter"));
869
- function isSpecCompliant(thing) {
870
- return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === "FormData" && thing[Symbol.iterator];
871
- }
872
- __name(isSpecCompliant, "isSpecCompliant");
873
896
  function toFormData(obj, formData, options) {
874
897
  if (!utils.isObject(obj)) {
875
898
  throw new TypeError("target must be an object");
876
899
  }
877
- formData = formData || new (FormData$2 || FormData)();
900
+ formData = formData || new FormData();
878
901
  options = utils.toFlatObject(options, {
879
902
  metaTokens: true,
880
903
  dots: false,
@@ -887,7 +910,7 @@ var require_axios = __commonJS({
887
910
  const dots = options.dots;
888
911
  const indexes = options.indexes;
889
912
  const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
890
- const useBlob = _Blob && isSpecCompliant(formData);
913
+ const useBlob = _Blob && utils.isSpecCompliantForm(formData);
891
914
  if (!utils.isFunction(visitor)) {
892
915
  throw new TypeError("visitor must be a function");
893
916
  }
@@ -912,7 +935,7 @@ var require_axios = __commonJS({
912
935
  if (utils.endsWith(key, "{}")) {
913
936
  key = metaTokens ? key : key.slice(0, -2);
914
937
  value = JSON.stringify(value);
915
- } else if (utils.isArray(value) && isFlatArray(value) || (utils.isFileList(value) || utils.endsWith(key, "[]") && (arr = utils.toArray(value)))) {
938
+ } else if (utils.isArray(value) && isFlatArray(value) || (utils.isFileList(value) || utils.endsWith(key, "[]")) && (arr = utils.toArray(value))) {
916
939
  key = removeBrackets(key);
917
940
  arr.forEach(/* @__PURE__ */ __name(function each(el, index) {
918
941
  !(utils.isUndefined(el) || el === null) && formData.append(
@@ -1025,6 +1048,9 @@ var require_axios = __commonJS({
1025
1048
  }
1026
1049
  __name(buildURL, "buildURL");
1027
1050
  var InterceptorManager = class {
1051
+ static {
1052
+ __name(this, "InterceptorManager");
1053
+ }
1028
1054
  constructor() {
1029
1055
  this.handlers = [];
1030
1056
  }
@@ -1085,7 +1111,6 @@ var require_axios = __commonJS({
1085
1111
  }, "forEachHandler"));
1086
1112
  }
1087
1113
  };
1088
- __name(InterceptorManager, "InterceptorManager");
1089
1114
  var InterceptorManager$1 = InterceptorManager;
1090
1115
  var transitionalDefaults = {
1091
1116
  silentJSONParsing: true,
@@ -1093,7 +1118,8 @@ var require_axios = __commonJS({
1093
1118
  clarifyTimeoutError: false
1094
1119
  };
1095
1120
  var URLSearchParams$1 = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams;
1096
- var FormData$1 = FormData;
1121
+ var FormData$1 = typeof FormData !== "undefined" ? FormData : null;
1122
+ var Blob$1 = typeof Blob !== "undefined" ? Blob : null;
1097
1123
  var isStandardBrowserEnv = (() => {
1098
1124
  let product;
1099
1125
  if (typeof navigator !== "undefined" && ((product = navigator.product) === "ReactNative" || product === "NativeScript" || product === "NS")) {
@@ -1110,7 +1136,7 @@ var require_axios = __commonJS({
1110
1136
  classes: {
1111
1137
  URLSearchParams: URLSearchParams$1,
1112
1138
  FormData: FormData$1,
1113
- Blob
1139
+ Blob: Blob$1
1114
1140
  },
1115
1141
  isStandardBrowserEnv,
1116
1142
  isStandardBrowserWebWorkerEnv,
@@ -1181,9 +1207,6 @@ var require_axios = __commonJS({
1181
1207
  return null;
1182
1208
  }
1183
1209
  __name(formDataToJSON, "formDataToJSON");
1184
- var DEFAULT_CONTENT_TYPE = {
1185
- "Content-Type": void 0
1186
- };
1187
1210
  function stringifySafely(rawValue, parser, encoder) {
1188
1211
  if (utils.isString(rawValue)) {
1189
1212
  try {
@@ -1283,16 +1306,14 @@ var require_axios = __commonJS({
1283
1306
  }, "validateStatus"),
1284
1307
  headers: {
1285
1308
  common: {
1286
- "Accept": "application/json, text/plain, */*"
1309
+ "Accept": "application/json, text/plain, */*",
1310
+ "Content-Type": void 0
1287
1311
  }
1288
1312
  }
1289
1313
  };
1290
- utils.forEach(["delete", "get", "head"], /* @__PURE__ */ __name(function forEachMethodNoData(method) {
1314
+ utils.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => {
1291
1315
  defaults.headers[method] = {};
1292
- }, "forEachMethodNoData"));
1293
- utils.forEach(["post", "put", "patch"], /* @__PURE__ */ __name(function forEachMethodWithData(method) {
1294
- defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
1295
- }, "forEachMethodWithData"));
1316
+ });
1296
1317
  var defaults$1 = defaults;
1297
1318
  var ignoreDuplicateOf = utils.toObjectSet([
1298
1319
  "age",
@@ -1359,14 +1380,14 @@ var require_axios = __commonJS({
1359
1380
  return tokens;
1360
1381
  }
1361
1382
  __name(parseTokens, "parseTokens");
1362
- function isValidHeaderName(str) {
1363
- return /^[-_a-zA-Z]+$/.test(str.trim());
1364
- }
1365
- __name(isValidHeaderName, "isValidHeaderName");
1366
- function matchHeaderValue(context, value, header, filter) {
1383
+ var isValidHeaderName = /* @__PURE__ */ __name((str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()), "isValidHeaderName");
1384
+ function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
1367
1385
  if (utils.isFunction(filter)) {
1368
1386
  return filter.call(this, value, header);
1369
1387
  }
1388
+ if (isHeaderNameFilter) {
1389
+ value = header;
1390
+ }
1370
1391
  if (!utils.isString(value))
1371
1392
  return;
1372
1393
  if (utils.isString(filter)) {
@@ -1396,6 +1417,9 @@ var require_axios = __commonJS({
1396
1417
  }
1397
1418
  __name(buildAccessors, "buildAccessors");
1398
1419
  var AxiosHeaders = class {
1420
+ static {
1421
+ __name(this, "AxiosHeaders");
1422
+ }
1399
1423
  constructor(headers) {
1400
1424
  headers && this.set(headers);
1401
1425
  }
@@ -1448,7 +1472,7 @@ var require_axios = __commonJS({
1448
1472
  header = normalizeHeader(header);
1449
1473
  if (header) {
1450
1474
  const key = utils.findKey(this, header);
1451
- return !!(key && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
1475
+ return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
1452
1476
  }
1453
1477
  return false;
1454
1478
  }
@@ -1473,8 +1497,18 @@ var require_axios = __commonJS({
1473
1497
  }
1474
1498
  return deleted;
1475
1499
  }
1476
- clear() {
1477
- return Object.keys(this).forEach(this.delete.bind(this));
1500
+ clear(matcher) {
1501
+ const keys = Object.keys(this);
1502
+ let i = keys.length;
1503
+ let deleted = false;
1504
+ while (i--) {
1505
+ const key = keys[i];
1506
+ if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
1507
+ delete this[key];
1508
+ deleted = true;
1509
+ }
1510
+ }
1511
+ return deleted;
1478
1512
  }
1479
1513
  normalize(format) {
1480
1514
  const self2 = this;
@@ -1540,9 +1574,16 @@ var require_axios = __commonJS({
1540
1574
  return this;
1541
1575
  }
1542
1576
  };
1543
- __name(AxiosHeaders, "AxiosHeaders");
1544
- AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent"]);
1545
- utils.freezeMethods(AxiosHeaders.prototype);
1577
+ AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
1578
+ utils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {
1579
+ let mapped = key[0].toUpperCase() + key.slice(1);
1580
+ return {
1581
+ get: () => value,
1582
+ set(headerValue) {
1583
+ this[mapped] = headerValue;
1584
+ }
1585
+ };
1586
+ });
1546
1587
  utils.freezeMethods(AxiosHeaders);
1547
1588
  var AxiosHeaders$1 = AxiosHeaders;
1548
1589
  function transformData(fns, response) {
@@ -1569,7 +1610,6 @@ var require_axios = __commonJS({
1569
1610
  utils.inherits(CanceledError, AxiosError, {
1570
1611
  __CANCEL__: true
1571
1612
  });
1572
- var httpAdapter = null;
1573
1613
  function settle(resolve, reject, response) {
1574
1614
  const validateStatus = response.config.validateStatus;
1575
1615
  if (!response.status || !validateStatus || validateStatus(response.status)) {
@@ -1763,8 +1803,15 @@ var require_axios = __commonJS({
1763
1803
  }
1764
1804
  }
1765
1805
  __name(done, "done");
1766
- if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {
1767
- requestHeaders.setContentType(false);
1806
+ let contentType;
1807
+ if (utils.isFormData(requestData)) {
1808
+ if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {
1809
+ requestHeaders.setContentType(false);
1810
+ } else if (!requestHeaders.getContentType(/^\s*multipart\/form-data/)) {
1811
+ requestHeaders.setContentType("multipart/form-data");
1812
+ } else if (utils.isString(contentType = requestHeaders.getContentType())) {
1813
+ requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, "$1"));
1814
+ }
1768
1815
  }
1769
1816
  let request = new XMLHttpRequest();
1770
1817
  if (config.auth) {
@@ -1898,31 +1945,39 @@ var require_axios = __commonJS({
1898
1945
  Object.defineProperty(fn, "adapterName", { value });
1899
1946
  }
1900
1947
  });
1948
+ var renderReason = /* @__PURE__ */ __name((reason) => `- ${reason}`, "renderReason");
1949
+ var isResolvedHandle = /* @__PURE__ */ __name((adapter) => utils.isFunction(adapter) || adapter === null || adapter === false, "isResolvedHandle");
1901
1950
  var adapters = {
1902
1951
  getAdapter: (adapters2) => {
1903
1952
  adapters2 = utils.isArray(adapters2) ? adapters2 : [adapters2];
1904
1953
  const { length } = adapters2;
1905
1954
  let nameOrAdapter;
1906
1955
  let adapter;
1956
+ const rejectedReasons = {};
1907
1957
  for (let i = 0; i < length; i++) {
1908
1958
  nameOrAdapter = adapters2[i];
1909
- if (adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter) {
1959
+ let id;
1960
+ adapter = nameOrAdapter;
1961
+ if (!isResolvedHandle(nameOrAdapter)) {
1962
+ adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
1963
+ if (adapter === void 0) {
1964
+ throw new AxiosError(`Unknown adapter '${id}'`);
1965
+ }
1966
+ }
1967
+ if (adapter) {
1910
1968
  break;
1911
1969
  }
1970
+ rejectedReasons[id || "#" + i] = adapter;
1912
1971
  }
1913
1972
  if (!adapter) {
1914
- if (adapter === false) {
1915
- throw new AxiosError(
1916
- `Adapter ${nameOrAdapter} is not supported by the environment`,
1917
- "ERR_NOT_SUPPORT"
1918
- );
1919
- }
1920
- throw new Error(
1921
- utils.hasOwnProp(knownAdapters, nameOrAdapter) ? `Adapter '${nameOrAdapter}' is not available in the build` : `Unknown adapter '${nameOrAdapter}'`
1973
+ const reasons = Object.entries(rejectedReasons).map(
1974
+ ([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
1975
+ );
1976
+ let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
1977
+ throw new AxiosError(
1978
+ `There is no suitable adapter to dispatch the request ` + s,
1979
+ "ERR_NOT_SUPPORT"
1922
1980
  );
1923
- }
1924
- if (!utils.isFunction(adapter)) {
1925
- throw new TypeError("adapter is not a function");
1926
1981
  }
1927
1982
  return adapter;
1928
1983
  },
@@ -2048,7 +2103,7 @@ var require_axios = __commonJS({
2048
2103
  validateStatus: mergeDirectKeys,
2049
2104
  headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
2050
2105
  };
2051
- utils.forEach(Object.keys(config1).concat(Object.keys(config2)), /* @__PURE__ */ __name(function computeConfigValue(prop) {
2106
+ utils.forEach(Object.keys(Object.assign({}, config1, config2)), /* @__PURE__ */ __name(function computeConfigValue(prop) {
2052
2107
  const merge2 = mergeMap[prop] || mergeDeepProperties;
2053
2108
  const configValue = merge2(config1[prop], config2[prop], prop);
2054
2109
  utils.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
@@ -2056,7 +2111,7 @@ var require_axios = __commonJS({
2056
2111
  return config;
2057
2112
  }
2058
2113
  __name(mergeConfig, "mergeConfig");
2059
- var VERSION = "1.2.3";
2114
+ var VERSION = "1.5.1";
2060
2115
  var validators$1 = {};
2061
2116
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => {
2062
2117
  validators$1[type] = /* @__PURE__ */ __name(function validator2(thing) {
@@ -2117,6 +2172,9 @@ var require_axios = __commonJS({
2117
2172
  };
2118
2173
  var validators = validator.validators;
2119
2174
  var Axios = class {
2175
+ static {
2176
+ __name(this, "Axios");
2177
+ }
2120
2178
  constructor(instanceConfig) {
2121
2179
  this.defaults = instanceConfig;
2122
2180
  this.interceptors = {
@@ -2148,19 +2206,24 @@ var require_axios = __commonJS({
2148
2206
  clarifyTimeoutError: validators.transitional(validators.boolean)
2149
2207
  }, false);
2150
2208
  }
2151
- if (paramsSerializer !== void 0) {
2152
- validator.assertOptions(paramsSerializer, {
2153
- encode: validators.function,
2154
- serialize: validators.function
2155
- }, true);
2209
+ if (paramsSerializer != null) {
2210
+ if (utils.isFunction(paramsSerializer)) {
2211
+ config.paramsSerializer = {
2212
+ serialize: paramsSerializer
2213
+ };
2214
+ } else {
2215
+ validator.assertOptions(paramsSerializer, {
2216
+ encode: validators.function,
2217
+ serialize: validators.function
2218
+ }, true);
2219
+ }
2156
2220
  }
2157
2221
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
2158
- let contextHeaders;
2159
- contextHeaders = headers && utils.merge(
2222
+ let contextHeaders = headers && utils.merge(
2160
2223
  headers.common,
2161
2224
  headers[config.method]
2162
2225
  );
2163
- contextHeaders && utils.forEach(
2226
+ headers && utils.forEach(
2164
2227
  ["delete", "get", "head", "post", "put", "patch", "common"],
2165
2228
  (method) => {
2166
2229
  delete headers[method];
@@ -2225,7 +2288,6 @@ var require_axios = __commonJS({
2225
2288
  return buildURL(fullPath, config.params, config.paramsSerializer);
2226
2289
  }
2227
2290
  };
2228
- __name(Axios, "Axios");
2229
2291
  utils.forEach(["delete", "get", "head", "options"], /* @__PURE__ */ __name(function forEachMethodNoData(method) {
2230
2292
  Axios.prototype[method] = function(url, config) {
2231
2293
  return this.request(mergeConfig(config || {}, {
@@ -2253,7 +2315,10 @@ var require_axios = __commonJS({
2253
2315
  Axios.prototype[method + "Form"] = generateHTTPMethod(true);
2254
2316
  }, "forEachMethodWithData"));
2255
2317
  var Axios$1 = Axios;
2256
- var CancelToken = class {
2318
+ var CancelToken = class _CancelToken {
2319
+ static {
2320
+ __name(this, "CancelToken");
2321
+ }
2257
2322
  constructor(executor) {
2258
2323
  if (typeof executor !== "function") {
2259
2324
  throw new TypeError("executor must be a function.");
@@ -2331,7 +2396,7 @@ var require_axios = __commonJS({
2331
2396
  */
2332
2397
  static source() {
2333
2398
  let cancel;
2334
- const token = new CancelToken(/* @__PURE__ */ __name(function executor(c) {
2399
+ const token = new _CancelToken(/* @__PURE__ */ __name(function executor(c) {
2335
2400
  cancel = c;
2336
2401
  }, "executor"));
2337
2402
  return {
@@ -2340,7 +2405,6 @@ var require_axios = __commonJS({
2340
2405
  };
2341
2406
  }
2342
2407
  };
2343
- __name(CancelToken, "CancelToken");
2344
2408
  var CancelToken$1 = CancelToken;
2345
2409
  function spread(callback) {
2346
2410
  return /* @__PURE__ */ __name(function wrap(arr) {
@@ -2449,6 +2513,7 @@ var require_axios = __commonJS({
2449
2513
  axios.mergeConfig = mergeConfig;
2450
2514
  axios.AxiosHeaders = AxiosHeaders$1;
2451
2515
  axios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);
2516
+ axios.getAdapter = adapters.getAdapter;
2452
2517
  axios.HttpStatusCode = HttpStatusCode$1;
2453
2518
  axios.default = axios;
2454
2519
  module.exports = axios;
@@ -2460,7 +2525,10 @@ var require_Client = __commonJS({
2460
2525
  "src/Client/index.js"(exports, module) {
2461
2526
  var { EventEmitter } = require_events();
2462
2527
  var axios = require_axios();
2463
- var KohostApiClient = class extends EventEmitter {
2528
+ var KohostApiClient = class _KohostApiClient extends EventEmitter {
2529
+ static {
2530
+ __name(this, "KohostApiClient");
2531
+ }
2464
2532
  /*
2465
2533
  @param {Object} options - The options to create the client
2466
2534
  @param {String} options.propertyId - The property ID
@@ -2471,6 +2539,8 @@ var require_Client = __commonJS({
2471
2539
  constructor(options = {
2472
2540
  url: "",
2473
2541
  propertyId: "",
2542
+ organizationId: "",
2543
+ apiKey: "",
2474
2544
  headers: {}
2475
2545
  }) {
2476
2546
  super();
@@ -2480,32 +2550,30 @@ var require_Client = __commonJS({
2480
2550
  throw new Error("options.property is required");
2481
2551
  this.options = options;
2482
2552
  this.isBrowser = typeof window !== "undefined";
2483
- this._http = axios.create({
2553
+ this.isRefreshingToken = false;
2554
+ const config = {
2484
2555
  baseURL: options.url,
2485
2556
  responseType: "json",
2486
2557
  withCredentials: true,
2487
2558
  headers: {
2488
2559
  "Content-Type": "application/json",
2489
2560
  Accept: "application/json",
2490
- [KohostApiClient.defs.propertyHeader]: options.propertyId,
2561
+ [_KohostApiClient.defs.propertyHeader]: options.propertyId,
2491
2562
  ...options.headers
2492
2563
  }
2493
- });
2564
+ };
2565
+ if (options.apiKey) {
2566
+ config.headers[_KohostApiClient.defs.apiKeyHeader] = options.apiKey;
2567
+ }
2568
+ this._http = axios.create(config);
2494
2569
  this._http.interceptors.response.use(
2495
2570
  this._handleResponse.bind(this),
2496
2571
  this._handleResponseError.bind(this)
2497
2572
  );
2498
- this._http.interceptors.request.use((config) => {
2499
- if (!this.isBrowser) {
2500
- config.headers[KohostApiClient.defs.authTokenHeader] = this.authToken;
2501
- }
2502
- return config;
2503
- });
2504
2573
  }
2505
2574
  static get defs() {
2506
2575
  return {
2507
- authTokenHeader: "X-Auth-Token",
2508
- refreshTokenHeader: "X-Refresh-Token",
2576
+ apiKeyHeader: "X-Api-Key",
2509
2577
  propertyHeader: "X-Property-Id"
2510
2578
  };
2511
2579
  }
@@ -2516,12 +2584,6 @@ var require_Client = __commonJS({
2516
2584
  response.pagination = response.data.pagination;
2517
2585
  response.data = response.data.data;
2518
2586
  }
2519
- if (!this.isBrowser && response.headers[this.authTokenHeaderKey]) {
2520
- this.authToken = response.headers[this.authTokenHeaderKey];
2521
- }
2522
- if (!this.isBrowser && response.headers[this.refreshTokenHeaderKey]) {
2523
- this.refreshToken = response.headers[this.refreshTokenHeaderKey];
2524
- }
2525
2587
  return response;
2526
2588
  } catch (error) {
2527
2589
  return Promise.reject(error);
@@ -2537,48 +2599,42 @@ var require_Client = __commonJS({
2537
2599
  try {
2538
2600
  const expectedError = status >= 400 && status < 500;
2539
2601
  const newTokensNeeded = expectedError && errorType === "TokenExpiredError";
2602
+ if (expectedError && errorMessage === "Phone Verification is required") {
2603
+ this._onPhoneVerificationRequired();
2604
+ return Promise.reject(error);
2605
+ }
2540
2606
  if (expectedError && errorMessage === "Login Required") {
2541
2607
  this._onLoginRequired();
2542
2608
  return Promise.reject(error);
2543
2609
  }
2544
- if (expectedError && errorMessage === "No token provided") {
2610
+ if (expectedError && errorMessage === "No auth header or cookie provided") {
2545
2611
  this._onLoginRequired();
2546
2612
  return Promise.reject(error);
2547
2613
  }
2548
2614
  if (expectedError && newTokensNeeded) {
2549
- return this.RefreshToken().then(() => {
2550
- return this._http(originalReq);
2551
- });
2615
+ while (!this.isRefreshingToken) {
2616
+ this.isRefreshingToken = true;
2617
+ return this.RefreshToken().then(() => {
2618
+ this.isRefreshingToken = false;
2619
+ return this._http(originalReq);
2620
+ }).catch((err) => {
2621
+ this.isRefreshingToken = false;
2622
+ return Promise.reject(err);
2623
+ });
2624
+ }
2552
2625
  }
2553
2626
  } catch (error2) {
2554
2627
  console.log(error2);
2555
2628
  }
2556
2629
  return Promise.reject(error);
2557
2630
  }
2558
- get authTokenHeaderKey() {
2559
- return KohostApiClient.defs.authTokenHeader.toLowerCase();
2560
- }
2561
- get refreshTokenHeaderKey() {
2562
- return KohostApiClient.defs.refreshTokenHeader.toLowerCase();
2563
- }
2564
- get lsTokenKey() {
2565
- return `${this.options.propertyId}_${KohostApiClient.defs.authTokenHeader}`;
2566
- }
2567
- get authToken() {
2568
- return this._authToken;
2569
- }
2570
- /*
2571
- @param {String} token - The token to set
2572
- @returns undefined
2573
- */
2574
- set authToken(token) {
2575
- this._authToken = token;
2576
- }
2577
2631
  _onLoginRequired() {
2578
2632
  this.emit("LoginRequired");
2579
2633
  }
2634
+ _onPhoneVerificationRequired() {
2635
+ this.emit("PhoneVerificationRequired");
2636
+ }
2580
2637
  };
2581
- __name(KohostApiClient, "KohostApiClient");
2582
2638
  module.exports = KohostApiClient;
2583
2639
  }
2584
2640
  });