@kohost/api-client 4.6.3 → 4.6.4

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 (253) hide show
  1. package/dist/amqpClient.cjs.map +1 -1
  2. package/dist/amqpClient.js +1 -1
  3. package/dist/{chunk-TM3PSLKD.js → chunk-272AWU65.js} +1 -1
  4. package/dist/{chunk-6LO4AAZU.js → chunk-2WQGG3GP.js} +1 -1
  5. package/dist/{chunk-3OHHAVGM.js → chunk-2YKTIVLE.js} +1 -1
  6. package/dist/{chunk-XGYTUUO7.js → chunk-3A366CIV.js} +1 -1
  7. package/dist/{chunk-XVJVSQGH.js → chunk-3MER5OVQ.js} +1 -1
  8. package/dist/{chunk-RE2TLPXP.js → chunk-4N4JCEJH.js} +1 -1
  9. package/dist/{chunk-364IZMI7.js → chunk-4QV2AU43.js} +1 -1
  10. package/dist/{chunk-364IZMI7.js.map → chunk-4QV2AU43.js.map} +1 -1
  11. package/dist/{chunk-IWGDMVNC.js → chunk-6D233UFG.js} +1 -1
  12. package/dist/{chunk-45WLVARH.js → chunk-6IMKOEPO.js} +1 -1
  13. package/dist/{chunk-VL5FTU46.js → chunk-7HBE4KJE.js} +1 -1
  14. package/dist/{chunk-PRDI3KRE.js → chunk-7WDWVUP4.js} +1 -1
  15. package/dist/{chunk-XRZGL3GO.js → chunk-BB2LZ6H4.js} +1 -1
  16. package/dist/{chunk-LM3DGQWT.js → chunk-BLPMSNOM.js} +1 -1
  17. package/dist/{chunk-XQ5CWKNA.js → chunk-BV7DLVJD.js} +1 -1
  18. package/dist/{chunk-DJZRIWGL.js → chunk-CPHTNHWG.js} +1 -1
  19. package/dist/{chunk-NL7OPBZY.js → chunk-CQ6QDFH5.js} +1 -1
  20. package/dist/{chunk-UIFA6TUW.js → chunk-E3ZIIDU2.js} +1 -1
  21. package/dist/{chunk-X7VZCU32.js → chunk-ELXY3DDW.js} +1 -1
  22. package/dist/{chunk-4SSME4Y4.js → chunk-ES43C3KH.js} +1 -1
  23. package/dist/{chunk-IAIKQXNR.js → chunk-F6IXLEJ6.js} +1 -1
  24. package/dist/{chunk-XYV2ZMBZ.js → chunk-FIIQWHVH.js} +1 -1
  25. package/dist/{chunk-KI6XJTAQ.js → chunk-GNH5YHFT.js} +1 -1
  26. package/dist/{chunk-6HFMALKH.js → chunk-ICMHZEBL.js} +1 -1
  27. package/dist/{chunk-DNAXIHEO.js → chunk-IZAHIGET.js} +1 -1
  28. package/dist/{chunk-BWKM6FHE.js → chunk-JBL22KMP.js} +1 -1
  29. package/dist/{chunk-FM7UL4RE.js → chunk-JIH6SR4Q.js} +1 -1
  30. package/dist/{chunk-CWTMCUZZ.js → chunk-KRZRJWUC.js} +1 -1
  31. package/dist/{chunk-CWTMCUZZ.js.map → chunk-KRZRJWUC.js.map} +1 -1
  32. package/dist/{chunk-Y5J5SCRG.js → chunk-LEEBU66C.js} +1 -1
  33. package/dist/{chunk-7SDGK3FY.js → chunk-M3FL4KEH.js} +1 -1
  34. package/dist/{chunk-LJVWC3E4.js → chunk-MMA2BJ4M.js} +1 -1
  35. package/dist/{chunk-LBHE6WMJ.js → chunk-MYYWR6TU.js} +1 -1
  36. package/dist/chunk-NYA3RBPT.js +1 -0
  37. package/dist/{chunk-HCLU4KYE.js.map → chunk-NYA3RBPT.js.map} +1 -1
  38. package/dist/{chunk-UNLKDI2P.js → chunk-OM4RZGDI.js} +1 -1
  39. package/dist/{chunk-UNLKDI2P.js.map → chunk-OM4RZGDI.js.map} +1 -1
  40. package/dist/{chunk-NWH5F523.js → chunk-ORD57R57.js} +1 -1
  41. package/dist/{chunk-FW7D3GH3.js → chunk-QRKJ3EPS.js} +1 -1
  42. package/dist/chunk-RM6XS6VX.js +1 -0
  43. package/dist/chunk-RM6XS6VX.js.map +1 -0
  44. package/dist/{chunk-PYZPYTS3.js → chunk-RMTYPPC5.js} +1 -1
  45. package/dist/{chunk-GXMHA263.js → chunk-ROCX57V3.js} +1 -1
  46. package/dist/{chunk-2P5LASH2.js → chunk-RV42OZ7B.js} +1 -1
  47. package/dist/{chunk-6BAPG7KI.js → chunk-RZSDC4H5.js} +1 -1
  48. package/dist/chunk-SCQ56FY5.js +1 -0
  49. package/dist/chunk-SCQ56FY5.js.map +1 -0
  50. package/dist/{chunk-7BI266GZ.js → chunk-SSJ5FXF7.js} +1 -1
  51. package/dist/{chunk-D5TZNOHT.js → chunk-UBULXWAL.js} +1 -1
  52. package/dist/{chunk-3H74J6YV.js → chunk-VQ7RZNSI.js} +1 -1
  53. package/dist/{chunk-Q33FW2UC.js → chunk-VRCIGWQ4.js} +1 -1
  54. package/dist/{chunk-Q33FW2UC.js.map → chunk-VRCIGWQ4.js.map} +1 -1
  55. package/dist/{chunk-UDBCX6ZP.js → chunk-XMCXXZYZ.js} +1 -1
  56. package/dist/{chunk-3XNNT6GS.js → chunk-YJLYY4JK.js} +1 -1
  57. package/dist/{chunk-RPCMFJ32.js → chunk-Z62P7Z4L.js} +1 -1
  58. package/dist/{chunk-IWIPSTOH.js → chunk-Z75TJKTC.js} +1 -1
  59. package/dist/{chunk-POWSQ6EB.js → chunk-ZIYKSNOV.js} +1 -1
  60. package/dist/commands/index.cjs.map +1 -1
  61. package/dist/commands/index.js +1 -1
  62. package/dist/errors/index.cjs.map +1 -1
  63. package/dist/errors/index.js +1 -1
  64. package/dist/events/index.cjs.map +1 -1
  65. package/dist/events/index.js +1 -1
  66. package/dist/index.cjs +1 -1
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.js +1 -1
  69. package/dist/models/alarm.cjs +1 -1
  70. package/dist/models/alarm.cjs.map +1 -1
  71. package/dist/models/alarm.js +1 -1
  72. package/dist/models/announcement.cjs +1 -1
  73. package/dist/models/announcement.cjs.map +1 -1
  74. package/dist/models/announcement.js +1 -1
  75. package/dist/models/automation.cjs +1 -1
  76. package/dist/models/automation.cjs.map +1 -1
  77. package/dist/models/automation.d.cts +111 -67
  78. package/dist/models/automation.d.ts +111 -67
  79. package/dist/models/automation.js +1 -1
  80. package/dist/models/camera.cjs +1 -1
  81. package/dist/models/camera.cjs.map +1 -1
  82. package/dist/models/camera.js +1 -1
  83. package/dist/models/category.cjs +1 -1
  84. package/dist/models/category.cjs.map +1 -1
  85. package/dist/models/category.js +1 -1
  86. package/dist/models/courtesy.cjs +1 -1
  87. package/dist/models/courtesy.cjs.map +1 -1
  88. package/dist/models/courtesy.js +1 -1
  89. package/dist/models/credential.cjs +1 -1
  90. package/dist/models/credential.cjs.map +1 -1
  91. package/dist/models/credential.js +1 -1
  92. package/dist/models/deviceRouter.cjs +1 -1
  93. package/dist/models/deviceRouter.cjs.map +1 -1
  94. package/dist/models/deviceRouter.js +1 -1
  95. package/dist/models/dimmer.cjs +1 -1
  96. package/dist/models/dimmer.cjs.map +1 -1
  97. package/dist/models/dimmer.js +1 -1
  98. package/dist/models/discoveredDevice.cjs +1 -1
  99. package/dist/models/discoveredDevice.cjs.map +1 -1
  100. package/dist/models/discoveredDevice.js +1 -1
  101. package/dist/models/emailMessage.cjs +1 -1
  102. package/dist/models/emailMessage.cjs.map +1 -1
  103. package/dist/models/emailMessage.js +1 -1
  104. package/dist/models/energyReport.cjs +1 -1
  105. package/dist/models/energyReport.cjs.map +1 -1
  106. package/dist/models/energyReport.js +1 -1
  107. package/dist/models/energyReportShard.cjs +1 -1
  108. package/dist/models/energyReportShard.cjs.map +1 -1
  109. package/dist/models/energyReportShard.js +1 -1
  110. package/dist/models/gateway.cjs +1 -1
  111. package/dist/models/gateway.cjs.map +1 -1
  112. package/dist/models/gateway.js +1 -1
  113. package/dist/models/identification.cjs +1 -1
  114. package/dist/models/identification.cjs.map +1 -1
  115. package/dist/models/identification.js +1 -1
  116. package/dist/models/index.cjs +1 -1
  117. package/dist/models/index.cjs.map +1 -1
  118. package/dist/models/index.js +1 -1
  119. package/dist/models/issue.cjs +1 -1
  120. package/dist/models/issue.cjs.map +1 -1
  121. package/dist/models/issue.js +1 -1
  122. package/dist/models/lock.cjs +1 -1
  123. package/dist/models/lock.cjs.map +1 -1
  124. package/dist/models/lock.js +1 -1
  125. package/dist/models/log.cjs +1 -1
  126. package/dist/models/log.cjs.map +1 -1
  127. package/dist/models/log.js +1 -1
  128. package/dist/models/mediaFile.cjs +1 -1
  129. package/dist/models/mediaFile.cjs.map +1 -1
  130. package/dist/models/mediaFile.js +1 -1
  131. package/dist/models/mediaSource.cjs +1 -1
  132. package/dist/models/mediaSource.cjs.map +1 -1
  133. package/dist/models/mediaSource.js +1 -1
  134. package/dist/models/motionSensor.cjs +1 -1
  135. package/dist/models/motionSensor.cjs.map +1 -1
  136. package/dist/models/motionSensor.js +1 -1
  137. package/dist/models/notification.cjs +1 -1
  138. package/dist/models/notification.cjs.map +1 -1
  139. package/dist/models/notification.js +1 -1
  140. package/dist/models/order.cjs +1 -1
  141. package/dist/models/order.cjs.map +1 -1
  142. package/dist/models/order.js +1 -1
  143. package/dist/models/organization.cjs +1 -1
  144. package/dist/models/organization.cjs.map +1 -1
  145. package/dist/models/organization.js +1 -1
  146. package/dist/models/payment.cjs +1 -1
  147. package/dist/models/payment.cjs.map +1 -1
  148. package/dist/models/payment.js +1 -1
  149. package/dist/models/policy.cjs +1 -1
  150. package/dist/models/policy.cjs.map +1 -1
  151. package/dist/models/policy.js +1 -1
  152. package/dist/models/product.cjs +1 -1
  153. package/dist/models/product.cjs.map +1 -1
  154. package/dist/models/product.js +1 -1
  155. package/dist/models/property.cjs +1 -1
  156. package/dist/models/property.cjs.map +1 -1
  157. package/dist/models/property.js +1 -1
  158. package/dist/models/reservation.cjs +1 -1
  159. package/dist/models/reservation.cjs.map +1 -1
  160. package/dist/models/reservation.js +1 -1
  161. package/dist/models/room.cjs +1 -1
  162. package/dist/models/room.cjs.map +1 -1
  163. package/dist/models/room.js +1 -1
  164. package/dist/models/scene.cjs +1 -1
  165. package/dist/models/scene.cjs.map +1 -1
  166. package/dist/models/scene.js +1 -1
  167. package/dist/models/shortLink.cjs +1 -1
  168. package/dist/models/shortLink.cjs.map +1 -1
  169. package/dist/models/shortLink.js +1 -1
  170. package/dist/models/smsMessage.cjs +1 -1
  171. package/dist/models/smsMessage.cjs.map +1 -1
  172. package/dist/models/smsMessage.js +1 -1
  173. package/dist/models/space.cjs +1 -1
  174. package/dist/models/space.cjs.map +1 -1
  175. package/dist/models/space.js +1 -1
  176. package/dist/models/switch.cjs +1 -1
  177. package/dist/models/switch.cjs.map +1 -1
  178. package/dist/models/switch.js +1 -1
  179. package/dist/models/systemUser.cjs +1 -1
  180. package/dist/models/systemUser.cjs.map +1 -1
  181. package/dist/models/systemUser.js +1 -1
  182. package/dist/models/thermostat.cjs +1 -1
  183. package/dist/models/thermostat.cjs.map +1 -1
  184. package/dist/models/thermostat.js +1 -1
  185. package/dist/models/ticket.cjs +1 -1
  186. package/dist/models/ticket.cjs.map +1 -1
  187. package/dist/models/ticket.js +1 -1
  188. package/dist/models/timeSheet.cjs +1 -1
  189. package/dist/models/timeSheet.cjs.map +1 -1
  190. package/dist/models/timeSheet.js +1 -1
  191. package/dist/models/user.cjs +1 -1
  192. package/dist/models/user.cjs.map +1 -1
  193. package/dist/models/user.js +1 -1
  194. package/dist/models/vendor.cjs +1 -1
  195. package/dist/models/vendor.cjs.map +1 -1
  196. package/dist/models/vendor.js +1 -1
  197. package/dist/models/windowCovering.cjs +1 -1
  198. package/dist/models/windowCovering.cjs.map +1 -1
  199. package/dist/models/windowCovering.js +1 -1
  200. package/dist/useCases/index.cjs.map +1 -1
  201. package/dist/useCases/index.js +1 -1
  202. package/dist/utils.cjs +1 -1
  203. package/dist/utils.cjs.map +1 -1
  204. package/dist/utils.js +1 -1
  205. package/package.json +1 -1
  206. package/dist/chunk-HCLU4KYE.js +0 -1
  207. package/dist/chunk-IL3ICDGN.js +0 -1
  208. package/dist/chunk-IL3ICDGN.js.map +0 -1
  209. package/dist/chunk-MOGXYZHC.js +0 -1
  210. package/dist/chunk-MOGXYZHC.js.map +0 -1
  211. /package/dist/{chunk-TM3PSLKD.js.map → chunk-272AWU65.js.map} +0 -0
  212. /package/dist/{chunk-6LO4AAZU.js.map → chunk-2WQGG3GP.js.map} +0 -0
  213. /package/dist/{chunk-3OHHAVGM.js.map → chunk-2YKTIVLE.js.map} +0 -0
  214. /package/dist/{chunk-XGYTUUO7.js.map → chunk-3A366CIV.js.map} +0 -0
  215. /package/dist/{chunk-XVJVSQGH.js.map → chunk-3MER5OVQ.js.map} +0 -0
  216. /package/dist/{chunk-RE2TLPXP.js.map → chunk-4N4JCEJH.js.map} +0 -0
  217. /package/dist/{chunk-IWGDMVNC.js.map → chunk-6D233UFG.js.map} +0 -0
  218. /package/dist/{chunk-45WLVARH.js.map → chunk-6IMKOEPO.js.map} +0 -0
  219. /package/dist/{chunk-VL5FTU46.js.map → chunk-7HBE4KJE.js.map} +0 -0
  220. /package/dist/{chunk-PRDI3KRE.js.map → chunk-7WDWVUP4.js.map} +0 -0
  221. /package/dist/{chunk-XRZGL3GO.js.map → chunk-BB2LZ6H4.js.map} +0 -0
  222. /package/dist/{chunk-LM3DGQWT.js.map → chunk-BLPMSNOM.js.map} +0 -0
  223. /package/dist/{chunk-XQ5CWKNA.js.map → chunk-BV7DLVJD.js.map} +0 -0
  224. /package/dist/{chunk-DJZRIWGL.js.map → chunk-CPHTNHWG.js.map} +0 -0
  225. /package/dist/{chunk-NL7OPBZY.js.map → chunk-CQ6QDFH5.js.map} +0 -0
  226. /package/dist/{chunk-UIFA6TUW.js.map → chunk-E3ZIIDU2.js.map} +0 -0
  227. /package/dist/{chunk-X7VZCU32.js.map → chunk-ELXY3DDW.js.map} +0 -0
  228. /package/dist/{chunk-4SSME4Y4.js.map → chunk-ES43C3KH.js.map} +0 -0
  229. /package/dist/{chunk-IAIKQXNR.js.map → chunk-F6IXLEJ6.js.map} +0 -0
  230. /package/dist/{chunk-XYV2ZMBZ.js.map → chunk-FIIQWHVH.js.map} +0 -0
  231. /package/dist/{chunk-KI6XJTAQ.js.map → chunk-GNH5YHFT.js.map} +0 -0
  232. /package/dist/{chunk-6HFMALKH.js.map → chunk-ICMHZEBL.js.map} +0 -0
  233. /package/dist/{chunk-DNAXIHEO.js.map → chunk-IZAHIGET.js.map} +0 -0
  234. /package/dist/{chunk-BWKM6FHE.js.map → chunk-JBL22KMP.js.map} +0 -0
  235. /package/dist/{chunk-FM7UL4RE.js.map → chunk-JIH6SR4Q.js.map} +0 -0
  236. /package/dist/{chunk-Y5J5SCRG.js.map → chunk-LEEBU66C.js.map} +0 -0
  237. /package/dist/{chunk-7SDGK3FY.js.map → chunk-M3FL4KEH.js.map} +0 -0
  238. /package/dist/{chunk-LJVWC3E4.js.map → chunk-MMA2BJ4M.js.map} +0 -0
  239. /package/dist/{chunk-LBHE6WMJ.js.map → chunk-MYYWR6TU.js.map} +0 -0
  240. /package/dist/{chunk-NWH5F523.js.map → chunk-ORD57R57.js.map} +0 -0
  241. /package/dist/{chunk-FW7D3GH3.js.map → chunk-QRKJ3EPS.js.map} +0 -0
  242. /package/dist/{chunk-PYZPYTS3.js.map → chunk-RMTYPPC5.js.map} +0 -0
  243. /package/dist/{chunk-GXMHA263.js.map → chunk-ROCX57V3.js.map} +0 -0
  244. /package/dist/{chunk-2P5LASH2.js.map → chunk-RV42OZ7B.js.map} +0 -0
  245. /package/dist/{chunk-6BAPG7KI.js.map → chunk-RZSDC4H5.js.map} +0 -0
  246. /package/dist/{chunk-7BI266GZ.js.map → chunk-SSJ5FXF7.js.map} +0 -0
  247. /package/dist/{chunk-D5TZNOHT.js.map → chunk-UBULXWAL.js.map} +0 -0
  248. /package/dist/{chunk-3H74J6YV.js.map → chunk-VQ7RZNSI.js.map} +0 -0
  249. /package/dist/{chunk-UDBCX6ZP.js.map → chunk-XMCXXZYZ.js.map} +0 -0
  250. /package/dist/{chunk-3XNNT6GS.js.map → chunk-YJLYY4JK.js.map} +0 -0
  251. /package/dist/{chunk-RPCMFJ32.js.map → chunk-Z62P7Z4L.js.map} +0 -0
  252. /package/dist/{chunk-IWIPSTOH.js.map → chunk-Z75TJKTC.js.map} +0 -0
  253. /package/dist/{chunk-POWSQ6EB.js.map → chunk-ZIYKSNOV.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-05-10T15:07:59.162Z\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-05-16T22:30:53.544Z\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AACxB,wBAA6B;AAC7B,mBAAgB;AAChB,yBAAuB;AACvB,aAAwB;;;ACJjB,IAAM,gBAAgB;AAAA;AAAA,EAE3B,UAAU;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA;AAAA,EAEA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA;AAAA,EAEA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACF;;;AC3CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,WAAN,MAAM,kBAAiB,MAAM;AAAA,EAApC,OAAoC;AAAA;AAAA;AAAA,EAClC,YAAY,UAAU,yBAAyB,SAAS;AACtD,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,UAAS,SAAS;AAAA,EAChD;AACF;;;ACNO,IAAM,sBAAN,MAAM,6BAA4B,SAAS;AAAA,EAFlD,OAEkD;AAAA;AAAA;AAAA,EAChD,YAAY,UAAU,wBAAwB,UAAU,CAAC,GAAG;AAC1D,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,qBAAoB,SAAS;AAAA,EAC3D;AACF;;;ACPO,IAAM,qBAAN,MAAM,4BAA2B,SAAS;AAAA,EAFjD,OAEiD;AAAA;AAAA;AAAA,EAC/C,YAAY,UAAU,uBAAuB,UAAU,CAAC,GAAG;AACzD,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,oBAAmB,SAAS;AAAA,EAC1D;AACF;;;ACPO,IAAM,gBAAN,MAAM,uBAAsB,SAAS;AAAA,EAF5C,OAE4C;AAAA;AAAA;AAAA,EAC1C,YAAY,UAAU,eAAe,UAAU,CAAC,GAAG;AACjD,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,eAAc,SAAS;AAAA,EACrD;AACF;;;ACPO,IAAM,kBAAN,MAAM,yBAAwB,SAAS;AAAA,EAF9C,OAE8C;AAAA;AAAA;AAAA,EAC5C,YAAY,UAAU,8BAA8B,UAAU,CAAC,GAAG;AAChE,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,iBAAgB,SAAS;AAAA,EACvD;AACF;;;ACPO,IAAM,aAAN,MAAM,oBAAmB,SAAS;AAAA,EAFzC,OAEyC;AAAA;AAAA;AAAA,EACvC,YAAY,UAAU,sCAAsC,UAAU,CAAC,GAAG;AACxE,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,YAAW,SAAS;AAAA,EAClD;AACF;;;ACPO,IAAM,gBAAN,MAAM,uBAAsB,SAAS;AAAA,EAF5C,OAE4C;AAAA;AAAA;AAAA,EAC1C,YAAY,UAAU,sBAAsB,UAAU,CAAC,GAAG;AACxD,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,eAAc,SAAS;AAAA,EACrD;AACF;;;ACPO,IAAM,eAAN,MAAM,sBAAqB,SAAS;AAAA,EAF3C,OAE2C;AAAA;AAAA;AAAA,EACzC,YAAY,UAAU,eAAe,UAAU,CAAC,GAAG;AACjD,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,cAAa,SAAS;AAAA,EACpD;AACF;;;ACPO,IAAM,kBAAN,MAAM,yBAAwB,SAAS;AAAA,EAF9C,OAE8C;AAAA;AAAA;AAAA,EAC5C,YAAY,UAAU,8BAA8B,UAAU,CAAC,GAAG;AAChE,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,iBAAgB,SAAS;AAAA,EACvD;AACF;;;ACPO,IAAM,oBAAN,MAAM,2BAA0B,SAAS;AAAA,EAFhD,OAEgD;AAAA;AAAA;AAAA,EAC9C,YAAY,UAAU,iBAAiB,UAAU,CAAC,GAAG;AACnD,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,mBAAkB,SAAS;AAAA,EACzD;AACF;;;ACPO,IAAM,4BAAN,MAAM,mCAAkC,SAAS;AAAA,EAFxD,OAEwD;AAAA;AAAA;AAAA,EACtD,YAAY,UAAU,+BAA+B,UAAU,CAAC,GAAG;AACjE,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,2BAA0B,SAAS;AAAA,EACjE;AACF;;;ACPO,IAAM,kBAAN,MAAM,yBAAwB,SAAS;AAAA,EAF9C,OAE8C;AAAA;AAAA;AAAA,EAC5C,YAAY,UAAU,oBAAoB,UAAU,CAAC,GAAG;AACtD,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAClB,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,iBAAgB,SAAS;AAAA,EACvD;AACF;;;AdDA,IAAMA,cAAoB;AAE1B,IAAM,YAAQ,aAAAC,SAAI,oBAAoB;AAEtC,IAAM,6BAA6B;AACnC,IAAM,yBAAyB;AAC/B,IAAM,oBAAoB;AAC1B,IAAM,0BAA0B;AAChC,IAAM,wBAAwB;AAEvB,IAAM,mBAAN,MAAuB;AAAA,EAlB9B,OAkB8B;AAAA;AAAA;AAAA,EAC5B,WAAW,UAAU;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,YAAY;AACrB,WAAO;AAAA,EACT;AAAA,EACA,OAAO,wBAAwB;AAC7B,WAAOD,YAAW;AAAA,EACpB;AAAA,EAEA,OAAO,gBAAgB,SAAS;AAC9B,QAAI,CAAC,QAAS,OAAM,IAAI,MAAM,qBAAqB;AAAA,EACrD;AAAA,EAEA,OAAO,WAAW,KAAK;AACrB,QAAI;AACJ,QAAI;AACJ,QAAI,UAAU,CAAC;AACf,QAAI,IAAI,WAAW,IAAI,MAAM;AAC3B,YAAM,EAAE,SAAS,YAAY,MAAM,SAAS,GAAG,KAAK,IAAI;AACxD,aAAO;AACP,gBAAU;AACV,gBAAU;AAAA,IACZ,OAAO;AACL,gBAAU,IAAI,WAAW;AAAA,IAC3B;AAEA,UAAM,cAAc,MAAM,SAAS,OAAO;AAE1C,QAAI,QAAQ,eAAO,IAAI,GAAG;AACxB,aAAO,IAAI,eAAO,IAAI,EAAE,SAAS,OAAO;AAAA,IAC1C;AAEA,WAAO,IAAI,MAAM,SAAS,OAAO;AAAA,EACnC;AAAA,EAEA,OAAO,aAAa,SAAS;AAC3B,QAAI,QAAQ;AACZ,QAAI,OAAO,CAAC;AACZ,QAAI,QAAQ,CAAC;AACb,QAAI,UAAU,CAAC;AACf,QAAI,UAAU,CAAC;AAEf,UAAM,YAAY,SAAS,YAAY,SAAS;AAChD,UAAM,UAAU,SAAS,YAAY,SAAS;AAE9C,UAAM,iBAAiB,SAAS,YAAY,WAAW,CAAC;AAExD,UAAM,cAAc,eAAe,uBAAuB,KAAK;AAC/D,UAAM,YAAY,eAAe,qBAAqB,KAAK;AAE3D,QAAI,QAAQ,SAAS;AACnB,UAAI;AACF,cAAM,UACJ,QAAQ,YAAY,gBAAgB,qBAChC,KAAK,MAAM,QAAQ,QAAQ,SAAS,CAAC,IACrC,QAAQ,QAAQ,SAAS;AAC/B,eAAO,SAAS,QAAQ,CAAC;AACzB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS,SAAS,CAAC;AAC3B,kBAAU,SAAS,WAAW,CAAC;AAAA,MACjC,SAASE,QAAO;AACd,cAAM,yBAAyBA,MAAK;AACpC,eAAO,QAAQ,QAAQ,SAAS;AAAA,MAClC;AAAA,IACF;AAEA,QAAI,SAAS,YAAY,SAAS;AAChC,YAAM,YAAY,QAAQ,WAAW,QAAQ,0BAA0B;AACvE,YAAM,iBAAiB,QAAQ,WAAW,QAAQ,sBAAsB;AACxE,YAAM,eAAe,QAAQ,WAAW,QAAQ,iBAAiB;AAEjE,UAAI,WAAW;AACb,gBAAQ,iBAAiB;AACzB,gBAAQ,0BAA0B,IAAI;AAAA,MACxC;AAEA,UAAI,gBAAgB;AAClB,gBAAQ,aAAa;AACrB,gBAAQ,sBAAsB,IAAI;AAAA,MACpC;AAEA,UAAI,cAAc;AAChB,gBAAQ,SAAS;AACjB,gBAAQ,iBAAiB,IAAI;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,SAAS,CAAC;AAEhB,QAAI,MAAO,QAAO,QAAQ,KAAK,WAAW,KAAK;AAE/C,WAAO,OAAO;AACd,WAAO,QAAQ;AACf,WAAO,UAAU;AACjB,WAAO,UAAU;AAEjB,QAAI,WAAW,UAAW,QAAO,QAAQ;AAAA,aAChC,aAAa,YAAa,QAAO,UAAU;AAEpD,UAAM,kBAAkB,MAAM;AAE9B,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,WAAW,SAAS;AACzB,QAAI,CAAC,SAAS,QAAS,QAAO;AAC9B,UAAM,UAAU,KAAK,MAAM,QAAQ,QAAQ,SAAS,CAAC;AACrD,UAAM,OAAO,SAAS;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,aAAa,KAAK;AACvB,eAAO,gCAAa,GAAG;AAAA,EACzB;AAAA,EAEA,MAAM,iBAAiB,YAAY,UAAU,CAAC,GAAG;AAC/C,WAAO,UAAM,wBAAQ,YAAY,OAAO;AAAA,EAC1C;AAAA,EAEA,OAAO,cAAc,SAAS;AAC5B,WAAO,IAAI,QAAQ,OAAO;AAAA,EAC5B;AAAA,EAEA,MAAM,cAAc,YAAY;AAC9B,UAAM,UAAU,MAAM,WAAW,cAAc;AAC/C,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,eAAe,SAAS,EAAE,UAAU,MAAM,QAAQ,GAAG;AACzD,WAAO,MAAM,QAAQ,eAAe,UAAU,MAAM,OAAO;AAAA,EAC7D;AAAA,EAEA,MAAM,YAAY,SAAS,EAAE,OAAO,QAAQ,GAAG;AAC7C,WAAO,MAAM,QAAQ,YAAY,OAAO,OAAO;AAAA,EACjD;AAAA,EAEA,MAAM,UAAU,SAAS,EAAE,OAAO,UAAU,YAAY,KAAK,GAAG;AAC9D,WAAO,MAAM,QAAQ,UAAU,OAAO,UAAU,YAAY,IAAI;AAAA,EAClE;AAAA,EAEA,MAAM,aAAa,SAAS,EAAE,QAAQ,aAAa,YAAY,KAAK,GAAG;AACrE,WAAO,MAAM,QAAQ,aAAa,aAAa,QAAQ,YAAY,IAAI;AAAA,EACzE;AAAA,EAEA,MAAM,iBAAiB,SAAS,EAAE,OAAO,IAAI,QAAQ,GAAG;AACtD,WAAO,MAAM,QAAQ,QAAQ,OAAO,IAAI,OAAO;AAAA,EACjD;AAAA,EAEA,kBAAkB,SAAS,EAAE,UAAU,YAAY,SAAS,QAAQ,GAAG;AACrE,WAAO,QAAQ,QAAQ,UAAU,YAAY,SAAS,OAAO;AAAA,EAC/D;AACF;AAEA,IAAM,UAAN,MAAc;AAAA,EA9Kd,OA8Kc;AAAA;AAAA;AAAA,EACZ,YAAY,SAAS;AACnB,SAAK,aAAa;AAClB,SAAK,UAAU;AACf,SAAK,UAAU;AAAA,MACb,aAAa;AAAA,MACb,WAAW,KAAK,IAAI;AAAA,IACtB;AACA,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,KAAK,QAAQ,iBAAiB;AAAA,EACvC;AAAA,EAEA,GAAG,EAAE,SAAS,GAAG;AACf,QAAI,OAAO,aAAa;AACtB,YAAM,IAAI,MAAM,sBAAsB;AACxC,SAAK,aAAa;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,MAAM;AACb,SAAK,QAAQ,OAAO;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,YAAY;AACzB,SAAK,aAAa;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,SAAS;AACnB,QAAI,CAAC,KAAK,QAAQ,QAAS,MAAK,QAAQ,UAAU,CAAC;AACnD,SAAK,QAAQ,UAAU,EAAE,GAAG,KAAK,QAAQ,SAAS,GAAG,QAAQ;AAC7D,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,SAAS;AACnB,aAAS,OAAO,SAAS;AACvB,WAAK,YAAY,EAAE,CAAC,GAAG,GAAG,QAAQ,GAAG,EAAE,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB,eAAe;AAC/B,SAAK,QAAQ,gBAAgB;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,OAAO;AACjB,SAAK,QAAQ,UAAU;AACvB,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ;AACN,QAAI,UAAU,KAAK;AACnB,QAAI,QAAQ,SAAS,OAAO,QAAQ,UAAU;AAC5C,gBAAU,QAAQ,MAAM;AAE1B,WAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf,SAAS,0BAAO,KAAK,KAAK,UAAU,OAAO,CAAC;AAAA,MAC5C,SAAS,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,IACnB;AAAA,EACF;AACF;","names":["randomUUID","dbg","error"]}
@@ -1 +1 @@
1
- import{KohostAMQPClient}from"./chunk-KI6XJTAQ.js";import"./chunk-364IZMI7.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-GNH5YHFT.js";import"./chunk-4QV2AU43.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{validateTicket}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Ticket=class extends Entity{static{__name(this,"Ticket")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),void 0!==data.number&&(this.number=data.number),void 0!==data.issueId&&(this.issueId=data.issueId),this.conversation=data.conversation,void 0!==data.subject&&(this.subject=data.subject),void 0!==data.openedBy&&(this.openedBy=data.openedBy),this.requester=data.requester,void 0!==data.assignedTo&&(this.assignedTo=data.assignedTo),void 0!==data.notify&&(this.notify=data.notify),void 0!==data.collaborators&&(this.collaborators=data.collaborators),void 0!==data.location&&(this.location=data.location),this.status=data.status,void 0!==data.priority&&(this.priority=data.priority),this.tags=data.tags,void 0!==data.department&&(this.department=data.department),void 0!==data.rating&&(this.rating=data.rating),void 0!==data.ratingComment&&(this.ratingComment=data.ratingComment),void 0!==data.tipAmount&&(this.tipAmount=data.tipAmount),void 0!==data.autoCloseAt&&(this.autoCloseAt=data.autoCloseAt),void 0!==data.scheduleDate&&(this.scheduleDate=data.scheduleDate),this.createdAt=data.createdAt,this.updatedAt=data.updatedAt,void 0!==data.solvedAt&&(this.solvedAt=data.solvedAt),void 0!==data.closedAt&&(this.closedAt=data.closedAt)}};Object.defineProperty(Ticket.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"ticket.json",title:"Ticket",description:"A ticket is a request from a user.",type:"object",required:["id","conversation","requester","status","tags","createdAt","updatedAt"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["ticket"],default:"ticket"},number:{type:"string"},issueId:{type:"string"},conversation:{type:"array",default:[],items:{type:"object",additionalProperties:!1,required:["id","discriminator","timestamp","body"],properties:{id:{type:"string"},discriminator:{type:"string",enum:["message","opened","assigned","rated","tipped","scheduled","collaboratorAdded","collaboratorRemoved","statusChanged","priorityChanged","scheduleDateChanged","locationChanged"],default:"message"},userId:{type:"string"},userName:{type:"string"},vendorId:{type:"string"},vendorName:{type:"string"},systemId:{type:"string"},systemName:{type:"string"},timestamp:{$ref:"definitions.json#/definitions/createdAt"},body:{type:"string"},parsedBody:{type:"object",additionalProperties:!1,properties:{text:{type:"string"},mentions:{type:"array",default:[],items:{type:"object",additionalProperties:!1,required:["discriminator","id","index","length","originalText"],properties:{id:{type:"string"},discriminator:{type:"string",enum:["user","vendor","system"]},index:{type:"integer"},length:{type:"integer"},originalText:{type:"string"}}}}}},readBy:{type:"array",default:[],items:{type:"string"}},media:{anyOf:[{$ref:"mediaFile.json"},{type:"null"}]}}}},subject:{type:"string"},openedBy:{type:"object",properties:{userId:{type:"string"},userName:{type:"string"},systemId:{type:"string"},systemName:{type:"string"}}},requester:{type:"object",properties:{systemId:{type:"string"},systemName:{type:"string"},systemPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]},userId:{type:"string"},userName:{type:"string"},userPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]},deviceId:{type:"string"},roomId:{type:"string"},reservationId:{type:"string"},spaceId:{type:"string"},spaceName:{type:"string"}}},assignedTo:{type:"object",properties:{userId:{type:"string"},userName:{type:"string"},userPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]},vendorId:{type:"string"},vendorName:{type:"string"},vendorPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]}}},notify:{type:"array",description:"A list of entities to notify when this ticket is created or resolved.",default:[],items:{type:"object",required:["id","discriminator"],additionalProperties:!1,properties:{id:{type:"string",description:"The ID of the entity to notify."},discriminator:{type:"string",enum:["user"]}}}},collaborators:{type:"array",default:[],items:{type:"object",required:["id","name","discriminator"],additionalProperties:!1,properties:{id:{type:"string"},name:{type:"string"},discriminator:{type:"string",enum:["user","vendor"]}}}},location:{type:"object",required:["discriminator","name"],additionalProperties:!1,properties:{id:{type:"string"},discriminator:{type:"string",enum:["space","room","property","customText"]},name:{type:"string"}}},status:{type:"string",enum:["open","pending","solved","closed"],default:"open"},priority:{type:"string",enum:["low","normal","high"],default:"normal"},tags:{type:"array",default:[],items:{type:"string"}},department:{type:"string"},rating:{type:"number",minimum:0,maximum:5},ratingComment:{type:"string"},tipAmount:{type:"string"},autoCloseAt:{$ref:"definitions.json#/definitions/date"},scheduleDate:{$ref:"definitions.json#/definitions/date"},createdAt:{$ref:"definitions.json#/definitions/date"},updatedAt:{$ref:"definitions.json#/definitions/date"},solvedAt:{$ref:"definitions.json#/definitions/date"},closedAt:{$ref:"definitions.json#/definitions/date"}}}}),Object.defineProperty(Ticket.prototype,"validator",{get:__name((function(){return validateTicket}),"get")});export{Ticket};//# sourceMappingURL=chunk-TM3PSLKD.js.map
1
+ import{validateTicket}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Ticket=class extends Entity{static{__name(this,"Ticket")}constructor(data){super(data),this.id=data.id,void 0!==data.type&&(this.type=data.type),void 0!==data.number&&(this.number=data.number),void 0!==data.issueId&&(this.issueId=data.issueId),this.conversation=data.conversation,void 0!==data.subject&&(this.subject=data.subject),void 0!==data.openedBy&&(this.openedBy=data.openedBy),this.requester=data.requester,void 0!==data.assignedTo&&(this.assignedTo=data.assignedTo),void 0!==data.notify&&(this.notify=data.notify),void 0!==data.collaborators&&(this.collaborators=data.collaborators),void 0!==data.location&&(this.location=data.location),this.status=data.status,void 0!==data.priority&&(this.priority=data.priority),this.tags=data.tags,void 0!==data.department&&(this.department=data.department),void 0!==data.rating&&(this.rating=data.rating),void 0!==data.ratingComment&&(this.ratingComment=data.ratingComment),void 0!==data.tipAmount&&(this.tipAmount=data.tipAmount),void 0!==data.autoCloseAt&&(this.autoCloseAt=data.autoCloseAt),void 0!==data.scheduleDate&&(this.scheduleDate=data.scheduleDate),this.createdAt=data.createdAt,this.updatedAt=data.updatedAt,void 0!==data.solvedAt&&(this.solvedAt=data.solvedAt),void 0!==data.closedAt&&(this.closedAt=data.closedAt)}};Object.defineProperty(Ticket.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"ticket.json",title:"Ticket",description:"A ticket is a request from a user.",type:"object",required:["id","conversation","requester","status","tags","createdAt","updatedAt"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",enum:["ticket"],default:"ticket"},number:{type:"string"},issueId:{type:"string"},conversation:{type:"array",default:[],items:{type:"object",additionalProperties:!1,required:["id","discriminator","timestamp","body"],properties:{id:{type:"string"},discriminator:{type:"string",enum:["message","opened","assigned","rated","tipped","scheduled","collaboratorAdded","collaboratorRemoved","statusChanged","priorityChanged","scheduleDateChanged","locationChanged"],default:"message"},userId:{type:"string"},userName:{type:"string"},vendorId:{type:"string"},vendorName:{type:"string"},systemId:{type:"string"},systemName:{type:"string"},timestamp:{$ref:"definitions.json#/definitions/createdAt"},body:{type:"string"},parsedBody:{type:"object",additionalProperties:!1,properties:{text:{type:"string"},mentions:{type:"array",default:[],items:{type:"object",additionalProperties:!1,required:["discriminator","id","index","length","originalText"],properties:{id:{type:"string"},discriminator:{type:"string",enum:["user","vendor","system"]},index:{type:"integer"},length:{type:"integer"},originalText:{type:"string"}}}}}},readBy:{type:"array",default:[],items:{type:"string"}},media:{anyOf:[{$ref:"mediaFile.json"},{type:"null"}]}}}},subject:{type:"string"},openedBy:{type:"object",properties:{userId:{type:"string"},userName:{type:"string"},systemId:{type:"string"},systemName:{type:"string"}}},requester:{type:"object",properties:{systemId:{type:"string"},systemName:{type:"string"},systemPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]},userId:{type:"string"},userName:{type:"string"},userPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]},deviceId:{type:"string"},roomId:{type:"string"},reservationId:{type:"string"},spaceId:{type:"string"},spaceName:{type:"string"}}},assignedTo:{type:"object",properties:{userId:{type:"string"},userName:{type:"string"},userPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]},vendorId:{type:"string"},vendorName:{type:"string"},vendorPhoto:{anyOf:[{$ref:"mediaFile.json"},{type:"null"},{type:"string"}]}}},notify:{type:"array",description:"A list of entities to notify when this ticket is created or resolved.",default:[],items:{type:"object",required:["id","discriminator"],additionalProperties:!1,properties:{id:{type:"string",description:"The ID of the entity to notify."},discriminator:{type:"string",enum:["user"]}}}},collaborators:{type:"array",default:[],items:{type:"object",required:["id","name","discriminator"],additionalProperties:!1,properties:{id:{type:"string"},name:{type:"string"},discriminator:{type:"string",enum:["user","vendor"]}}}},location:{type:"object",required:["discriminator","name"],additionalProperties:!1,properties:{id:{type:"string"},discriminator:{type:"string",enum:["space","room","property","customText"]},name:{type:"string"}}},status:{type:"string",enum:["open","pending","solved","closed"],default:"open"},priority:{type:"string",enum:["low","normal","high"],default:"normal"},tags:{type:"array",default:[],items:{type:"string"}},department:{type:"string"},rating:{type:"number",minimum:0,maximum:5},ratingComment:{type:"string"},tipAmount:{type:"string"},autoCloseAt:{$ref:"definitions.json#/definitions/date"},scheduleDate:{$ref:"definitions.json#/definitions/date"},createdAt:{$ref:"definitions.json#/definitions/date"},updatedAt:{$ref:"definitions.json#/definitions/date"},solvedAt:{$ref:"definitions.json#/definitions/date"},closedAt:{$ref:"definitions.json#/definitions/date"}}}}),Object.defineProperty(Ticket.prototype,"validator",{get:__name((function(){return validateTicket}),"get")});export{Ticket};//# sourceMappingURL=chunk-272AWU65.js.map
@@ -1 +1 @@
1
- import{validateProduct}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Product=class extends Entity{static{__name(this,"Product")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.name=data.name,this.driver=data.driver,void 0!==data.description&&(this.description=data.description),this.price=data.price,void 0!==data.tax&&(this.tax=data.tax),void 0!==data.image&&(this.image=data.image),void 0!==data.category&&(this.category=data.category),void 0!==data.imageUrl&&(this.imageUrl=data.imageUrl),void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Product.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"product.json",title:"Product",type:"object",required:["name","price","driver"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"product",enum:["product"]},name:{type:"string"},driver:{$ref:"definitions.json#/definitions/driver"},description:{type:"string"},price:{type:"number"},tax:{type:["number","null"]},image:{$ref:"mediaFile.json"},category:{type:"string"},imageUrl:{type:"string",format:"uri",pattern:"^https?://"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Product.prototype,"validator",{get:__name((function(){return validateProduct}),"get")});export{Product};//# sourceMappingURL=chunk-6LO4AAZU.js.map
1
+ import{validateProduct}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Product=class extends Entity{static{__name(this,"Product")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.name=data.name,this.driver=data.driver,void 0!==data.description&&(this.description=data.description),this.price=data.price,void 0!==data.tax&&(this.tax=data.tax),void 0!==data.image&&(this.image=data.image),void 0!==data.category&&(this.category=data.category),void 0!==data.imageUrl&&(this.imageUrl=data.imageUrl),void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Product.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"product.json",title:"Product",type:"object",required:["name","price","driver"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"product",enum:["product"]},name:{type:"string"},driver:{$ref:"definitions.json#/definitions/driver"},description:{type:"string"},price:{type:"number"},tax:{type:["number","null"]},image:{$ref:"mediaFile.json"},category:{type:"string"},imageUrl:{type:"string",format:"uri",pattern:"^https?://"},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Product.prototype,"validator",{get:__name((function(){return validateProduct}),"get")});export{Product};//# sourceMappingURL=chunk-2WQGG3GP.js.map
@@ -1 +1 @@
1
- import{validateScene}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Scene=class extends Entity{static{__name(this,"Scene")}constructor(data){super(data),this.id=data.id,this.name=data.name,void 0!==data.description&&(this.description=data.description),this.type=data.type,void 0!==data.devices&&(this.devices=data.devices),void 0!==data.isDefault&&(this.isDefault=data.isDefault),void 0!==data.showOnUi&&(this.showOnUi=data.showOnUi)}};Object.defineProperty(Scene.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"scene.json",title:"Scene",description:"A room represents a physical space of controllable IoT devices",type:"object",required:["id","name","type"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},description:{type:"string"},type:{type:"string",enum:["scene"],default:"scene"},devices:{type:"object",properties:{switches:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},state:{$ref:"switch.json#/properties/state"}},default:[]}},dimmers:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},level:{$ref:"dimmer.json#/properties/level"}}},default:[]},windowCoverings:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},position:{$ref:"windowCovering.json#/properties/position"}}},default:[]},thermostats:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},hvacMode:{$ref:"thermostat.json#/properties/hvacMode"},setpoints:{$ref:"thermostat.json#/properties/setpoints"},fanMode:{$ref:"thermostat.json#/properties/fanMode"},setpointDelta:{type:"number"}}},default:[]},mediaSources:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},volume:{type:"number",minimum:0,maximum:100},commands:{type:"array",items:{type:"string"}}}}},locks:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},state:{$ref:"lock.json#/properties/state"},mode:{$ref:"lock.json#/properties/mode"}}}}},additionalProperties:!1},isDefault:{type:"boolean",default:!1},showOnUi:{type:"boolean",default:!0}}}}),Object.defineProperty(Scene.prototype,"validator",{get:__name((function(){return validateScene}),"get")});export{Scene};//# sourceMappingURL=chunk-3OHHAVGM.js.map
1
+ import{validateScene}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Scene=class extends Entity{static{__name(this,"Scene")}constructor(data){super(data),this.id=data.id,this.name=data.name,void 0!==data.description&&(this.description=data.description),this.type=data.type,void 0!==data.devices&&(this.devices=data.devices),void 0!==data.isDefault&&(this.isDefault=data.isDefault),void 0!==data.showOnUi&&(this.showOnUi=data.showOnUi)}};Object.defineProperty(Scene.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"scene.json",title:"Scene",description:"A room represents a physical space of controllable IoT devices",type:"object",required:["id","name","type"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},description:{type:"string"},type:{type:"string",enum:["scene"],default:"scene"},devices:{type:"object",properties:{switches:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},state:{$ref:"switch.json#/properties/state"}},default:[]}},dimmers:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},level:{$ref:"dimmer.json#/properties/level"}}},default:[]},windowCoverings:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},position:{$ref:"windowCovering.json#/properties/position"}}},default:[]},thermostats:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},hvacMode:{$ref:"thermostat.json#/properties/hvacMode"},setpoints:{$ref:"thermostat.json#/properties/setpoints"},fanMode:{$ref:"thermostat.json#/properties/fanMode"},setpointDelta:{type:"number"}}},default:[]},mediaSources:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},volume:{type:"number",minimum:0,maximum:100},commands:{type:"array",items:{type:"string"}}}}},locks:{type:"array",items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},state:{$ref:"lock.json#/properties/state"},mode:{$ref:"lock.json#/properties/mode"}}}}},additionalProperties:!1},isDefault:{type:"boolean",default:!1},showOnUi:{type:"boolean",default:!0}}}}),Object.defineProperty(Scene.prototype,"validator",{get:__name((function(){return validateScene}),"get")});export{Scene};//# sourceMappingURL=chunk-2YKTIVLE.js.map
@@ -1 +1 @@
1
- import{validateCamera}from"./chunk-IL3ICDGN.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-XGYTUUO7.js.map
1
+ import{validateCamera}from"./chunk-RM6XS6VX.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-3A366CIV.js.map
@@ -1 +1 @@
1
- import{validateReservation}from"./chunk-IL3ICDGN.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-XVJVSQGH.js.map
1
+ import{validateReservation}from"./chunk-RM6XS6VX.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-3MER5OVQ.js.map
@@ -1 +1 @@
1
- import{validateOrder}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Order=class extends Entity{static{__name(this,"Order")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,void 0!==data.orderNumber&&(this.orderNumber=data.orderNumber),this.status=data.status,void 0!==data.userId&&(this.userId=data.userId),void 0!==data.reservationId&&(this.reservationId=data.reservationId),void 0!==data.date&&(this.date=data.date),void 0!==data.items&&(this.items=data.items),void 0!==data.taxes&&(this.taxes=data.taxes),void 0!==data.fees&&(this.fees=data.fees),void 0!==data.delivery&&(this.delivery=data.delivery),void 0!==data.payments&&(this.payments=data.payments)}getSubTotal(){return this.items.reduce(((acc,item)=>{const qty=item.quantity||1;return acc+item.price*qty}),0)}getTaxTotal(){const taxes=this.taxes;return taxes?this.items.reduce(((acc,item)=>{if(!item.taxClass)return acc;const tax=taxes.find((t=>t.class===item.taxClass));if(!tax)return acc;const{rateType:rateType,rate:rate}=tax;return"percentage"===rateType?acc+item.price*rate:acc+rate}),0):0}getDeliveryTotal(){const delivery=this.delivery;return delivery?this.items.reduce(((acc,item)=>{if(!item.deliveryClass)return acc;const d=delivery.find((d2=>d2.class===item.deliveryClass));if(!d)return acc;const{rateType:rateType,rate:rate}=d;return"percentage"===rateType?acc+item.price*rate:acc+rate}),0):0}getFeesTotal(){return this.fees.reduce(((acc,fee)=>acc+fee.price),0)}getTotal(){return this.getSubTotal()+this.getTaxTotal()+this.getDeliveryTotal()+this.getFeesTotal()}getPaymentsTotal(){return this.payments.reduce(((acc,payment)=>acc+payment.amount),0)}getBalance(){return this.getTotal()-this.getPaymentsTotal()}};Object.defineProperty(Order.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"order.json",title:"Order",description:"A purchase order for products or services.",type:"object",required:["type","status"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"order",enum:["order"]},orderNumber:{type:"string"},status:{type:"string",enum:["draft","pendingPayment","processing","outForDelivery","completed","paymentFailed","cancelled","refunded"]},userId:{$ref:"definitions.json#/definitions/id",description:"User id of purchaser"},reservationId:{$ref:"definitions.json#/definitions/id",description:"Reservation id if the order is for a reservation"},date:{$ref:"definitions.json#/definitions/date"},items:{type:"array",default:[],items:{type:"object",required:["name","price"],properties:{additionalProperties:!1,name:{type:"string"},sku:{type:"string"},quantity:{type:"number",default:1},price:{type:"number"},taxClass:{type:"string"},deliveryClass:{type:"string"},productId:{type:"string"}}}},taxes:{type:"array",default:[],items:{type:"object",required:["name","rate"],properties:{additionalProperties:!1,name:{type:"string"},class:{type:"string"},rateType:{type:"string",enum:["percentage","flat"],default:"percentage"},rate:{type:"number"},total:{type:"number"}}}},fees:{type:"array",default:[],items:{type:"object",required:["name","price"],properties:{additionalProperties:!1,name:{type:"string"},price:{type:"number"}}}},delivery:{type:"array",default:[],items:{type:"object",required:["name","rate"],properties:{additionalProperties:!1,name:{type:"string"},class:{type:"string"},rateType:{type:"string",enum:["percentage","flat"],default:"percentage"},rate:{type:"number"},total:{type:"number"}}}},payments:{type:"array",default:[],items:{type:"object",properties:{method:{type:"string",enum:["folio","invoice","amex","visa","masterCard","maestro","discover","diners","jcb","applePay","alipay","chinaUnionPay","vpay"]},name:{type:"string"},date:{$ref:"definitions.json#/definitions/date"},amount:{type:"number"},transactionReference:{type:"string"}}}}}}}),Object.defineProperty(Order.prototype,"validator",{get:__name((function(){return validateOrder}),"get")});export{Order};//# sourceMappingURL=chunk-RE2TLPXP.js.map
1
+ import{validateOrder}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Order=class extends Entity{static{__name(this,"Order")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,void 0!==data.orderNumber&&(this.orderNumber=data.orderNumber),this.status=data.status,void 0!==data.userId&&(this.userId=data.userId),void 0!==data.reservationId&&(this.reservationId=data.reservationId),void 0!==data.date&&(this.date=data.date),void 0!==data.items&&(this.items=data.items),void 0!==data.taxes&&(this.taxes=data.taxes),void 0!==data.fees&&(this.fees=data.fees),void 0!==data.delivery&&(this.delivery=data.delivery),void 0!==data.payments&&(this.payments=data.payments)}getSubTotal(){return this.items.reduce(((acc,item)=>{const qty=item.quantity||1;return acc+item.price*qty}),0)}getTaxTotal(){const taxes=this.taxes;return taxes?this.items.reduce(((acc,item)=>{if(!item.taxClass)return acc;const tax=taxes.find((t=>t.class===item.taxClass));if(!tax)return acc;const{rateType:rateType,rate:rate}=tax;return"percentage"===rateType?acc+item.price*rate:acc+rate}),0):0}getDeliveryTotal(){const delivery=this.delivery;return delivery?this.items.reduce(((acc,item)=>{if(!item.deliveryClass)return acc;const d=delivery.find((d2=>d2.class===item.deliveryClass));if(!d)return acc;const{rateType:rateType,rate:rate}=d;return"percentage"===rateType?acc+item.price*rate:acc+rate}),0):0}getFeesTotal(){return this.fees.reduce(((acc,fee)=>acc+fee.price),0)}getTotal(){return this.getSubTotal()+this.getTaxTotal()+this.getDeliveryTotal()+this.getFeesTotal()}getPaymentsTotal(){return this.payments.reduce(((acc,payment)=>acc+payment.amount),0)}getBalance(){return this.getTotal()-this.getPaymentsTotal()}};Object.defineProperty(Order.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"order.json",title:"Order",description:"A purchase order for products or services.",type:"object",required:["type","status"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"order",enum:["order"]},orderNumber:{type:"string"},status:{type:"string",enum:["draft","pendingPayment","processing","outForDelivery","completed","paymentFailed","cancelled","refunded"]},userId:{$ref:"definitions.json#/definitions/id",description:"User id of purchaser"},reservationId:{$ref:"definitions.json#/definitions/id",description:"Reservation id if the order is for a reservation"},date:{$ref:"definitions.json#/definitions/date"},items:{type:"array",default:[],items:{type:"object",required:["name","price"],properties:{additionalProperties:!1,name:{type:"string"},sku:{type:"string"},quantity:{type:"number",default:1},price:{type:"number"},taxClass:{type:"string"},deliveryClass:{type:"string"},productId:{type:"string"}}}},taxes:{type:"array",default:[],items:{type:"object",required:["name","rate"],properties:{additionalProperties:!1,name:{type:"string"},class:{type:"string"},rateType:{type:"string",enum:["percentage","flat"],default:"percentage"},rate:{type:"number"},total:{type:"number"}}}},fees:{type:"array",default:[],items:{type:"object",required:["name","price"],properties:{additionalProperties:!1,name:{type:"string"},price:{type:"number"}}}},delivery:{type:"array",default:[],items:{type:"object",required:["name","rate"],properties:{additionalProperties:!1,name:{type:"string"},class:{type:"string"},rateType:{type:"string",enum:["percentage","flat"],default:"percentage"},rate:{type:"number"},total:{type:"number"}}}},payments:{type:"array",default:[],items:{type:"object",properties:{method:{type:"string",enum:["folio","invoice","amex","visa","masterCard","maestro","discover","diners","jcb","applePay","alipay","chinaUnionPay","vpay"]},name:{type:"string"},date:{$ref:"definitions.json#/definitions/date"},amount:{type:"number"},transactionReference:{type:"string"}}}}}}}),Object.defineProperty(Order.prototype,"validator",{get:__name((function(){return validateOrder}),"get")});export{Order};//# sourceMappingURL=chunk-4N4JCEJH.js.map
@@ -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-364IZMI7.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-4QV2AU43.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-05-10T15:07:59.162Z\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-05-16T22:30:53.544Z\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 +1 @@
1
- import{validateThermostat}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Thermostat=class extends Entity{static{__name(this,"Thermostat")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,this.driver=data.driver,void 0!==data.offline&&(this.offline=data.offline),void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),void 0!==data.currentTemperature&&(this.currentTemperature=data.currentTemperature),void 0!==data.currentHumidity&&(this.currentHumidity=data.currentHumidity),this.hvacMode=data.hvacMode,this.hvacState=data.hvacState,this.fanMode=data.fanMode,this.fanState=data.fanState,this.temperatureScale=data.temperatureScale,void 0!==data.humidityScale&&(this.humidityScale=data.humidityScale),this.supportedHvacModes=data.supportedHvacModes,this.supportedFanModes=data.supportedFanModes,this.setpoints=data.setpoints,void 0!==data.minAutoDelta&&(this.minAutoDelta=data.minAutoDelta),void 0!==data.cycleRate&&(this.cycleRate=data.cycleRate),void 0!==data.batteryLevel&&(this.batteryLevel=data.batteryLevel),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(Thermostat.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"thermostat.json",title:"Thermostat",description:"Any smart thermostat",type:"object",required:["id","type","hvacMode","fanMode","hvacState","fanState","setpoints","temperatureScale","supportedHvacModes","supportedFanModes","driver"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{$ref:"definitions.json#/definitions/name"},type:{$ref:"definitions.json#/definitions/type",default:"thermostat"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},currentTemperature:{type:"number"},currentHumidity:{type:"number",minimum:0},hvacMode:{type:"string",$ref:"#/properties/supportedHvacModes/items"},hvacState:{type:["string","null"],enum:["cooling","heating","off",null]},fanMode:{type:"string",$ref:"#/properties/supportedFanModes/items"},fanState:{type:["string","null"],enum:["off","low","medium","high","on",null]},temperatureScale:{type:"string",enum:["celsius","fahrenheit"],default:"fahrenheit"},humidityScale:{type:["string","null"],enum:["absolute","relative",null]},supportedHvacModes:{type:"array",uniqueItems:!0,minItems:2,items:{enum:["cool","heat","auto","off"]}},supportedFanModes:{type:"array",uniqueItems:!0,items:{enum:["auto","low","medium","high","off","on"]}},setpoints:{type:"object",additionalProperties:!1,properties:{cool:{$ref:"#/$defs/setpoint"},heat:{$ref:"#/$defs/setpoint"},auto:{$ref:"#/$defs/setpoint"}}},minAutoDelta:{type:"number",default:3},cycleRate:{type:"number"},batteryLevel:{$ref:"definitions.json#/definitions/batteryLevel"},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}},$defs:{setpoint:{type:"object",additionalProperties:!1,properties:{value:{$ref:"#/$defs/setpointValue"},min:{$ref:"#/$defs/setpointMinMax"},max:{$ref:"#/$defs/setpointMinMax"}}},setpointValue:{type:"number",minimum:0,maximum:99},setpointMinMax:{type:["number","null"],minimum:0,maximum:99}}}}),Object.defineProperty(Thermostat.prototype,"validator",{get:__name((function(){return validateThermostat}),"get")});export{Thermostat};//# sourceMappingURL=chunk-IWGDMVNC.js.map
1
+ import{validateThermostat}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Thermostat=class extends Entity{static{__name(this,"Thermostat")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,this.driver=data.driver,void 0!==data.offline&&(this.offline=data.offline),void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),void 0!==data.currentTemperature&&(this.currentTemperature=data.currentTemperature),void 0!==data.currentHumidity&&(this.currentHumidity=data.currentHumidity),this.hvacMode=data.hvacMode,this.hvacState=data.hvacState,this.fanMode=data.fanMode,this.fanState=data.fanState,this.temperatureScale=data.temperatureScale,void 0!==data.humidityScale&&(this.humidityScale=data.humidityScale),this.supportedHvacModes=data.supportedHvacModes,this.supportedFanModes=data.supportedFanModes,this.setpoints=data.setpoints,void 0!==data.minAutoDelta&&(this.minAutoDelta=data.minAutoDelta),void 0!==data.cycleRate&&(this.cycleRate=data.cycleRate),void 0!==data.batteryLevel&&(this.batteryLevel=data.batteryLevel),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(Thermostat.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"thermostat.json",title:"Thermostat",description:"Any smart thermostat",type:"object",required:["id","type","hvacMode","fanMode","hvacState","fanState","setpoints","temperatureScale","supportedHvacModes","supportedFanModes","driver"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{$ref:"definitions.json#/definitions/name"},type:{$ref:"definitions.json#/definitions/type",default:"thermostat"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},currentTemperature:{type:"number"},currentHumidity:{type:"number",minimum:0},hvacMode:{type:"string",$ref:"#/properties/supportedHvacModes/items"},hvacState:{type:["string","null"],enum:["cooling","heating","off",null]},fanMode:{type:"string",$ref:"#/properties/supportedFanModes/items"},fanState:{type:["string","null"],enum:["off","low","medium","high","on",null]},temperatureScale:{type:"string",enum:["celsius","fahrenheit"],default:"fahrenheit"},humidityScale:{type:["string","null"],enum:["absolute","relative",null]},supportedHvacModes:{type:"array",uniqueItems:!0,minItems:2,items:{enum:["cool","heat","auto","off"]}},supportedFanModes:{type:"array",uniqueItems:!0,items:{enum:["auto","low","medium","high","off","on"]}},setpoints:{type:"object",additionalProperties:!1,properties:{cool:{$ref:"#/$defs/setpoint"},heat:{$ref:"#/$defs/setpoint"},auto:{$ref:"#/$defs/setpoint"}}},minAutoDelta:{type:"number",default:3},cycleRate:{type:"number"},batteryLevel:{$ref:"definitions.json#/definitions/batteryLevel"},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}},$defs:{setpoint:{type:"object",additionalProperties:!1,properties:{value:{$ref:"#/$defs/setpointValue"},min:{$ref:"#/$defs/setpointMinMax"},max:{$ref:"#/$defs/setpointMinMax"}}},setpointValue:{type:"number",minimum:0,maximum:99},setpointMinMax:{type:["number","null"],minimum:0,maximum:99}}}}),Object.defineProperty(Thermostat.prototype,"validator",{get:__name((function(){return validateThermostat}),"get")});export{Thermostat};//# sourceMappingURL=chunk-6D233UFG.js.map
@@ -1 +1 @@
1
- import{validateDimmer}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Dimmer=class extends Entity{static{__name(this,"Dimmer")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,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.level=data.level,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(Dimmer.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"dimmer.json",title:"Dimmer",description:"Any smart dimmer",type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},level:{type:["number","null"],minimum:0,maximum:100},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}},required:["id","type","level","driver"]}}),Object.defineProperty(Dimmer.prototype,"validator",{get:__name((function(){return validateDimmer}),"get")});export{Dimmer};//# sourceMappingURL=chunk-45WLVARH.js.map
1
+ import{validateDimmer}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Dimmer=class extends Entity{static{__name(this,"Dimmer")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,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.level=data.level,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(Dimmer.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"dimmer.json",title:"Dimmer",description:"Any smart dimmer",type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},level:{type:["number","null"],minimum:0,maximum:100},systemId:{$ref:"definitions.json#/definitions/systemId"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}},required:["id","type","level","driver"]}}),Object.defineProperty(Dimmer.prototype,"validator",{get:__name((function(){return validateDimmer}),"get")});export{Dimmer};//# sourceMappingURL=chunk-6IMKOEPO.js.map
@@ -1 +1 @@
1
- import{validateEmailMessage}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var EmailMessage=class extends Entity{static{__name(this,"EmailMessage")}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,this.subject=data.subject,this.status=data.status,void 0!==data.statusMessage&&(this.statusMessage=data.statusMessage),void 0!==data.html&&(this.html=data.html),void 0!==data.text&&(this.text=data.text),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(EmailMessage.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"emailMessage.json",title:"Email Message",type:"object",required:["to","from","status","subject"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"emailMessage",enum:["emailMessage"]},to:{type:"string",pattern:"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"},from:{type:"string",pattern:".*<[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+>.*",description:"Must be in the format of 'Sender <email@example.com>"},subject:{type:"string"},status:{type:"string",enum:["queued","sending","sent","deferred","delivered","undelivered","bounced","blocked","receiving","received","opened","clicked","unsubscribed","spamReport"]},statusMessage:{type:"string"},html:{type:"string"},text:{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(EmailMessage.prototype,"validator",{get:__name((function(){return validateEmailMessage}),"get")});export{EmailMessage};//# sourceMappingURL=chunk-VL5FTU46.js.map
1
+ import{validateEmailMessage}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var EmailMessage=class extends Entity{static{__name(this,"EmailMessage")}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,this.subject=data.subject,this.status=data.status,void 0!==data.statusMessage&&(this.statusMessage=data.statusMessage),void 0!==data.html&&(this.html=data.html),void 0!==data.text&&(this.text=data.text),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(EmailMessage.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"emailMessage.json",title:"Email Message",type:"object",required:["to","from","status","subject"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"emailMessage",enum:["emailMessage"]},to:{type:"string",pattern:"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"},from:{type:"string",pattern:".*<[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+>.*",description:"Must be in the format of 'Sender <email@example.com>"},subject:{type:"string"},status:{type:"string",enum:["queued","sending","sent","deferred","delivered","undelivered","bounced","blocked","receiving","received","opened","clicked","unsubscribed","spamReport"]},statusMessage:{type:"string"},html:{type:"string"},text:{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(EmailMessage.prototype,"validator",{get:__name((function(){return validateEmailMessage}),"get")});export{EmailMessage};//# sourceMappingURL=chunk-7HBE4KJE.js.map
@@ -1 +1 @@
1
- import{validateTimeSheet}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var TimeSheet=class extends Entity{static{__name(this,"TimeSheet")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.userId=data.userId,this.day=data.day,void 0!==data.locked&&(this.locked=data.locked),void 0!==data.timeEntries&&(this.timeEntries=data.timeEntries)}};Object.defineProperty(TimeSheet.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"timeSheet.json",title:"Time Sheet",type:"object",required:["userId","day"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"timeSheet",enum:["timeSheet"]},userId:{$ref:"definitions.json#/definitions/id"},day:{type:["string","object"],format:"date-time"},locked:{type:"boolean",default:!1,description:"If true, the time sheet is locked and cannot be modified"},timeEntries:{type:"array",default:[],items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},discriminator:{type:"string",enum:["working","driving","meeting","break"]},start:{type:["string","object"],format:"date-time"},end:{type:["string","object"],format:"date-time"},comment:{type:"string"},ticketId:{type:"string"}},required:["start","discriminator"],additionalProperties:!1}}}}}),Object.defineProperty(TimeSheet.prototype,"validator",{get:__name((function(){return validateTimeSheet}),"get")});export{TimeSheet};//# sourceMappingURL=chunk-PRDI3KRE.js.map
1
+ import{validateTimeSheet}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var TimeSheet=class extends Entity{static{__name(this,"TimeSheet")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),void 0!==data.type&&(this.type=data.type),this.userId=data.userId,this.day=data.day,void 0!==data.locked&&(this.locked=data.locked),void 0!==data.timeEntries&&(this.timeEntries=data.timeEntries)}};Object.defineProperty(TimeSheet.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"timeSheet.json",title:"Time Sheet",type:"object",required:["userId","day"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"timeSheet",enum:["timeSheet"]},userId:{$ref:"definitions.json#/definitions/id"},day:{type:["string","object"],format:"date-time"},locked:{type:"boolean",default:!1,description:"If true, the time sheet is locked and cannot be modified"},timeEntries:{type:"array",default:[],items:{type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},discriminator:{type:"string",enum:["working","driving","meeting","break"]},start:{type:["string","object"],format:"date-time"},end:{type:["string","object"],format:"date-time"},comment:{type:"string"},ticketId:{type:"string"}},required:["start","discriminator"],additionalProperties:!1}}}}}),Object.defineProperty(TimeSheet.prototype,"validator",{get:__name((function(){return validateTimeSheet}),"get")});export{TimeSheet};//# sourceMappingURL=chunk-7WDWVUP4.js.map
@@ -1 +1 @@
1
- import{User}from"./chunk-FW7D3GH3.js";import{Vendor}from"./chunk-LBHE6WMJ.js";import{WindowCovering}from"./chunk-NL7OPBZY.js";import{ShortLink}from"./chunk-X7VZCU32.js";import{SmsMessage}from"./chunk-LM3DGQWT.js";import{Space}from"./chunk-RPCMFJ32.js";import{Switch}from"./chunk-POWSQ6EB.js";import{SystemUser}from"./chunk-LJVWC3E4.js";import{Thermostat}from"./chunk-IWGDMVNC.js";import{Ticket}from"./chunk-TM3PSLKD.js";import{TimeSheet}from"./chunk-PRDI3KRE.js";import{Organization}from"./chunk-PYZPYTS3.js";import{Policy}from"./chunk-DJZRIWGL.js";import{Product}from"./chunk-6LO4AAZU.js";import{Property}from"./chunk-XYV2ZMBZ.js";import{Reservation}from"./chunk-XVJVSQGH.js";import{Room}from"./chunk-BWKM6FHE.js";import{Scene}from"./chunk-3OHHAVGM.js";import{Issue}from"./chunk-FM7UL4RE.js";import{Lock}from"./chunk-Y5J5SCRG.js";import{Log}from"./chunk-3XNNT6GS.js";import{MediaFile}from"./chunk-7SDGK3FY.js";import{MediaSource}from"./chunk-2P5LASH2.js";import{MotionSensor}from"./chunk-6BAPG7KI.js";import{Order}from"./chunk-RE2TLPXP.js";import{DiscoveredDevice}from"./chunk-IAIKQXNR.js";import{EmailMessage}from"./chunk-VL5FTU46.js";import{EnergyReport}from"./chunk-D5TZNOHT.js";import{EnergyReportShard}from"./chunk-DNAXIHEO.js";import{Gateway}from"./chunk-UIFA6TUW.js";import{Identification}from"./chunk-3H74J6YV.js";import{Announcement}from"./chunk-GXMHA263.js";import{Camera}from"./chunk-XGYTUUO7.js";import{Category}from"./chunk-7BI266GZ.js";import{Courtesy}from"./chunk-6HFMALKH.js";import{Credential}from"./chunk-4SSME4Y4.js";import{DeviceRouter}from"./chunk-NWH5F523.js";import{Dimmer}from"./chunk-45WLVARH.js";import{Alarm}from"./chunk-IWIPSTOH.js";import{events_exports}from"./chunk-UNLKDI2P.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-XRZGL3GO.js.map
1
+ import{User}from"./chunk-QRKJ3EPS.js";import{Vendor}from"./chunk-MYYWR6TU.js";import{WindowCovering}from"./chunk-CQ6QDFH5.js";import{ShortLink}from"./chunk-ELXY3DDW.js";import{SmsMessage}from"./chunk-BLPMSNOM.js";import{Space}from"./chunk-Z62P7Z4L.js";import{Switch}from"./chunk-ZIYKSNOV.js";import{SystemUser}from"./chunk-MMA2BJ4M.js";import{Thermostat}from"./chunk-6D233UFG.js";import{Ticket}from"./chunk-272AWU65.js";import{TimeSheet}from"./chunk-7WDWVUP4.js";import{Organization}from"./chunk-RMTYPPC5.js";import{Policy}from"./chunk-CPHTNHWG.js";import{Product}from"./chunk-2WQGG3GP.js";import{Property}from"./chunk-FIIQWHVH.js";import{Reservation}from"./chunk-3MER5OVQ.js";import{Room}from"./chunk-JBL22KMP.js";import{Scene}from"./chunk-2YKTIVLE.js";import{Issue}from"./chunk-JIH6SR4Q.js";import{Lock}from"./chunk-LEEBU66C.js";import{Log}from"./chunk-YJLYY4JK.js";import{MediaFile}from"./chunk-M3FL4KEH.js";import{MediaSource}from"./chunk-RV42OZ7B.js";import{MotionSensor}from"./chunk-RZSDC4H5.js";import{Order}from"./chunk-4N4JCEJH.js";import{DiscoveredDevice}from"./chunk-F6IXLEJ6.js";import{EmailMessage}from"./chunk-7HBE4KJE.js";import{EnergyReport}from"./chunk-UBULXWAL.js";import{EnergyReportShard}from"./chunk-IZAHIGET.js";import{Gateway}from"./chunk-E3ZIIDU2.js";import{Identification}from"./chunk-VQ7RZNSI.js";import{Announcement}from"./chunk-ROCX57V3.js";import{Camera}from"./chunk-3A366CIV.js";import{Category}from"./chunk-SSJ5FXF7.js";import{Courtesy}from"./chunk-ICMHZEBL.js";import{Credential}from"./chunk-ES43C3KH.js";import{DeviceRouter}from"./chunk-ORD57R57.js";import{Dimmer}from"./chunk-6IMKOEPO.js";import{Alarm}from"./chunk-Z75TJKTC.js";import{events_exports}from"./chunk-OM4RZGDI.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-BB2LZ6H4.js.map
@@ -1 +1 @@
1
- import{validateSmsMessage}from"./chunk-IL3ICDGN.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-LM3DGQWT.js.map
1
+ import{validateSmsMessage}from"./chunk-RM6XS6VX.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-BLPMSNOM.js.map
@@ -1 +1 @@
1
- import{validateNotification}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Notification=class extends Entity{static{__name(this,"Notification")}constructor(data){super(data),this.id=data.id,this.type=data.type,void 0!==data.isEnabled&&(this.isEnabled=data.isEnabled),void 0!==data.name&&(this.name=data.name),this.discriminator=data.discriminator,this.content=data.content,void 0!==data.subject&&(this.subject=data.subject)}};Object.defineProperty(Notification.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"notification.json",title:"Notification",type:"object",required:["id","type","discriminator","content"],properties:{id:{type:"string"},type:{type:"string",default:"notification",enum:["notification"]},isEnabled:{type:"boolean",default:!0},name:{type:"string"},discriminator:{type:"string",enum:["sms","email","push"]},content:{type:"string"},subject:{type:"string"}}}}),Object.defineProperty(Notification.prototype,"validator",{get:__name((function(){return validateNotification}),"get")});export{Notification};//# sourceMappingURL=chunk-XQ5CWKNA.js.map
1
+ import{validateNotification}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Notification=class extends Entity{static{__name(this,"Notification")}constructor(data){super(data),this.id=data.id,this.type=data.type,void 0!==data.isEnabled&&(this.isEnabled=data.isEnabled),void 0!==data.name&&(this.name=data.name),this.discriminator=data.discriminator,this.content=data.content,void 0!==data.subject&&(this.subject=data.subject)}};Object.defineProperty(Notification.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"notification.json",title:"Notification",type:"object",required:["id","type","discriminator","content"],properties:{id:{type:"string"},type:{type:"string",default:"notification",enum:["notification"]},isEnabled:{type:"boolean",default:!0},name:{type:"string"},discriminator:{type:"string",enum:["sms","email","push"]},content:{type:"string"},subject:{type:"string"}}}}),Object.defineProperty(Notification.prototype,"validator",{get:__name((function(){return validateNotification}),"get")});export{Notification};//# sourceMappingURL=chunk-BV7DLVJD.js.map
@@ -1 +1 @@
1
- import{validatePolicy}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Policy=class extends Entity{static{__name(this,"Policy")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,this.discriminator=data.discriminator,this.name=data.name,void 0!==data.description&&(this.description=data.description),this.organizationId=data.organizationId,this.propertyId=data.propertyId,this.permissions=data.permissions}};Object.defineProperty(Policy.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"policy.json",title:"Policy",description:"A policy is a set of permissions that can be applied to a user to limit their access to resources.",type:"object",required:["name","type","organizationId","propertyId","permissions","discriminator"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"policy",enum:["policy"]},discriminator:{type:"string",enum:["user"]},name:{type:"string",minLength:1},description:{type:"string"},organizationId:{type:"string"},propertyId:{type:"string"},permissions:{type:"array",items:{type:"object",required:["entities","effect"],properties:{entities:{type:"array",items:{type:"string",pattern:"^[^:]+(:.+)+$"}},effect:{type:"string",enum:["Allow","Deny"]}}}}}}}),Object.defineProperty(Policy.prototype,"validator",{get:__name((function(){return validatePolicy}),"get")});export{Policy};//# sourceMappingURL=chunk-DJZRIWGL.js.map
1
+ import{validatePolicy}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Policy=class extends Entity{static{__name(this,"Policy")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,this.discriminator=data.discriminator,this.name=data.name,void 0!==data.description&&(this.description=data.description),this.organizationId=data.organizationId,this.propertyId=data.propertyId,this.permissions=data.permissions}};Object.defineProperty(Policy.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"policy.json",title:"Policy",description:"A policy is a set of permissions that can be applied to a user to limit their access to resources.",type:"object",required:["name","type","organizationId","propertyId","permissions","discriminator"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"policy",enum:["policy"]},discriminator:{type:"string",enum:["user"]},name:{type:"string",minLength:1},description:{type:"string"},organizationId:{type:"string"},propertyId:{type:"string"},permissions:{type:"array",items:{type:"object",required:["entities","effect"],properties:{entities:{type:"array",items:{type:"string",pattern:"^[^:]+(:.+)+$"}},effect:{type:"string",enum:["Allow","Deny"]}}}}}}}),Object.defineProperty(Policy.prototype,"validator",{get:__name((function(){return validatePolicy}),"get")});export{Policy};//# sourceMappingURL=chunk-CPHTNHWG.js.map
@@ -1 +1 @@
1
- import{validateWindowCovering}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var WindowCovering=class extends Entity{static{__name(this,"WindowCovering")}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.position=data.position,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(WindowCovering.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"windowCovering.json",title:"Window Covering",description:"Any smart window covering",required:["id","type","position","driver"],additionalProperties:!1,type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type",default:"windowCovering"},discriminator:{type:"string",enum:["basic","variable"],default:"variable"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},position:{type:["number","null"],minimum:0,maximum:100},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(WindowCovering.prototype,"validator",{get:__name((function(){return validateWindowCovering}),"get")});export{WindowCovering};//# sourceMappingURL=chunk-NL7OPBZY.js.map
1
+ import{validateWindowCovering}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var WindowCovering=class extends Entity{static{__name(this,"WindowCovering")}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.position=data.position,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(WindowCovering.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"windowCovering.json",title:"Window Covering",description:"Any smart window covering",required:["id","type","position","driver"],additionalProperties:!1,type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type",default:"windowCovering"},discriminator:{type:"string",enum:["basic","variable"],default:"variable"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},position:{type:["number","null"],minimum:0,maximum:100},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(WindowCovering.prototype,"validator",{get:__name((function(){return validateWindowCovering}),"get")});export{WindowCovering};//# sourceMappingURL=chunk-CQ6QDFH5.js.map
@@ -1 +1 @@
1
- import{validateGateway}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Gateway=class extends Entity{static{__name(this,"Gateway")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),void 0!==data.offline&&(this.offline=data.offline),this.type=data.type,void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),this.status=data.status,void 0!==data.systemId&&(this.systemId=data.systemId),this.driver=data.driver,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(Gateway.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"iotGateway.json",title:"Gateway",description:"Any smart gateway that is an entrypoint for controlling devices",type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},offline:{type:"boolean"},type:{$ref:"definitions.json#/definitions/type"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},status:{type:"string"},systemId:{$ref:"definitions.json#/definitions/systemId"},driver:{$ref:"definitions.json#/definitions/driver"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}},required:["id","type","status","driver"]}}),Object.defineProperty(Gateway.prototype,"validator",{get:__name((function(){return validateGateway}),"get")});export{Gateway};//# sourceMappingURL=chunk-UIFA6TUW.js.map
1
+ import{validateGateway}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Gateway=class extends Entity{static{__name(this,"Gateway")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),void 0!==data.offline&&(this.offline=data.offline),this.type=data.type,void 0!==data.supportedNotifications&&(this.supportedNotifications=data.supportedNotifications),void 0!==data.notification&&(this.notification=data.notification),this.status=data.status,void 0!==data.systemId&&(this.systemId=data.systemId),this.driver=data.driver,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(Gateway.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"iotGateway.json",title:"Gateway",description:"Any smart gateway that is an entrypoint for controlling devices",type:"object",properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},offline:{type:"boolean"},type:{$ref:"definitions.json#/definitions/type"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},status:{type:"string"},systemId:{$ref:"definitions.json#/definitions/systemId"},driver:{$ref:"definitions.json#/definitions/driver"},watts:{$ref:"definitions.json#/definitions/watts"},icon:{type:"string"},modelNumber:{type:"string"},serialNumber:{type:"string"},firmwareVersion:{type:"string"}},required:["id","type","status","driver"]}}),Object.defineProperty(Gateway.prototype,"validator",{get:__name((function(){return validateGateway}),"get")});export{Gateway};//# sourceMappingURL=chunk-E3ZIIDU2.js.map
@@ -1 +1 @@
1
- import{validateShortLink}from"./chunk-IL3ICDGN.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-X7VZCU32.js.map
1
+ import{validateShortLink}from"./chunk-RM6XS6VX.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-ELXY3DDW.js.map
@@ -1 +1 @@
1
- import{validateCredential}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Credential=class extends Entity{static{__name(this,"Credential")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,void 0!==data.driver&&(this.driver=data.driver),void 0!==data.discriminator&&(this.discriminator=data.discriminator),this.credential=data.credential,void 0!==data.userId&&(this.userId=data.userId),void 0!==data.organizationId&&(this.organizationId=data.organizationId),void 0!==data.propertyId&&(this.propertyId=data.propertyId),void 0!==data.deviceId&&(this.deviceId=data.deviceId),void 0!==data.userAgent&&(this.userAgent=data.userAgent),this.expires=data.expires,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Credential.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"credential.json",title:"Credential",type:"object",required:["type","credential","expires"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"credential"},driver:{$ref:"definitions.json#/definitions/driver"},discriminator:{type:"string",enum:["verificationCode","token","mobileKey","pin","publicKey","passkeyChallenge"]},credential:{type:"string"},userId:{type:"string"},organizationId:{type:"string"},propertyId:{type:"string"},deviceId:{type:"string"},userAgent:{type:"string"},expires:{type:["string","object","null"]},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Credential.prototype,"validator",{get:__name((function(){return validateCredential}),"get")});export{Credential};//# sourceMappingURL=chunk-4SSME4Y4.js.map
1
+ import{validateCredential}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Credential=class extends Entity{static{__name(this,"Credential")}constructor(data){super(data),void 0!==data.id&&(this.id=data.id),this.type=data.type,void 0!==data.driver&&(this.driver=data.driver),void 0!==data.discriminator&&(this.discriminator=data.discriminator),this.credential=data.credential,void 0!==data.userId&&(this.userId=data.userId),void 0!==data.organizationId&&(this.organizationId=data.organizationId),void 0!==data.propertyId&&(this.propertyId=data.propertyId),void 0!==data.deviceId&&(this.deviceId=data.deviceId),void 0!==data.userAgent&&(this.userAgent=data.userAgent),this.expires=data.expires,void 0!==data.systemId&&(this.systemId=data.systemId)}};Object.defineProperty(Credential.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"credential.json",title:"Credential",type:"object",required:["type","credential","expires"],properties:{id:{$ref:"definitions.json#/definitions/id"},type:{type:"string",default:"credential"},driver:{$ref:"definitions.json#/definitions/driver"},discriminator:{type:"string",enum:["verificationCode","token","mobileKey","pin","publicKey","passkeyChallenge"]},credential:{type:"string"},userId:{type:"string"},organizationId:{type:"string"},propertyId:{type:"string"},deviceId:{type:"string"},userAgent:{type:"string"},expires:{type:["string","object","null"]},systemId:{$ref:"definitions.json#/definitions/systemId"}}}}),Object.defineProperty(Credential.prototype,"validator",{get:__name((function(){return validateCredential}),"get")});export{Credential};//# sourceMappingURL=chunk-ES43C3KH.js.map
@@ -1 +1 @@
1
- import{validateDiscoveredDevice}from"./chunk-IL3ICDGN.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-IAIKQXNR.js.map
1
+ import{validateDiscoveredDevice}from"./chunk-RM6XS6VX.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-F6IXLEJ6.js.map
@@ -1 +1 @@
1
- import{validateProperty}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Property=class extends Entity{static{__name(this,"Property")}constructor(data){super(data),this.id=data.id,this.name=data.name,this.type=data.type,this.discriminator=data.discriminator,this.organization=data.organization,void 0!==data.departments&&(this.departments=data.departments),void 0!==data.testModeEnabled&&(this.testModeEnabled=data.testModeEnabled),void 0!==data.testMode&&(this.testMode=data.testMode),this.timezone=data.timezone,void 0!==data.smsNumber&&(this.smsNumber=data.smsNumber),void 0!==data.voiceNumber&&(this.voiceNumber=data.voiceNumber),void 0!==data.tags&&(this.tags=data.tags),void 0!==data.checkInTime&&(this.checkInTime=data.checkInTime),void 0!==data.checkOutTime&&(this.checkOutTime=data.checkOutTime),void 0!==data.address&&(this.address=data.address),void 0!==data.latitude&&(this.latitude=data.latitude),void 0!==data.longitude&&(this.longitude=data.longitude),void 0!==data.appFeatures&&(this.appFeatures=data.appFeatures),void 0!==data.notifications&&(this.notifications=data.notifications),void 0!==data.credentials&&(this.credentials=data.credentials)}};Object.defineProperty(Property.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"property.json",title:"Property",type:"object",description:"A property is a physical asset or building",required:["id","name","type","organization","timezone","discriminator"],properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{type:"string",default:"property",enum:["property"]},discriminator:{type:"string",enum:["hospitality","education","commercial","storage"]},organization:{type:["string","null"],description:"Reference (id) to the organization that owns this property"},departments:{type:"array",items:{type:"string"}},testModeEnabled:{type:"boolean"},testMode:{type:"object",properties:{notificationEmails:{type:"array",items:{type:"string"},description:"Only users with these email addresses will receive notifications in test mode, including sms, email, or push."},notificationEmailDomains:{type:"array",items:{type:"string"},description:"Only users with email addreses ending in these domains will receive notifications in test mode, including sms, email, or push."}}},timezone:{type:"string",description:"IANA timezone string",pattern:"^([a-zA-Z]+/[a-zA-Z_]+)$",examples:["America/New_York","America/Los_Angeles"]},smsNumber:{type:"string"},voiceNumber:{type:"string"},tags:{type:"array",items:{type:"string"}},checkInTime:{type:"string"},checkOutTime:{type:"string"},address:{$ref:"definitions.json#/definitions/address"},latitude:{type:"number"},longitude:{type:"number"},appFeatures:{type:"object",properties:{RoomControl:{type:"object",properties:{disabledSystems:{type:"array",items:{type:"string",enum:["climate","lights","shades","tv","doors"]}},excludedDeviceIds:{type:"array",items:{type:"string"},default:[]},commonAreas:{type:"object",properties:{spaces:{type:"array",items:{type:"string"}}}},alarmConfig:{type:"object",patternProperties:{"^[a-zA-Z0-9]+$":{type:"object",properties:{zoneLockMap:{type:"object",description:"Maps zone numbers to lock ids",additionalProperties:{type:"string"}}}}},examples:[{wZz7hucY:{zoneLockMap:{1:"wc87hucc",2:"bc86hzxc",3:"zv5ah5jv"}}}]}},additionalProperties:!1},CheckIn:{type:"object",properties:{payment:{},identification:{},earlyCheckIn:{type:"object",required:["dynamic"],properties:{dynamic:{type:"boolean",default:!1},minimumPrice:{type:"number",default:10},maximumPrice:{type:"number",default:50},priceRatioPerHour:{type:"number",default:.1},minimumTime:{type:"string"}}},roomUpgrades:{},pet:{},promos:{}}},CheckOut:{type:"object",properties:{lateCheckOut:{type:"object",required:["dynamic"],properties:{dynamic:{type:"boolean",default:!1},minimumPrice:{type:"number",default:10},maximumPrice:{type:"number",default:50},priceRatioPerHour:{type:"number",default:.1}}}}},Concierge:{type:"object",properties:{timeTracking:{type:"boolean",default:!1},tipping:{type:"boolean",default:!1},feedback:{type:"boolean",default:!0},ratings:{type:"boolean",default:!0},newTicketCCs:{type:"array",items:{type:"string"},default:[]},newMessageChannel:{type:["string","null"],enum:["sms","email"],default:"sms",description:"Determines how users should be notified of new messages in the concierge system"},quickServices:{type:"array",items:{type:"object",properties:{name:{type:"string"},description:{type:"string"},department:{type:"string"},image:{$ref:"mediaFile.json"}},required:["name","description","image"]}},issues:{type:"object",properties:{syncWithPropertyId:{type:"string"}}}}},DigitalKey:{type:"object",properties:{system:{type:"string",enum:["salto","dormakaba"]},systemOnline:{type:"boolean",default:!1},systemConfig:{type:"object",properties:{legicUrl:{type:"string",format:"uri"},legicWalletName:{type:"string"},legicAppId:{type:"number"},legicTechUsername:{type:"string"},legicTechPassword:{type:"string"}},additionalProperties:!1,default:{}},enableApp:{type:"boolean"},branding:{type:"object",properties:{logo:{type:"string",format:"uri"},gradient:{type:"array",items:{type:"string",pattern:"^(?!#ffffff)(#[0-9a-fA-F]{6})$"},minItems:2,maxItems:2},highlightedGradient:{type:"array",items:{type:"string",pattern:"^(?!#ffffff)(#[0-9a-fA-F]{6})$"},minItems:2,maxItems:3}}}}},SOS:{type:"object",properties:{active:{type:"boolean"},activeEmergencies:{type:"array",items:{type:"string",enum:["medical","fire","suspiciousPerson","other","conflict","shooter"]}}}},Elevator:{type:"object"},Experiences:{type:"object"},Dining:{type:"object",properties:{system:{type:"string",enum:["gotab"]},systemConfig:{type:"object",properties:{landingUrl:{type:"string",format:"uri"},includeUserDetails:{type:"boolean"}},additionalProperties:!1}}},Rentals:{type:"object"},Shop:{type:"object"},Spa:{type:"object"},Valet:{type:"object"}},additionalProperties:!1,default:{RoomControl:{}}},notifications:{type:"object",properties:{email:{type:"object",properties:{enabled:{type:"boolean"}},additionalProperties:!1},sms:{type:"object",properties:{enabled:{type:"boolean"}},additionalProperties:!1},push:{type:"object",properties:{enabled:{type:"boolean"}},additionalProperties:!1}},additionalProperties:!1,default:{email:{enabled:!1},sms:{enabled:!1},push:{enabled:!1}}},credentials:{type:"object",additionalProperties:!0}}}}),Object.defineProperty(Property.prototype,"validator",{get:__name((function(){return validateProperty}),"get")});export{Property};//# sourceMappingURL=chunk-XYV2ZMBZ.js.map
1
+ import{validateProperty}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Property=class extends Entity{static{__name(this,"Property")}constructor(data){super(data),this.id=data.id,this.name=data.name,this.type=data.type,this.discriminator=data.discriminator,this.organization=data.organization,void 0!==data.departments&&(this.departments=data.departments),void 0!==data.testModeEnabled&&(this.testModeEnabled=data.testModeEnabled),void 0!==data.testMode&&(this.testMode=data.testMode),this.timezone=data.timezone,void 0!==data.smsNumber&&(this.smsNumber=data.smsNumber),void 0!==data.voiceNumber&&(this.voiceNumber=data.voiceNumber),void 0!==data.tags&&(this.tags=data.tags),void 0!==data.checkInTime&&(this.checkInTime=data.checkInTime),void 0!==data.checkOutTime&&(this.checkOutTime=data.checkOutTime),void 0!==data.address&&(this.address=data.address),void 0!==data.latitude&&(this.latitude=data.latitude),void 0!==data.longitude&&(this.longitude=data.longitude),void 0!==data.appFeatures&&(this.appFeatures=data.appFeatures),void 0!==data.notifications&&(this.notifications=data.notifications),void 0!==data.credentials&&(this.credentials=data.credentials)}};Object.defineProperty(Property.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"property.json",title:"Property",type:"object",description:"A property is a physical asset or building",required:["id","name","type","organization","timezone","discriminator"],properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{type:"string",default:"property",enum:["property"]},discriminator:{type:"string",enum:["hospitality","education","commercial","storage"]},organization:{type:["string","null"],description:"Reference (id) to the organization that owns this property"},departments:{type:"array",items:{type:"string"}},testModeEnabled:{type:"boolean"},testMode:{type:"object",properties:{notificationEmails:{type:"array",items:{type:"string"},description:"Only users with these email addresses will receive notifications in test mode, including sms, email, or push."},notificationEmailDomains:{type:"array",items:{type:"string"},description:"Only users with email addreses ending in these domains will receive notifications in test mode, including sms, email, or push."}}},timezone:{type:"string",description:"IANA timezone string",pattern:"^([a-zA-Z]+/[a-zA-Z_]+)$",examples:["America/New_York","America/Los_Angeles"]},smsNumber:{type:"string"},voiceNumber:{type:"string"},tags:{type:"array",items:{type:"string"}},checkInTime:{type:"string"},checkOutTime:{type:"string"},address:{$ref:"definitions.json#/definitions/address"},latitude:{type:"number"},longitude:{type:"number"},appFeatures:{type:"object",properties:{RoomControl:{type:"object",properties:{disabledSystems:{type:"array",items:{type:"string",enum:["climate","lights","shades","tv","doors"]}},excludedDeviceIds:{type:"array",items:{type:"string"},default:[]},commonAreas:{type:"object",properties:{spaces:{type:"array",items:{type:"string"}}}},alarmConfig:{type:"object",patternProperties:{"^[a-zA-Z0-9]+$":{type:"object",properties:{zoneLockMap:{type:"object",description:"Maps zone numbers to lock ids",additionalProperties:{type:"string"}}}}},examples:[{wZz7hucY:{zoneLockMap:{1:"wc87hucc",2:"bc86hzxc",3:"zv5ah5jv"}}}]}},additionalProperties:!1},CheckIn:{type:"object",properties:{payment:{},identification:{},earlyCheckIn:{type:"object",required:["dynamic"],properties:{dynamic:{type:"boolean",default:!1},minimumPrice:{type:"number",default:10},maximumPrice:{type:"number",default:50},priceRatioPerHour:{type:"number",default:.1},minimumTime:{type:"string"}}},roomUpgrades:{},pet:{},promos:{}}},CheckOut:{type:"object",properties:{lateCheckOut:{type:"object",required:["dynamic"],properties:{dynamic:{type:"boolean",default:!1},minimumPrice:{type:"number",default:10},maximumPrice:{type:"number",default:50},priceRatioPerHour:{type:"number",default:.1}}}}},Concierge:{type:"object",properties:{timeTracking:{type:"boolean",default:!1},tipping:{type:"boolean",default:!1},feedback:{type:"boolean",default:!0},ratings:{type:"boolean",default:!0},newTicketCCs:{type:"array",items:{type:"string"},default:[]},newMessageChannel:{type:["string","null"],enum:["sms","email"],default:"sms",description:"Determines how users should be notified of new messages in the concierge system"},quickServices:{type:"array",items:{type:"object",properties:{name:{type:"string"},description:{type:"string"},department:{type:"string"},image:{$ref:"mediaFile.json"}},required:["name","description","image"]}},issues:{type:"object",properties:{syncWithPropertyId:{type:"string"}}}}},DigitalKey:{type:"object",properties:{system:{type:"string",enum:["salto","dormakaba"]},systemOnline:{type:"boolean",default:!1},systemConfig:{type:"object",properties:{legicUrl:{type:"string",format:"uri"},legicWalletName:{type:"string"},legicAppId:{type:"number"},legicTechUsername:{type:"string"},legicTechPassword:{type:"string"}},additionalProperties:!1,default:{}},enableApp:{type:"boolean"},branding:{type:"object",properties:{logo:{type:"string",format:"uri"},gradient:{type:"array",items:{type:"string",pattern:"^(?!#ffffff)(#[0-9a-fA-F]{6})$"},minItems:2,maxItems:2},highlightedGradient:{type:"array",items:{type:"string",pattern:"^(?!#ffffff)(#[0-9a-fA-F]{6})$"},minItems:2,maxItems:3}}}}},SOS:{type:"object",properties:{active:{type:"boolean"},activeEmergencies:{type:"array",items:{type:"string",enum:["medical","fire","suspiciousPerson","other","conflict","shooter"]}}}},Elevator:{type:"object"},Experiences:{type:"object"},Dining:{type:"object",properties:{system:{type:"string",enum:["gotab"]},systemConfig:{type:"object",properties:{landingUrl:{type:"string",format:"uri"},includeUserDetails:{type:"boolean"}},additionalProperties:!1}}},Rentals:{type:"object"},Shop:{type:"object"},Spa:{type:"object"},Valet:{type:"object"}},additionalProperties:!1,default:{RoomControl:{}}},notifications:{type:"object",properties:{email:{type:"object",properties:{enabled:{type:"boolean"}},additionalProperties:!1},sms:{type:"object",properties:{enabled:{type:"boolean"}},additionalProperties:!1},push:{type:"object",properties:{enabled:{type:"boolean"}},additionalProperties:!1}},additionalProperties:!1,default:{email:{enabled:!1},sms:{enabled:!1},push:{enabled:!1}}},credentials:{type:"object",additionalProperties:!0}}}}),Object.defineProperty(Property.prototype,"validator",{get:__name((function(){return validateProperty}),"get")});export{Property};//# sourceMappingURL=chunk-FIIQWHVH.js.map
@@ -1 +1 @@
1
- import{errors_exports}from"./chunk-364IZMI7.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-KI6XJTAQ.js.map
1
+ import{errors_exports}from"./chunk-4QV2AU43.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-GNH5YHFT.js.map
@@ -1 +1 @@
1
- import{validateCourtesy}from"./chunk-IL3ICDGN.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Courtesy=class extends Entity{static{__name(this,"Courtesy")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,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.supportedStates=data.supportedStates,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)}};Object.defineProperty(Courtesy.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"courtesy.json",title:"Courtesy",description:"Any smart courtesy system",type:"object",required:["id","type","driver","supportedStates","state"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},supportedStates:{type:"array",uniqueItems:!0,items:{enum:["privacy","service","none"]}},state:{type:"string",$ref:"#/properties/supportedStates/items"},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(Courtesy.prototype,"validator",{get:__name((function(){return validateCourtesy}),"get")});export{Courtesy};//# sourceMappingURL=chunk-6HFMALKH.js.map
1
+ import{validateCourtesy}from"./chunk-RM6XS6VX.js";import{Entity}from"./chunk-YPJMXYGL.js";import{__name}from"./chunk-XE4OXN2W.js";var Courtesy=class extends Entity{static{__name(this,"Courtesy")}constructor(data){super(data),this.id=data.id,void 0!==data.name&&(this.name=data.name),this.type=data.type,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.supportedStates=data.supportedStates,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)}};Object.defineProperty(Courtesy.prototype,"schema",{value:{$schema:"http://json-schema.org/draft-07/schema",$id:"courtesy.json",title:"Courtesy",description:"Any smart courtesy system",type:"object",required:["id","type","driver","supportedStates","state"],additionalProperties:!1,properties:{id:{$ref:"definitions.json#/definitions/id"},name:{type:"string"},type:{$ref:"definitions.json#/definitions/type"},supportedNotifications:{$ref:"definitions.json#/definitions/supportedNotifications"},notification:{$ref:"definitions.json#/definitions/notification"},driver:{$ref:"definitions.json#/definitions/driver"},offline:{type:"boolean"},supportedStates:{type:"array",uniqueItems:!0,items:{enum:["privacy","service","none"]}},state:{type:"string",$ref:"#/properties/supportedStates/items"},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(Courtesy.prototype,"validator",{get:__name((function(){return validateCourtesy}),"get")});export{Courtesy};//# sourceMappingURL=chunk-ICMHZEBL.js.map