@kohost/api-client 4.5.5 → 4.5.7

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/dist/amqpClient.cjs.map +1 -1
  2. package/dist/amqpClient.js +1 -1
  3. package/dist/{chunk-CL66AXXT.js → chunk-2LO75JET.js} +1 -1
  4. package/dist/{chunk-UKIG7GFX.js → chunk-3AAFXZWE.js} +1 -1
  5. package/dist/{chunk-J726LZFG.js → chunk-3EQLZBG2.js} +1 -1
  6. package/dist/chunk-3EQLZBG2.js.map +1 -0
  7. package/dist/{chunk-H4J6BULN.js → chunk-3H3HWHVU.js} +1 -1
  8. package/dist/{chunk-H4J6BULN.js.map → chunk-3H3HWHVU.js.map} +1 -1
  9. package/dist/chunk-3T6I2STK.js +1 -0
  10. package/dist/chunk-3T6I2STK.js.map +1 -0
  11. package/dist/{chunk-YAZ6Y4QK.js → chunk-5MOS447R.js} +1 -1
  12. package/dist/{chunk-HNKGUVQT.js → chunk-6TEFTYKT.js} +1 -1
  13. package/dist/{chunk-74WBAGSV.js → chunk-C3XWWA3G.js} +1 -1
  14. package/dist/{chunk-EEWDLSCT.js → chunk-C3YJPYYK.js} +1 -1
  15. package/dist/chunk-CA47LICS.js +1 -0
  16. package/dist/{chunk-7ABCCOVA.js.map → chunk-CA47LICS.js.map} +1 -1
  17. package/dist/{chunk-FIY4MTXC.js → chunk-COCKKV55.js} +1 -1
  18. package/dist/{chunk-EFVZZ3UR.js → chunk-CPG6MOMV.js} +1 -1
  19. package/dist/{chunk-CQHD5IHT.js → chunk-FVHMXXO3.js} +1 -1
  20. package/dist/chunk-FVHMXXO3.js.map +1 -0
  21. package/dist/{chunk-CIIC5YSI.js → chunk-FYJXPB5Y.js} +1 -1
  22. package/dist/{chunk-WIZSIXXQ.js → chunk-GM336GLN.js} +1 -1
  23. package/dist/{chunk-KW3HNS5S.js → chunk-GSIQSWOV.js} +1 -1
  24. package/dist/{chunk-AVZIY77R.js → chunk-GYHEX2E7.js} +1 -1
  25. package/dist/{chunk-IHVBHK4S.js → chunk-HTAUENTO.js} +1 -1
  26. package/dist/{chunk-BW6WOT2G.js → chunk-IBPSJJTM.js} +1 -1
  27. package/dist/{chunk-7JLIE2YT.js → chunk-L2TSQW7O.js} +1 -1
  28. package/dist/{chunk-HVRHXRP6.js → chunk-L4MJAT6O.js} +1 -1
  29. package/dist/{chunk-HQZCMOV5.js → chunk-L5467JOC.js} +1 -1
  30. package/dist/chunk-LD2Q53DK.js +1 -0
  31. package/dist/chunk-LD2Q53DK.js.map +1 -0
  32. package/dist/{chunk-PA6CL6LK.js → chunk-LVJ3TK3Q.js} +1 -1
  33. package/dist/{chunk-O42G3HNO.js → chunk-MBBUUDYI.js} +1 -1
  34. package/dist/{chunk-IOFW6KW3.js → chunk-N6F4TAYO.js} +1 -1
  35. package/dist/{chunk-KCHWGYJF.js → chunk-OSKEPPBB.js} +1 -1
  36. package/dist/{chunk-I3T6UG4N.js → chunk-P324RM4C.js} +1 -1
  37. package/dist/{chunk-X4CIRNUQ.js → chunk-QD6H765B.js} +1 -1
  38. package/dist/{chunk-LZDFH4GB.js → chunk-QM7UEU75.js} +1 -1
  39. package/dist/{chunk-UOSPZFQA.js → chunk-QUFNNEC4.js} +1 -1
  40. package/dist/{chunk-QHS6ZPJI.js → chunk-RN36KQLY.js} +1 -1
  41. package/dist/{chunk-IDKLDYJM.js → chunk-RPBN5X2L.js} +1 -1
  42. package/dist/{chunk-QOLVVEU5.js → chunk-RQTHMF7J.js} +1 -1
  43. package/dist/{chunk-2BGFVTK5.js → chunk-S66XU55N.js} +1 -1
  44. package/dist/{chunk-CBGDQUVP.js → chunk-UHXLWWZJ.js} +1 -1
  45. package/dist/{chunk-WHYNHNWY.js → chunk-UP3DEJVA.js} +1 -1
  46. package/dist/{chunk-KUKQHDC5.js → chunk-UPHAKQDV.js} +1 -1
  47. package/dist/{chunk-KUKQHDC5.js.map → chunk-UPHAKQDV.js.map} +1 -1
  48. package/dist/{chunk-AKBP4ULH.js → chunk-UWLGZ2WB.js} +1 -1
  49. package/dist/{chunk-3KZCYHSF.js → chunk-VA3MK3QF.js} +1 -1
  50. package/dist/{chunk-3KZCYHSF.js.map → chunk-VA3MK3QF.js.map} +1 -1
  51. package/dist/{chunk-YHALYQGQ.js → chunk-VRCBKR3Q.js} +1 -1
  52. package/dist/{chunk-FQWI5UT7.js → chunk-VSRMEDWD.js} +1 -1
  53. package/dist/{chunk-Y767NEWB.js → chunk-WP26ORJE.js} +1 -1
  54. package/dist/{chunk-OUOPHOS3.js → chunk-WWFVE3CH.js} +1 -1
  55. package/dist/{chunk-XHPL3YQR.js → chunk-XEYXQ2RE.js} +1 -1
  56. package/dist/{chunk-WSBQZHQ5.js → chunk-XTY7Y6FP.js} +1 -1
  57. package/dist/{chunk-CAALG6EM.js → chunk-XZYMANSA.js} +1 -1
  58. package/dist/{chunk-4HA37GSM.js → chunk-ZDO2YGBQ.js} +1 -1
  59. package/dist/chunk-ZLEBU4GN.js +1 -0
  60. package/dist/{chunk-ZBNPXH3W.js.map → chunk-ZLEBU4GN.js.map} +1 -1
  61. package/dist/commands/index.cjs.map +1 -1
  62. package/dist/commands/index.js +1 -1
  63. package/dist/errors/index.cjs.map +1 -1
  64. package/dist/errors/index.js +1 -1
  65. package/dist/events/index.cjs.map +1 -1
  66. package/dist/events/index.js +1 -1
  67. package/dist/index.cjs +1 -1
  68. package/dist/index.cjs.map +1 -1
  69. package/dist/index.js +1 -1
  70. package/dist/models/alarm.cjs +1 -1
  71. package/dist/models/alarm.cjs.map +1 -1
  72. package/dist/models/alarm.d.cts +1 -1
  73. package/dist/models/alarm.d.ts +1 -1
  74. package/dist/models/alarm.js +1 -1
  75. package/dist/models/announcement.cjs +1 -1
  76. package/dist/models/announcement.cjs.map +1 -1
  77. package/dist/models/announcement.js +1 -1
  78. package/dist/models/automation.cjs +1 -1
  79. package/dist/models/automation.cjs.map +1 -1
  80. package/dist/models/automation.js +1 -1
  81. package/dist/models/camera.cjs +1 -1
  82. package/dist/models/camera.cjs.map +1 -1
  83. package/dist/models/camera.d.cts +5 -5
  84. package/dist/models/camera.d.ts +5 -5
  85. package/dist/models/camera.js +1 -1
  86. package/dist/models/category.cjs +1 -1
  87. package/dist/models/category.cjs.map +1 -1
  88. package/dist/models/category.d.cts +2 -2
  89. package/dist/models/category.d.ts +2 -2
  90. package/dist/models/category.js +1 -1
  91. package/dist/models/courtesy.cjs +1 -1
  92. package/dist/models/courtesy.cjs.map +1 -1
  93. package/dist/models/courtesy.d.cts +1 -1
  94. package/dist/models/courtesy.d.ts +1 -1
  95. package/dist/models/courtesy.js +1 -1
  96. package/dist/models/credential.cjs +1 -1
  97. package/dist/models/credential.cjs.map +1 -1
  98. package/dist/models/credential.d.cts +2 -2
  99. package/dist/models/credential.d.ts +2 -2
  100. package/dist/models/credential.js +1 -1
  101. package/dist/models/deviceRouter.cjs +1 -1
  102. package/dist/models/deviceRouter.cjs.map +1 -1
  103. package/dist/models/deviceRouter.js +1 -1
  104. package/dist/models/dimmer.cjs +1 -1
  105. package/dist/models/dimmer.cjs.map +1 -1
  106. package/dist/models/dimmer.d.cts +1 -1
  107. package/dist/models/dimmer.d.ts +1 -1
  108. package/dist/models/dimmer.js +1 -1
  109. package/dist/models/discoveredDevice.cjs +1 -1
  110. package/dist/models/discoveredDevice.cjs.map +1 -1
  111. package/dist/models/discoveredDevice.js +1 -1
  112. package/dist/models/emailMessage.cjs +1 -1
  113. package/dist/models/emailMessage.cjs.map +1 -1
  114. package/dist/models/emailMessage.js +1 -1
  115. package/dist/models/energyReport.cjs +1 -1
  116. package/dist/models/energyReport.cjs.map +1 -1
  117. package/dist/models/energyReport.js +1 -1
  118. package/dist/models/energyReportShard.cjs +1 -1
  119. package/dist/models/energyReportShard.cjs.map +1 -1
  120. package/dist/models/energyReportShard.js +1 -1
  121. package/dist/models/gateway.cjs +1 -1
  122. package/dist/models/gateway.cjs.map +1 -1
  123. package/dist/models/gateway.d.cts +1 -1
  124. package/dist/models/gateway.d.ts +1 -1
  125. package/dist/models/gateway.js +1 -1
  126. package/dist/models/identification.cjs +1 -1
  127. package/dist/models/identification.cjs.map +1 -1
  128. package/dist/models/identification.js +1 -1
  129. package/dist/models/index.cjs +1 -1
  130. package/dist/models/index.cjs.map +1 -1
  131. package/dist/models/index.js +1 -1
  132. package/dist/models/issue.cjs +1 -1
  133. package/dist/models/issue.cjs.map +1 -1
  134. package/dist/models/issue.js +1 -1
  135. package/dist/models/lock.cjs +1 -1
  136. package/dist/models/lock.cjs.map +1 -1
  137. package/dist/models/lock.d.cts +1 -1
  138. package/dist/models/lock.d.ts +1 -1
  139. package/dist/models/lock.js +1 -1
  140. package/dist/models/log.cjs +1 -1
  141. package/dist/models/log.cjs.map +1 -1
  142. package/dist/models/log.d.cts +1 -1
  143. package/dist/models/log.d.ts +1 -1
  144. package/dist/models/log.js +1 -1
  145. package/dist/models/mediaFile.cjs +1 -1
  146. package/dist/models/mediaFile.cjs.map +1 -1
  147. package/dist/models/mediaFile.js +1 -1
  148. package/dist/models/mediaSource.cjs +1 -1
  149. package/dist/models/mediaSource.cjs.map +1 -1
  150. package/dist/models/mediaSource.d.cts +1 -1
  151. package/dist/models/mediaSource.d.ts +1 -1
  152. package/dist/models/mediaSource.js +1 -1
  153. package/dist/models/motionSensor.cjs +1 -1
  154. package/dist/models/motionSensor.cjs.map +1 -1
  155. package/dist/models/motionSensor.d.cts +1 -1
  156. package/dist/models/motionSensor.d.ts +1 -1
  157. package/dist/models/motionSensor.js +1 -1
  158. package/dist/models/order.cjs +1 -1
  159. package/dist/models/order.cjs.map +1 -1
  160. package/dist/models/order.js +1 -1
  161. package/dist/models/organization.cjs +1 -1
  162. package/dist/models/organization.cjs.map +1 -1
  163. package/dist/models/organization.d.cts +6 -0
  164. package/dist/models/organization.d.ts +6 -0
  165. package/dist/models/organization.js +1 -1
  166. package/dist/models/payment.cjs +1 -1
  167. package/dist/models/payment.cjs.map +1 -1
  168. package/dist/models/payment.js +1 -1
  169. package/dist/models/policy.cjs +1 -1
  170. package/dist/models/policy.cjs.map +1 -1
  171. package/dist/models/policy.js +1 -1
  172. package/dist/models/product.cjs +1 -1
  173. package/dist/models/product.cjs.map +1 -1
  174. package/dist/models/product.d.cts +1 -1
  175. package/dist/models/product.d.ts +1 -1
  176. package/dist/models/product.js +1 -1
  177. package/dist/models/property.cjs +1 -1
  178. package/dist/models/property.cjs.map +1 -1
  179. package/dist/models/property.js +1 -1
  180. package/dist/models/reservation.cjs +1 -1
  181. package/dist/models/reservation.cjs.map +1 -1
  182. package/dist/models/reservation.d.cts +2 -2
  183. package/dist/models/reservation.d.ts +2 -2
  184. package/dist/models/reservation.js +1 -1
  185. package/dist/models/room.cjs +1 -1
  186. package/dist/models/room.cjs.map +1 -1
  187. package/dist/models/room.d.cts +3 -3
  188. package/dist/models/room.d.ts +3 -3
  189. package/dist/models/room.js +1 -1
  190. package/dist/models/scene.cjs +1 -1
  191. package/dist/models/scene.cjs.map +1 -1
  192. package/dist/models/scene.js +1 -1
  193. package/dist/models/shortLink.cjs +1 -1
  194. package/dist/models/shortLink.cjs.map +1 -1
  195. package/dist/models/shortLink.js +1 -1
  196. package/dist/models/smsMessage.cjs +1 -1
  197. package/dist/models/smsMessage.cjs.map +1 -1
  198. package/dist/models/smsMessage.js +1 -1
  199. package/dist/models/space.cjs +1 -1
  200. package/dist/models/space.cjs.map +1 -1
  201. package/dist/models/space.d.cts +2 -2
  202. package/dist/models/space.d.ts +2 -2
  203. package/dist/models/space.js +1 -1
  204. package/dist/models/switch.cjs +1 -1
  205. package/dist/models/switch.cjs.map +1 -1
  206. package/dist/models/switch.d.cts +1 -1
  207. package/dist/models/switch.d.ts +1 -1
  208. package/dist/models/switch.js +1 -1
  209. package/dist/models/systemUser.cjs +1 -1
  210. package/dist/models/systemUser.cjs.map +1 -1
  211. package/dist/models/systemUser.d.cts +2 -2
  212. package/dist/models/systemUser.d.ts +2 -2
  213. package/dist/models/systemUser.js +1 -1
  214. package/dist/models/thermostat.cjs +1 -1
  215. package/dist/models/thermostat.cjs.map +1 -1
  216. package/dist/models/thermostat.d.cts +1 -1
  217. package/dist/models/thermostat.d.ts +1 -1
  218. package/dist/models/thermostat.js +1 -1
  219. package/dist/models/ticket.cjs +1 -1
  220. package/dist/models/ticket.cjs.map +1 -1
  221. package/dist/models/ticket.js +1 -1
  222. package/dist/models/timeSheet.cjs +1 -1
  223. package/dist/models/timeSheet.cjs.map +1 -1
  224. package/dist/models/timeSheet.js +1 -1
  225. package/dist/models/user.cjs +1 -1
  226. package/dist/models/user.cjs.map +1 -1
  227. package/dist/models/user.js +1 -1
  228. package/dist/models/vendor.cjs +1 -1
  229. package/dist/models/vendor.cjs.map +1 -1
  230. package/dist/models/vendor.js +1 -1
  231. package/dist/models/windowCovering.cjs +1 -1
  232. package/dist/models/windowCovering.cjs.map +1 -1
  233. package/dist/models/windowCovering.d.cts +1 -1
  234. package/dist/models/windowCovering.d.ts +1 -1
  235. package/dist/models/windowCovering.js +1 -1
  236. package/dist/useCases/index.cjs.map +1 -1
  237. package/dist/useCases/index.js +1 -1
  238. package/dist/utils.cjs +1 -1
  239. package/dist/utils.cjs.map +1 -1
  240. package/dist/utils.js +1 -1
  241. package/package.json +1 -1
  242. package/dist/chunk-6QIZNOTQ.js +0 -1
  243. package/dist/chunk-6QIZNOTQ.js.map +0 -1
  244. package/dist/chunk-7ABCCOVA.js +0 -1
  245. package/dist/chunk-CQHD5IHT.js.map +0 -1
  246. package/dist/chunk-J726LZFG.js.map +0 -1
  247. package/dist/chunk-VLFQ27ZT.js +0 -1
  248. package/dist/chunk-VLFQ27ZT.js.map +0 -1
  249. package/dist/chunk-ZBNPXH3W.js +0 -1
  250. /package/dist/{chunk-CL66AXXT.js.map → chunk-2LO75JET.js.map} +0 -0
  251. /package/dist/{chunk-UKIG7GFX.js.map → chunk-3AAFXZWE.js.map} +0 -0
  252. /package/dist/{chunk-YAZ6Y4QK.js.map → chunk-5MOS447R.js.map} +0 -0
  253. /package/dist/{chunk-HNKGUVQT.js.map → chunk-6TEFTYKT.js.map} +0 -0
  254. /package/dist/{chunk-74WBAGSV.js.map → chunk-C3XWWA3G.js.map} +0 -0
  255. /package/dist/{chunk-EEWDLSCT.js.map → chunk-C3YJPYYK.js.map} +0 -0
  256. /package/dist/{chunk-FIY4MTXC.js.map → chunk-COCKKV55.js.map} +0 -0
  257. /package/dist/{chunk-EFVZZ3UR.js.map → chunk-CPG6MOMV.js.map} +0 -0
  258. /package/dist/{chunk-CIIC5YSI.js.map → chunk-FYJXPB5Y.js.map} +0 -0
  259. /package/dist/{chunk-WIZSIXXQ.js.map → chunk-GM336GLN.js.map} +0 -0
  260. /package/dist/{chunk-KW3HNS5S.js.map → chunk-GSIQSWOV.js.map} +0 -0
  261. /package/dist/{chunk-AVZIY77R.js.map → chunk-GYHEX2E7.js.map} +0 -0
  262. /package/dist/{chunk-IHVBHK4S.js.map → chunk-HTAUENTO.js.map} +0 -0
  263. /package/dist/{chunk-BW6WOT2G.js.map → chunk-IBPSJJTM.js.map} +0 -0
  264. /package/dist/{chunk-7JLIE2YT.js.map → chunk-L2TSQW7O.js.map} +0 -0
  265. /package/dist/{chunk-HVRHXRP6.js.map → chunk-L4MJAT6O.js.map} +0 -0
  266. /package/dist/{chunk-HQZCMOV5.js.map → chunk-L5467JOC.js.map} +0 -0
  267. /package/dist/{chunk-PA6CL6LK.js.map → chunk-LVJ3TK3Q.js.map} +0 -0
  268. /package/dist/{chunk-O42G3HNO.js.map → chunk-MBBUUDYI.js.map} +0 -0
  269. /package/dist/{chunk-IOFW6KW3.js.map → chunk-N6F4TAYO.js.map} +0 -0
  270. /package/dist/{chunk-KCHWGYJF.js.map → chunk-OSKEPPBB.js.map} +0 -0
  271. /package/dist/{chunk-I3T6UG4N.js.map → chunk-P324RM4C.js.map} +0 -0
  272. /package/dist/{chunk-X4CIRNUQ.js.map → chunk-QD6H765B.js.map} +0 -0
  273. /package/dist/{chunk-LZDFH4GB.js.map → chunk-QM7UEU75.js.map} +0 -0
  274. /package/dist/{chunk-UOSPZFQA.js.map → chunk-QUFNNEC4.js.map} +0 -0
  275. /package/dist/{chunk-QHS6ZPJI.js.map → chunk-RN36KQLY.js.map} +0 -0
  276. /package/dist/{chunk-IDKLDYJM.js.map → chunk-RPBN5X2L.js.map} +0 -0
  277. /package/dist/{chunk-QOLVVEU5.js.map → chunk-RQTHMF7J.js.map} +0 -0
  278. /package/dist/{chunk-2BGFVTK5.js.map → chunk-S66XU55N.js.map} +0 -0
  279. /package/dist/{chunk-CBGDQUVP.js.map → chunk-UHXLWWZJ.js.map} +0 -0
  280. /package/dist/{chunk-WHYNHNWY.js.map → chunk-UP3DEJVA.js.map} +0 -0
  281. /package/dist/{chunk-AKBP4ULH.js.map → chunk-UWLGZ2WB.js.map} +0 -0
  282. /package/dist/{chunk-YHALYQGQ.js.map → chunk-VRCBKR3Q.js.map} +0 -0
  283. /package/dist/{chunk-FQWI5UT7.js.map → chunk-VSRMEDWD.js.map} +0 -0
  284. /package/dist/{chunk-Y767NEWB.js.map → chunk-WP26ORJE.js.map} +0 -0
  285. /package/dist/{chunk-OUOPHOS3.js.map → chunk-WWFVE3CH.js.map} +0 -0
  286. /package/dist/{chunk-XHPL3YQR.js.map → chunk-XEYXQ2RE.js.map} +0 -0
  287. /package/dist/{chunk-WSBQZHQ5.js.map → chunk-XTY7Y6FP.js.map} +0 -0
  288. /package/dist/{chunk-CAALG6EM.js.map → chunk-XZYMANSA.js.map} +0 -0
  289. /package/dist/{chunk-4HA37GSM.js.map → chunk-ZDO2YGBQ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/amqpClient.js","../src/defs.js","../src/errors/index.js","../src/errors/appError.js","../src/errors/authenticationError.js","../src/errors/authorizationError.js","../src/errors/conflictError.js","../src/errors/deviceCommError.js","../src/errors/loginError.js","../src/errors/notFoundError.js","../src/errors/requestError.js","../src/errors/systemCommError.js","../src/errors/tokenExpiredError.js","../src/errors/unprocessableRequestError.js","../src/errors/validationError.js"],"sourcesContent":["import { connect } from \"amqplib\";\nimport { isFatalError } from \"amqplib/lib/connection\";\nimport dbg from \"debug\";\nimport { Buffer } from \"node:buffer\";\nimport * as crypto from \"node:crypto\";\nimport { amqpExchanges as exchanges } from \"./defs\";\nimport * as Errors from \"./errors\";\n\nconst randomUUID = crypto.randomUUID;\n\nconst debug = dbg(\"kohost:amqp-client\");\n\nconst HEADER_KEY_ORGANIZATION_ID = \"X-Organization-Id\";\nconst HEADER_KEY_PROPERTY_ID = \"X-Property-Id\";\nconst HEADER_KEY_DRIVER = \"X-Driver\";\nconst HEADER_KEY_COMMAND_NAME = \"X-Command-Name\";\nconst HEADER_KEY_EVENT_NAME = \"X-Event-Name\";\n\nexport class KohostAMQPClient {\n static get Message() {\n return Message;\n }\n\n static get exchanges() {\n return exchanges;\n }\n static generateCorrelationId() {\n return randomUUID();\n }\n\n static validateMessage(message) {\n if (!message) throw new Error(\"Message is required\");\n }\n\n static parseError(err) {\n let type;\n let message;\n let options = {};\n if (err.message && err.type) {\n const { message: errMessage, type: errType, ...rest } = err;\n type = errType;\n message = errMessage;\n options = rest;\n } else {\n message = err.message || \"Unknown Error\";\n }\n\n debug(\"parseError\", type, message, options);\n\n if (type && Errors[type]) {\n return new Errors[type](message, options);\n }\n\n return new Error(message, options);\n }\n\n static parseMessage(message) {\n let error = null;\n let data = {};\n let query = {};\n let context = {};\n let headers = {};\n\n const isCommand = message?.properties?.type === \"Command\";\n const isEvent = message?.properties?.type === \"Event\";\n\n const messageHeaders = message?.properties?.headers || {};\n\n const commandName = messageHeaders[HEADER_KEY_COMMAND_NAME] || null;\n const eventName = messageHeaders[HEADER_KEY_EVENT_NAME] || null;\n\n if (message.content) {\n try {\n const payload =\n message.properties?.contentType === \"application/json\"\n ? JSON.parse(message.content.toString())\n : message.content.toString();\n data = payload?.data || {};\n error = payload?.error;\n query = payload?.query || {};\n context = payload?.context || {};\n } catch (error) {\n debug(\"error parsing content\", error);\n data = message.content.toString();\n }\n }\n\n if (message?.properties?.headers) {\n const orgHeader = message.properties.headers[HEADER_KEY_ORGANIZATION_ID];\n const propertyHeader = message.properties.headers[HEADER_KEY_PROPERTY_ID];\n const driverHeader = message.properties.headers[HEADER_KEY_DRIVER];\n\n if (orgHeader) {\n context.organizationId = orgHeader;\n headers[HEADER_KEY_ORGANIZATION_ID] = orgHeader;\n }\n\n if (propertyHeader) {\n context.propertyId = propertyHeader;\n headers[HEADER_KEY_PROPERTY_ID] = propertyHeader;\n }\n\n if (driverHeader) {\n context.driver = driverHeader;\n headers[HEADER_KEY_DRIVER] = driverHeader;\n }\n }\n\n const parsed = {};\n\n if (error) parsed.error = this.parseError(error);\n\n parsed.data = data;\n parsed.query = query;\n parsed.context = context;\n parsed.headers = headers;\n\n if (isEvent && eventName) parsed.event = eventName;\n else if (isCommand && commandName) parsed.command = commandName;\n\n debug(\"amqp parsed %o\", parsed);\n\n return parsed;\n }\n\n static getMessage(message) {\n if (!message?.content) return null;\n const payload = JSON.parse(message.content.toString());\n const data = payload?.data;\n return data;\n }\n\n static isFatalError(err) {\n return isFatalError(err);\n }\n\n async createConnection(connection, options = {}) {\n return await connect(connection, options);\n }\n\n static createMessage(content) {\n return new Message(content);\n }\n\n async createChannel(connection) {\n const channel = await connection.createChannel();\n return channel;\n }\n\n async assertExchange(channel, { exchange, type, options }) {\n return await channel.assertExchange(exchange, type, options);\n }\n\n async assertQueue(channel, { queue, options }) {\n return await channel.assertQueue(queue, options);\n }\n\n async bindQueue(channel, { queue, exchange, routingKey, args }) {\n return await channel.bindQueue(queue, exchange, routingKey, args);\n }\n\n async bindExchange(channel, { source, destination, routingKey, args }) {\n return await channel.bindExchange(destination, source, routingKey, args);\n }\n\n async subscribeToQueue(channel, { queue, cb, options }) {\n return await channel.consume(queue, cb, options);\n }\n\n publishToExchange(channel, { exchange, routingKey, content, options }) {\n return channel.publish(exchange, routingKey, content, options);\n }\n}\n\nclass Message {\n constructor(content) {\n this.toExchange = null;\n this.content = content;\n this.options = {\n contentType: \"application/json\",\n timestamp: Date.now(),\n };\n this.routingKey = \"\";\n }\n\n get correlationId() {\n return this.options.correlationId || null;\n }\n\n to({ exchange }) {\n if (typeof exchange === \"undefined\")\n throw new Error(\"Exchange is required\");\n this.toExchange = exchange;\n return this;\n }\n\n withType(type) {\n this.options.type = type;\n return this;\n }\n\n withRoutingKey(routingKey) {\n this.routingKey = routingKey;\n return this;\n }\n\n withHeaders(headers) {\n if (!this.options.headers) this.options.headers = {};\n this.options.headers = { ...this.options.headers, ...headers };\n return this;\n }\n\n withContext(context) {\n for (let key in context) {\n this.withHeaders({ [key]: context[key] });\n }\n return this;\n }\n\n withCorrelationId(correlationId) {\n this.options.correlationId = correlationId;\n return this;\n }\n\n withReplyTo(queue) {\n this.options.replyTo = queue;\n return this;\n }\n\n build() {\n let content = this.content;\n if (content.build && typeof content.build === \"function\")\n content = content.build();\n\n return {\n exchange: this.toExchange,\n content: Buffer.from(JSON.stringify(content)),\n options: this.options,\n routingKey: this.routingKey,\n };\n }\n}\n","export const amqpExchanges = {\n // routes commands based on `command-name` header and in many cases `property-id` header\n Commands: {\n name: \"kohost.commands\",\n type: \"headers\",\n options: {\n durable: true,\n },\n },\n CommandResponses: {\n name: \"kohost.commandResponses\",\n type: \"topic\",\n options: {\n durable: true,\n },\n },\n // routes events based on routing keys\n DriverEvents: {\n name: \"kohost.events.drivers\",\n type: \"topic\",\n options: {\n durable: true,\n },\n },\n AppEvents: {\n name: \"kohost.events.app\",\n type: \"topic\",\n options: {\n durable: true,\n },\n },\n Direct: {\n name: \"kohost.direct\",\n type: \"direct\",\n options: {\n durable: true,\n },\n },\n // dead letter exchange\n dlx: {\n name: \"kohost.dlx\",\n type: \"direct\",\n },\n};\n\nexport const deviceTypes = [\n \"dimmer\",\n \"switch\",\n \"thermostat\",\n \"lock\",\n \"windowCovering\",\n \"courtesy\",\n \"alarm\",\n \"camera\",\n \"mediaSource\",\n \"motionSensor\",\n \"gateway\",\n];\n","// This file is auto-generated. Do not edit this file manually.\n// Generated on: 2025-03-20T14:07:48.531Z\n\nexport * from \"./appError\";\nexport * from \"./authenticationError\";\nexport * from \"./authorizationError\";\nexport * from \"./conflictError\";\nexport * from \"./deviceCommError\";\nexport * from \"./loginError\";\nexport * from \"./notFoundError\";\nexport * from \"./requestError\";\nexport * from \"./systemCommError\";\nexport * from \"./tokenExpiredError\";\nexport * from \"./unprocessableRequestError\";\nexport * from \"./validationError\";","export class AppError extends Error {\n constructor(message = \"Internal Server Error\", options) {\n super(message, options);\n this.type = this.constructor.name;\n this.statusCode = 500;\n this.name = \"AppError\";\n Object.setPrototypeOf(this, AppError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class AuthenticationError extends AppError {\n constructor(message = \"Authentication Error\", options = {}) {\n super(message, options);\n this.statusCode = 401;\n this.name = \"AuthenticationError\";\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class AuthorizationError extends AppError {\n constructor(message = \"Authorization Error\", options = {}) {\n super(message, options);\n this.statusCode = 403;\n this.name = \"AuthorizationError\";\n Object.setPrototypeOf(this, AuthorizationError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class ConflictError extends AppError {\n constructor(message = \"Bad Request\", options = {}) {\n super(message, options);\n this.statusCode = 409;\n this.name = \"ConflictError\";\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class DeviceCommError extends AppError {\n constructor(message = \"Device Communication Error\", options = {}) {\n super(message, options);\n this.statusCode = 503;\n this.name = \"DeviceCommError\";\n Object.setPrototypeOf(this, DeviceCommError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class LoginError extends AppError {\n constructor(message = \"Invalid Login information provided\", options = {}) {\n super(message, options);\n this.statusCode = 401;\n this.name = \"LoginError\";\n Object.setPrototypeOf(this, LoginError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class NotFoundError extends AppError {\n constructor(message = \"Resource Not Found\", options = {}) {\n super(message, options);\n this.statusCode = 404;\n this.name = \"NotFoundError\";\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class RequestError extends AppError {\n constructor(message = \"Bad Request\", options = {}) {\n super(message, options);\n this.statusCode = 400;\n this.name = \"RequestError\";\n Object.setPrototypeOf(this, RequestError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class SystemCommError extends AppError {\n constructor(message = \"System Communication Error\", options = {}) {\n super(message, options);\n this.statusCode = 503;\n this.name = \"SystemCommError\";\n Object.setPrototypeOf(this, SystemCommError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class TokenExpiredError extends AppError {\n constructor(message = \"Token Expired\", options = {}) {\n super(message, options);\n this.statusCode = 401;\n this.name = \"TokenExpiredError\";\n Object.setPrototypeOf(this, TokenExpiredError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class UnprocessableRequestError extends AppError {\n constructor(message = \"Unprocessable Request Error\", options = {}) {\n super(message, options);\n this.statusCode = 422;\n this.name = \"UnprocessableRequestError\";\n Object.setPrototypeOf(this, UnprocessableRequestError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class ValidationError extends AppError {\n constructor(message = \"Validation Error\", options = {}) {\n super(message, options);\n this.statusCode = 400;\n this.name = \"ValidationError\";\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n"],"mappings":"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","names":["randomUUID","dbg","error"]}
1
+ {"version":3,"sources":["../src/amqpClient.js","../src/defs.js","../src/errors/index.js","../src/errors/appError.js","../src/errors/authenticationError.js","../src/errors/authorizationError.js","../src/errors/conflictError.js","../src/errors/deviceCommError.js","../src/errors/loginError.js","../src/errors/notFoundError.js","../src/errors/requestError.js","../src/errors/systemCommError.js","../src/errors/tokenExpiredError.js","../src/errors/unprocessableRequestError.js","../src/errors/validationError.js"],"sourcesContent":["import { connect } from \"amqplib\";\nimport { isFatalError } from \"amqplib/lib/connection\";\nimport dbg from \"debug\";\nimport { Buffer } from \"node:buffer\";\nimport * as crypto from \"node:crypto\";\nimport { amqpExchanges as exchanges } from \"./defs\";\nimport * as Errors from \"./errors\";\n\nconst randomUUID = crypto.randomUUID;\n\nconst debug = dbg(\"kohost:amqp-client\");\n\nconst HEADER_KEY_ORGANIZATION_ID = \"X-Organization-Id\";\nconst HEADER_KEY_PROPERTY_ID = \"X-Property-Id\";\nconst HEADER_KEY_DRIVER = \"X-Driver\";\nconst HEADER_KEY_COMMAND_NAME = \"X-Command-Name\";\nconst HEADER_KEY_EVENT_NAME = \"X-Event-Name\";\n\nexport class KohostAMQPClient {\n static get Message() {\n return Message;\n }\n\n static get exchanges() {\n return exchanges;\n }\n static generateCorrelationId() {\n return randomUUID();\n }\n\n static validateMessage(message) {\n if (!message) throw new Error(\"Message is required\");\n }\n\n static parseError(err) {\n let type;\n let message;\n let options = {};\n if (err.message && err.type) {\n const { message: errMessage, type: errType, ...rest } = err;\n type = errType;\n message = errMessage;\n options = rest;\n } else {\n message = err.message || \"Unknown Error\";\n }\n\n debug(\"parseError\", type, message, options);\n\n if (type && Errors[type]) {\n return new Errors[type](message, options);\n }\n\n return new Error(message, options);\n }\n\n static parseMessage(message) {\n let error = null;\n let data = {};\n let query = {};\n let context = {};\n let headers = {};\n\n const isCommand = message?.properties?.type === \"Command\";\n const isEvent = message?.properties?.type === \"Event\";\n\n const messageHeaders = message?.properties?.headers || {};\n\n const commandName = messageHeaders[HEADER_KEY_COMMAND_NAME] || null;\n const eventName = messageHeaders[HEADER_KEY_EVENT_NAME] || null;\n\n if (message.content) {\n try {\n const payload =\n message.properties?.contentType === \"application/json\"\n ? JSON.parse(message.content.toString())\n : message.content.toString();\n data = payload?.data || {};\n error = payload?.error;\n query = payload?.query || {};\n context = payload?.context || {};\n } catch (error) {\n debug(\"error parsing content\", error);\n data = message.content.toString();\n }\n }\n\n if (message?.properties?.headers) {\n const orgHeader = message.properties.headers[HEADER_KEY_ORGANIZATION_ID];\n const propertyHeader = message.properties.headers[HEADER_KEY_PROPERTY_ID];\n const driverHeader = message.properties.headers[HEADER_KEY_DRIVER];\n\n if (orgHeader) {\n context.organizationId = orgHeader;\n headers[HEADER_KEY_ORGANIZATION_ID] = orgHeader;\n }\n\n if (propertyHeader) {\n context.propertyId = propertyHeader;\n headers[HEADER_KEY_PROPERTY_ID] = propertyHeader;\n }\n\n if (driverHeader) {\n context.driver = driverHeader;\n headers[HEADER_KEY_DRIVER] = driverHeader;\n }\n }\n\n const parsed = {};\n\n if (error) parsed.error = this.parseError(error);\n\n parsed.data = data;\n parsed.query = query;\n parsed.context = context;\n parsed.headers = headers;\n\n if (isEvent && eventName) parsed.event = eventName;\n else if (isCommand && commandName) parsed.command = commandName;\n\n debug(\"amqp parsed %o\", parsed);\n\n return parsed;\n }\n\n static getMessage(message) {\n if (!message?.content) return null;\n const payload = JSON.parse(message.content.toString());\n const data = payload?.data;\n return data;\n }\n\n static isFatalError(err) {\n return isFatalError(err);\n }\n\n async createConnection(connection, options = {}) {\n return await connect(connection, options);\n }\n\n static createMessage(content) {\n return new Message(content);\n }\n\n async createChannel(connection) {\n const channel = await connection.createChannel();\n return channel;\n }\n\n async assertExchange(channel, { exchange, type, options }) {\n return await channel.assertExchange(exchange, type, options);\n }\n\n async assertQueue(channel, { queue, options }) {\n return await channel.assertQueue(queue, options);\n }\n\n async bindQueue(channel, { queue, exchange, routingKey, args }) {\n return await channel.bindQueue(queue, exchange, routingKey, args);\n }\n\n async bindExchange(channel, { source, destination, routingKey, args }) {\n return await channel.bindExchange(destination, source, routingKey, args);\n }\n\n async subscribeToQueue(channel, { queue, cb, options }) {\n return await channel.consume(queue, cb, options);\n }\n\n publishToExchange(channel, { exchange, routingKey, content, options }) {\n return channel.publish(exchange, routingKey, content, options);\n }\n}\n\nclass Message {\n constructor(content) {\n this.toExchange = null;\n this.content = content;\n this.options = {\n contentType: \"application/json\",\n timestamp: Date.now(),\n };\n this.routingKey = \"\";\n }\n\n get correlationId() {\n return this.options.correlationId || null;\n }\n\n to({ exchange }) {\n if (typeof exchange === \"undefined\")\n throw new Error(\"Exchange is required\");\n this.toExchange = exchange;\n return this;\n }\n\n withType(type) {\n this.options.type = type;\n return this;\n }\n\n withRoutingKey(routingKey) {\n this.routingKey = routingKey;\n return this;\n }\n\n withHeaders(headers) {\n if (!this.options.headers) this.options.headers = {};\n this.options.headers = { ...this.options.headers, ...headers };\n return this;\n }\n\n withContext(context) {\n for (let key in context) {\n this.withHeaders({ [key]: context[key] });\n }\n return this;\n }\n\n withCorrelationId(correlationId) {\n this.options.correlationId = correlationId;\n return this;\n }\n\n withReplyTo(queue) {\n this.options.replyTo = queue;\n return this;\n }\n\n build() {\n let content = this.content;\n if (content.build && typeof content.build === \"function\")\n content = content.build();\n\n return {\n exchange: this.toExchange,\n content: Buffer.from(JSON.stringify(content)),\n options: this.options,\n routingKey: this.routingKey,\n };\n }\n}\n","export const amqpExchanges = {\n // routes commands based on `command-name` header and in many cases `property-id` header\n Commands: {\n name: \"kohost.commands\",\n type: \"headers\",\n options: {\n durable: true,\n },\n },\n CommandResponses: {\n name: \"kohost.commandResponses\",\n type: \"topic\",\n options: {\n durable: true,\n },\n },\n // routes events based on routing keys\n DriverEvents: {\n name: \"kohost.events.drivers\",\n type: \"topic\",\n options: {\n durable: true,\n },\n },\n AppEvents: {\n name: \"kohost.events.app\",\n type: \"topic\",\n options: {\n durable: true,\n },\n },\n Direct: {\n name: \"kohost.direct\",\n type: \"direct\",\n options: {\n durable: true,\n },\n },\n // dead letter exchange\n dlx: {\n name: \"kohost.dlx\",\n type: \"direct\",\n },\n};\n\nexport const deviceTypes = [\n \"dimmer\",\n \"switch\",\n \"thermostat\",\n \"lock\",\n \"windowCovering\",\n \"courtesy\",\n \"alarm\",\n \"camera\",\n \"mediaSource\",\n \"motionSensor\",\n \"gateway\",\n];\n","// This file is auto-generated. Do not edit this file manually.\n// Generated on: 2025-03-23T19:58:23.754Z\n\nexport * from \"./appError\";\nexport * from \"./authenticationError\";\nexport * from \"./authorizationError\";\nexport * from \"./conflictError\";\nexport * from \"./deviceCommError\";\nexport * from \"./loginError\";\nexport * from \"./notFoundError\";\nexport * from \"./requestError\";\nexport * from \"./systemCommError\";\nexport * from \"./tokenExpiredError\";\nexport * from \"./unprocessableRequestError\";\nexport * from \"./validationError\";","export class AppError extends Error {\n constructor(message = \"Internal Server Error\", options) {\n super(message, options);\n this.type = this.constructor.name;\n this.statusCode = 500;\n this.name = \"AppError\";\n Object.setPrototypeOf(this, AppError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class AuthenticationError extends AppError {\n constructor(message = \"Authentication Error\", options = {}) {\n super(message, options);\n this.statusCode = 401;\n this.name = \"AuthenticationError\";\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class AuthorizationError extends AppError {\n constructor(message = \"Authorization Error\", options = {}) {\n super(message, options);\n this.statusCode = 403;\n this.name = \"AuthorizationError\";\n Object.setPrototypeOf(this, AuthorizationError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class ConflictError extends AppError {\n constructor(message = \"Bad Request\", options = {}) {\n super(message, options);\n this.statusCode = 409;\n this.name = \"ConflictError\";\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class DeviceCommError extends AppError {\n constructor(message = \"Device Communication Error\", options = {}) {\n super(message, options);\n this.statusCode = 503;\n this.name = \"DeviceCommError\";\n Object.setPrototypeOf(this, DeviceCommError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class LoginError extends AppError {\n constructor(message = \"Invalid Login information provided\", options = {}) {\n super(message, options);\n this.statusCode = 401;\n this.name = \"LoginError\";\n Object.setPrototypeOf(this, LoginError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class NotFoundError extends AppError {\n constructor(message = \"Resource Not Found\", options = {}) {\n super(message, options);\n this.statusCode = 404;\n this.name = \"NotFoundError\";\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class RequestError extends AppError {\n constructor(message = \"Bad Request\", options = {}) {\n super(message, options);\n this.statusCode = 400;\n this.name = \"RequestError\";\n Object.setPrototypeOf(this, RequestError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class SystemCommError extends AppError {\n constructor(message = \"System Communication Error\", options = {}) {\n super(message, options);\n this.statusCode = 503;\n this.name = \"SystemCommError\";\n Object.setPrototypeOf(this, SystemCommError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class TokenExpiredError extends AppError {\n constructor(message = \"Token Expired\", options = {}) {\n super(message, options);\n this.statusCode = 401;\n this.name = \"TokenExpiredError\";\n Object.setPrototypeOf(this, TokenExpiredError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class UnprocessableRequestError extends AppError {\n constructor(message = \"Unprocessable Request Error\", options = {}) {\n super(message, options);\n this.statusCode = 422;\n this.name = \"UnprocessableRequestError\";\n Object.setPrototypeOf(this, UnprocessableRequestError.prototype);\n }\n}\n","import { AppError } from \"./appError\";\n\nexport class ValidationError extends AppError {\n constructor(message = \"Validation Error\", options = {}) {\n super(message, options);\n this.statusCode = 400;\n this.name = \"ValidationError\";\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n"],"mappings":"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","names":["randomUUID","dbg","error"]}
@@ -1 +1 @@
1
- import{KohostAMQPClient}from"./chunk-EEWDLSCT.js";import"./chunk-H4J6BULN.js";import"./chunk-FU3MLFEZ.js";import"./chunk-S3LGXCUW.js";import"./chunk-R36FVWOK.js";import"./chunk-J3IXW2RX.js";import"./chunk-ELAUVDF4.js";import"./chunk-ZXW3Q5ZK.js";import"./chunk-5FSWHSBF.js";import"./chunk-FWQABD55.js";import"./chunk-WN4Z5JJD.js";import"./chunk-7GGLCJ6I.js";import"./chunk-3AE3KSKI.js";import"./chunk-P3ZPJTJ2.js";import"./chunk-THXOWLL3.js";import"./chunk-XE4OXN2W.js";export{KohostAMQPClient};//# sourceMappingURL=amqpClient.js.map
1
+ import{KohostAMQPClient}from"./chunk-C3YJPYYK.js";import"./chunk-3H3HWHVU.js";import"./chunk-FU3MLFEZ.js";import"./chunk-S3LGXCUW.js";import"./chunk-R36FVWOK.js";import"./chunk-J3IXW2RX.js";import"./chunk-ELAUVDF4.js";import"./chunk-ZXW3Q5ZK.js";import"./chunk-5FSWHSBF.js";import"./chunk-FWQABD55.js";import"./chunk-WN4Z5JJD.js";import"./chunk-7GGLCJ6I.js";import"./chunk-3AE3KSKI.js";import"./chunk-P3ZPJTJ2.js";import"./chunk-THXOWLL3.js";import"./chunk-XE4OXN2W.js";export{KohostAMQPClient};//# sourceMappingURL=amqpClient.js.map
@@ -1 +1 @@
1
- import{validateSystemUser}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var SystemUser=class extends Entity{static{__name(this,"SystemUser")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),void 0!==data.driver&&(this.driver=data.driver),this.firstName=data.firstName,this.lastName=data.lastName,void 0!==data.phone&&(this.phone=data.phone),void 0!==data.email&&(this.email=data.email),void 0!==data.address&&(this.address=data.address),void 0!==data.photo&&(this.photo=data.photo),void 0!==data.jobTitle&&(this.jobTitle=data.jobTitle),void 0!==data.dob&&(this.dob=data.dob),void 0!==data.gender&&(this.gender=data.gender),void 0!==data.roles&&(this.roles=data.roles),void 0!==data.nationality&&(this.nationality=data.nationality),void 0!==data.notes&&(this.notes=data.notes),void 0!==data.files&&(this.files=data.files),void 0!==data.identifications&&(this.identifications=data.identifications),void 0!==data.payments&&(this.payments=data.payments),void 0!==data.revenue&&(this.revenue=data.revenue),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt),void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(SystemUser.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"systemUser.json",title:"System User",description:"A system user is a user that originated from an external 3rd party system.",type:"object",required:["id","firstName","lastName"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"systemUser",enum:["systemUser"]},driver:{$ref:"definitions.json#/definitions/driver"},firstName:{type:"string"},lastName:{type:"string"},phone:{type:["string","null"],pattern:"^\\+[0-9]{1,14}$"},email:{type:["string","null"],format:"email"},address:{$ref:"definitions.json#/definitions/address"},photo:{type:"string"},jobTitle:{type:"string"},dob:{type:"string"},gender:{type:"string",enum:["male","female"]},roles:{type:"array",items:{type:"string",enum:["Guest","User","Manager","Maintenance","Administrator","SuperAdmin"]}},nationality:{type:"string",minLength:2,maxLength:2},notes:{type:"array",items:{type:"string"}},files:{type:"array",items:{$ref:"mediaFile.json#"}},identifications:{type:"array",items:{$ref:"identification.json#"}},payments:{type:"array",items:{$ref:"payment.json#"}},revenue:{$ref:"definitions.json#/definitions/revenue"},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(SystemUser.prototype,"validator",{get:__name((function(){return validateSystemUser}),"get")});export{SystemUser};//# sourceMappingURL=chunk-CL66AXXT.js.map
1
+ import{validateSystemUser}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var SystemUser=class extends Entity{static{__name(this,"SystemUser")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),void 0!==data.driver&&(this.driver=data.driver),this.firstName=data.firstName,this.lastName=data.lastName,void 0!==data.phone&&(this.phone=data.phone),void 0!==data.email&&(this.email=data.email),void 0!==data.address&&(this.address=data.address),void 0!==data.photo&&(this.photo=data.photo),void 0!==data.jobTitle&&(this.jobTitle=data.jobTitle),void 0!==data.dob&&(this.dob=data.dob),void 0!==data.gender&&(this.gender=data.gender),void 0!==data.roles&&(this.roles=data.roles),void 0!==data.nationality&&(this.nationality=data.nationality),void 0!==data.notes&&(this.notes=data.notes),void 0!==data.files&&(this.files=data.files),void 0!==data.identifications&&(this.identifications=data.identifications),void 0!==data.payments&&(this.payments=data.payments),void 0!==data.revenue&&(this.revenue=data.revenue),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt),void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(SystemUser.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"systemUser.json",title:"System User",description:"A system user is a user that originated from an external 3rd party system.",type:"object",required:["id","firstName","lastName"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"systemUser",enum:["systemUser"]},driver:{$ref:"definitions.json#/definitions/driver"},firstName:{type:"string"},lastName:{type:"string"},phone:{type:["string","null"],pattern:"^\\+[0-9]{1,14}$"},email:{type:["string","null"],format:"email"},address:{$ref:"definitions.json#/definitions/address"},photo:{type:"string"},jobTitle:{type:"string"},dob:{type:"string"},gender:{type:"string",enum:["male","female"]},roles:{type:"array",items:{type:"string",enum:["Guest","User","Manager","Maintenance","Administrator","SuperAdmin"]}},nationality:{type:"string",minLength:2,maxLength:2},notes:{type:"array",items:{type:"string"}},files:{type:"array",items:{$ref:"mediaFile.json#"}},identifications:{type:"array",items:{$ref:"identification.json#"}},payments:{type:"array",items:{$ref:"payment.json#"}},revenue:{$ref:"definitions.json#/definitions/revenue"},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(SystemUser.prototype,"validator",{get:__name((function(){return validateSystemUser}),"get")});export{SystemUser};//# sourceMappingURL=chunk-2LO75JET.js.map
@@ -1 +1 @@
1
- import{validateVendor}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Vendor=class extends Entity{static{__name(this,"Vendor")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),this.name=data.name,void 0!==data.phone&&(this.phone=data.phone),this.email=data.email,void 0!==data.address&&(this.address=data.address),void 0!==data.photo&&(this.photo=data.photo),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}};Object.defineProperty(Vendor.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"vendor.json",title:"Vendor",type:"object",required:["id","name","email"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"vendor",enum:["vendor"]},name:{type:"string"},phone:{type:["string","null"],pattern:"^\\+[0-9]{1,14}$"},email:{type:["string","null"],format:"email"},address:{$ref:"definitions.json#/definitions/address"},photo:{$ref:"mediaFile.json#"},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}}}}),Object.defineProperty(Vendor.prototype,"validator",{get:__name((function(){return validateVendor}),"get")});export{Vendor};//# sourceMappingURL=chunk-UKIG7GFX.js.map
1
+ import{validateVendor}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Vendor=class extends Entity{static{__name(this,"Vendor")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),this.name=data.name,void 0!==data.phone&&(this.phone=data.phone),this.email=data.email,void 0!==data.address&&(this.address=data.address),void 0!==data.photo&&(this.photo=data.photo),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}};Object.defineProperty(Vendor.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"vendor.json",title:"Vendor",type:"object",required:["id","name","email"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"vendor",enum:["vendor"]},name:{type:"string"},phone:{type:["string","null"],pattern:"^\\+[0-9]{1,14}$"},email:{type:["string","null"],format:"email"},address:{$ref:"definitions.json#/definitions/address"},photo:{$ref:"mediaFile.json#"},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}}}}),Object.defineProperty(Vendor.prototype,"validator",{get:__name((function(){return validateVendor}),"get")});export{Vendor};//# sourceMappingURL=chunk-3AAFXZWE.js.map
@@ -1 +1 @@
1
- import{validateCamera}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Camera=class extends Entity{static{__name(this,"Camera")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),void 0!==data.discriminator&&(this.discriminator=data.discriminator),this.type=data.type,void 0!==data.offline&&(this.offline=data.offline),void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),this.driver=data.driver,void 0!==data.liveStreams&&(this.liveStreams=data.liveStreams),void 0!==data.liveStream&&(this.liveStream=data.liveStream),void 0!==data.systemId&&(this.systemId=data.systemId),void 0!==data.watts&&(this.watts=data.watts),void 0!==data.icon&&(this.icon=data.icon),void 0!==data.modelNumber&&(this.modelNumber=data.modelNumber),void 0!==data.serialNumber&&(this.serialNumber=data.serialNumber),void 0!==data.firmwareVersion&&(this.firmwareVersion=data.firmwareVersion)}};Object.defineProperty(Camera.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"camera.json",title:"Camera",description:"Any smart camera",type:"object",required:["id","type","driver"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},discriminator:{type:"string",enum:["doorStation"]},type:{type:"string",enum:["camera"],default:"camera"},offline:{type:"boolean"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},liveStreams:{type:"object",additionalProperties:!1,$comment:"This is now deprecated. Use liveStream instead. This will remain here for backwards compatibility.",properties:{iframe:{type:["string","null"]},hls:{type:["string","null"]},webRTC:{type:["string","null"]},rtsp:{type:["string","null"]}}},liveStream:{type:"object",additionalProperties:!1,properties:{id:{type:"string"},driver:{type:"string",enum:["cloudflare-stream","aws-kinesis","digital-watchdog","mediamtx"]},allowedOrigins:{type:"array",items:{type:"string"}},authRequired:{type:"boolean"},iframe:{type:["string","null"]},hls:{type:["string","null"]},webRTC:{type:["string","null"]},rtsp:{type:["string","null"],description:"Local RTSP stream URL",examples:["rtsp://192.168.1.4:544/channels/1","rtsp://10.145.6.129:8554/unicast"]},previewImage:{type:["string","null"],description:"Source to preview the camera stream",examples:["https://example.com/preview.jpg","data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBYRXhpZgAATU0AKgAAAAgAA1EQAAEAAAABAQAAAFERAAQAAAABAAABAgABAA"]}}},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}}}}),Object.defineProperty(Camera.prototype,"validator",{get:__name((function(){return validateCamera}),"get")});export{Camera};//# sourceMappingURL=chunk-J726LZFG.js.map
1
+ import{validateCamera}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Camera=class extends Entity{static{__name(this,"Camera")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),void 0!==data.discriminator&&(this.discriminator=data.discriminator),this.type=data.type,void 0!==data.offline&&(this.offline=data.offline),void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),this.driver=data.driver,void 0!==data.liveStreams&&(this.liveStreams=data.liveStreams),void 0!==data.liveStream&&(this.liveStream=data.liveStream),void 0!==data.systemId&&(this.systemId=data.systemId),void 0!==data.watts&&(this.watts=data.watts),void 0!==data.icon&&(this.icon=data.icon),void 0!==data.modelNumber&&(this.modelNumber=data.modelNumber),void 0!==data.serialNumber&&(this.serialNumber=data.serialNumber),void 0!==data.firmwareVersion&&(this.firmwareVersion=data.firmwareVersion)}};Object.defineProperty(Camera.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"camera.json",title:"Camera",description:"Any smart camera",type:"object",required:["id","type","driver"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},discriminator:{type:"string",enum:["doorStation"]},type:{type:"string",enum:["camera"],default:"camera"},offline:{type:"boolean"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},liveStreams:{type:"object",additionalProperties:!1,$comment:"This is now deprecated. Use liveStream instead. This will remain here for backwards compatibility.",properties:{iframe:{type:["string","null"]},hls:{type:["string","null"]},webRTC:{type:["string","null"]},rtsp:{type:["string","null"]}}},liveStream:{type:"object",additionalProperties:!1,properties:{id:{type:"string"},driver:{type:"string",enum:["aws-kinesis","cloudflare-stream","doorbird","digital-watchdog","mediamtx"]},allowedOrigins:{type:"array",items:{type:"string"}},authRequired:{type:"boolean"},iframe:{type:["string","null"]},hls:{type:["string","null"]},webRTC:{type:["string","null"]},rtsp:{type:["string","null"],description:"Local RTSP stream URL",examples:["rtsp://192.168.1.4:544/channels/1","rtsp://10.145.6.129:8554/unicast"]},previewImage:{type:["string","null"],description:"Source to preview the camera stream",examples:["https://example.com/preview.jpg","data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBYRXhpZgAATU0AKgAAAAgAA1EQAAEAAAABAQAAAFERAAQAAAABAAABAgABAA"]}}},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}}}}),Object.defineProperty(Camera.prototype,"validator",{get:__name((function(){return validateCamera}),"get")});export{Camera};//# sourceMappingURL=chunk-3EQLZBG2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/models/camera.js"],"sourcesContent":["/* @ts-nocheck */\n/* This file is automatically generated. Do not modify it manually. */\n\nimport { Entity } from \"./entity\";\nimport { validateCamera as validate } from \"../validate\";\n\n/**\n * @typedef {Object} CameraData Any smart camera\n * @property {string} id - Identifier of the object.\n * @property {string} [name]\n * @property {\"doorStation\"} [discriminator]\n * @property {\"camera\"} type - Default: \"camera\"\n * @property {boolean} [offline]\n * @property {(\"button 1\"|\"button 2\"|\"button 3\"|\"button 4\"|\"button 5\"|\"idle\"|\"powerHasBeedApplied\"|\"acMainsDisconnected\"|\"acMainsReconnected\"|\"replaceBatterySoon\"|\"replaceBatteryNow\"|\"batteryOk\"|\"hardwareFailure\"|\"softwareFailure\"|\"hardwareFailureWithCode\"|\"softwareFailureWithCode\"|\"motionDetection\"|\"airFilterNeedsCleaned\"|\"airFilterNeedsReplaced\"|\"smokeDetected\"|\"outsideSafeTemperatureRange\"|\"outsideSafeHumidityRange\"|\"scheduleMaintenance\"|\"doorAjar\"|\"communicationFailure\"|\"communicationOk\"|\"burglarAlarm\"|\"fireAlarm\")[]} [supportedNotifications]\n * @property {{name?: string, timestamp?: number, description?: string}} [notification]\n * @property {(\"adlink\"|\"aws-kinesis\"|\"bacnet\"|\"butler\"|\"comelit\"|\"crestron\"|\"dell\"|\"digital-watchdog\"|\"distech\"|\"dmp\"|\"doorbird\"|\"dormakaba\"|\"dsc\"|\"ecobee\"|\"epson\"|\"geovision-rs\"|\"geovision-as-manager\"|\"honeywell-vista\"|\"igor\"|\"inncom\"|\"isapi\"|\"kohost-k7\"|\"kohost\"|\"lg\"|\"lg-webos\"|\"lapi\"|\"lirc\"|\"mews\"|\"mht\"|\"paxton\"|\"pelican-wireless\"|\"power-shades\"|\"rachio\"|\"rebrandly\"|\"relay\"|\"rtsp\"|\"salto\"|\"salto-irn\"|\"samsung\"|\"se\"|\"sendgrid\"|\"sonifi\"|\"stay-n-touch\"|\"storable\"|\"twilio\"|\"unifi\"|\"valcom\"|\"vivotek\"|\"vizio\"|\"wisenet\"|\"cloudflare-images\"|\"cloudflare-stream\"|\"insperia-privacy\")} driver - Driver used to communicate with the object.\n * @property {{iframe?: string, hls?: string, webRTC?: string, rtsp?: string}} [liveStreams]\n * @property {string} [liveStreams.iframe]\n * @property {string} [liveStreams.hls]\n * @property {string} [liveStreams.webRTC]\n * @property {string} [liveStreams.rtsp]\n * @property {{id?: string, driver?: (\"aws-kinesis\"|\"cloudflare-stream\"|\"doorbird\"|\"digital-watchdog\"|\"mediamtx\"), allowedOrigins?: string[], authRequired?: boolean, iframe?: string, hls?: string, webRTC?: string, rtsp?: string, previewImage?: string}} [liveStream]\n * @property {string} [liveStream.id]\n * @property {(\"aws-kinesis\"|\"cloudflare-stream\"|\"doorbird\"|\"digital-watchdog\"|\"mediamtx\")} [liveStream.driver]\n * @property {string[]} [liveStream.allowedOrigins]\n * @property {boolean} [liveStream.authRequired]\n * @property {string} [liveStream.iframe]\n * @property {string} [liveStream.hls]\n * @property {string} [liveStream.webRTC]\n * @property {string} [liveStream.rtsp] - Local RTSP stream URL\n * @property {string} [liveStream.previewImage] - Source to preview the camera stream\n * @property {string} [systemId] - Identifier of the object, directly related to the system.\n * @property {number} [watts]\n * @property {string} [icon]\n * @property {string} [modelNumber]\n * @property {string} [serialNumber]\n * @property {string} [firmwareVersion]\n */\n\n/**\n * Any smart camera\n * @class Camera\n * @extends {Entity}\n */\nexport class Camera extends Entity {\n /**\n * @constructor\n * @param {CameraData} data - The data to initialize the Camera with\n */\n constructor(data) {\n super(data);\n this.id = data.id;\n if (data.name !== undefined) this.name = data.name;\n if (data.discriminator !== undefined)\n this.discriminator = data.discriminator;\n this.type = data.type;\n if (data.offline !== undefined) this.offline = data.offline;\n if (data.supportedNotifications !== undefined)\n this.supportedNotifications = data.supportedNotifications;\n if (data.notification !== undefined) this.notification = data.notification;\n this.driver = data.driver;\n if (data.liveStreams !== undefined) this.liveStreams = data.liveStreams;\n if (data.liveStream !== undefined) this.liveStream = data.liveStream;\n if (data.systemId !== undefined) this.systemId = data.systemId;\n if (data.watts !== undefined) this.watts = data.watts;\n if (data.icon !== undefined) this.icon = data.icon;\n if (data.modelNumber !== undefined) this.modelNumber = data.modelNumber;\n if (data.serialNumber !== undefined) this.serialNumber = data.serialNumber;\n if (data.firmwareVersion !== undefined)\n this.firmwareVersion = data.firmwareVersion;\n }\n}\n\nObject.defineProperty(Camera.prototype, \"schema\", {\n value: {\n $schema: \"http://json-schema.org/draft-07/schema\",\n $id: \"camera.json\",\n title: \"Camera\",\n description: \"Any smart camera\",\n type: \"object\",\n required: [\"id\", \"type\", \"driver\"],\n additionalProperties: false,\n properties: {\n id: { $ref: \"definitions.json#/definitions/id\" },\n name: { type: \"string\" },\n discriminator: { type: \"string\", enum: [\"doorStation\"] },\n type: { type: \"string\", enum: [\"camera\"], default: \"camera\" },\n offline: { type: \"boolean\" },\n supportedNotifications: {\n $ref: \"definitions.json#/definitions/supportedNotifications\",\n },\n notification: { $ref: \"definitions.json#/definitions/notification\" },\n driver: { $ref: \"definitions.json#/definitions/driver\" },\n liveStreams: {\n type: \"object\",\n additionalProperties: false,\n $comment:\n \"This is now deprecated. Use liveStream instead. This will remain here for backwards compatibility.\",\n properties: {\n iframe: { type: [\"string\", \"null\"] },\n hls: { type: [\"string\", \"null\"] },\n webRTC: { type: [\"string\", \"null\"] },\n rtsp: { type: [\"string\", \"null\"] },\n },\n },\n liveStream: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n id: { type: \"string\" },\n driver: {\n type: \"string\",\n enum: [\n \"aws-kinesis\",\n \"cloudflare-stream\",\n \"doorbird\",\n \"digital-watchdog\",\n \"mediamtx\",\n ],\n },\n allowedOrigins: { type: \"array\", items: { type: \"string\" } },\n authRequired: { type: \"boolean\" },\n iframe: { type: [\"string\", \"null\"] },\n hls: { type: [\"string\", \"null\"] },\n webRTC: { type: [\"string\", \"null\"] },\n rtsp: {\n type: [\"string\", \"null\"],\n description: \"Local RTSP stream URL\",\n examples: [\n \"rtsp://192.168.1.4:544/channels/1\",\n \"rtsp://10.145.6.129:8554/unicast\",\n ],\n },\n previewImage: {\n type: [\"string\", \"null\"],\n description: \"Source to preview the camera stream\",\n examples: [\n \"https://example.com/preview.jpg\",\n \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBYRXhpZgAATU0AKgAAAAgAA1EQAAEAAAABAQAAAFERAAQAAAABAAABAgABAA\",\n ],\n },\n },\n },\n systemId: { $ref: \"definitions.json#/definitions/systemId\" },\n watts: { $ref: \"definitions.json#/definitions/watts\" },\n icon: { type: \"string\" },\n modelNumber: { type: \"string\" },\n serialNumber: { type: \"string\" },\n firmwareVersion: { type: \"string\" },\n },\n },\n});\n\nObject.defineProperty(Camera.prototype, \"validator\", {\n get: function () {\n return validate;\n },\n});\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- import{LoginError}from"./chunk-FU3MLFEZ.js";import{NotFoundError}from"./chunk-S3LGXCUW.js";import{RequestError}from"./chunk-R36FVWOK.js";import{SystemCommError}from"./chunk-J3IXW2RX.js";import{TokenExpiredError}from"./chunk-ELAUVDF4.js";import{UnprocessableRequestError}from"./chunk-ZXW3Q5ZK.js";import{ValidationError}from"./chunk-5FSWHSBF.js";import{AuthenticationError}from"./chunk-FWQABD55.js";import{AuthorizationError}from"./chunk-WN4Z5JJD.js";import{ConflictError}from"./chunk-7GGLCJ6I.js";import{DeviceCommError}from"./chunk-3AE3KSKI.js";import{AppError}from"./chunk-P3ZPJTJ2.js";import{__export}from"./chunk-XE4OXN2W.js";var errors_exports={};__export(errors_exports,{AppError:()=>AppError,AuthenticationError:()=>AuthenticationError,AuthorizationError:()=>AuthorizationError,ConflictError:()=>ConflictError,DeviceCommError:()=>DeviceCommError,LoginError:()=>LoginError,NotFoundError:()=>NotFoundError,RequestError:()=>RequestError,SystemCommError:()=>SystemCommError,TokenExpiredError:()=>TokenExpiredError,UnprocessableRequestError:()=>UnprocessableRequestError,ValidationError:()=>ValidationError});export{errors_exports};//# sourceMappingURL=chunk-H4J6BULN.js.map
1
+ import{LoginError}from"./chunk-FU3MLFEZ.js";import{NotFoundError}from"./chunk-S3LGXCUW.js";import{RequestError}from"./chunk-R36FVWOK.js";import{SystemCommError}from"./chunk-J3IXW2RX.js";import{TokenExpiredError}from"./chunk-ELAUVDF4.js";import{UnprocessableRequestError}from"./chunk-ZXW3Q5ZK.js";import{ValidationError}from"./chunk-5FSWHSBF.js";import{AuthenticationError}from"./chunk-FWQABD55.js";import{AuthorizationError}from"./chunk-WN4Z5JJD.js";import{ConflictError}from"./chunk-7GGLCJ6I.js";import{DeviceCommError}from"./chunk-3AE3KSKI.js";import{AppError}from"./chunk-P3ZPJTJ2.js";import{__export}from"./chunk-XE4OXN2W.js";var errors_exports={};__export(errors_exports,{AppError:()=>AppError,AuthenticationError:()=>AuthenticationError,AuthorizationError:()=>AuthorizationError,ConflictError:()=>ConflictError,DeviceCommError:()=>DeviceCommError,LoginError:()=>LoginError,NotFoundError:()=>NotFoundError,RequestError:()=>RequestError,SystemCommError:()=>SystemCommError,TokenExpiredError:()=>TokenExpiredError,UnprocessableRequestError:()=>UnprocessableRequestError,ValidationError:()=>ValidationError});export{errors_exports};//# sourceMappingURL=chunk-3H3HWHVU.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors/index.js"],"sourcesContent":["// This file is auto-generated. Do not edit this file manually.\n// Generated on: 2025-03-20T14:07:48.531Z\n\nexport * from \"./appError\";\nexport * from \"./authenticationError\";\nexport * from \"./authorizationError\";\nexport * from \"./conflictError\";\nexport * from \"./deviceCommError\";\nexport * from \"./loginError\";\nexport * from \"./notFoundError\";\nexport * from \"./requestError\";\nexport * from \"./systemCommError\";\nexport * from \"./tokenExpiredError\";\nexport * from \"./unprocessableRequestError\";\nexport * from \"./validationError\";"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../src/errors/index.js"],"sourcesContent":["// This file is auto-generated. Do not edit this file manually.\n// Generated on: 2025-03-23T19:58:23.754Z\n\nexport * from \"./appError\";\nexport * from \"./authenticationError\";\nexport * from \"./authorizationError\";\nexport * from \"./conflictError\";\nexport * from \"./deviceCommError\";\nexport * from \"./loginError\";\nexport * from \"./notFoundError\";\nexport * from \"./requestError\";\nexport * from \"./systemCommError\";\nexport * from \"./tokenExpiredError\";\nexport * from \"./unprocessableRequestError\";\nexport * from \"./validationError\";"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ import{validateOrganization}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Organization=class extends Entity{static{__name(this,"Organization")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.accountNumber=data.accountNumber,this.name=data.name,this.smsNumber=data.smsNumber,void 0!==data.properties&&(this.properties=data.properties),void 0!==data.hostname&&(this.hostname=data.hostname),void 0!==data.appManifest&&(this.appManifest=data.appManifest),void 0!==data.tickets&&(this.tickets=data.tickets),void 0!==data.credentials&&(this.credentials=data.credentials),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}};Object.defineProperty(Organization.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"organization.json",title:"Organization",type:"object",description:"An organization is a group or entity that subscribes to Kohost software.",required:["accountNumber","name","smsNumber"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"organization",enum:["organization"]},accountNumber:{type:["number","null"],minimum:1e4},name:{type:"string"},smsNumber:{type:"string"},properties:{type:"array",items:{type:"string"}},hostname:{type:["string","null"]},appManifest:{type:"object",properties:{name:{type:"string"},short_name:{type:"string"},scope:{type:"string"},start_url:{type:"string"},themeColor:{type:"string"},backgroundColor:{type:"string"},display:{type:"string",enum:["fullscreen","standalone","minimal-ui","browser"],default:"fullscreen"},orientation:{type:"string",enum:["portrait","landscape"],default:"portrait"},splash:{type:"object",properties:{src:{type:"string"},type:{type:"string"},sizes:{type:"string"}}},icons:{type:"array",items:{type:"object",properties:{src:{type:"string"},sizes:{type:"string"},type:{type:"string"}}}},logo:{type:"object",properties:{src:{type:"string"},type:{type:"string"},sizes:{type:"string"}}}},default:{name:"Kohost",short_name:"Kohost",start_url:"/",scope:"/",display:"fullscreen",orientation:"portrait",theme_color:"#1d1f22",background_color:"#1d1f22",icons:[{src:"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/9c85047f-ccba-4b1c-3070-5463fbe93b00/w=512",sizes:"512x512",type:"image/png"}],splash:{src:"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/034fb112-5326-4d37-373e-d1cc2a4d0400/w=1500",sizes:"1500x800",type:"image/jpg"},logo:{src:"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/1e54c54d-3bac-4745-f46f-c2f98036af00/h=75",sizes:"300x75",type:"image/png"}}},tickets:{type:"object",properties:{nextTicketNumber:{type:["string","integer"],default:1}}},credentials:{type:"object",additionalProperties:!0},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}}}}),Object.defineProperty(Organization.prototype,"validator",{get:__name((function(){return validateOrganization}),"get")});export{Organization};//# sourceMappingURL=chunk-3T6I2STK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/models/organization.js"],"sourcesContent":["/* @ts-nocheck */\n/* This file is automatically generated. Do not modify it manually. */\n\nimport { Entity } from \"./entity\";\nimport { validateOrganization as validate } from \"../validate\";\n\n/**\n * @typedef {Object} OrganizationData An organization is a group or entity that subscribes to Kohost software.\n * @property {string} [id] - Identifier of the object.\n * @property {\"organization\"} [type] - Default: \"organization\"\n * @property {number} accountNumber\n * @property {string} name\n * @property {string} smsNumber\n * @property {string[]} [properties]\n * @property {string} [hostname]\n * @property {{name?: string, short_name?: string, scope?: string, start_url?: string, themeColor?: string, backgroundColor?: string, display?: (\"fullscreen\"|\"standalone\"|\"minimal-ui\"|\"browser\"), orientation?: (\"portrait\"|\"landscape\"), splash?: {src?: string, type?: string, sizes?: string}, icons?: {src?: string, sizes?: string, type?: string}[], logo?: {src?: string, type?: string, sizes?: string}}} [appManifest] - Default: {\"name\":\"Kohost\",\"short_name\":\"Kohost\",\"start_url\":\"/\",\"scope\":\"/\",\"display\":\"fullscreen\",\"orientation\":\"portrait\",\"theme_color\":\"#1d1f22\",\"background_color\":\"#1d1f22\",\"icons\":[{\"src\":\"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/9c85047f-ccba-4b1c-3070-5463fbe93b00/w=512\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],\"splash\":{\"src\":\"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/034fb112-5326-4d37-373e-d1cc2a4d0400/w=1500\",\"sizes\":\"1500x800\",\"type\":\"image/jpg\"},\"logo\":{\"src\":\"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/1e54c54d-3bac-4745-f46f-c2f98036af00/h=75\",\"sizes\":\"300x75\",\"type\":\"image/png\"}}\n * @property {string} [appManifest.name]\n * @property {string} [appManifest.short_name]\n * @property {string} [appManifest.scope]\n * @property {string} [appManifest.start_url]\n * @property {string} [appManifest.themeColor]\n * @property {string} [appManifest.backgroundColor]\n * @property {(\"fullscreen\"|\"standalone\"|\"minimal-ui\"|\"browser\")} [appManifest.display] - Default: \"fullscreen\"\n * @property {(\"portrait\"|\"landscape\")} [appManifest.orientation] - Default: \"portrait\"\n * @property {{src?: string, type?: string, sizes?: string}} [appManifest.splash]\n * @property {string} [appManifest.splash.src]\n * @property {string} [appManifest.splash.type]\n * @property {string} [appManifest.splash.sizes]\n * @property {{src?: string, sizes?: string, type?: string}[]} [appManifest.icons]\n * @property {{src?: string, type?: string, sizes?: string}} [appManifest.logo]\n * @property {string} [appManifest.logo.src]\n * @property {string} [appManifest.logo.type]\n * @property {string} [appManifest.logo.sizes]\n * @property {{nextTicketNumber?: (string|number)}} [tickets]\n * @property {(string|number)} [tickets.nextTicketNumber] - Default: 1\n * @property {object} [credentials]\n * @property {(string|object)} [createdAt]\n * @property {(string|object)} [updatedAt]\n */\n\n/**\n * An organization is a group or entity that subscribes to Kohost software.\n * @class Organization\n * @extends {Entity}\n */\nexport class Organization extends Entity {\n /**\n * @constructor\n * @param {OrganizationData} data - The data to initialize the Organization with\n */\n constructor(data) {\n super(data);\n if (data.id !== undefined) this.id = data.id;\n if (data.type !== undefined) this.type = data.type;\n this.accountNumber = data.accountNumber;\n this.name = data.name;\n this.smsNumber = data.smsNumber;\n if (data.properties !== undefined) this.properties = data.properties;\n if (data.hostname !== undefined) this.hostname = data.hostname;\n if (data.appManifest !== undefined) this.appManifest = data.appManifest;\n if (data.tickets !== undefined) this.tickets = data.tickets;\n if (data.credentials !== undefined) this.credentials = data.credentials;\n if (data.createdAt !== undefined) this.createdAt = data.createdAt;\n if (data.updatedAt !== undefined) this.updatedAt = data.updatedAt;\n }\n}\n\nObject.defineProperty(Organization.prototype, \"schema\", {\n value: {\n $schema: \"http://json-schema.org/draft-07/schema\",\n $id: \"organization.json\",\n title: \"Organization\",\n type: \"object\",\n description:\n \"An organization is a group or entity that subscribes to Kohost software.\",\n required: [\"accountNumber\", \"name\", \"smsNumber\"],\n additionalProperties: false,\n properties: {\n id: { $ref: \"definitions.json#/definitions/id\" },\n type: { type: \"string\", default: \"organization\", enum: [\"organization\"] },\n accountNumber: { type: [\"number\", \"null\"], minimum: 10000 },\n name: { type: \"string\" },\n smsNumber: { type: \"string\" },\n properties: { type: \"array\", items: { type: \"string\" } },\n hostname: { type: [\"string\", \"null\"] },\n appManifest: {\n type: \"object\",\n properties: {\n name: { type: \"string\" },\n short_name: { type: \"string\" },\n scope: { type: \"string\" },\n start_url: { type: \"string\" },\n themeColor: { type: \"string\" },\n backgroundColor: { type: \"string\" },\n display: {\n type: \"string\",\n enum: [\"fullscreen\", \"standalone\", \"minimal-ui\", \"browser\"],\n default: \"fullscreen\",\n },\n orientation: {\n type: \"string\",\n enum: [\"portrait\", \"landscape\"],\n default: \"portrait\",\n },\n splash: {\n type: \"object\",\n properties: {\n src: { type: \"string\" },\n type: { type: \"string\" },\n sizes: { type: \"string\" },\n },\n },\n icons: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n src: { type: \"string\" },\n sizes: { type: \"string\" },\n type: { type: \"string\" },\n },\n },\n },\n logo: {\n type: \"object\",\n properties: {\n src: { type: \"string\" },\n type: { type: \"string\" },\n sizes: { type: \"string\" },\n },\n },\n },\n default: {\n name: \"Kohost\",\n short_name: \"Kohost\",\n start_url: \"/\",\n scope: \"/\",\n display: \"fullscreen\",\n orientation: \"portrait\",\n theme_color: \"#1d1f22\",\n background_color: \"#1d1f22\",\n icons: [\n {\n src: \"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/9c85047f-ccba-4b1c-3070-5463fbe93b00/w=512\",\n sizes: \"512x512\",\n type: \"image/png\",\n },\n ],\n splash: {\n src: \"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/034fb112-5326-4d37-373e-d1cc2a4d0400/w=1500\",\n sizes: \"1500x800\",\n type: \"image/jpg\",\n },\n logo: {\n src: \"https://images.kohost.io/cdn-cgi/imagedelivery/vcVX2aBwdFSYr66spcFKaA/1e54c54d-3bac-4745-f46f-c2f98036af00/h=75\",\n sizes: \"300x75\",\n type: \"image/png\",\n },\n },\n },\n tickets: {\n type: \"object\",\n properties: {\n nextTicketNumber: { type: [\"string\", \"integer\"], default: 1 },\n },\n },\n credentials: { type: \"object\", additionalProperties: true },\n createdAt: { $ref: \"definitions.json#/definitions/createdAt\" },\n updatedAt: { $ref: \"definitions.json#/definitions/updatedAt\" },\n },\n },\n});\n\nObject.defineProperty(Organization.prototype, \"validator\", {\n get: function () {\n return validate;\n },\n});\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- import{validateCategory}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Category=class extends Entity{static{__name(this,"Category")}constructor(data){super(data),this.id=data.id,this.type=data.type,void 0!==data.name&&(this.name=data.name),void 0!==data.driver&&(this.driver=data.driver),void 0!==data.description&&(this.description=data.description),void 0!==data.image&&(this.image=data.image),void 0!==data.rating&&(this.rating=data.rating),this.discriminator=data.discriminator,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Category.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"category.json",title:"Category",type:"object",required:["id","type","discriminator"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["category"],default:"category"},name:{type:"string",minLength:1},driver:{$ref:"definitions.json#/definitions/driver"},description:{type:"string"},image:{$ref:"mediaFile.json"},rating:{type:"number",minimum:0,maximum:10,default:9},discriminator:{type:"string",enum:["space","product","mediaFile"]},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Category.prototype,"validator",{get:__name((function(){return validateCategory}),"get")});export{Category};//# sourceMappingURL=chunk-YAZ6Y4QK.js.map
1
+ import{validateCategory}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Category=class extends Entity{static{__name(this,"Category")}constructor(data){super(data),this.id=data.id,this.type=data.type,void 0!==data.name&&(this.name=data.name),void 0!==data.driver&&(this.driver=data.driver),void 0!==data.description&&(this.description=data.description),void 0!==data.image&&(this.image=data.image),void 0!==data.rating&&(this.rating=data.rating),this.discriminator=data.discriminator,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Category.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"category.json",title:"Category",type:"object",required:["id","type","discriminator"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["category"],default:"category"},name:{type:"string",minLength:1},driver:{$ref:"definitions.json#/definitions/driver"},description:{type:"string"},image:{$ref:"mediaFile.json"},rating:{type:"number",minimum:0,maximum:10,default:9},discriminator:{type:"string",enum:["space","product","mediaFile"]},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Category.prototype,"validator",{get:__name((function(){return validateCategory}),"get")});export{Category};//# sourceMappingURL=chunk-5MOS447R.js.map
@@ -1 +1 @@
1
- import{validatePayment}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Payment=class extends Entity{static{__name(this,"Payment")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,void 0!==data.enabled&&(this.enabled=data.enabled),void 0!==data.storageData&&(this.storageData=data.storageData),this.maskedNumber=data.maskedNumber,void 0!==data.issued&&(this.issued=data.issued),this.expires=data.expires,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Payment.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"payment.json",title:"Payment",type:"object",required:["type","maskedNumber","expires"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["amex","visa","masterCard","maestro","discover","diners","jcb","applePay","alipay","chinaUnionPay","vpay"]},enabled:{type:"boolean",default:!0},storageData:{type:["string","null"]},maskedNumber:{type:"string"},issued:{type:["string","null"]},expires:{type:"string"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Payment.prototype,"validator",{get:__name((function(){return validatePayment}),"get")});export{Payment};//# sourceMappingURL=chunk-HNKGUVQT.js.map
1
+ import{validatePayment}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Payment=class extends Entity{static{__name(this,"Payment")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,void 0!==data.enabled&&(this.enabled=data.enabled),void 0!==data.storageData&&(this.storageData=data.storageData),this.maskedNumber=data.maskedNumber,void 0!==data.issued&&(this.issued=data.issued),this.expires=data.expires,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Payment.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"payment.json",title:"Payment",type:"object",required:["type","maskedNumber","expires"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["amex","visa","masterCard","maestro","discover","diners","jcb","applePay","alipay","chinaUnionPay","vpay"]},enabled:{type:"boolean",default:!0},storageData:{type:["string","null"]},maskedNumber:{type:"string"},issued:{type:["string","null"]},expires:{type:"string"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Payment.prototype,"validator",{get:__name((function(){return validatePayment}),"get")});export{Payment};//# sourceMappingURL=chunk-6TEFTYKT.js.map
@@ -1 +1 @@
1
- import{Vendor}from"./chunk-UKIG7GFX.js";import{WindowCovering}from"./chunk-7JLIE2YT.js";import{SmsMessage}from"./chunk-WIZSIXXQ.js";import{Space}from"./chunk-AKBP4ULH.js";import{Switch}from"./chunk-AVZIY77R.js";import{SystemUser}from"./chunk-CL66AXXT.js";import{Thermostat}from"./chunk-2BGFVTK5.js";import{Ticket}from"./chunk-PA6CL6LK.js";import{TimeSheet}from"./chunk-CBGDQUVP.js";import{User}from"./chunk-HVRHXRP6.js";import{Policy}from"./chunk-CAALG6EM.js";import{Product}from"./chunk-XHPL3YQR.js";import{Property}from"./chunk-O42G3HNO.js";import{Reservation}from"./chunk-IHVBHK4S.js";import{Room}from"./chunk-CQHD5IHT.js";import{Scene}from"./chunk-IOFW6KW3.js";import{ShortLink}from"./chunk-KW3HNS5S.js";import{Issue}from"./chunk-UOSPZFQA.js";import{Lock}from"./chunk-I3T6UG4N.js";import{Log}from"./chunk-BW6WOT2G.js";import{MediaFile}from"./chunk-4HA37GSM.js";import{MediaSource}from"./chunk-QHS6ZPJI.js";import{MotionSensor}from"./chunk-WSBQZHQ5.js";import{Order}from"./chunk-OUOPHOS3.js";import{Organization}from"./chunk-6QIZNOTQ.js";import{DiscoveredDevice}from"./chunk-EFVZZ3UR.js";import{EmailMessage}from"./chunk-IDKLDYJM.js";import{EnergyReport}from"./chunk-HQZCMOV5.js";import{EnergyReportShard}from"./chunk-KCHWGYJF.js";import{Gateway}from"./chunk-QOLVVEU5.js";import{Identification}from"./chunk-LZDFH4GB.js";import{Announcement}from"./chunk-FIY4MTXC.js";import{Camera}from"./chunk-J726LZFG.js";import{Category}from"./chunk-YAZ6Y4QK.js";import{Courtesy}from"./chunk-WHYNHNWY.js";import{Credential}from"./chunk-Y767NEWB.js";import{DeviceRouter}from"./chunk-CIIC5YSI.js";import{Dimmer}from"./chunk-X4CIRNUQ.js";import{Alarm}from"./chunk-FQWI5UT7.js";import{events_exports}from"./chunk-ZBNPXH3W.js";import{LoginError}from"./chunk-FU3MLFEZ.js";import{NotFoundError}from"./chunk-S3LGXCUW.js";import{RequestError}from"./chunk-R36FVWOK.js";import{SystemCommError}from"./chunk-J3IXW2RX.js";import{TokenExpiredError}from"./chunk-ELAUVDF4.js";import{UnprocessableRequestError}from"./chunk-ZXW3Q5ZK.js";import{ValidationError}from"./chunk-5FSWHSBF.js";import{AuthenticationError}from"./chunk-FWQABD55.js";import{AuthorizationError}from"./chunk-WN4Z5JJD.js";import{ConflictError}from"./chunk-7GGLCJ6I.js";import{DeviceCommError}from"./chunk-3AE3KSKI.js";import{AppError}from"./chunk-P3ZPJTJ2.js";import{__export,__name}from"./chunk-XE4OXN2W.js";var utils_exports={};function entityFactory(type){switch(type){case"reservation":return Reservation;case"mediaFile":return MediaFile;case"switch":return Switch;case"alarm":return Alarm;case"dimmer":return Dimmer;case"lock":return Lock;case"thermostat":return Thermostat;case"windowCovering":return WindowCovering;case"identification":return Identification;case"user":return User;case"systemUser":return SystemUser;case"policy":return Policy;case"courtesy":return Courtesy;case"camera":return Camera;case"motionSensor":return MotionSensor;case"mediaSource":return MediaSource;case"room":return Room;case"space":return Space;case"category":return Category;case"ticket":return Ticket;case"scene":return Scene;case"gateway":return Gateway;case"product":return Product;case"order":return Order;case"discoveredDevice":return DiscoveredDevice;case"deviceRouter":return DeviceRouter;case"credential":return Credential;case"shortLink":return ShortLink;case"energyReportShard":return EnergyReportShard;case"energyReport":return EnergyReport;case"smsMessage":return SmsMessage;case"emailMessage":return EmailMessage;case"announcement":return Announcement;case"timeSheet":return TimeSheet;case"property":return Property;case"organization":return Organization;case"issue":return Issue;case"vendor":return Vendor;case"log":return Log;default:throw new Error("Unknown entity type: "+type)}}function errorFactory(errName){switch(errName){case"AppError":return AppError;case"AuthenticationError":return AuthenticationError;case"AuthorizationError":return AuthorizationError;case"ConflictError":return ConflictError;case"DeviceCommError":return DeviceCommError;case"LoginError":return LoginError;case"NotFoundError":return NotFoundError;case"RequestError":return RequestError;case"SystemCommError":return SystemCommError;case"TokenExpiredError":return TokenExpiredError;case"UnprocessableRequestError":return UnprocessableRequestError;case"ValidationError":return ValidationError;default:return new Error("Invalid error name: "+errName)}}function eventFactory(eventName){const Event=Object.values(events_exports).find((E=>E.prototype.name===eventName));if(!Event)throw new Error("Invalid event name: "+eventName);return Event}__export(utils_exports,{entityFactory:()=>entityFactory,errorFactory:()=>errorFactory,eventFactory:()=>eventFactory}),__name(entityFactory,"entityFactory"),__name(errorFactory,"errorFactory"),__name(eventFactory,"eventFactory");export{entityFactory,errorFactory,eventFactory,utils_exports};//# sourceMappingURL=chunk-74WBAGSV.js.map
1
+ import{Vendor}from"./chunk-3AAFXZWE.js";import{WindowCovering}from"./chunk-L2TSQW7O.js";import{SmsMessage}from"./chunk-GM336GLN.js";import{Space}from"./chunk-UWLGZ2WB.js";import{Switch}from"./chunk-GYHEX2E7.js";import{SystemUser}from"./chunk-2LO75JET.js";import{Thermostat}from"./chunk-S66XU55N.js";import{Ticket}from"./chunk-LVJ3TK3Q.js";import{TimeSheet}from"./chunk-UHXLWWZJ.js";import{User}from"./chunk-L4MJAT6O.js";import{Policy}from"./chunk-XZYMANSA.js";import{Product}from"./chunk-XEYXQ2RE.js";import{Property}from"./chunk-MBBUUDYI.js";import{Reservation}from"./chunk-HTAUENTO.js";import{Room}from"./chunk-FVHMXXO3.js";import{Scene}from"./chunk-N6F4TAYO.js";import{ShortLink}from"./chunk-GSIQSWOV.js";import{Issue}from"./chunk-QUFNNEC4.js";import{Lock}from"./chunk-P324RM4C.js";import{Log}from"./chunk-IBPSJJTM.js";import{MediaFile}from"./chunk-ZDO2YGBQ.js";import{MediaSource}from"./chunk-RN36KQLY.js";import{MotionSensor}from"./chunk-XTY7Y6FP.js";import{Order}from"./chunk-WWFVE3CH.js";import{Organization}from"./chunk-3T6I2STK.js";import{DiscoveredDevice}from"./chunk-CPG6MOMV.js";import{EmailMessage}from"./chunk-RPBN5X2L.js";import{EnergyReport}from"./chunk-L5467JOC.js";import{EnergyReportShard}from"./chunk-OSKEPPBB.js";import{Gateway}from"./chunk-RQTHMF7J.js";import{Identification}from"./chunk-QM7UEU75.js";import{Announcement}from"./chunk-COCKKV55.js";import{Camera}from"./chunk-3EQLZBG2.js";import{Category}from"./chunk-5MOS447R.js";import{Courtesy}from"./chunk-UP3DEJVA.js";import{Credential}from"./chunk-WP26ORJE.js";import{DeviceRouter}from"./chunk-FYJXPB5Y.js";import{Dimmer}from"./chunk-QD6H765B.js";import{Alarm}from"./chunk-VSRMEDWD.js";import{events_exports}from"./chunk-ZLEBU4GN.js";import{LoginError}from"./chunk-FU3MLFEZ.js";import{NotFoundError}from"./chunk-S3LGXCUW.js";import{RequestError}from"./chunk-R36FVWOK.js";import{SystemCommError}from"./chunk-J3IXW2RX.js";import{TokenExpiredError}from"./chunk-ELAUVDF4.js";import{UnprocessableRequestError}from"./chunk-ZXW3Q5ZK.js";import{ValidationError}from"./chunk-5FSWHSBF.js";import{AuthenticationError}from"./chunk-FWQABD55.js";import{AuthorizationError}from"./chunk-WN4Z5JJD.js";import{ConflictError}from"./chunk-7GGLCJ6I.js";import{DeviceCommError}from"./chunk-3AE3KSKI.js";import{AppError}from"./chunk-P3ZPJTJ2.js";import{__export,__name}from"./chunk-XE4OXN2W.js";var utils_exports={};function entityFactory(type){switch(type){case"reservation":return Reservation;case"mediaFile":return MediaFile;case"switch":return Switch;case"alarm":return Alarm;case"dimmer":return Dimmer;case"lock":return Lock;case"thermostat":return Thermostat;case"windowCovering":return WindowCovering;case"identification":return Identification;case"user":return User;case"systemUser":return SystemUser;case"policy":return Policy;case"courtesy":return Courtesy;case"camera":return Camera;case"motionSensor":return MotionSensor;case"mediaSource":return MediaSource;case"room":return Room;case"space":return Space;case"category":return Category;case"ticket":return Ticket;case"scene":return Scene;case"gateway":return Gateway;case"product":return Product;case"order":return Order;case"discoveredDevice":return DiscoveredDevice;case"deviceRouter":return DeviceRouter;case"credential":return Credential;case"shortLink":return ShortLink;case"energyReportShard":return EnergyReportShard;case"energyReport":return EnergyReport;case"smsMessage":return SmsMessage;case"emailMessage":return EmailMessage;case"announcement":return Announcement;case"timeSheet":return TimeSheet;case"property":return Property;case"organization":return Organization;case"issue":return Issue;case"vendor":return Vendor;case"log":return Log;default:throw new Error("Unknown entity type: "+type)}}function errorFactory(errName){switch(errName){case"AppError":return AppError;case"AuthenticationError":return AuthenticationError;case"AuthorizationError":return AuthorizationError;case"ConflictError":return ConflictError;case"DeviceCommError":return DeviceCommError;case"LoginError":return LoginError;case"NotFoundError":return NotFoundError;case"RequestError":return RequestError;case"SystemCommError":return SystemCommError;case"TokenExpiredError":return TokenExpiredError;case"UnprocessableRequestError":return UnprocessableRequestError;case"ValidationError":return ValidationError;default:return new Error("Invalid error name: "+errName)}}function eventFactory(eventName){const Event=Object.values(events_exports).find((E=>E.prototype.name===eventName));if(!Event)throw new Error("Invalid event name: "+eventName);return Event}__export(utils_exports,{entityFactory:()=>entityFactory,errorFactory:()=>errorFactory,eventFactory:()=>eventFactory}),__name(entityFactory,"entityFactory"),__name(errorFactory,"errorFactory"),__name(eventFactory,"eventFactory");export{entityFactory,errorFactory,eventFactory,utils_exports};//# sourceMappingURL=chunk-C3XWWA3G.js.map
@@ -1 +1 @@
1
- import{errors_exports}from"./chunk-H4J6BULN.js";import{amqpExchanges}from"./chunk-THXOWLL3.js";import{__name}from"./chunk-XE4OXN2W.js";import{connect}from"amqplib";import{isFatalError}from"amqplib/lib/connection";import dbg from"debug";import{Buffer}from"node:buffer";import*as crypto from"node:crypto";var randomUUID2=crypto.randomUUID,debug=dbg("kohost:amqp-client"),KohostAMQPClient=class{static{__name(this,"KohostAMQPClient")}static get Message(){return Message}static get exchanges(){return amqpExchanges}static generateCorrelationId(){return randomUUID2()}static validateMessage(message){if(!message)throw new Error("Message is required")}static parseError(err){let type,message,options={};if(err.message&&err.type){const{message:errMessage,type:errType,...rest}=err;type=errType,message=errMessage,options=rest}else message=err.message||"Unknown Error";return debug("parseError",type,message,options),type&&errors_exports[type]?new errors_exports[type](message,options):new Error(message,options)}static parseMessage(message){let error=null,data={},query={},context={},headers={};const isCommand="Command"===message?.properties?.type,isEvent="Event"===message?.properties?.type,messageHeaders=message?.properties?.headers||{},commandName=messageHeaders["X-Command-Name"]||null,eventName=messageHeaders["X-Event-Name"]||null;if(message.content)try{const payload="application/json"===message.properties?.contentType?JSON.parse(message.content.toString()):message.content.toString();data=payload?.data||{},error=payload?.error,query=payload?.query||{},context=payload?.context||{}}catch(error2){debug("error parsing content",error2),data=message.content.toString()}if(message?.properties?.headers){const orgHeader=message.properties.headers["X-Organization-Id"],propertyHeader=message.properties.headers["X-Property-Id"],driverHeader=message.properties.headers["X-Driver"];orgHeader&&(context.organizationId=orgHeader,headers["X-Organization-Id"]=orgHeader),propertyHeader&&(context.propertyId=propertyHeader,headers["X-Property-Id"]=propertyHeader),driverHeader&&(context.driver=driverHeader,headers["X-Driver"]=driverHeader)}const parsed={};return error&&(parsed.error=this.parseError(error)),parsed.data=data,parsed.query=query,parsed.context=context,parsed.headers=headers,isEvent&&eventName?parsed.event=eventName:isCommand&&commandName&&(parsed.command=commandName),debug("amqp parsed %o",parsed),parsed}static getMessage(message){if(!message?.content)return null;const payload=JSON.parse(message.content.toString()),data=payload?.data;return data}static isFatalError(err){return isFatalError(err)}async createConnection(connection,options={}){return await connect(connection,options)}static createMessage(content){return new Message(content)}async createChannel(connection){return await connection.createChannel()}async assertExchange(channel,{exchange:exchange,type:type,options:options}){return await channel.assertExchange(exchange,type,options)}async assertQueue(channel,{queue:queue,options:options}){return await channel.assertQueue(queue,options)}async bindQueue(channel,{queue:queue,exchange:exchange,routingKey:routingKey,args:args}){return await channel.bindQueue(queue,exchange,routingKey,args)}async bindExchange(channel,{source:source,destination:destination,routingKey:routingKey,args:args}){return await channel.bindExchange(destination,source,routingKey,args)}async subscribeToQueue(channel,{queue:queue,cb:cb,options:options}){return await channel.consume(queue,cb,options)}publishToExchange(channel,{exchange:exchange,routingKey:routingKey,content:content,options:options}){return channel.publish(exchange,routingKey,content,options)}},Message=class{static{__name(this,"Message")}constructor(content){this.toExchange=null,this.content=content,this.options={contentType:"application/json",timestamp:Date.now()},this.routingKey=""}get correlationId(){return this.options.correlationId||null}to({exchange:exchange}){if(void 0===exchange)throw new Error("Exchange is required");return this.toExchange=exchange,this}withType(type){return this.options.type=type,this}withRoutingKey(routingKey){return this.routingKey=routingKey,this}withHeaders(headers){return this.options.headers||(this.options.headers={}),this.options.headers={...this.options.headers,...headers},this}withContext(context){for(let key in context)this.withHeaders({[key]:context[key]});return this}withCorrelationId(correlationId){return this.options.correlationId=correlationId,this}withReplyTo(queue){return this.options.replyTo=queue,this}build(){let content=this.content;return content.build&&"function"==typeof content.build&&(content=content.build()),{exchange:this.toExchange,content:Buffer.from(JSON.stringify(content)),options:this.options,routingKey:this.routingKey}}};export{KohostAMQPClient};//# sourceMappingURL=chunk-EEWDLSCT.js.map
1
+ import{errors_exports}from"./chunk-3H3HWHVU.js";import{amqpExchanges}from"./chunk-THXOWLL3.js";import{__name}from"./chunk-XE4OXN2W.js";import{connect}from"amqplib";import{isFatalError}from"amqplib/lib/connection";import dbg from"debug";import{Buffer}from"node:buffer";import*as crypto from"node:crypto";var randomUUID2=crypto.randomUUID,debug=dbg("kohost:amqp-client"),KohostAMQPClient=class{static{__name(this,"KohostAMQPClient")}static get Message(){return Message}static get exchanges(){return amqpExchanges}static generateCorrelationId(){return randomUUID2()}static validateMessage(message){if(!message)throw new Error("Message is required")}static parseError(err){let type,message,options={};if(err.message&&err.type){const{message:errMessage,type:errType,...rest}=err;type=errType,message=errMessage,options=rest}else message=err.message||"Unknown Error";return debug("parseError",type,message,options),type&&errors_exports[type]?new errors_exports[type](message,options):new Error(message,options)}static parseMessage(message){let error=null,data={},query={},context={},headers={};const isCommand="Command"===message?.properties?.type,isEvent="Event"===message?.properties?.type,messageHeaders=message?.properties?.headers||{},commandName=messageHeaders["X-Command-Name"]||null,eventName=messageHeaders["X-Event-Name"]||null;if(message.content)try{const payload="application/json"===message.properties?.contentType?JSON.parse(message.content.toString()):message.content.toString();data=payload?.data||{},error=payload?.error,query=payload?.query||{},context=payload?.context||{}}catch(error2){debug("error parsing content",error2),data=message.content.toString()}if(message?.properties?.headers){const orgHeader=message.properties.headers["X-Organization-Id"],propertyHeader=message.properties.headers["X-Property-Id"],driverHeader=message.properties.headers["X-Driver"];orgHeader&&(context.organizationId=orgHeader,headers["X-Organization-Id"]=orgHeader),propertyHeader&&(context.propertyId=propertyHeader,headers["X-Property-Id"]=propertyHeader),driverHeader&&(context.driver=driverHeader,headers["X-Driver"]=driverHeader)}const parsed={};return error&&(parsed.error=this.parseError(error)),parsed.data=data,parsed.query=query,parsed.context=context,parsed.headers=headers,isEvent&&eventName?parsed.event=eventName:isCommand&&commandName&&(parsed.command=commandName),debug("amqp parsed %o",parsed),parsed}static getMessage(message){if(!message?.content)return null;const payload=JSON.parse(message.content.toString()),data=payload?.data;return data}static isFatalError(err){return isFatalError(err)}async createConnection(connection,options={}){return await connect(connection,options)}static createMessage(content){return new Message(content)}async createChannel(connection){return await connection.createChannel()}async assertExchange(channel,{exchange:exchange,type:type,options:options}){return await channel.assertExchange(exchange,type,options)}async assertQueue(channel,{queue:queue,options:options}){return await channel.assertQueue(queue,options)}async bindQueue(channel,{queue:queue,exchange:exchange,routingKey:routingKey,args:args}){return await channel.bindQueue(queue,exchange,routingKey,args)}async bindExchange(channel,{source:source,destination:destination,routingKey:routingKey,args:args}){return await channel.bindExchange(destination,source,routingKey,args)}async subscribeToQueue(channel,{queue:queue,cb:cb,options:options}){return await channel.consume(queue,cb,options)}publishToExchange(channel,{exchange:exchange,routingKey:routingKey,content:content,options:options}){return channel.publish(exchange,routingKey,content,options)}},Message=class{static{__name(this,"Message")}constructor(content){this.toExchange=null,this.content=content,this.options={contentType:"application/json",timestamp:Date.now()},this.routingKey=""}get correlationId(){return this.options.correlationId||null}to({exchange:exchange}){if(void 0===exchange)throw new Error("Exchange is required");return this.toExchange=exchange,this}withType(type){return this.options.type=type,this}withRoutingKey(routingKey){return this.routingKey=routingKey,this}withHeaders(headers){return this.options.headers||(this.options.headers={}),this.options.headers={...this.options.headers,...headers},this}withContext(context){for(let key in context)this.withHeaders({[key]:context[key]});return this}withCorrelationId(correlationId){return this.options.correlationId=correlationId,this}withReplyTo(queue){return this.options.replyTo=queue,this}build(){let content=this.content;return content.build&&"function"==typeof content.build&&(content=content.build()),{exchange:this.toExchange,content:Buffer.from(JSON.stringify(content)),options:this.options,routingKey:this.routingKey}}};export{KohostAMQPClient};//# sourceMappingURL=chunk-C3YJPYYK.js.map
@@ -0,0 +1 @@
1
+ import{Vendor}from"./chunk-3AAFXZWE.js";import{WindowCovering}from"./chunk-L2TSQW7O.js";import{SmsMessage}from"./chunk-GM336GLN.js";import{Space}from"./chunk-UWLGZ2WB.js";import{Switch}from"./chunk-GYHEX2E7.js";import{SystemUser}from"./chunk-2LO75JET.js";import{Thermostat}from"./chunk-S66XU55N.js";import{Ticket}from"./chunk-LVJ3TK3Q.js";import{TimeSheet}from"./chunk-UHXLWWZJ.js";import{User}from"./chunk-L4MJAT6O.js";import{Payment}from"./chunk-6TEFTYKT.js";import{Policy}from"./chunk-XZYMANSA.js";import{Product}from"./chunk-XEYXQ2RE.js";import{Property}from"./chunk-MBBUUDYI.js";import{Reservation}from"./chunk-HTAUENTO.js";import{Room}from"./chunk-FVHMXXO3.js";import{Scene}from"./chunk-N6F4TAYO.js";import{ShortLink}from"./chunk-GSIQSWOV.js";import{Issue}from"./chunk-QUFNNEC4.js";import{Lock}from"./chunk-P324RM4C.js";import{Log}from"./chunk-IBPSJJTM.js";import{MediaFile}from"./chunk-ZDO2YGBQ.js";import{MediaSource}from"./chunk-RN36KQLY.js";import{MotionSensor}from"./chunk-XTY7Y6FP.js";import{Order}from"./chunk-WWFVE3CH.js";import{Organization}from"./chunk-3T6I2STK.js";import{DiscoveredDevice}from"./chunk-CPG6MOMV.js";import{EmailMessage}from"./chunk-RPBN5X2L.js";import{EnergyReport}from"./chunk-L5467JOC.js";import{EnergyReportShard}from"./chunk-OSKEPPBB.js";import{Gateway}from"./chunk-RQTHMF7J.js";import{Identification}from"./chunk-QM7UEU75.js";import{Announcement}from"./chunk-COCKKV55.js";import{Automation}from"./chunk-VRCBKR3Q.js";import{Camera}from"./chunk-3EQLZBG2.js";import{Category}from"./chunk-5MOS447R.js";import{Courtesy}from"./chunk-UP3DEJVA.js";import{Credential}from"./chunk-WP26ORJE.js";import{DeviceRouter}from"./chunk-FYJXPB5Y.js";import{Dimmer}from"./chunk-QD6H765B.js";import{Alarm}from"./chunk-VSRMEDWD.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__export}from"./chunk-XE4OXN2W.js";var models_exports={};__export(models_exports,{Alarm:()=>Alarm,Announcement:()=>Announcement,Automation:()=>Automation,Camera:()=>Camera,Category:()=>Category,Courtesy:()=>Courtesy,Credential:()=>Credential,DeviceRouter:()=>DeviceRouter,Dimmer:()=>Dimmer,DiscoveredDevice:()=>DiscoveredDevice,EmailMessage:()=>EmailMessage,EnergyReport:()=>EnergyReport,EnergyReportShard:()=>EnergyReportShard,Entity:()=>Entity,Gateway:()=>Gateway,Identification:()=>Identification,Issue:()=>Issue,Lock:()=>Lock,Log:()=>Log,MediaFile:()=>MediaFile,MediaSource:()=>MediaSource,MotionSensor:()=>MotionSensor,Order:()=>Order,Organization:()=>Organization,Payment:()=>Payment,Policy:()=>Policy,Product:()=>Product,Property:()=>Property,Reservation:()=>Reservation,Room:()=>Room,Scene:()=>Scene,ShortLink:()=>ShortLink,SmsMessage:()=>SmsMessage,Space:()=>Space,Switch:()=>Switch,SystemUser:()=>SystemUser,Thermostat:()=>Thermostat,Ticket:()=>Ticket,TimeSheet:()=>TimeSheet,User:()=>User,Vendor:()=>Vendor,WindowCovering:()=>WindowCovering});export{models_exports};//# sourceMappingURL=chunk-CA47LICS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/models/index.js"],"sourcesContent":["// This file is auto-generated. Do not edit this file manually.\n// Generated on: 2025-03-20T14:07:48.530Z\n\nexport * from \"./alarm\";\nexport * from \"./announcement\";\nexport * from \"./automation\";\nexport * from \"./camera\";\nexport * from \"./category\";\nexport * from \"./courtesy\";\nexport * from \"./credential\";\nexport * from \"./deviceRouter\";\nexport * from \"./dimmer\";\nexport * from \"./discoveredDevice\";\nexport * from \"./emailMessage\";\nexport * from \"./energyReport\";\nexport * from \"./energyReportShard\";\nexport * from \"./entity\";\nexport * from \"./gateway\";\nexport * from \"./identification\";\nexport * from \"./issue\";\nexport * from \"./lock\";\nexport * from \"./log\";\nexport * from \"./mediaFile\";\nexport * from \"./mediaSource\";\nexport * from \"./motionSensor\";\nexport * from \"./order\";\nexport * from \"./organization\";\nexport * from \"./payment\";\nexport * from \"./policy\";\nexport * from \"./product\";\nexport * from \"./property\";\nexport * from \"./reservation\";\nexport * from \"./room\";\nexport * from \"./scene\";\nexport * from \"./shortLink\";\nexport * from \"./smsMessage\";\nexport * from \"./space\";\nexport * from \"./switch\";\nexport * from \"./systemUser\";\nexport * from \"./thermostat\";\nexport * from \"./ticket\";\nexport * from \"./timeSheet\";\nexport * from \"./user\";\nexport * from \"./vendor\";\nexport * from \"./windowCovering\";"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../src/models/index.js"],"sourcesContent":["// This file is auto-generated. Do not edit this file manually.\n// Generated on: 2025-03-23T19:58:23.752Z\n\nexport * from \"./alarm\";\nexport * from \"./announcement\";\nexport * from \"./automation\";\nexport * from \"./camera\";\nexport * from \"./category\";\nexport * from \"./courtesy\";\nexport * from \"./credential\";\nexport * from \"./deviceRouter\";\nexport * from \"./dimmer\";\nexport * from \"./discoveredDevice\";\nexport * from \"./emailMessage\";\nexport * from \"./energyReport\";\nexport * from \"./energyReportShard\";\nexport * from \"./entity\";\nexport * from \"./gateway\";\nexport * from \"./identification\";\nexport * from \"./issue\";\nexport * from \"./lock\";\nexport * from \"./log\";\nexport * from \"./mediaFile\";\nexport * from \"./mediaSource\";\nexport * from \"./motionSensor\";\nexport * from \"./order\";\nexport * from \"./organization\";\nexport * from \"./payment\";\nexport * from \"./policy\";\nexport * from \"./product\";\nexport * from \"./property\";\nexport * from \"./reservation\";\nexport * from \"./room\";\nexport * from \"./scene\";\nexport * from \"./shortLink\";\nexport * from \"./smsMessage\";\nexport * from \"./space\";\nexport * from \"./switch\";\nexport * from \"./systemUser\";\nexport * from \"./thermostat\";\nexport * from \"./ticket\";\nexport * from \"./timeSheet\";\nexport * from \"./user\";\nexport * from \"./vendor\";\nexport * from \"./windowCovering\";"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- import{validateAnnouncement}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Announcement=class extends Entity{static{__name(this,"Announcement")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),void 0!==data.users&&(this.users=data.users),void 0!==data.group&&(this.group=data.group),void 0!==data.body&&(this.body=data.body),void 0!==data.media&&(this.media=data.media),void 0!==data.sentBy&&(this.sentBy=data.sentBy),void 0!==data.tags&&(this.tags=data.tags),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}};Object.defineProperty(Announcement.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"announcement.json",title:"Announcement",description:"Announcement message sent to users",type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["announcement"],default:"announcement"},users:{type:"array",items:{type:"string"},minItems:1},group:{type:"string"},body:{type:"string"},media:{$ref:"mediaFile.json"},sentBy:{type:"string"},tags:{type:"array",items:{type:"string"}},createdAt:{$ref:"definitions.json#/definitions/date"},updatedAt:{$ref:"definitions.json#/definitions/date"}},additionalProperties:!1}}),Object.defineProperty(Announcement.prototype,"validator",{get:__name((function(){return validateAnnouncement}),"get")});export{Announcement};//# sourceMappingURL=chunk-FIY4MTXC.js.map
1
+ import{validateAnnouncement}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Announcement=class extends Entity{static{__name(this,"Announcement")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),void 0!==data.users&&(this.users=data.users),void 0!==data.group&&(this.group=data.group),void 0!==data.body&&(this.body=data.body),void 0!==data.media&&(this.media=data.media),void 0!==data.sentBy&&(this.sentBy=data.sentBy),void 0!==data.tags&&(this.tags=data.tags),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}};Object.defineProperty(Announcement.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"announcement.json",title:"Announcement",description:"Announcement message sent to users",type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["announcement"],default:"announcement"},users:{type:"array",items:{type:"string"},minItems:1},group:{type:"string"},body:{type:"string"},media:{$ref:"mediaFile.json"},sentBy:{type:"string"},tags:{type:"array",items:{type:"string"}},createdAt:{$ref:"definitions.json#/definitions/date"},updatedAt:{$ref:"definitions.json#/definitions/date"}},additionalProperties:!1}}),Object.defineProperty(Announcement.prototype,"validator",{get:__name((function(){return validateAnnouncement}),"get")});export{Announcement};//# sourceMappingURL=chunk-COCKKV55.js.map
@@ -1 +1 @@
1
- import{validateDiscoveredDevice}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var DiscoveredDevice=class extends Entity{static{__name(this,"DiscoveredDevice")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.name=data.name,this.deviceId=data.deviceId,void 0!==data.type&&(this.type=data.type),void 0!==data.discriminator&&(this.discriminator=data.discriminator),void 0!==data.driver&&(this.driver=data.driver),this.deviceData=data.deviceData,void 0!==data.ignore&&(this.ignore=data.ignore),void 0!==data.organizationId&&(this.organizationId=data.organizationId),void 0!==data.propertyId&&(this.propertyId=data.propertyId)}};Object.defineProperty(DiscoveredDevice.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"discoveredDevice.json",title:"Discovered Device",description:"A device that has been discovered by Kohost, but not yet added to the Kohost system.",type:"object",required:["name","deviceId","deviceData"],properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},deviceId:{type:"string"},type:{type:"string",enum:["discoveredDevice"],default:"discoveredDevice"},discriminator:{$ref:"definitions.json#/definitions/type"},driver:{type:"string"},deviceData:{type:"object"},ignore:{type:"boolean"},organizationId:{type:["string","null"],description:"Reference (id) to the organization that owns this device"},propertyId:{type:["string","null"],description:"Reference (id) to the property that this device belongs to"}}}}),Object.defineProperty(DiscoveredDevice.prototype,"validator",{get:__name((function(){return validateDiscoveredDevice}),"get")});export{DiscoveredDevice};//# sourceMappingURL=chunk-EFVZZ3UR.js.map
1
+ import{validateDiscoveredDevice}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var DiscoveredDevice=class extends Entity{static{__name(this,"DiscoveredDevice")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.name=data.name,this.deviceId=data.deviceId,void 0!==data.type&&(this.type=data.type),void 0!==data.discriminator&&(this.discriminator=data.discriminator),void 0!==data.driver&&(this.driver=data.driver),this.deviceData=data.deviceData,void 0!==data.ignore&&(this.ignore=data.ignore),void 0!==data.organizationId&&(this.organizationId=data.organizationId),void 0!==data.propertyId&&(this.propertyId=data.propertyId)}};Object.defineProperty(DiscoveredDevice.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"discoveredDevice.json",title:"Discovered Device",description:"A device that has been discovered by Kohost, but not yet added to the Kohost system.",type:"object",required:["name","deviceId","deviceData"],properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},deviceId:{type:"string"},type:{type:"string",enum:["discoveredDevice"],default:"discoveredDevice"},discriminator:{$ref:"definitions.json#/definitions/type"},driver:{type:"string"},deviceData:{type:"object"},ignore:{type:"boolean"},organizationId:{type:["string","null"],description:"Reference (id) to the organization that owns this device"},propertyId:{type:["string","null"],description:"Reference (id) to the property that this device belongs to"}}}}),Object.defineProperty(DiscoveredDevice.prototype,"validator",{get:__name((function(){return validateDiscoveredDevice}),"get")});export{DiscoveredDevice};//# sourceMappingURL=chunk-CPG6MOMV.js.map
@@ -1 +1 @@
1
- import{validateRoom}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Room=class extends Entity{static{__name(this,"Room")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),this.name=data.name,void 0!==data.floor&&(this.floor=data.floor),void 0!==data.dimmers&&(this.dimmers=data.dimmers),void 0!==data.switches&&(this.switches=data.switches),void 0!==data.thermostats&&(this.thermostats=data.thermostats),void 0!==data.locks&&(this.locks=data.locks),void 0!==data.windowCoverings&&(this.windowCoverings=data.windowCoverings),void 0!==data.courtesy&&(this.courtesy=data.courtesy),void 0!==data.cameras&&(this.cameras=data.cameras),void 0!==data.mediaSources&&(this.mediaSources=data.mediaSources),void 0!==data.motionSensors&&(this.motionSensors=data.motionSensors),void 0!==data.alarms&&(this.alarms=data.alarms),void 0!==data.occupiedAt&&(this.occupiedAt=data.occupiedAt),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}static getDevicePath(type){switch(type){case"tv":case"dvr":case"appleTv":case"discPlayer":case"mediaPlayer":case"uncontrolledDevice":case"mediaSource":return"mediaSources";case"courtesy":return"courtesy";case"switch":return"switches";case"dimmer":return"dimmers";case"thermostat":return"thermostats";case"lock":return"locks";case"windowCovering":return"windowCoverings";case"camera":return"cameras";case"motionSensor":return"motionSensors";case"alarm":return"alarms";default:throw new Error("Invalid device type:"+type)}}static getDeviceTypeFromPath(path){if(!["dimmers","switches","thermostats","locks","windowCoverings","courtesy","cameras","mediaSources","motionSensors","alarms"].includes(path))throw new Error("Invalid device path:"+path);switch(path){case"courtesy":return path;case"switches":return"switch";default:return path.slice(0,-1)}}get hasDimmer(){return this.dimmers?.length>0}get hasSwitch(){return this.switches?.length>0}get hasWindowCovering(){return this.windowCoverings?.length>0}get hasShade(){return this.hasWindowCovering}get hasThermostat(){return this.thermostats?.length>0}get hasClimate(){return this.hasThermostat}get hasLock(){return this.locks?.length>0}get hasCourtesy(){return this.courtesy?.length>0}get hasCamera(){return this.cameras?.length>0}get hasMedia(){return this.mediaSources?.length>0}get hasLight(){const hasDiscriminatorLight=this.switches?.some((sw=>"light"===sw.discriminator||"fan"===sw.discriminator));return this.hasDimmer||hasDiscriminatorLight}get hasAlarm(){return this.alarms?.length>0}get occupied(){const now=new Date,lastOccupied=new Date(this.occupiedAt);return now.getTime()-lastOccupied.getTime()<36e5}};Object.defineProperty(Room.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"room.json",title:"Room",description:"A room represents a physical space of controllable IoT devices",type:"object",required:["id","name"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["room"],default:"room"},name:{type:"string"},floor:{type:"string"},dimmers:{type:"array",default:[],items:{$ref:"dimmer.json"}},switches:{type:"array",default:[],items:{$ref:"switch.json"}},thermostats:{type:"array",default:[],items:{$ref:"thermostat.json"}},locks:{type:"array",default:[],items:{$ref:"lock.json"}},windowCoverings:{type:"array",default:[],items:{$ref:"windowCovering.json"}},courtesy:{type:"array",default:[],items:{$ref:"courtesy.json"}},cameras:{type:"array",default:[],items:{$ref:"camera.json"}},mediaSources:{type:"array",default:[],items:{$ref:"mediaSource.json"}},motionSensors:{type:"array",default:[],items:{$ref:"motionSensor.json"}},alarms:{type:"array",default:[],items:{$ref:"alarm.json"}},occupiedAt:{$ref:"definitions.json#/definitions/createdAt"},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}},additionalProperties:!1}}),Object.defineProperty(Room.prototype,"validator",{get:__name((function(){return validateRoom}),"get")});export{Room};//# sourceMappingURL=chunk-CQHD5IHT.js.map
1
+ import{validateRoom}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Room=class extends Entity{static{__name(this,"Room")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),this.name=data.name,void 0!==data.floor&&(this.floor=data.floor),void 0!==data.dimmers&&(this.dimmers=data.dimmers),void 0!==data.switches&&(this.switches=data.switches),void 0!==data.thermostats&&(this.thermostats=data.thermostats),void 0!==data.locks&&(this.locks=data.locks),void 0!==data.windowCoverings&&(this.windowCoverings=data.windowCoverings),void 0!==data.courtesy&&(this.courtesy=data.courtesy),void 0!==data.cameras&&(this.cameras=data.cameras),void 0!==data.mediaSources&&(this.mediaSources=data.mediaSources),void 0!==data.motionSensors&&(this.motionSensors=data.motionSensors),void 0!==data.alarms&&(this.alarms=data.alarms),void 0!==data.occupiedAt&&(this.occupiedAt=data.occupiedAt),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}static getDevicePath(type){switch(type){case"tv":case"dvr":case"appleTv":case"discPlayer":case"mediaPlayer":case"uncontrolledDevice":case"mediaSource":return"mediaSources";case"courtesy":return"courtesy";case"switch":return"switches";case"dimmer":return"dimmers";case"thermostat":return"thermostats";case"lock":return"locks";case"windowCovering":return"windowCoverings";case"camera":return"cameras";case"motionSensor":return"motionSensors";case"alarm":return"alarms";default:throw new Error("Invalid device type:"+type)}}static getDeviceTypeFromPath(path){if(!["dimmers","switches","thermostats","locks","windowCoverings","courtesy","cameras","mediaSources","motionSensors","alarms"].includes(path))throw new Error("Invalid device path:"+path);switch(path){case"courtesy":return path;case"switches":return"switch";default:return path.slice(0,-1)}}get hasDimmer(){return this.dimmers?.length>0}get hasSwitch(){return this.switches?.length>0}get hasWindowCovering(){return this.windowCoverings?.length>0}get hasShade(){return this.hasWindowCovering}get hasThermostat(){return this.thermostats?.length>0}get hasClimate(){return this.hasThermostat}get hasLock(){return this.locks?.length>0}get hasCourtesy(){return this.courtesy?.length>0}get hasCamera(){return this.cameras?.length>0}get hasMedia(){return this.mediaSources?.length>0}get hasLight(){const hasDiscriminatorLight=this.switches?.some((sw=>"light"===sw.discriminator||"fan"===sw.discriminator));return this.hasDimmer||hasDiscriminatorLight}get hasAlarm(){return this.alarms?.length>0}get occupied(){const now=new Date,lastOccupied=new Date(this.occupiedAt);return now.getTime()-lastOccupied.getTime()<36e5}};Object.defineProperty(Room.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"room.json",title:"Room",description:"A room represents a physical space of controllable IoT devices",type:"object",required:["id","name"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["room"],default:"room"},name:{type:"string"},floor:{type:"string"},dimmers:{type:"array",default:[],items:{$ref:"dimmer.json"}},switches:{type:"array",default:[],items:{$ref:"switch.json"}},thermostats:{type:"array",default:[],items:{$ref:"thermostat.json"}},locks:{type:"array",default:[],items:{$ref:"lock.json"}},windowCoverings:{type:"array",default:[],items:{$ref:"windowCovering.json"}},courtesy:{type:"array",default:[],items:{$ref:"courtesy.json"}},cameras:{type:"array",default:[],items:{$ref:"camera.json"}},mediaSources:{type:"array",default:[],items:{$ref:"mediaSource.json"}},motionSensors:{type:"array",default:[],items:{$ref:"motionSensor.json"}},alarms:{type:"array",default:[],items:{$ref:"alarm.json"}},occupiedAt:{$ref:"definitions.json#/definitions/createdAt"},createdAt:{$ref:"definitions.json#/definitions/createdAt"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}},additionalProperties:!1}}),Object.defineProperty(Room.prototype,"validator",{get:__name((function(){return validateRoom}),"get")});export{Room};//# sourceMappingURL=chunk-FVHMXXO3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/models/room.js"],"sourcesContent":["/* @ts-nocheck */\n/* This file is automatically generated. Do not modify it manually. */\n\nimport { Entity } from \"./entity\";\nimport { validateRoom as validate } from \"../validate\";\n\n/**\n * @typedef {Object} RoomData A room represents a physical space of controllable IoT devices\n * @property {string} id - Identifier of the object.\n * @property {\"room\"} [type] - Default: \"room\"\n * @property {string} name\n * @property {string} [floor]\n * @property {{id: any, name?: string, type: any, supportedNotifications?: any, notification?: any, driver: any, offline?: boolean, level: number, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [dimmers] - Default: []\n * @property {{id: any, name?: string, type: any, discriminator?: (\"light\"|\"fan\"|\"irrigation\"), supportedNotifications?: any, notification?: any, driver: any, offline?: boolean, state: (\"on\"|\"off\"), systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string, restoresAt?: string}[]} [switches] - Default: []\n * @property {{id: any, name?: any, type: any, driver: any, offline?: boolean, supportedNotifications?: any, notification?: any, currentTemperature?: number, currentHumidity?: number, hvacMode: string, hvacState: (\"cooling\"|\"heating\"|\"off\"), fanMode: string, fanState: (\"off\"|\"low\"|\"medium\"|\"high\"|\"on\"), temperatureScale: (\"celsius\"|\"fahrenheit\"), humidityScale?: (\"absolute\"|\"relative\"), supportedHvacModes: (\"cool\"|\"heat\"|\"auto\"|\"off\")[], supportedFanModes: (\"auto\"|\"low\"|\"medium\"|\"high\"|\"off\"|\"on\")[], setpoints: {cool?: any, heat?: any, auto?: any}, minAutoDelta?: number, cycleRate?: number, batteryLevel?: any, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [thermostats] - Default: []\n * @property {{id: any, name?: string, type: any, offline?: boolean, supportedNotifications?: any, notification?: any, driver: any, state: (\"locked\"|\"unlocked\"), mode?: (\"normal\"|\"autoLock\"|\"emergencyOpen\"|\"emergencyClose\"|\"holdOpen\"|\"lockdown\"), supportedModes?: (\"normal\"|\"autoLock\"|\"emergencyOpen\"|\"emergencyClose\"|\"holdOpen\"|\"lockdown\")[], batteryLevel?: any, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [locks] - Default: []\n * @property {{id: any, name?: string, type: any, discriminator?: (\"basic\"|\"variable\"), supportedNotifications?: any, notification?: any, driver: any, offline?: boolean, position: number, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [windowCoverings] - Default: []\n * @property {{id: any, name?: string, type: any, supportedNotifications?: any, notification?: any, driver: any, offline?: boolean, supportedStates: (\"privacy\"|\"service\"|\"none\")[], state: string, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [courtesy] - Default: []\n * @property {{id: any, name?: string, discriminator?: \"doorStation\", type: \"camera\", offline?: boolean, supportedNotifications?: any, notification?: any, driver: any, liveStreams?: {iframe?: string, hls?: string, webRTC?: string, rtsp?: string}, liveStream?: {id?: string, driver?: (\"aws-kinesis\"|\"cloudflare-stream\"|\"doorbird\"|\"digital-watchdog\"|\"mediamtx\"), allowedOrigins?: string[], authRequired?: boolean, iframe?: string, hls?: string, webRTC?: string, rtsp?: string, previewImage?: string}, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [cameras] - Default: []\n * @property {{id: any, type: \"mediaSource\", discriminator: (\"tv\"|\"dvr\"|\"appleTv\"|\"discPlayer\"|\"mediaPlayer\"|\"paSystem\"|\"uncontrolledDevice\"), playlists?: {id?: string, name?: string}[], remote?: (\"MR22GA\"|\"XRT260\"|\"XRT270\"|\"HOF-16K 1.2\"|\"219863500\"|\"SONIFI\"|\"AKB76039803\"|\"BN59-01388A\"), name?: any, driver: any, offline?: boolean, audio: boolean, video: boolean, powerFeedback?: boolean, volumeFeedback?: boolean, muted?: boolean, volume?: number, brightness?: number, contrast?: number, power?: (\"on\"|\"off\"), input?: string, supportedInputs?: string[], supportedOutputs?: string[], command?: (\"mute\"|\"volumeUp\"|\"volumeDown\"|\"brightnessUp\"|\"brightnessDown\"|\"channelUp\"|\"channelDown\"|\"number0\"|\"number1\"|\"number2\"|\"number3\"|\"number4\"|\"number5\"|\"number6\"|\"number7\"|\"number8\"|\"number9\"|\"lastChannel\"|\"display\"|\"favoriteChannel\"|\"play\"|\"playing\"|\"stop\"|\"stopped\"|\"pause\"|\"paused\"|\"fastForward\"|\"fastForwarding\"|\"rewind\"|\"rewinding\"|\"instantReplay\"|\"record\"|\"ac3\"|\"pvrMenu\"|\"guide\"|\"menu\"|\"menuUp\"|\"menuDown\"|\"menuLeft\"|\"menuRight\"|\"pageUp\"|\"pageDown\"|\"select\"|\"exit\"|\"input\"|\"power\"|\"enterChannel\"|\"enterVolume\"|\"enterBrightness\"|\"enterContrast\"|\"number10\"|\"number11\"|\"number12\"|\"number13\"|\"number14\"|\"number15\"|\"number16\"|\"number10Plus\"|\"number20Plus\"|\"number100\"|\"dash\"|\"threeChan\"|\"threeD\"|\"sixChan\"|\"a\"|\"add\"|\"alarm\"|\"am\"|\"analog\"|\"angle\"|\"antenna\"|\"antennaEast\"|\"antennaWest\"|\"aspect\"|\"audio1\"|\"audio2\"|\"audio3\"|\"audioDumming\"|\"audioLevelDown\"|\"audioLevelUp\"|\"b\"|\"back\"|\"c\"|\"component1\"|\"component2\"|\"component3\"|\"d\"|\"home\"|\"list\"|\"liveTv\"|\"discreteInputCable\"|\"powerOff\"|\"powerOn\"|\"setupMenu\"|\"skipForward\"|\"skipReverse\"|\"video1\"|\"video2\"|\"video3\"|\"video4\"|\"video5\"|\"details\"|\"hdmi1\"|\"hdmi2\"|\"hdmi3\"|\"cecDeviceList\"|\"mtsSap\"|\"red\"|\"green\"|\"yellow\"|\"blue\"|\"alert\"|\"order\"), supportedNotifications?: any, notification?: any, systemId?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [mediaSources] - Default: []\n * @property {{id: any, name?: string, type: any, offline?: boolean, driver: any, systemId?: any, supportedNotifications?: any, notification?: any, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string}[]} [motionSensors] - Default: []\n * @property {{id: any, name?: string, offline?: boolean, type: \"alarm\", systemId?: any, supportedNotifications?: any, notification?: any, driver: any, areas: {number?: number, name?: string, securityMode?: (\"arming\"|\"disarming\"|\"armed\"|\"disarmed\"|\"alarm\")}[], zones: {number?: number, name?: string, secure?: boolean, bypassed?: boolean}[], chime?: boolean, watts?: any, icon?: string, modelNumber?: string, serialNumber?: string, firmwareVersion?: string, address?: any}[]} [alarms] - Default: []\n * @property {(string|object)} [occupiedAt]\n * @property {(string|object)} [createdAt]\n * @property {(string|object)} [updatedAt]\n */\n\n/**\n * A room represents a physical space of controllable IoT devices\n * @class Room\n * @extends {Entity}\n */\nexport class Room extends Entity {\n /**\n * @constructor\n * @param {RoomData} data - The data to initialize the Room with\n */\n constructor(data) {\n super(data);\n this.id = data.id;\n if (data.type !== undefined) this.type = data.type;\n this.name = data.name;\n if (data.floor !== undefined) this.floor = data.floor;\n if (data.dimmers !== undefined) this.dimmers = data.dimmers;\n if (data.switches !== undefined) this.switches = data.switches;\n if (data.thermostats !== undefined) this.thermostats = data.thermostats;\n if (data.locks !== undefined) this.locks = data.locks;\n if (data.windowCoverings !== undefined)\n this.windowCoverings = data.windowCoverings;\n if (data.courtesy !== undefined) this.courtesy = data.courtesy;\n if (data.cameras !== undefined) this.cameras = data.cameras;\n if (data.mediaSources !== undefined) this.mediaSources = data.mediaSources;\n if (data.motionSensors !== undefined)\n this.motionSensors = data.motionSensors;\n if (data.alarms !== undefined) this.alarms = data.alarms;\n if (data.occupiedAt !== undefined) this.occupiedAt = data.occupiedAt;\n if (data.createdAt !== undefined) this.createdAt = data.createdAt;\n if (data.updatedAt !== undefined) this.updatedAt = data.updatedAt;\n }\n\n static getDevicePath(type) {\n switch (type) {\n case \"tv\":\n case \"dvr\":\n case \"appleTv\":\n case \"discPlayer\":\n case \"mediaPlayer\":\n case \"uncontrolledDevice\":\n case \"mediaSource\":\n return \"mediaSources\";\n case \"courtesy\":\n return \"courtesy\";\n case \"switch\":\n return \"switches\";\n case \"dimmer\":\n return \"dimmers\";\n case \"thermostat\":\n return \"thermostats\";\n case \"lock\":\n return \"locks\";\n case \"windowCovering\":\n return \"windowCoverings\";\n case \"camera\":\n return \"cameras\";\n case \"motionSensor\":\n return \"motionSensors\";\n case \"alarm\":\n return \"alarms\";\n\n default:\n throw new Error(\"Invalid device type:\" + type);\n }\n }\n static getDeviceTypeFromPath(path) {\n const validPaths = [\n \"dimmers\",\n \"switches\",\n \"thermostats\",\n \"locks\",\n \"windowCoverings\",\n \"courtesy\",\n \"cameras\",\n \"mediaSources\",\n \"motionSensors\",\n \"alarms\",\n ];\n if (!validPaths.includes(path))\n throw new Error(\"Invalid device path:\" + path);\n switch (path) {\n case \"courtesy\":\n return path;\n case \"switches\":\n return \"switch\";\n default:\n return path.slice(0, -1);\n }\n }\n\n get hasDimmer() {\n return this.dimmers?.length > 0;\n }\n get hasSwitch() {\n return this.switches?.length > 0;\n }\n get hasWindowCovering() {\n return this.windowCoverings?.length > 0;\n }\n get hasShade() {\n return this.hasWindowCovering;\n }\n get hasThermostat() {\n return this.thermostats?.length > 0;\n }\n get hasClimate() {\n return this.hasThermostat;\n }\n get hasLock() {\n return this.locks?.length > 0;\n }\n get hasCourtesy() {\n return this.courtesy?.length > 0;\n }\n get hasCamera() {\n return this.cameras?.length > 0;\n }\n get hasMedia() {\n return this.mediaSources?.length > 0;\n }\n get hasLight() {\n const hasDiscriminatorLight = this.switches?.some((sw) => {\n return sw.discriminator === \"light\" || sw.discriminator === \"fan\";\n });\n return this.hasDimmer || hasDiscriminatorLight;\n }\n get hasAlarm() {\n return this.alarms?.length > 0;\n }\n get occupied() {\n const now = new Date();\n const lastOccupied = new Date(this.occupiedAt);\n const diff = now.getTime() - lastOccupied.getTime();\n return diff < 60 * 60 * 1000;\n }\n}\n\nObject.defineProperty(Room.prototype, \"schema\", {\n value: {\n $schema: \"http://json-schema.org/draft-07/schema\",\n $id: \"room.json\",\n title: \"Room\",\n description:\n \"A room represents a physical space of controllable IoT devices\",\n type: \"object\",\n required: [\"id\", \"name\"],\n properties: {\n id: { $ref: \"definitions.json#/definitions/id\" },\n type: { type: \"string\", enum: [\"room\"], default: \"room\" },\n name: { type: \"string\" },\n floor: { type: \"string\" },\n dimmers: { type: \"array\", default: [], items: { $ref: \"dimmer.json\" } },\n switches: { type: \"array\", default: [], items: { $ref: \"switch.json\" } },\n thermostats: {\n type: \"array\",\n default: [],\n items: { $ref: \"thermostat.json\" },\n },\n locks: { type: \"array\", default: [], items: { $ref: \"lock.json\" } },\n windowCoverings: {\n type: \"array\",\n default: [],\n items: { $ref: \"windowCovering.json\" },\n },\n courtesy: {\n type: \"array\",\n default: [],\n items: { $ref: \"courtesy.json\" },\n },\n cameras: { type: \"array\", default: [], items: { $ref: \"camera.json\" } },\n mediaSources: {\n type: \"array\",\n default: [],\n items: { $ref: \"mediaSource.json\" },\n },\n motionSensors: {\n type: \"array\",\n default: [],\n items: { $ref: \"motionSensor.json\" },\n },\n alarms: { type: \"array\", default: [], items: { $ref: \"alarm.json\" } },\n occupiedAt: { $ref: \"definitions.json#/definitions/createdAt\" },\n createdAt: { $ref: \"definitions.json#/definitions/createdAt\" },\n updatedAt: { $ref: \"definitions.json#/definitions/updatedAt\" },\n },\n additionalProperties: false,\n },\n});\n\nObject.defineProperty(Room.prototype, \"validator\", {\n get: function () {\n return validate;\n },\n});\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- import{validateDeviceRouter}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var DeviceRouter=class extends Entity{static{__name(this,"DeviceRouter")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.driver=data.driver,this.organizationId=data.organizationId,void 0!==data.devices&&(this.devices=data.devices)}};Object.defineProperty(DeviceRouter.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"deviceRouter.json",title:"Device Router",description:"A device router contains instructions on where to route devices based on their organization and driver.",type:"object",required:["driver","organizationId"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"deviceRouter",enum:["deviceRouter"]},driver:{type:"string"},organizationId:{type:["string","null"],description:"Reference (id) to the organization that owns this router"},devices:{type:"object",additionalProperties:!0}}}}),Object.defineProperty(DeviceRouter.prototype,"validator",{get:__name((function(){return validateDeviceRouter}),"get")});export{DeviceRouter};//# sourceMappingURL=chunk-CIIC5YSI.js.map
1
+ import{validateDeviceRouter}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var DeviceRouter=class extends Entity{static{__name(this,"DeviceRouter")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.driver=data.driver,this.organizationId=data.organizationId,void 0!==data.devices&&(this.devices=data.devices)}};Object.defineProperty(DeviceRouter.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"deviceRouter.json",title:"Device Router",description:"A device router contains instructions on where to route devices based on their organization and driver.",type:"object",required:["driver","organizationId"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"deviceRouter",enum:["deviceRouter"]},driver:{type:"string"},organizationId:{type:["string","null"],description:"Reference (id) to the organization that owns this router"},devices:{type:"object",additionalProperties:!0}}}}),Object.defineProperty(DeviceRouter.prototype,"validator",{get:__name((function(){return validateDeviceRouter}),"get")});export{DeviceRouter};//# sourceMappingURL=chunk-FYJXPB5Y.js.map
@@ -1 +1 @@
1
- import{validateSmsMessage}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var SmsMessage=class extends Entity{static{__name(this,"SmsMessage")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.to=data.to,this.from=data.from,void 0!==data.media&&(this.media=data.media),this.status=data.status,void 0!==data.body&&(this.body=data.body),void 0!==data.driver&&(this.driver=data.driver),void 0!==data.appData&&(this.appData=data.appData),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt),void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(SmsMessage.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"smsMessage.json",title:"Sms Message",type:"object",required:["to","from","status"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"smsMessage",enum:["smsMessage","whatsappMessage"]},to:{type:"string"},from:{type:"string"},media:{type:"string",format:"uri"},status:{type:"string",enum:["queued","accepted","sending","sent","failed","delivered","undelivered","receiving","received","read"]},body:{type:"string"},driver:{type:"string"},appData:{type:"object"},createdAt:{$ref:"definitions.json#/definitions/date"},updatedAt:{$ref:"definitions.json#/definitions/date"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(SmsMessage.prototype,"validator",{get:__name((function(){return validateSmsMessage}),"get")});export{SmsMessage};//# sourceMappingURL=chunk-WIZSIXXQ.js.map
1
+ import{validateSmsMessage}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var SmsMessage=class extends Entity{static{__name(this,"SmsMessage")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.to=data.to,this.from=data.from,void 0!==data.media&&(this.media=data.media),this.status=data.status,void 0!==data.body&&(this.body=data.body),void 0!==data.driver&&(this.driver=data.driver),void 0!==data.appData&&(this.appData=data.appData),void 0!==data.createdAt&&(this.createdAt=data.createdAt),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt),void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(SmsMessage.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"smsMessage.json",title:"Sms Message",type:"object",required:["to","from","status"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"smsMessage",enum:["smsMessage","whatsappMessage"]},to:{type:"string"},from:{type:"string"},media:{type:"string",format:"uri"},status:{type:"string",enum:["queued","accepted","sending","sent","failed","delivered","undelivered","receiving","received","read"]},body:{type:"string"},driver:{type:"string"},appData:{type:"object"},createdAt:{$ref:"definitions.json#/definitions/date"},updatedAt:{$ref:"definitions.json#/definitions/date"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(SmsMessage.prototype,"validator",{get:__name((function(){return validateSmsMessage}),"get")});export{SmsMessage};//# sourceMappingURL=chunk-GM336GLN.js.map
@@ -1 +1 @@
1
- import{validateShortLink}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var ShortLink=class extends Entity{static{__name(this,"ShortLink")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),void 0!==data.title&&(this.title=data.title),this.destination=data.destination,this.url=data.url,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(ShortLink.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"shortLink.json",title:"Short Link",type:"object",required:["destination","url"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"shortLink",enum:["shortLink"]},title:{type:"string"},destination:{type:"string",format:"uri"},url:{type:"string",format:"uri"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(ShortLink.prototype,"validator",{get:__name((function(){return validateShortLink}),"get")});export{ShortLink};//# sourceMappingURL=chunk-KW3HNS5S.js.map
1
+ import{validateShortLink}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var ShortLink=class extends Entity{static{__name(this,"ShortLink")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),void 0!==data.title&&(this.title=data.title),this.destination=data.destination,this.url=data.url,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(ShortLink.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"shortLink.json",title:"Short Link",type:"object",required:["destination","url"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"shortLink",enum:["shortLink"]},title:{type:"string"},destination:{type:"string",format:"uri"},url:{type:"string",format:"uri"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(ShortLink.prototype,"validator",{get:__name((function(){return validateShortLink}),"get")});export{ShortLink};//# sourceMappingURL=chunk-GSIQSWOV.js.map
@@ -1 +1 @@
1
- import{validateSwitch}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Switch=class extends Entity{static{__name(this,"Switch")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,void 0!==data.discriminator&&(this.discriminator=data.discriminator),void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),this.driver=data.driver,void 0!==data.offline&&(this.offline=data.offline),this.state=data.state,void 0!==data.systemId&&(this.systemId=data.systemId),void 0!==data.watts&&(this.watts=data.watts),void 0!==data.icon&&(this.icon=data.icon),void 0!==data.modelNumber&&(this.modelNumber=data.modelNumber),void 0!==data.serialNumber&&(this.serialNumber=data.serialNumber),void 0!==data.firmwareVersion&&(this.firmwareVersion=data.firmwareVersion),void 0!==data.restoresAt&&(this.restoresAt=data.restoresAt)}};Object.defineProperty(Switch.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"switch.json",title:"Switch",description:"Any smart switch",type:"object",required:["id","type","state","driver"],properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type"},discriminator:{type:"string",enum:["light","fan","irrigation"]},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},state:{type:"string",enum:["on","off"]},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"},restoresAt:{type:"string",format:"date-time"}}}}),Object.defineProperty(Switch.prototype,"validator",{get:__name((function(){return validateSwitch}),"get")});export{Switch};//# sourceMappingURL=chunk-AVZIY77R.js.map
1
+ import{validateSwitch}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Switch=class extends Entity{static{__name(this,"Switch")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,void 0!==data.discriminator&&(this.discriminator=data.discriminator),void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),this.driver=data.driver,void 0!==data.offline&&(this.offline=data.offline),this.state=data.state,void 0!==data.systemId&&(this.systemId=data.systemId),void 0!==data.watts&&(this.watts=data.watts),void 0!==data.icon&&(this.icon=data.icon),void 0!==data.modelNumber&&(this.modelNumber=data.modelNumber),void 0!==data.serialNumber&&(this.serialNumber=data.serialNumber),void 0!==data.firmwareVersion&&(this.firmwareVersion=data.firmwareVersion),void 0!==data.restoresAt&&(this.restoresAt=data.restoresAt)}};Object.defineProperty(Switch.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"switch.json",title:"Switch",description:"Any smart switch",type:"object",required:["id","type","state","driver"],properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type"},discriminator:{type:"string",enum:["light","fan","irrigation"]},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},state:{type:"string",enum:["on","off"]},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"},restoresAt:{type:"string",format:"date-time"}}}}),Object.defineProperty(Switch.prototype,"validator",{get:__name((function(){return validateSwitch}),"get")});export{Switch};//# sourceMappingURL=chunk-GYHEX2E7.js.map
@@ -1 +1 @@
1
- import{validateReservation}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Reservation=class extends Entity{static{__name(this,"Reservation")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.driver&&(this.driver=data.driver),void 0!==data.primaryGuest&&(this.primaryGuest=data.primaryGuest),this.type=data.type,void 0!==data.sharedGuests&&(this.sharedGuests=data.sharedGuests),void 0!==data.spaceCategory&&(this.spaceCategory=data.spaceCategory),void 0!==data.space&&(this.space=data.space),void 0!==data.previousSpace&&(this.previousSpace=data.previousSpace),this.status=data.status,void 0!==data.mobileCheckInSpaceCategoryChanged&&(this.mobileCheckInSpaceCategoryChanged=data.mobileCheckInSpaceCategoryChanged),void 0!==data.mobileCheckInSpaceChanged&&(this.mobileCheckInSpaceChanged=data.mobileCheckInSpaceChanged),void 0!==data.mobileCheckInStatus&&(this.mobileCheckInStatus=data.mobileCheckInStatus),void 0!==data.mobileCheckInStatusMessage&&(this.mobileCheckInStatusMessage=data.mobileCheckInStatusMessage),void 0!==data.confirmationNumber&&(this.confirmationNumber=data.confirmationNumber),void 0!==data.expectedCheckInDateTime&&(this.expectedCheckInDateTime=data.expectedCheckInDateTime),this.checkInDateTime=data.checkInDateTime,this.checkOutDateTime=data.checkOutDateTime,void 0!==data.adultCount&&(this.adultCount=data.adultCount),void 0!==data.childCount&&(this.childCount=data.childCount),void 0!==data.spaceCategoryAvailabilites&&(this.spaceCategoryAvailabilites=data.spaceCategoryAvailabilites),void 0!==data.revenue&&(this.revenue=data.revenue),void 0!==data.rateSuppressed&&(this.rateSuppressed=data.rateSuppressed),void 0!==data.payment&&(this.payment=data.payment),void 0!==data.company&&(this.company=data.company),void 0!==data.travelAgent&&(this.travelAgent=data.travelAgent),void 0!==data.systemId&&(this.systemId=data.systemId),void 0!==data.metadata&&(this.metadata=data.metadata),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}checkInTime(tz){return new Date(this.checkInDateTime).toLocaleString("default",{hour:"numeric",minute:"numeric",timeZone:tz})}checkOutTime(tz){return new Date(this.checkOutDateTime).toLocaleString("default",{hour:"numeric",minute:"numeric",timeZone:tz})}getNights(){const start=new Date(this.checkInDateTime),end=new Date(this.checkOutDateTime);let nights=Math.round((end-start)/864e5);return nights<=0&&(nights=1),nights}};Object.defineProperty(Reservation.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"reservation.json",title:"Reservation",type:"object",required:["type","status","checkInDateTime","checkOutDateTime"],properties:{id:{$ref:"definitions.json#/definitions/id"},driver:{$ref:"definitions.json#/definitions/driver"},primaryGuest:{type:"string"},type:{type:"string",default:"reservation",enum:["reservation"]},sharedGuests:{type:"array",items:{type:"string"}},spaceCategory:{type:"string"},space:{type:["string","null"]},previousSpace:{type:["string","null"],default:null,description:"Used when there was a space assigned and it changes"},status:{type:"string",enum:["reserved","checkedIn","checkedOut","cancelled","noShow","enquired","requested","optional"],description:" reserved - confirmed by both parties, before check-in\n checkedIn - checked in\n checkedOut - checked out\n cancelled - Cancelled\n noShow - No show\n enquired - Confirmed neither by the customer nor enterprise\n requested - Confirmed by the customer but not the enterprise (waitlist)\n optional - Confirmed by the enterprise but not the customer (holding)"},mobileCheckInSpaceCategoryChanged:{type:"boolean",description:"spaceCategory has changed from original."},mobileCheckInSpaceChanged:{type:"boolean"},mobileCheckInStatus:{type:"string",enum:["ready","blocked","preArrivalStepsRequired","spaceNotAssigned","spaceNotReady","checkInTimeNotStarted"]},mobileCheckInStatusMessage:{type:"string"},confirmationNumber:{type:"string"},expectedCheckInDateTime:{type:["string","object"],format:"date-time",description:"Expected arrival time of guest."},checkInDateTime:{type:["string","object"],format:"date-time"},checkOutDateTime:{type:["string","object"],format:"date-time"},adultCount:{type:"number",default:1,minimum:1},childCount:{type:"number",default:0},spaceCategoryAvailabilites:{type:"array",items:{type:"object",properties:{id:{type:"string"},price:{type:"number"},unit:{type:"string",enum:["night","stay","hour"]},isUpgrade:{type:"boolean"}}}},revenue:{$ref:"definitions.json#/definitions/revenue"},rateSuppressed:{type:"boolean"},payment:{type:"string"},company:{type:"string"},travelAgent:{type:"string"},systemId:{$ref:"definitions.json#/definitions/systemId"},metadata:{$ref:"definitions.json#/definitions/metadata"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}}}}),Object.defineProperty(Reservation.prototype,"validator",{get:__name((function(){return validateReservation}),"get")});export{Reservation};//# sourceMappingURL=chunk-IHVBHK4S.js.map
1
+ import{validateReservation}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Reservation=class extends Entity{static{__name(this,"Reservation")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.driver&&(this.driver=data.driver),void 0!==data.primaryGuest&&(this.primaryGuest=data.primaryGuest),this.type=data.type,void 0!==data.sharedGuests&&(this.sharedGuests=data.sharedGuests),void 0!==data.spaceCategory&&(this.spaceCategory=data.spaceCategory),void 0!==data.space&&(this.space=data.space),void 0!==data.previousSpace&&(this.previousSpace=data.previousSpace),this.status=data.status,void 0!==data.mobileCheckInSpaceCategoryChanged&&(this.mobileCheckInSpaceCategoryChanged=data.mobileCheckInSpaceCategoryChanged),void 0!==data.mobileCheckInSpaceChanged&&(this.mobileCheckInSpaceChanged=data.mobileCheckInSpaceChanged),void 0!==data.mobileCheckInStatus&&(this.mobileCheckInStatus=data.mobileCheckInStatus),void 0!==data.mobileCheckInStatusMessage&&(this.mobileCheckInStatusMessage=data.mobileCheckInStatusMessage),void 0!==data.confirmationNumber&&(this.confirmationNumber=data.confirmationNumber),void 0!==data.expectedCheckInDateTime&&(this.expectedCheckInDateTime=data.expectedCheckInDateTime),this.checkInDateTime=data.checkInDateTime,this.checkOutDateTime=data.checkOutDateTime,void 0!==data.adultCount&&(this.adultCount=data.adultCount),void 0!==data.childCount&&(this.childCount=data.childCount),void 0!==data.spaceCategoryAvailabilites&&(this.spaceCategoryAvailabilites=data.spaceCategoryAvailabilites),void 0!==data.revenue&&(this.revenue=data.revenue),void 0!==data.rateSuppressed&&(this.rateSuppressed=data.rateSuppressed),void 0!==data.payment&&(this.payment=data.payment),void 0!==data.company&&(this.company=data.company),void 0!==data.travelAgent&&(this.travelAgent=data.travelAgent),void 0!==data.systemId&&(this.systemId=data.systemId),void 0!==data.metadata&&(this.metadata=data.metadata),void 0!==data.updatedAt&&(this.updatedAt=data.updatedAt)}checkInTime(tz){return new Date(this.checkInDateTime).toLocaleString("default",{hour:"numeric",minute:"numeric",timeZone:tz})}checkOutTime(tz){return new Date(this.checkOutDateTime).toLocaleString("default",{hour:"numeric",minute:"numeric",timeZone:tz})}getNights(){const start=new Date(this.checkInDateTime),end=new Date(this.checkOutDateTime);let nights=Math.round((end-start)/864e5);return nights<=0&&(nights=1),nights}};Object.defineProperty(Reservation.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"reservation.json",title:"Reservation",type:"object",required:["type","status","checkInDateTime","checkOutDateTime"],properties:{id:{$ref:"definitions.json#/definitions/id"},driver:{$ref:"definitions.json#/definitions/driver"},primaryGuest:{type:"string"},type:{type:"string",default:"reservation",enum:["reservation"]},sharedGuests:{type:"array",items:{type:"string"}},spaceCategory:{type:"string"},space:{type:["string","null"]},previousSpace:{type:["string","null"],default:null,description:"Used when there was a space assigned and it changes"},status:{type:"string",enum:["reserved","checkedIn","checkedOut","cancelled","noShow","enquired","requested","optional"],description:" reserved - confirmed by both parties, before check-in\n checkedIn - checked in\n checkedOut - checked out\n cancelled - Cancelled\n noShow - No show\n enquired - Confirmed neither by the customer nor enterprise\n requested - Confirmed by the customer but not the enterprise (waitlist)\n optional - Confirmed by the enterprise but not the customer (holding)"},mobileCheckInSpaceCategoryChanged:{type:"boolean",description:"spaceCategory has changed from original."},mobileCheckInSpaceChanged:{type:"boolean"},mobileCheckInStatus:{type:"string",enum:["ready","blocked","preArrivalStepsRequired","spaceNotAssigned","spaceNotReady","checkInTimeNotStarted"]},mobileCheckInStatusMessage:{type:"string"},confirmationNumber:{type:"string"},expectedCheckInDateTime:{type:["string","object"],format:"date-time",description:"Expected arrival time of guest."},checkInDateTime:{type:["string","object"],format:"date-time"},checkOutDateTime:{type:["string","object"],format:"date-time"},adultCount:{type:"number",default:1,minimum:1},childCount:{type:"number",default:0},spaceCategoryAvailabilites:{type:"array",items:{type:"object",properties:{id:{type:"string"},price:{type:"number"},unit:{type:"string",enum:["night","stay","hour"]},isUpgrade:{type:"boolean"}}}},revenue:{$ref:"definitions.json#/definitions/revenue"},rateSuppressed:{type:"boolean"},payment:{type:"string"},company:{type:"string"},travelAgent:{type:"string"},systemId:{$ref:"definitions.json#/definitions/systemId"},metadata:{$ref:"definitions.json#/definitions/metadata"},updatedAt:{$ref:"definitions.json#/definitions/updatedAt"}}}}),Object.defineProperty(Reservation.prototype,"validator",{get:__name((function(){return validateReservation}),"get")});export{Reservation};//# sourceMappingURL=chunk-HTAUENTO.js.map
@@ -1 +1 @@
1
- import{validateLog}from"./chunk-VLFQ27ZT.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Log=class extends Entity{static{__name(this,"Log")}constructor(data){super(data),this.type=data.type,this.timestamp=data.timestamp,this.id=data.id,this.driver=data.driver,this.name=data.name,void 0!==data.field1&&(this.field1=data.field1),void 0!==data.field2&&(this.field2=data.field2),void 0!==data.field3&&(this.field3=data.field3),void 0!==data.field4&&(this.field4=data.field4),void 0!==data.field5&&(this.field5=data.field5),void 0!==data.field6&&(this.field6=data.field6)}};Object.defineProperty(Log.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"log.json",title:"Log",type:"object",required:["type","timestamp","id","driver","name"],properties:{type:{type:"string",default:"log",enum:["log"]},timestamp:{type:"number",minimum:1655907956593},id:{$ref:"definitions.json#/definitions/id"},driver:{$ref:"definitions.json#/definitions/driver"},name:{type:"string",description:"Event name"},field1:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field2:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field3:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field4:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field5:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field6:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}}}}}),Object.defineProperty(Log.prototype,"validator",{get:__name((function(){return validateLog}),"get")});export{Log};//# sourceMappingURL=chunk-BW6WOT2G.js.map
1
+ import{validateLog}from"./chunk-LD2Q53DK.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Log=class extends Entity{static{__name(this,"Log")}constructor(data){super(data),this.type=data.type,this.timestamp=data.timestamp,this.id=data.id,this.driver=data.driver,this.name=data.name,void 0!==data.field1&&(this.field1=data.field1),void 0!==data.field2&&(this.field2=data.field2),void 0!==data.field3&&(this.field3=data.field3),void 0!==data.field4&&(this.field4=data.field4),void 0!==data.field5&&(this.field5=data.field5),void 0!==data.field6&&(this.field6=data.field6)}};Object.defineProperty(Log.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"log.json",title:"Log",type:"object",required:["type","timestamp","id","driver","name"],properties:{type:{type:"string",default:"log",enum:["log"]},timestamp:{type:"number",minimum:1655907956593},id:{$ref:"definitions.json#/definitions/id"},driver:{$ref:"definitions.json#/definitions/driver"},name:{type:"string",description:"Event name"},field1:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field2:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field3:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field4:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field5:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}},field6:{type:"object",required:["name","value"],properties:{name:{type:"string"},value:{type:"string"}}}}}}),Object.defineProperty(Log.prototype,"validator",{get:__name((function(){return validateLog}),"get")});export{Log};//# sourceMappingURL=chunk-IBPSJJTM.js.map