@espressif/rainmaker-neo-base-sdk 1.0.0

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 (914) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +206 -0
  3. package/dist/cjs/ESPDevice.js +35 -0
  4. package/dist/cjs/ESPDevice.js.map +1 -0
  5. package/dist/cjs/ESPRMNeoAuth.js +61 -0
  6. package/dist/cjs/ESPRMNeoAuth.js.map +1 -0
  7. package/dist/cjs/ESPRMNeoAutomation.js +48 -0
  8. package/dist/cjs/ESPRMNeoAutomation.js.map +1 -0
  9. package/dist/cjs/ESPRMNeoBase.js +250 -0
  10. package/dist/cjs/ESPRMNeoBase.js.map +1 -0
  11. package/dist/cjs/ESPRMNeoDevice.js +51 -0
  12. package/dist/cjs/ESPRMNeoDevice.js.map +1 -0
  13. package/dist/cjs/ESPRMNeoDeviceParam.js +54 -0
  14. package/dist/cjs/ESPRMNeoDeviceParam.js.map +1 -0
  15. package/dist/cjs/ESPRMNeoGroup.js +50 -0
  16. package/dist/cjs/ESPRMNeoGroup.js.map +1 -0
  17. package/dist/cjs/ESPRMNeoNode.js +283 -0
  18. package/dist/cjs/ESPRMNeoNode.js.map +1 -0
  19. package/dist/cjs/ESPRMNeoSchedule.js +66 -0
  20. package/dist/cjs/ESPRMNeoSchedule.js.map +1 -0
  21. package/dist/cjs/ESPRMNeoService.js +36 -0
  22. package/dist/cjs/ESPRMNeoService.js.map +1 -0
  23. package/dist/cjs/ESPRMNeoServiceParam.js +52 -0
  24. package/dist/cjs/ESPRMNeoServiceParam.js.map +1 -0
  25. package/dist/cjs/ESPRMNeoSharingRequest.js +33 -0
  26. package/dist/cjs/ESPRMNeoSharingRequest.js.map +1 -0
  27. package/dist/cjs/ESPRMNeoTrigger.js +50 -0
  28. package/dist/cjs/ESPRMNeoTrigger.js.map +1 -0
  29. package/dist/cjs/ESPRMNeoUser.js +82 -0
  30. package/dist/cjs/ESPRMNeoUser.js.map +1 -0
  31. package/dist/cjs/index.js +352 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/methods/ESPDevice/Connect.js +13 -0
  34. package/dist/cjs/methods/ESPDevice/Connect.js.map +1 -0
  35. package/dist/cjs/methods/ESPDevice/Disconnect.js +15 -0
  36. package/dist/cjs/methods/ESPDevice/Disconnect.js.map +1 -0
  37. package/dist/cjs/methods/ESPDevice/GetDeviceCapabilities.js +13 -0
  38. package/dist/cjs/methods/ESPDevice/GetDeviceCapabilities.js.map +1 -0
  39. package/dist/cjs/methods/ESPDevice/GetDeviceVersion.js +13 -0
  40. package/dist/cjs/methods/ESPDevice/GetDeviceVersion.js.map +1 -0
  41. package/dist/cjs/methods/ESPDevice/InitializeSession.js +13 -0
  42. package/dist/cjs/methods/ESPDevice/InitializeSession.js.map +1 -0
  43. package/dist/cjs/methods/ESPDevice/InitiateUserNodeMapping.js +14 -0
  44. package/dist/cjs/methods/ESPDevice/InitiateUserNodeMapping.js.map +1 -0
  45. package/dist/cjs/methods/ESPDevice/Provision.js +88 -0
  46. package/dist/cjs/methods/ESPDevice/Provision.js.map +1 -0
  47. package/dist/cjs/methods/ESPDevice/ScanWifiList.js +13 -0
  48. package/dist/cjs/methods/ESPDevice/ScanWifiList.js.map +1 -0
  49. package/dist/cjs/methods/ESPDevice/SendData.js +13 -0
  50. package/dist/cjs/methods/ESPDevice/SendData.js.map +1 -0
  51. package/dist/cjs/methods/ESPDevice/SetNetworkCredentials.js +13 -0
  52. package/dist/cjs/methods/ESPDevice/SetNetworkCredentials.js.map +1 -0
  53. package/dist/cjs/methods/ESPDevice/SetProofOfPossession.js +13 -0
  54. package/dist/cjs/methods/ESPDevice/SetProofOfPossession.js.map +1 -0
  55. package/dist/cjs/methods/ESPDevice/StartAssistedClaiming.js +260 -0
  56. package/dist/cjs/methods/ESPDevice/StartAssistedClaiming.js.map +1 -0
  57. package/dist/cjs/methods/ESPDevice/VerifyUserNodeMapping.js +14 -0
  58. package/dist/cjs/methods/ESPDevice/VerifyUserNodeMapping.js.map +1 -0
  59. package/dist/cjs/methods/ESPRMNeoAuth/ChangePassword.js +46 -0
  60. package/dist/cjs/methods/ESPRMNeoAuth/ChangePassword.js.map +1 -0
  61. package/dist/cjs/methods/ESPRMNeoAuth/ConfirmSignUp.js +41 -0
  62. package/dist/cjs/methods/ESPRMNeoAuth/ConfirmSignUp.js.map +1 -0
  63. package/dist/cjs/methods/ESPRMNeoAuth/ForgotPassword.js +39 -0
  64. package/dist/cjs/methods/ESPRMNeoAuth/ForgotPassword.js.map +1 -0
  65. package/dist/cjs/methods/ESPRMNeoAuth/GetLoggedInUser.js +56 -0
  66. package/dist/cjs/methods/ESPRMNeoAuth/GetLoggedInUser.js.map +1 -0
  67. package/dist/cjs/methods/ESPRMNeoAuth/Login.js +49 -0
  68. package/dist/cjs/methods/ESPRMNeoAuth/Login.js.map +1 -0
  69. package/dist/cjs/methods/ESPRMNeoAuth/SendSignUpCode.js +47 -0
  70. package/dist/cjs/methods/ESPRMNeoAuth/SendSignUpCode.js.map +1 -0
  71. package/dist/cjs/methods/ESPRMNeoAuth/SetNewPassword.js +41 -0
  72. package/dist/cjs/methods/ESPRMNeoAuth/SetNewPassword.js.map +1 -0
  73. package/dist/cjs/methods/ESPRMNeoAutomation/AddAction.js +23 -0
  74. package/dist/cjs/methods/ESPRMNeoAutomation/AddAction.js.map +1 -0
  75. package/dist/cjs/methods/ESPRMNeoAutomation/AddCondition.js +27 -0
  76. package/dist/cjs/methods/ESPRMNeoAutomation/AddCondition.js.map +1 -0
  77. package/dist/cjs/methods/ESPRMNeoAutomation/Delete.js +29 -0
  78. package/dist/cjs/methods/ESPRMNeoAutomation/Delete.js.map +1 -0
  79. package/dist/cjs/methods/ESPRMNeoAutomation/RemoveAction.js +23 -0
  80. package/dist/cjs/methods/ESPRMNeoAutomation/RemoveAction.js.map +1 -0
  81. package/dist/cjs/methods/ESPRMNeoAutomation/RemoveCondition.js +23 -0
  82. package/dist/cjs/methods/ESPRMNeoAutomation/RemoveCondition.js.map +1 -0
  83. package/dist/cjs/methods/ESPRMNeoAutomation/Update.js +40 -0
  84. package/dist/cjs/methods/ESPRMNeoAutomation/Update.js.map +1 -0
  85. package/dist/cjs/methods/ESPRMNeoDevice/GetParams.js +34 -0
  86. package/dist/cjs/methods/ESPRMNeoDevice/GetParams.js.map +1 -0
  87. package/dist/cjs/methods/ESPRMNeoDeviceParam/GetLatestTSData.js +26 -0
  88. package/dist/cjs/methods/ESPRMNeoDeviceParam/GetLatestTSData.js.map +1 -0
  89. package/dist/cjs/methods/ESPRMNeoDeviceParam/GetRawTSData.js +28 -0
  90. package/dist/cjs/methods/ESPRMNeoDeviceParam/GetRawTSData.js.map +1 -0
  91. package/dist/cjs/methods/ESPRMNeoDeviceParam/GetTSData.js +28 -0
  92. package/dist/cjs/methods/ESPRMNeoDeviceParam/GetTSData.js.map +1 -0
  93. package/dist/cjs/methods/ESPRMNeoGroup/AddNode.js +29 -0
  94. package/dist/cjs/methods/ESPRMNeoGroup/AddNode.js.map +1 -0
  95. package/dist/cjs/methods/ESPRMNeoGroup/CreateAutomation.js +32 -0
  96. package/dist/cjs/methods/ESPRMNeoGroup/CreateAutomation.js.map +1 -0
  97. package/dist/cjs/methods/ESPRMNeoGroup/CreateSchedule.js +54 -0
  98. package/dist/cjs/methods/ESPRMNeoGroup/CreateSchedule.js.map +1 -0
  99. package/dist/cjs/methods/ESPRMNeoGroup/CreateSubGroup.js +39 -0
  100. package/dist/cjs/methods/ESPRMNeoGroup/CreateSubGroup.js.map +1 -0
  101. package/dist/cjs/methods/ESPRMNeoGroup/Delete.js +30 -0
  102. package/dist/cjs/methods/ESPRMNeoGroup/Delete.js.map +1 -0
  103. package/dist/cjs/methods/ESPRMNeoGroup/DeleteAllSchedules.js +34 -0
  104. package/dist/cjs/methods/ESPRMNeoGroup/DeleteAllSchedules.js.map +1 -0
  105. package/dist/cjs/methods/ESPRMNeoGroup/GetAutomation.js +19 -0
  106. package/dist/cjs/methods/ESPRMNeoGroup/GetAutomation.js.map +1 -0
  107. package/dist/cjs/methods/ESPRMNeoGroup/GetAutomations.js +28 -0
  108. package/dist/cjs/methods/ESPRMNeoGroup/GetAutomations.js.map +1 -0
  109. package/dist/cjs/methods/ESPRMNeoGroup/GetNode.js +22 -0
  110. package/dist/cjs/methods/ESPRMNeoGroup/GetNode.js.map +1 -0
  111. package/dist/cjs/methods/ESPRMNeoGroup/GetNodes.js +20 -0
  112. package/dist/cjs/methods/ESPRMNeoGroup/GetNodes.js.map +1 -0
  113. package/dist/cjs/methods/ESPRMNeoGroup/GetSchedules.js +42 -0
  114. package/dist/cjs/methods/ESPRMNeoGroup/GetSchedules.js.map +1 -0
  115. package/dist/cjs/methods/ESPRMNeoGroup/GetSharingInfo.js +33 -0
  116. package/dist/cjs/methods/ESPRMNeoGroup/GetSharingInfo.js.map +1 -0
  117. package/dist/cjs/methods/ESPRMNeoGroup/Leave.js +22 -0
  118. package/dist/cjs/methods/ESPRMNeoGroup/Leave.js.map +1 -0
  119. package/dist/cjs/methods/ESPRMNeoGroup/RemoveMember.js +29 -0
  120. package/dist/cjs/methods/ESPRMNeoGroup/RemoveMember.js.map +1 -0
  121. package/dist/cjs/methods/ESPRMNeoGroup/RemoveNode.js +26 -0
  122. package/dist/cjs/methods/ESPRMNeoGroup/RemoveNode.js.map +1 -0
  123. package/dist/cjs/methods/ESPRMNeoGroup/SetParams.js +29 -0
  124. package/dist/cjs/methods/ESPRMNeoGroup/SetParams.js.map +1 -0
  125. package/dist/cjs/methods/ESPRMNeoGroup/Share.js +34 -0
  126. package/dist/cjs/methods/ESPRMNeoGroup/Share.js.map +1 -0
  127. package/dist/cjs/methods/ESPRMNeoGroup/UpdateName.js +37 -0
  128. package/dist/cjs/methods/ESPRMNeoGroup/UpdateName.js.map +1 -0
  129. package/dist/cjs/methods/ESPRMNeoNode/CreateSchedule.js +47 -0
  130. package/dist/cjs/methods/ESPRMNeoNode/CreateSchedule.js.map +1 -0
  131. package/dist/cjs/methods/ESPRMNeoNode/CreateTrigger.js +40 -0
  132. package/dist/cjs/methods/ESPRMNeoNode/CreateTrigger.js.map +1 -0
  133. package/dist/cjs/methods/ESPRMNeoNode/Delete.js +31 -0
  134. package/dist/cjs/methods/ESPRMNeoNode/Delete.js.map +1 -0
  135. package/dist/cjs/methods/ESPRMNeoNode/GetConfig.js +13 -0
  136. package/dist/cjs/methods/ESPRMNeoNode/GetConfig.js.map +1 -0
  137. package/dist/cjs/methods/ESPRMNeoNode/GetCustomParamLatestTSData.js +20 -0
  138. package/dist/cjs/methods/ESPRMNeoNode/GetCustomParamLatestTSData.js.map +1 -0
  139. package/dist/cjs/methods/ESPRMNeoNode/GetCustomParamRawTSData.js +22 -0
  140. package/dist/cjs/methods/ESPRMNeoNode/GetCustomParamRawTSData.js.map +1 -0
  141. package/dist/cjs/methods/ESPRMNeoNode/GetCustomParamTSData.js +22 -0
  142. package/dist/cjs/methods/ESPRMNeoNode/GetCustomParamTSData.js.map +1 -0
  143. package/dist/cjs/methods/ESPRMNeoNode/GetSchedules.js +22 -0
  144. package/dist/cjs/methods/ESPRMNeoNode/GetSchedules.js.map +1 -0
  145. package/dist/cjs/methods/ESPRMNeoNode/GetTriggers.js +28 -0
  146. package/dist/cjs/methods/ESPRMNeoNode/GetTriggers.js.map +1 -0
  147. package/dist/cjs/methods/ESPRMNeoNode/RemoveAllSchedules.js +22 -0
  148. package/dist/cjs/methods/ESPRMNeoNode/RemoveAllSchedules.js.map +1 -0
  149. package/dist/cjs/methods/ESPRMNeoNode/RemoveAllTriggers.js +22 -0
  150. package/dist/cjs/methods/ESPRMNeoNode/RemoveAllTriggers.js.map +1 -0
  151. package/dist/cjs/methods/ESPRMNeoNode/RemoveSchedule.js +35 -0
  152. package/dist/cjs/methods/ESPRMNeoNode/RemoveSchedule.js.map +1 -0
  153. package/dist/cjs/methods/ESPRMNeoNode/RemoveTrigger.js +27 -0
  154. package/dist/cjs/methods/ESPRMNeoNode/RemoveTrigger.js.map +1 -0
  155. package/dist/cjs/methods/ESPRMNeoNode/SetParams.js +20 -0
  156. package/dist/cjs/methods/ESPRMNeoNode/SetParams.js.map +1 -0
  157. package/dist/cjs/methods/ESPRMNeoNode/SubscriptionConfig.js +25 -0
  158. package/dist/cjs/methods/ESPRMNeoNode/SubscriptionConfig.js.map +1 -0
  159. package/dist/cjs/methods/ESPRMNeoNode/Sync.js +30 -0
  160. package/dist/cjs/methods/ESPRMNeoNode/Sync.js.map +1 -0
  161. package/dist/cjs/methods/ESPRMNeoNode/UnsubscribeFromMqttUpdates.js +24 -0
  162. package/dist/cjs/methods/ESPRMNeoNode/UnsubscribeFromMqttUpdates.js.map +1 -0
  163. package/dist/cjs/methods/ESPRMNeoSchedule/Delete.js +19 -0
  164. package/dist/cjs/methods/ESPRMNeoSchedule/Delete.js.map +1 -0
  165. package/dist/cjs/methods/ESPRMNeoSchedule/Enable.js +13 -0
  166. package/dist/cjs/methods/ESPRMNeoSchedule/Enable.js.map +1 -0
  167. package/dist/cjs/methods/ESPRMNeoSchedule/Update.js +50 -0
  168. package/dist/cjs/methods/ESPRMNeoSchedule/Update.js.map +1 -0
  169. package/dist/cjs/methods/ESPRMNeoService/GetParams.js +42 -0
  170. package/dist/cjs/methods/ESPRMNeoService/GetParams.js.map +1 -0
  171. package/dist/cjs/methods/ESPRMNeoSharingRequest/Accept.js +37 -0
  172. package/dist/cjs/methods/ESPRMNeoSharingRequest/Accept.js.map +1 -0
  173. package/dist/cjs/methods/ESPRMNeoSharingRequest/Decline.js +37 -0
  174. package/dist/cjs/methods/ESPRMNeoSharingRequest/Decline.js.map +1 -0
  175. package/dist/cjs/methods/ESPRMNeoTrigger/Delete.js +19 -0
  176. package/dist/cjs/methods/ESPRMNeoTrigger/Delete.js.map +1 -0
  177. package/dist/cjs/methods/ESPRMNeoTrigger/Enable.js +13 -0
  178. package/dist/cjs/methods/ESPRMNeoTrigger/Enable.js.map +1 -0
  179. package/dist/cjs/methods/ESPRMNeoTrigger/Update.js +34 -0
  180. package/dist/cjs/methods/ESPRMNeoTrigger/Update.js.map +1 -0
  181. package/dist/cjs/methods/ESPRMNeoUser/CreateESPDevice.js +32 -0
  182. package/dist/cjs/methods/ESPRMNeoUser/CreateESPDevice.js.map +1 -0
  183. package/dist/cjs/methods/ESPRMNeoUser/CreateGroup.js +39 -0
  184. package/dist/cjs/methods/ESPRMNeoUser/CreateGroup.js.map +1 -0
  185. package/dist/cjs/methods/ESPRMNeoUser/EventSubscription.js +50 -0
  186. package/dist/cjs/methods/ESPRMNeoUser/EventSubscription.js.map +1 -0
  187. package/dist/cjs/methods/ESPRMNeoUser/GetGroups.js +54 -0
  188. package/dist/cjs/methods/ESPRMNeoUser/GetGroups.js.map +1 -0
  189. package/dist/cjs/methods/ESPRMNeoUser/GetTemporaryAWSCredentials.js +79 -0
  190. package/dist/cjs/methods/ESPRMNeoUser/GetTemporaryAWSCredentials.js.map +1 -0
  191. package/dist/cjs/methods/ESPRMNeoUser/GetUserInfo.js +39 -0
  192. package/dist/cjs/methods/ESPRMNeoUser/GetUserInfo.js.map +1 -0
  193. package/dist/cjs/methods/ESPRMNeoUser/ListIntegrations.js +37 -0
  194. package/dist/cjs/methods/ESPRMNeoUser/ListIntegrations.js.map +1 -0
  195. package/dist/cjs/methods/ESPRMNeoUser/ListSharingRequests.js +31 -0
  196. package/dist/cjs/methods/ESPRMNeoUser/ListSharingRequests.js.map +1 -0
  197. package/dist/cjs/methods/ESPRMNeoUser/Logout.js +40 -0
  198. package/dist/cjs/methods/ESPRMNeoUser/Logout.js.map +1 -0
  199. package/dist/cjs/methods/ESPRMNeoUser/MQTT/AssumeRole.js +38 -0
  200. package/dist/cjs/methods/ESPRMNeoUser/MQTT/AssumeRole.js.map +1 -0
  201. package/dist/cjs/methods/ESPRMNeoUser/MQTT/ConnectMQTT.js +67 -0
  202. package/dist/cjs/methods/ESPRMNeoUser/MQTT/ConnectMQTT.js.map +1 -0
  203. package/dist/cjs/methods/ESPRMNeoUser/MQTT/DisconnectMQTT.js +29 -0
  204. package/dist/cjs/methods/ESPRMNeoUser/MQTT/DisconnectMQTT.js.map +1 -0
  205. package/dist/cjs/methods/ESPRMNeoUser/RegisterIntegrationEndpoint.js +41 -0
  206. package/dist/cjs/methods/ESPRMNeoUser/RegisterIntegrationEndpoint.js.map +1 -0
  207. package/dist/cjs/methods/ESPRMNeoUser/SearchESPDevices.js +50 -0
  208. package/dist/cjs/methods/ESPRMNeoUser/SearchESPDevices.js.map +1 -0
  209. package/dist/cjs/methods/ESPRMNeoUser/UnregisterIntegrationEndpoint.js +44 -0
  210. package/dist/cjs/methods/ESPRMNeoUser/UnregisterIntegrationEndpoint.js.map +1 -0
  211. package/dist/cjs/proto/constants.js +24 -0
  212. package/dist/cjs/proto/constants.js.map +1 -0
  213. package/dist/cjs/proto/esp_local_ctrl.js +787 -0
  214. package/dist/cjs/proto/esp_local_ctrl.js.map +1 -0
  215. package/dist/cjs/proto/esp_rmaker_chal_resp.js +465 -0
  216. package/dist/cjs/proto/esp_rmaker_chal_resp.js.map +1 -0
  217. package/dist/cjs/proto/esp_rmaker_claim.js +358 -0
  218. package/dist/cjs/proto/esp_rmaker_claim.js.map +1 -0
  219. package/dist/cjs/services/ESPRMNeoAPIManager.js +208 -0
  220. package/dist/cjs/services/ESPRMNeoAPIManager.js.map +1 -0
  221. package/dist/cjs/services/ESPRMNeoHelpers/ChallengeResponseHelper.js +106 -0
  222. package/dist/cjs/services/ESPRMNeoHelpers/ChallengeResponseHelper.js.map +1 -0
  223. package/dist/cjs/services/ESPRMNeoHelpers/ChannelRegistration.js +49 -0
  224. package/dist/cjs/services/ESPRMNeoHelpers/ChannelRegistration.js.map +1 -0
  225. package/dist/cjs/services/ESPRMNeoHelpers/CheckTokenExpiry.js +25 -0
  226. package/dist/cjs/services/ESPRMNeoHelpers/CheckTokenExpiry.js.map +1 -0
  227. package/dist/cjs/services/ESPRMNeoHelpers/ClaimingHelper.js +221 -0
  228. package/dist/cjs/services/ESPRMNeoHelpers/ClaimingHelper.js.map +1 -0
  229. package/dist/cjs/services/ESPRMNeoHelpers/DecodeToken.js +52 -0
  230. package/dist/cjs/services/ESPRMNeoHelpers/DecodeToken.js.map +1 -0
  231. package/dist/cjs/services/ESPRMNeoHelpers/DelegatedTransportHandler.js +132 -0
  232. package/dist/cjs/services/ESPRMNeoHelpers/DelegatedTransportHandler.js.map +1 -0
  233. package/dist/cjs/services/ESPRMNeoHelpers/FetchTSData.js +137 -0
  234. package/dist/cjs/services/ESPRMNeoHelpers/FetchTSData.js.map +1 -0
  235. package/dist/cjs/services/ESPRMNeoHelpers/GetCurrentTimestamp.js +18 -0
  236. package/dist/cjs/services/ESPRMNeoHelpers/GetCurrentTimestamp.js.map +1 -0
  237. package/dist/cjs/services/ESPRMNeoHelpers/NodeMappingHelper.js +45 -0
  238. package/dist/cjs/services/ESPRMNeoHelpers/NodeMappingHelper.js.map +1 -0
  239. package/dist/cjs/services/ESPRMNeoHelpers/TransformEncoding.js +66 -0
  240. package/dist/cjs/services/ESPRMNeoHelpers/TransformEncoding.js.map +1 -0
  241. package/dist/cjs/services/ESPRMNeoHelpers/transformShadowToNodeUpdate.js +55 -0
  242. package/dist/cjs/services/ESPRMNeoHelpers/transformShadowToNodeUpdate.js.map +1 -0
  243. package/dist/cjs/services/ESPRMNeoMqtt/ESPRMNeoMqtt.js +120 -0
  244. package/dist/cjs/services/ESPRMNeoMqtt/ESPRMNeoMqtt.js.map +1 -0
  245. package/dist/cjs/services/ESPRMNeoStorage/DefaultStorageAdapter.js +52 -0
  246. package/dist/cjs/services/ESPRMNeoStorage/DefaultStorageAdapter.js.map +1 -0
  247. package/dist/cjs/services/ESPRMNeoStorage/ESPRMNeoStorage.js +142 -0
  248. package/dist/cjs/services/ESPRMNeoStorage/ESPRMNeoStorage.js.map +1 -0
  249. package/dist/cjs/services/ESPRMNeoSubscriptionManager.js +357 -0
  250. package/dist/cjs/services/ESPRMNeoSubscriptionManager.js.map +1 -0
  251. package/dist/cjs/services/ESPSigV4APIManager.js +328 -0
  252. package/dist/cjs/services/ESPSigV4APIManager.js.map +1 -0
  253. package/dist/cjs/services/ESPTransport/ESPDiscovery/ESPDiscoveryManager.js +62 -0
  254. package/dist/cjs/services/ESPTransport/ESPDiscovery/ESPDiscoveryManager.js.map +1 -0
  255. package/dist/cjs/services/ESPTransport/ESPLocalControlTransport.js +157 -0
  256. package/dist/cjs/services/ESPTransport/ESPLocalControlTransport.js.map +1 -0
  257. package/dist/cjs/services/ESPTransport/ESPMqttTransport.js +26 -0
  258. package/dist/cjs/services/ESPTransport/ESPMqttTransport.js.map +1 -0
  259. package/dist/cjs/services/ESPTransport/ESPTransportManager.js +42 -0
  260. package/dist/cjs/services/ESPTransport/ESPTransportManager.js.map +1 -0
  261. package/dist/cjs/services/MQTTSubscriptionChannel.js +274 -0
  262. package/dist/cjs/services/MQTTSubscriptionChannel.js.map +1 -0
  263. package/dist/cjs/services/NodeMQTTOrchestrator.js +558 -0
  264. package/dist/cjs/services/NodeMQTTOrchestrator.js.map +1 -0
  265. package/dist/cjs/services/NodeMQTTOrchestratorHelpers.js +81 -0
  266. package/dist/cjs/services/NodeMQTTOrchestratorHelpers.js.map +1 -0
  267. package/dist/cjs/services/NodeUpdatesBus.js +53 -0
  268. package/dist/cjs/services/NodeUpdatesBus.js.map +1 -0
  269. package/dist/cjs/types/discovery.js +29 -0
  270. package/dist/cjs/types/discovery.js.map +1 -0
  271. package/dist/cjs/types/provision.js +64 -0
  272. package/dist/cjs/types/provision.js.map +1 -0
  273. package/dist/cjs/types/subscription.js +20 -0
  274. package/dist/cjs/types/subscription.js.map +1 -0
  275. package/dist/cjs/types/transport.js +32 -0
  276. package/dist/cjs/types/transport.js.map +1 -0
  277. package/dist/cjs/utils/authUtils.js +28 -0
  278. package/dist/cjs/utils/authUtils.js.map +1 -0
  279. package/dist/cjs/utils/awsShadowTopics.js +154 -0
  280. package/dist/cjs/utils/awsShadowTopics.js.map +1 -0
  281. package/dist/cjs/utils/awsSigv4Utils.js +143 -0
  282. package/dist/cjs/utils/awsSigv4Utils.js.map +1 -0
  283. package/dist/cjs/utils/awsUtils.js +172 -0
  284. package/dist/cjs/utils/awsUtils.js.map +1 -0
  285. package/dist/cjs/utils/baseUtils.js +294 -0
  286. package/dist/cjs/utils/baseUtils.js.map +1 -0
  287. package/dist/cjs/utils/coerce.js +46 -0
  288. package/dist/cjs/utils/coerce.js.map +1 -0
  289. package/dist/cjs/utils/common.js +42 -0
  290. package/dist/cjs/utils/common.js.map +1 -0
  291. package/dist/cjs/utils/constants.js +893 -0
  292. package/dist/cjs/utils/constants.js.map +1 -0
  293. package/dist/cjs/utils/error/ESPAPICallValidationError.js +33 -0
  294. package/dist/cjs/utils/error/ESPAPICallValidationError.js.map +1 -0
  295. package/dist/cjs/utils/error/ESPAuthError.js +26 -0
  296. package/dist/cjs/utils/error/ESPAuthError.js.map +1 -0
  297. package/dist/cjs/utils/error/ESPBaseError.js +23 -0
  298. package/dist/cjs/utils/error/ESPBaseError.js.map +1 -0
  299. package/dist/cjs/utils/error/ESPClaimError.js +43 -0
  300. package/dist/cjs/utils/error/ESPClaimError.js.map +1 -0
  301. package/dist/cjs/utils/error/ESPConfigError.js +33 -0
  302. package/dist/cjs/utils/error/ESPConfigError.js.map +1 -0
  303. package/dist/cjs/utils/error/ESPProvError.js +33 -0
  304. package/dist/cjs/utils/error/ESPProvError.js.map +1 -0
  305. package/dist/cjs/utils/error/ESPStorageAdapterError.js +33 -0
  306. package/dist/cjs/utils/error/ESPStorageAdapterError.js.map +1 -0
  307. package/dist/cjs/utils/error/ESPTokenError.js +34 -0
  308. package/dist/cjs/utils/error/ESPTokenError.js.map +1 -0
  309. package/dist/cjs/utils/error/ESPValidationError.js +33 -0
  310. package/dist/cjs/utils/error/ESPValidationError.js.map +1 -0
  311. package/dist/cjs/utils/error/errorMessages.js +280 -0
  312. package/dist/cjs/utils/error/errorMessages.js.map +1 -0
  313. package/dist/cjs/utils/eventEmitter.js +54 -0
  314. package/dist/cjs/utils/eventEmitter.js.map +1 -0
  315. package/dist/cjs/utils/eventSubscriptionUtils.js +47 -0
  316. package/dist/cjs/utils/eventSubscriptionUtils.js.map +1 -0
  317. package/dist/cjs/utils/groupUtils.js +33 -0
  318. package/dist/cjs/utils/groupUtils.js.map +1 -0
  319. package/dist/cjs/utils/logger.js +47 -0
  320. package/dist/cjs/utils/logger.js.map +1 -0
  321. package/dist/cjs/utils/mapLimit.js +43 -0
  322. package/dist/cjs/utils/mapLimit.js.map +1 -0
  323. package/dist/cjs/utils/mqtt.js +29 -0
  324. package/dist/cjs/utils/mqtt.js.map +1 -0
  325. package/dist/cjs/utils/nodeNcfgVersionHandler.js +130 -0
  326. package/dist/cjs/utils/nodeNcfgVersionHandler.js.map +1 -0
  327. package/dist/cjs/utils/nodeTransform.js +117 -0
  328. package/dist/cjs/utils/nodeTransform.js.map +1 -0
  329. package/dist/cjs/utils/nodeUtils.js +114 -0
  330. package/dist/cjs/utils/nodeUtils.js.map +1 -0
  331. package/dist/cjs/utils/normalizeApiResponse.js +30 -0
  332. package/dist/cjs/utils/normalizeApiResponse.js.map +1 -0
  333. package/dist/cjs/utils/paramValues.js +58 -0
  334. package/dist/cjs/utils/paramValues.js.map +1 -0
  335. package/dist/cjs/utils/scheduleUtils.js +41 -0
  336. package/dist/cjs/utils/scheduleUtils.js.map +1 -0
  337. package/dist/cjs/utils/shadowUtils.js +72 -0
  338. package/dist/cjs/utils/shadowUtils.js.map +1 -0
  339. package/dist/cjs/utils/triggerUtils.js +60 -0
  340. package/dist/cjs/utils/triggerUtils.js.map +1 -0
  341. package/dist/cjs/utils/tsDataUtils.js +165 -0
  342. package/dist/cjs/utils/tsDataUtils.js.map +1 -0
  343. package/dist/cjs/utils/userUtils.js +60 -0
  344. package/dist/cjs/utils/userUtils.js.map +1 -0
  345. package/dist/cjs/utils/validator/ConfigValidator.js +216 -0
  346. package/dist/cjs/utils/validator/ConfigValidator.js.map +1 -0
  347. package/dist/cjs/utils/validator/ScheduleValidator.js +58 -0
  348. package/dist/cjs/utils/validator/ScheduleValidator.js.map +1 -0
  349. package/dist/cjs/utils/validator/validators.js +42 -0
  350. package/dist/cjs/utils/validator/validators.js.map +1 -0
  351. package/dist/cjs/utils/waitForNodeOnline.js +187 -0
  352. package/dist/cjs/utils/waitForNodeOnline.js.map +1 -0
  353. package/dist/esm/ESPDevice.js +33 -0
  354. package/dist/esm/ESPDevice.js.map +1 -0
  355. package/dist/esm/ESPRMNeoAuth.js +58 -0
  356. package/dist/esm/ESPRMNeoAuth.js.map +1 -0
  357. package/dist/esm/ESPRMNeoAutomation.js +46 -0
  358. package/dist/esm/ESPRMNeoAutomation.js.map +1 -0
  359. package/dist/esm/ESPRMNeoBase.js +248 -0
  360. package/dist/esm/ESPRMNeoBase.js.map +1 -0
  361. package/dist/esm/ESPRMNeoDevice.js +49 -0
  362. package/dist/esm/ESPRMNeoDevice.js.map +1 -0
  363. package/dist/esm/ESPRMNeoDeviceParam.js +52 -0
  364. package/dist/esm/ESPRMNeoDeviceParam.js.map +1 -0
  365. package/dist/esm/ESPRMNeoGroup.js +47 -0
  366. package/dist/esm/ESPRMNeoGroup.js.map +1 -0
  367. package/dist/esm/ESPRMNeoNode.js +281 -0
  368. package/dist/esm/ESPRMNeoNode.js.map +1 -0
  369. package/dist/esm/ESPRMNeoSchedule.js +64 -0
  370. package/dist/esm/ESPRMNeoSchedule.js.map +1 -0
  371. package/dist/esm/ESPRMNeoService.js +34 -0
  372. package/dist/esm/ESPRMNeoService.js.map +1 -0
  373. package/dist/esm/ESPRMNeoServiceParam.js +50 -0
  374. package/dist/esm/ESPRMNeoServiceParam.js.map +1 -0
  375. package/dist/esm/ESPRMNeoSharingRequest.js +31 -0
  376. package/dist/esm/ESPRMNeoSharingRequest.js.map +1 -0
  377. package/dist/esm/ESPRMNeoTrigger.js +48 -0
  378. package/dist/esm/ESPRMNeoTrigger.js.map +1 -0
  379. package/dist/esm/ESPRMNeoUser.js +80 -0
  380. package/dist/esm/ESPRMNeoUser.js.map +1 -0
  381. package/dist/esm/index.js +140 -0
  382. package/dist/esm/index.js.map +1 -0
  383. package/dist/esm/methods/ESPDevice/Connect.js +11 -0
  384. package/dist/esm/methods/ESPDevice/Connect.js.map +1 -0
  385. package/dist/esm/methods/ESPDevice/Disconnect.js +13 -0
  386. package/dist/esm/methods/ESPDevice/Disconnect.js.map +1 -0
  387. package/dist/esm/methods/ESPDevice/GetDeviceCapabilities.js +11 -0
  388. package/dist/esm/methods/ESPDevice/GetDeviceCapabilities.js.map +1 -0
  389. package/dist/esm/methods/ESPDevice/GetDeviceVersion.js +11 -0
  390. package/dist/esm/methods/ESPDevice/GetDeviceVersion.js.map +1 -0
  391. package/dist/esm/methods/ESPDevice/InitializeSession.js +11 -0
  392. package/dist/esm/methods/ESPDevice/InitializeSession.js.map +1 -0
  393. package/dist/esm/methods/ESPDevice/InitiateUserNodeMapping.js +12 -0
  394. package/dist/esm/methods/ESPDevice/InitiateUserNodeMapping.js.map +1 -0
  395. package/dist/esm/methods/ESPDevice/Provision.js +86 -0
  396. package/dist/esm/methods/ESPDevice/Provision.js.map +1 -0
  397. package/dist/esm/methods/ESPDevice/ScanWifiList.js +11 -0
  398. package/dist/esm/methods/ESPDevice/ScanWifiList.js.map +1 -0
  399. package/dist/esm/methods/ESPDevice/SendData.js +11 -0
  400. package/dist/esm/methods/ESPDevice/SendData.js.map +1 -0
  401. package/dist/esm/methods/ESPDevice/SetNetworkCredentials.js +11 -0
  402. package/dist/esm/methods/ESPDevice/SetNetworkCredentials.js.map +1 -0
  403. package/dist/esm/methods/ESPDevice/SetProofOfPossession.js +11 -0
  404. package/dist/esm/methods/ESPDevice/SetProofOfPossession.js.map +1 -0
  405. package/dist/esm/methods/ESPDevice/StartAssistedClaiming.js +258 -0
  406. package/dist/esm/methods/ESPDevice/StartAssistedClaiming.js.map +1 -0
  407. package/dist/esm/methods/ESPDevice/VerifyUserNodeMapping.js +12 -0
  408. package/dist/esm/methods/ESPDevice/VerifyUserNodeMapping.js.map +1 -0
  409. package/dist/esm/methods/ESPRMNeoAuth/ChangePassword.js +44 -0
  410. package/dist/esm/methods/ESPRMNeoAuth/ChangePassword.js.map +1 -0
  411. package/dist/esm/methods/ESPRMNeoAuth/ConfirmSignUp.js +39 -0
  412. package/dist/esm/methods/ESPRMNeoAuth/ConfirmSignUp.js.map +1 -0
  413. package/dist/esm/methods/ESPRMNeoAuth/ForgotPassword.js +37 -0
  414. package/dist/esm/methods/ESPRMNeoAuth/ForgotPassword.js.map +1 -0
  415. package/dist/esm/methods/ESPRMNeoAuth/GetLoggedInUser.js +54 -0
  416. package/dist/esm/methods/ESPRMNeoAuth/GetLoggedInUser.js.map +1 -0
  417. package/dist/esm/methods/ESPRMNeoAuth/Login.js +47 -0
  418. package/dist/esm/methods/ESPRMNeoAuth/Login.js.map +1 -0
  419. package/dist/esm/methods/ESPRMNeoAuth/SendSignUpCode.js +45 -0
  420. package/dist/esm/methods/ESPRMNeoAuth/SendSignUpCode.js.map +1 -0
  421. package/dist/esm/methods/ESPRMNeoAuth/SetNewPassword.js +39 -0
  422. package/dist/esm/methods/ESPRMNeoAuth/SetNewPassword.js.map +1 -0
  423. package/dist/esm/methods/ESPRMNeoAutomation/AddAction.js +21 -0
  424. package/dist/esm/methods/ESPRMNeoAutomation/AddAction.js.map +1 -0
  425. package/dist/esm/methods/ESPRMNeoAutomation/AddCondition.js +25 -0
  426. package/dist/esm/methods/ESPRMNeoAutomation/AddCondition.js.map +1 -0
  427. package/dist/esm/methods/ESPRMNeoAutomation/Delete.js +27 -0
  428. package/dist/esm/methods/ESPRMNeoAutomation/Delete.js.map +1 -0
  429. package/dist/esm/methods/ESPRMNeoAutomation/RemoveAction.js +21 -0
  430. package/dist/esm/methods/ESPRMNeoAutomation/RemoveAction.js.map +1 -0
  431. package/dist/esm/methods/ESPRMNeoAutomation/RemoveCondition.js +21 -0
  432. package/dist/esm/methods/ESPRMNeoAutomation/RemoveCondition.js.map +1 -0
  433. package/dist/esm/methods/ESPRMNeoAutomation/Update.js +38 -0
  434. package/dist/esm/methods/ESPRMNeoAutomation/Update.js.map +1 -0
  435. package/dist/esm/methods/ESPRMNeoDevice/GetParams.js +32 -0
  436. package/dist/esm/methods/ESPRMNeoDevice/GetParams.js.map +1 -0
  437. package/dist/esm/methods/ESPRMNeoDeviceParam/GetLatestTSData.js +24 -0
  438. package/dist/esm/methods/ESPRMNeoDeviceParam/GetLatestTSData.js.map +1 -0
  439. package/dist/esm/methods/ESPRMNeoDeviceParam/GetRawTSData.js +26 -0
  440. package/dist/esm/methods/ESPRMNeoDeviceParam/GetRawTSData.js.map +1 -0
  441. package/dist/esm/methods/ESPRMNeoDeviceParam/GetTSData.js +26 -0
  442. package/dist/esm/methods/ESPRMNeoDeviceParam/GetTSData.js.map +1 -0
  443. package/dist/esm/methods/ESPRMNeoGroup/AddNode.js +27 -0
  444. package/dist/esm/methods/ESPRMNeoGroup/AddNode.js.map +1 -0
  445. package/dist/esm/methods/ESPRMNeoGroup/CreateAutomation.js +30 -0
  446. package/dist/esm/methods/ESPRMNeoGroup/CreateAutomation.js.map +1 -0
  447. package/dist/esm/methods/ESPRMNeoGroup/CreateSchedule.js +52 -0
  448. package/dist/esm/methods/ESPRMNeoGroup/CreateSchedule.js.map +1 -0
  449. package/dist/esm/methods/ESPRMNeoGroup/CreateSubGroup.js +37 -0
  450. package/dist/esm/methods/ESPRMNeoGroup/CreateSubGroup.js.map +1 -0
  451. package/dist/esm/methods/ESPRMNeoGroup/Delete.js +28 -0
  452. package/dist/esm/methods/ESPRMNeoGroup/Delete.js.map +1 -0
  453. package/dist/esm/methods/ESPRMNeoGroup/DeleteAllSchedules.js +32 -0
  454. package/dist/esm/methods/ESPRMNeoGroup/DeleteAllSchedules.js.map +1 -0
  455. package/dist/esm/methods/ESPRMNeoGroup/GetAutomation.js +17 -0
  456. package/dist/esm/methods/ESPRMNeoGroup/GetAutomation.js.map +1 -0
  457. package/dist/esm/methods/ESPRMNeoGroup/GetAutomations.js +26 -0
  458. package/dist/esm/methods/ESPRMNeoGroup/GetAutomations.js.map +1 -0
  459. package/dist/esm/methods/ESPRMNeoGroup/GetNode.js +20 -0
  460. package/dist/esm/methods/ESPRMNeoGroup/GetNode.js.map +1 -0
  461. package/dist/esm/methods/ESPRMNeoGroup/GetNodes.js +18 -0
  462. package/dist/esm/methods/ESPRMNeoGroup/GetNodes.js.map +1 -0
  463. package/dist/esm/methods/ESPRMNeoGroup/GetSchedules.js +40 -0
  464. package/dist/esm/methods/ESPRMNeoGroup/GetSchedules.js.map +1 -0
  465. package/dist/esm/methods/ESPRMNeoGroup/GetSharingInfo.js +31 -0
  466. package/dist/esm/methods/ESPRMNeoGroup/GetSharingInfo.js.map +1 -0
  467. package/dist/esm/methods/ESPRMNeoGroup/Leave.js +20 -0
  468. package/dist/esm/methods/ESPRMNeoGroup/Leave.js.map +1 -0
  469. package/dist/esm/methods/ESPRMNeoGroup/RemoveMember.js +27 -0
  470. package/dist/esm/methods/ESPRMNeoGroup/RemoveMember.js.map +1 -0
  471. package/dist/esm/methods/ESPRMNeoGroup/RemoveNode.js +24 -0
  472. package/dist/esm/methods/ESPRMNeoGroup/RemoveNode.js.map +1 -0
  473. package/dist/esm/methods/ESPRMNeoGroup/SetParams.js +27 -0
  474. package/dist/esm/methods/ESPRMNeoGroup/SetParams.js.map +1 -0
  475. package/dist/esm/methods/ESPRMNeoGroup/Share.js +32 -0
  476. package/dist/esm/methods/ESPRMNeoGroup/Share.js.map +1 -0
  477. package/dist/esm/methods/ESPRMNeoGroup/UpdateName.js +35 -0
  478. package/dist/esm/methods/ESPRMNeoGroup/UpdateName.js.map +1 -0
  479. package/dist/esm/methods/ESPRMNeoNode/CreateSchedule.js +45 -0
  480. package/dist/esm/methods/ESPRMNeoNode/CreateSchedule.js.map +1 -0
  481. package/dist/esm/methods/ESPRMNeoNode/CreateTrigger.js +38 -0
  482. package/dist/esm/methods/ESPRMNeoNode/CreateTrigger.js.map +1 -0
  483. package/dist/esm/methods/ESPRMNeoNode/Delete.js +29 -0
  484. package/dist/esm/methods/ESPRMNeoNode/Delete.js.map +1 -0
  485. package/dist/esm/methods/ESPRMNeoNode/GetConfig.js +11 -0
  486. package/dist/esm/methods/ESPRMNeoNode/GetConfig.js.map +1 -0
  487. package/dist/esm/methods/ESPRMNeoNode/GetCustomParamLatestTSData.js +18 -0
  488. package/dist/esm/methods/ESPRMNeoNode/GetCustomParamLatestTSData.js.map +1 -0
  489. package/dist/esm/methods/ESPRMNeoNode/GetCustomParamRawTSData.js +20 -0
  490. package/dist/esm/methods/ESPRMNeoNode/GetCustomParamRawTSData.js.map +1 -0
  491. package/dist/esm/methods/ESPRMNeoNode/GetCustomParamTSData.js +20 -0
  492. package/dist/esm/methods/ESPRMNeoNode/GetCustomParamTSData.js.map +1 -0
  493. package/dist/esm/methods/ESPRMNeoNode/GetSchedules.js +20 -0
  494. package/dist/esm/methods/ESPRMNeoNode/GetSchedules.js.map +1 -0
  495. package/dist/esm/methods/ESPRMNeoNode/GetTriggers.js +26 -0
  496. package/dist/esm/methods/ESPRMNeoNode/GetTriggers.js.map +1 -0
  497. package/dist/esm/methods/ESPRMNeoNode/RemoveAllSchedules.js +20 -0
  498. package/dist/esm/methods/ESPRMNeoNode/RemoveAllSchedules.js.map +1 -0
  499. package/dist/esm/methods/ESPRMNeoNode/RemoveAllTriggers.js +20 -0
  500. package/dist/esm/methods/ESPRMNeoNode/RemoveAllTriggers.js.map +1 -0
  501. package/dist/esm/methods/ESPRMNeoNode/RemoveSchedule.js +33 -0
  502. package/dist/esm/methods/ESPRMNeoNode/RemoveSchedule.js.map +1 -0
  503. package/dist/esm/methods/ESPRMNeoNode/RemoveTrigger.js +25 -0
  504. package/dist/esm/methods/ESPRMNeoNode/RemoveTrigger.js.map +1 -0
  505. package/dist/esm/methods/ESPRMNeoNode/SetParams.js +18 -0
  506. package/dist/esm/methods/ESPRMNeoNode/SetParams.js.map +1 -0
  507. package/dist/esm/methods/ESPRMNeoNode/SubscriptionConfig.js +23 -0
  508. package/dist/esm/methods/ESPRMNeoNode/SubscriptionConfig.js.map +1 -0
  509. package/dist/esm/methods/ESPRMNeoNode/Sync.js +28 -0
  510. package/dist/esm/methods/ESPRMNeoNode/Sync.js.map +1 -0
  511. package/dist/esm/methods/ESPRMNeoNode/UnsubscribeFromMqttUpdates.js +22 -0
  512. package/dist/esm/methods/ESPRMNeoNode/UnsubscribeFromMqttUpdates.js.map +1 -0
  513. package/dist/esm/methods/ESPRMNeoSchedule/Delete.js +17 -0
  514. package/dist/esm/methods/ESPRMNeoSchedule/Delete.js.map +1 -0
  515. package/dist/esm/methods/ESPRMNeoSchedule/Enable.js +11 -0
  516. package/dist/esm/methods/ESPRMNeoSchedule/Enable.js.map +1 -0
  517. package/dist/esm/methods/ESPRMNeoSchedule/Update.js +48 -0
  518. package/dist/esm/methods/ESPRMNeoSchedule/Update.js.map +1 -0
  519. package/dist/esm/methods/ESPRMNeoService/GetParams.js +40 -0
  520. package/dist/esm/methods/ESPRMNeoService/GetParams.js.map +1 -0
  521. package/dist/esm/methods/ESPRMNeoSharingRequest/Accept.js +35 -0
  522. package/dist/esm/methods/ESPRMNeoSharingRequest/Accept.js.map +1 -0
  523. package/dist/esm/methods/ESPRMNeoSharingRequest/Decline.js +35 -0
  524. package/dist/esm/methods/ESPRMNeoSharingRequest/Decline.js.map +1 -0
  525. package/dist/esm/methods/ESPRMNeoTrigger/Delete.js +17 -0
  526. package/dist/esm/methods/ESPRMNeoTrigger/Delete.js.map +1 -0
  527. package/dist/esm/methods/ESPRMNeoTrigger/Enable.js +11 -0
  528. package/dist/esm/methods/ESPRMNeoTrigger/Enable.js.map +1 -0
  529. package/dist/esm/methods/ESPRMNeoTrigger/Update.js +32 -0
  530. package/dist/esm/methods/ESPRMNeoTrigger/Update.js.map +1 -0
  531. package/dist/esm/methods/ESPRMNeoUser/CreateESPDevice.js +30 -0
  532. package/dist/esm/methods/ESPRMNeoUser/CreateESPDevice.js.map +1 -0
  533. package/dist/esm/methods/ESPRMNeoUser/CreateGroup.js +37 -0
  534. package/dist/esm/methods/ESPRMNeoUser/CreateGroup.js.map +1 -0
  535. package/dist/esm/methods/ESPRMNeoUser/EventSubscription.js +48 -0
  536. package/dist/esm/methods/ESPRMNeoUser/EventSubscription.js.map +1 -0
  537. package/dist/esm/methods/ESPRMNeoUser/GetGroups.js +52 -0
  538. package/dist/esm/methods/ESPRMNeoUser/GetGroups.js.map +1 -0
  539. package/dist/esm/methods/ESPRMNeoUser/GetTemporaryAWSCredentials.js +77 -0
  540. package/dist/esm/methods/ESPRMNeoUser/GetTemporaryAWSCredentials.js.map +1 -0
  541. package/dist/esm/methods/ESPRMNeoUser/GetUserInfo.js +37 -0
  542. package/dist/esm/methods/ESPRMNeoUser/GetUserInfo.js.map +1 -0
  543. package/dist/esm/methods/ESPRMNeoUser/ListIntegrations.js +35 -0
  544. package/dist/esm/methods/ESPRMNeoUser/ListIntegrations.js.map +1 -0
  545. package/dist/esm/methods/ESPRMNeoUser/ListSharingRequests.js +29 -0
  546. package/dist/esm/methods/ESPRMNeoUser/ListSharingRequests.js.map +1 -0
  547. package/dist/esm/methods/ESPRMNeoUser/Logout.js +38 -0
  548. package/dist/esm/methods/ESPRMNeoUser/Logout.js.map +1 -0
  549. package/dist/esm/methods/ESPRMNeoUser/MQTT/AssumeRole.js +36 -0
  550. package/dist/esm/methods/ESPRMNeoUser/MQTT/AssumeRole.js.map +1 -0
  551. package/dist/esm/methods/ESPRMNeoUser/MQTT/ConnectMQTT.js +65 -0
  552. package/dist/esm/methods/ESPRMNeoUser/MQTT/ConnectMQTT.js.map +1 -0
  553. package/dist/esm/methods/ESPRMNeoUser/MQTT/DisconnectMQTT.js +27 -0
  554. package/dist/esm/methods/ESPRMNeoUser/MQTT/DisconnectMQTT.js.map +1 -0
  555. package/dist/esm/methods/ESPRMNeoUser/RegisterIntegrationEndpoint.js +39 -0
  556. package/dist/esm/methods/ESPRMNeoUser/RegisterIntegrationEndpoint.js.map +1 -0
  557. package/dist/esm/methods/ESPRMNeoUser/SearchESPDevices.js +48 -0
  558. package/dist/esm/methods/ESPRMNeoUser/SearchESPDevices.js.map +1 -0
  559. package/dist/esm/methods/ESPRMNeoUser/UnregisterIntegrationEndpoint.js +42 -0
  560. package/dist/esm/methods/ESPRMNeoUser/UnregisterIntegrationEndpoint.js.map +1 -0
  561. package/dist/esm/proto/constants.js +24 -0
  562. package/dist/esm/proto/constants.js.map +1 -0
  563. package/dist/esm/proto/esp_local_ctrl.js +758 -0
  564. package/dist/esm/proto/esp_local_ctrl.js.map +1 -0
  565. package/dist/esm/proto/esp_rmaker_chal_resp.js +446 -0
  566. package/dist/esm/proto/esp_rmaker_chal_resp.js.map +1 -0
  567. package/dist/esm/proto/esp_rmaker_claim.js +356 -0
  568. package/dist/esm/proto/esp_rmaker_claim.js.map +1 -0
  569. package/dist/esm/services/ESPRMNeoAPIManager.js +204 -0
  570. package/dist/esm/services/ESPRMNeoAPIManager.js.map +1 -0
  571. package/dist/esm/services/ESPRMNeoHelpers/ChallengeResponseHelper.js +104 -0
  572. package/dist/esm/services/ESPRMNeoHelpers/ChallengeResponseHelper.js.map +1 -0
  573. package/dist/esm/services/ESPRMNeoHelpers/ChannelRegistration.js +47 -0
  574. package/dist/esm/services/ESPRMNeoHelpers/ChannelRegistration.js.map +1 -0
  575. package/dist/esm/services/ESPRMNeoHelpers/CheckTokenExpiry.js +23 -0
  576. package/dist/esm/services/ESPRMNeoHelpers/CheckTokenExpiry.js.map +1 -0
  577. package/dist/esm/services/ESPRMNeoHelpers/ClaimingHelper.js +219 -0
  578. package/dist/esm/services/ESPRMNeoHelpers/ClaimingHelper.js.map +1 -0
  579. package/dist/esm/services/ESPRMNeoHelpers/DecodeToken.js +50 -0
  580. package/dist/esm/services/ESPRMNeoHelpers/DecodeToken.js.map +1 -0
  581. package/dist/esm/services/ESPRMNeoHelpers/DelegatedTransportHandler.js +130 -0
  582. package/dist/esm/services/ESPRMNeoHelpers/DelegatedTransportHandler.js.map +1 -0
  583. package/dist/esm/services/ESPRMNeoHelpers/FetchTSData.js +133 -0
  584. package/dist/esm/services/ESPRMNeoHelpers/FetchTSData.js.map +1 -0
  585. package/dist/esm/services/ESPRMNeoHelpers/GetCurrentTimestamp.js +16 -0
  586. package/dist/esm/services/ESPRMNeoHelpers/GetCurrentTimestamp.js.map +1 -0
  587. package/dist/esm/services/ESPRMNeoHelpers/NodeMappingHelper.js +43 -0
  588. package/dist/esm/services/ESPRMNeoHelpers/NodeMappingHelper.js.map +1 -0
  589. package/dist/esm/services/ESPRMNeoHelpers/TransformEncoding.js +63 -0
  590. package/dist/esm/services/ESPRMNeoHelpers/TransformEncoding.js.map +1 -0
  591. package/dist/esm/services/ESPRMNeoHelpers/transformShadowToNodeUpdate.js +52 -0
  592. package/dist/esm/services/ESPRMNeoHelpers/transformShadowToNodeUpdate.js.map +1 -0
  593. package/dist/esm/services/ESPRMNeoMqtt/ESPRMNeoMqtt.js +118 -0
  594. package/dist/esm/services/ESPRMNeoMqtt/ESPRMNeoMqtt.js.map +1 -0
  595. package/dist/esm/services/ESPRMNeoStorage/DefaultStorageAdapter.js +50 -0
  596. package/dist/esm/services/ESPRMNeoStorage/DefaultStorageAdapter.js.map +1 -0
  597. package/dist/esm/services/ESPRMNeoStorage/ESPRMNeoStorage.js +139 -0
  598. package/dist/esm/services/ESPRMNeoStorage/ESPRMNeoStorage.js.map +1 -0
  599. package/dist/esm/services/ESPRMNeoSubscriptionManager.js +355 -0
  600. package/dist/esm/services/ESPRMNeoSubscriptionManager.js.map +1 -0
  601. package/dist/esm/services/ESPSigV4APIManager.js +324 -0
  602. package/dist/esm/services/ESPSigV4APIManager.js.map +1 -0
  603. package/dist/esm/services/ESPTransport/ESPDiscovery/ESPDiscoveryManager.js +60 -0
  604. package/dist/esm/services/ESPTransport/ESPDiscovery/ESPDiscoveryManager.js.map +1 -0
  605. package/dist/esm/services/ESPTransport/ESPLocalControlTransport.js +155 -0
  606. package/dist/esm/services/ESPTransport/ESPLocalControlTransport.js.map +1 -0
  607. package/dist/esm/services/ESPTransport/ESPMqttTransport.js +24 -0
  608. package/dist/esm/services/ESPTransport/ESPMqttTransport.js.map +1 -0
  609. package/dist/esm/services/ESPTransport/ESPTransportManager.js +40 -0
  610. package/dist/esm/services/ESPTransport/ESPTransportManager.js.map +1 -0
  611. package/dist/esm/services/MQTTSubscriptionChannel.js +272 -0
  612. package/dist/esm/services/MQTTSubscriptionChannel.js.map +1 -0
  613. package/dist/esm/services/NodeMQTTOrchestrator.js +556 -0
  614. package/dist/esm/services/NodeMQTTOrchestrator.js.map +1 -0
  615. package/dist/esm/services/NodeMQTTOrchestratorHelpers.js +77 -0
  616. package/dist/esm/services/NodeMQTTOrchestratorHelpers.js.map +1 -0
  617. package/dist/esm/services/NodeUpdatesBus.js +50 -0
  618. package/dist/esm/services/NodeUpdatesBus.js.map +1 -0
  619. package/dist/esm/types/discovery.js +29 -0
  620. package/dist/esm/types/discovery.js.map +1 -0
  621. package/dist/esm/types/provision.js +64 -0
  622. package/dist/esm/types/provision.js.map +1 -0
  623. package/dist/esm/types/subscription.js +18 -0
  624. package/dist/esm/types/subscription.js.map +1 -0
  625. package/dist/esm/types/transport.js +30 -0
  626. package/dist/esm/types/transport.js.map +1 -0
  627. package/dist/esm/utils/authUtils.js +25 -0
  628. package/dist/esm/utils/authUtils.js.map +1 -0
  629. package/dist/esm/utils/awsShadowTopics.js +143 -0
  630. package/dist/esm/utils/awsShadowTopics.js.map +1 -0
  631. package/dist/esm/utils/awsSigv4Utils.js +138 -0
  632. package/dist/esm/utils/awsSigv4Utils.js.map +1 -0
  633. package/dist/esm/utils/awsUtils.js +163 -0
  634. package/dist/esm/utils/awsUtils.js.map +1 -0
  635. package/dist/esm/utils/baseUtils.js +280 -0
  636. package/dist/esm/utils/baseUtils.js.map +1 -0
  637. package/dist/esm/utils/coerce.js +42 -0
  638. package/dist/esm/utils/coerce.js.map +1 -0
  639. package/dist/esm/utils/common.js +37 -0
  640. package/dist/esm/utils/common.js.map +1 -0
  641. package/dist/esm/utils/constants.js +844 -0
  642. package/dist/esm/utils/constants.js.map +1 -0
  643. package/dist/esm/utils/error/ESPAPICallValidationError.js +31 -0
  644. package/dist/esm/utils/error/ESPAPICallValidationError.js.map +1 -0
  645. package/dist/esm/utils/error/ESPAuthError.js +24 -0
  646. package/dist/esm/utils/error/ESPAuthError.js.map +1 -0
  647. package/dist/esm/utils/error/ESPBaseError.js +21 -0
  648. package/dist/esm/utils/error/ESPBaseError.js.map +1 -0
  649. package/dist/esm/utils/error/ESPClaimError.js +41 -0
  650. package/dist/esm/utils/error/ESPClaimError.js.map +1 -0
  651. package/dist/esm/utils/error/ESPConfigError.js +31 -0
  652. package/dist/esm/utils/error/ESPConfigError.js.map +1 -0
  653. package/dist/esm/utils/error/ESPProvError.js +31 -0
  654. package/dist/esm/utils/error/ESPProvError.js.map +1 -0
  655. package/dist/esm/utils/error/ESPStorageAdapterError.js +31 -0
  656. package/dist/esm/utils/error/ESPStorageAdapterError.js.map +1 -0
  657. package/dist/esm/utils/error/ESPTokenError.js +32 -0
  658. package/dist/esm/utils/error/ESPTokenError.js.map +1 -0
  659. package/dist/esm/utils/error/ESPValidationError.js +31 -0
  660. package/dist/esm/utils/error/ESPValidationError.js.map +1 -0
  661. package/dist/esm/utils/error/errorMessages.js +270 -0
  662. package/dist/esm/utils/error/errorMessages.js.map +1 -0
  663. package/dist/esm/utils/eventEmitter.js +52 -0
  664. package/dist/esm/utils/eventEmitter.js.map +1 -0
  665. package/dist/esm/utils/eventSubscriptionUtils.js +42 -0
  666. package/dist/esm/utils/eventSubscriptionUtils.js.map +1 -0
  667. package/dist/esm/utils/groupUtils.js +30 -0
  668. package/dist/esm/utils/groupUtils.js.map +1 -0
  669. package/dist/esm/utils/logger.js +45 -0
  670. package/dist/esm/utils/logger.js.map +1 -0
  671. package/dist/esm/utils/mapLimit.js +41 -0
  672. package/dist/esm/utils/mapLimit.js.map +1 -0
  673. package/dist/esm/utils/mqtt.js +27 -0
  674. package/dist/esm/utils/mqtt.js.map +1 -0
  675. package/dist/esm/utils/nodeNcfgVersionHandler.js +123 -0
  676. package/dist/esm/utils/nodeNcfgVersionHandler.js.map +1 -0
  677. package/dist/esm/utils/nodeTransform.js +109 -0
  678. package/dist/esm/utils/nodeTransform.js.map +1 -0
  679. package/dist/esm/utils/nodeUtils.js +104 -0
  680. package/dist/esm/utils/nodeUtils.js.map +1 -0
  681. package/dist/esm/utils/normalizeApiResponse.js +28 -0
  682. package/dist/esm/utils/normalizeApiResponse.js.map +1 -0
  683. package/dist/esm/utils/paramValues.js +54 -0
  684. package/dist/esm/utils/paramValues.js.map +1 -0
  685. package/dist/esm/utils/scheduleUtils.js +38 -0
  686. package/dist/esm/utils/scheduleUtils.js.map +1 -0
  687. package/dist/esm/utils/shadowUtils.js +67 -0
  688. package/dist/esm/utils/shadowUtils.js.map +1 -0
  689. package/dist/esm/utils/triggerUtils.js +55 -0
  690. package/dist/esm/utils/triggerUtils.js.map +1 -0
  691. package/dist/esm/utils/tsDataUtils.js +156 -0
  692. package/dist/esm/utils/tsDataUtils.js.map +1 -0
  693. package/dist/esm/utils/userUtils.js +54 -0
  694. package/dist/esm/utils/userUtils.js.map +1 -0
  695. package/dist/esm/utils/validator/ConfigValidator.js +214 -0
  696. package/dist/esm/utils/validator/ConfigValidator.js.map +1 -0
  697. package/dist/esm/utils/validator/ScheduleValidator.js +56 -0
  698. package/dist/esm/utils/validator/ScheduleValidator.js.map +1 -0
  699. package/dist/esm/utils/validator/validators.js +38 -0
  700. package/dist/esm/utils/validator/validators.js.map +1 -0
  701. package/dist/esm/utils/waitForNodeOnline.js +182 -0
  702. package/dist/esm/utils/waitForNodeOnline.js.map +1 -0
  703. package/dist/types/ESPDevice.d.ts +13 -0
  704. package/dist/types/ESPRMNeoAuth.d.ts +26 -0
  705. package/dist/types/ESPRMNeoAutomation.d.ts +17 -0
  706. package/dist/types/ESPRMNeoBase.d.ts +169 -0
  707. package/dist/types/ESPRMNeoDevice.d.ts +31 -0
  708. package/dist/types/ESPRMNeoDeviceParam.d.ts +25 -0
  709. package/dist/types/ESPRMNeoGroup.d.ts +26 -0
  710. package/dist/types/ESPRMNeoNode.d.ts +142 -0
  711. package/dist/types/ESPRMNeoSchedule.d.ts +36 -0
  712. package/dist/types/ESPRMNeoService.d.ts +24 -0
  713. package/dist/types/ESPRMNeoServiceParam.d.ts +23 -0
  714. package/dist/types/ESPRMNeoSharingRequest.d.ts +16 -0
  715. package/dist/types/ESPRMNeoTrigger.d.ts +26 -0
  716. package/dist/types/ESPRMNeoUser.d.ts +47 -0
  717. package/dist/types/index.d.ts +23 -0
  718. package/dist/types/methods/ESPDevice/Connect.d.ts +15 -0
  719. package/dist/types/methods/ESPDevice/Disconnect.d.ts +15 -0
  720. package/dist/types/methods/ESPDevice/GetDeviceCapabilities.d.ts +15 -0
  721. package/dist/types/methods/ESPDevice/GetDeviceVersion.d.ts +17 -0
  722. package/dist/types/methods/ESPDevice/InitializeSession.d.ts +15 -0
  723. package/dist/types/methods/ESPDevice/InitiateUserNodeMapping.d.ts +14 -0
  724. package/dist/types/methods/ESPDevice/Provision.d.ts +28 -0
  725. package/dist/types/methods/ESPDevice/ScanWifiList.d.ts +15 -0
  726. package/dist/types/methods/ESPDevice/SendData.d.ts +17 -0
  727. package/dist/types/methods/ESPDevice/SetNetworkCredentials.d.ts +15 -0
  728. package/dist/types/methods/ESPDevice/SetProofOfPossession.d.ts +16 -0
  729. package/dist/types/methods/ESPDevice/StartAssistedClaiming.d.ts +26 -0
  730. package/dist/types/methods/ESPDevice/VerifyUserNodeMapping.d.ts +16 -0
  731. package/dist/types/methods/ESPDevice/index.d.ts +13 -0
  732. package/dist/types/methods/ESPRMNeoAuth/ChangePassword.d.ts +19 -0
  733. package/dist/types/methods/ESPRMNeoAuth/ConfirmSignUp.d.ts +19 -0
  734. package/dist/types/methods/ESPRMNeoAuth/ForgotPassword.d.ts +19 -0
  735. package/dist/types/methods/ESPRMNeoAuth/GetLoggedInUser.d.ts +19 -0
  736. package/dist/types/methods/ESPRMNeoAuth/Login.d.ts +19 -0
  737. package/dist/types/methods/ESPRMNeoAuth/SendSignUpCode.d.ts +20 -0
  738. package/dist/types/methods/ESPRMNeoAuth/SetNewPassword.d.ts +20 -0
  739. package/dist/types/methods/ESPRMNeoAuth/index.d.ts +7 -0
  740. package/dist/types/methods/ESPRMNeoAutomation/AddAction.d.ts +18 -0
  741. package/dist/types/methods/ESPRMNeoAutomation/AddCondition.d.ts +17 -0
  742. package/dist/types/methods/ESPRMNeoAutomation/Delete.d.ts +18 -0
  743. package/dist/types/methods/ESPRMNeoAutomation/RemoveAction.d.ts +17 -0
  744. package/dist/types/methods/ESPRMNeoAutomation/RemoveCondition.d.ts +17 -0
  745. package/dist/types/methods/ESPRMNeoAutomation/Update.d.ts +19 -0
  746. package/dist/types/methods/ESPRMNeoAutomation/index.d.ts +6 -0
  747. package/dist/types/methods/ESPRMNeoDevice/GetParams.d.ts +41 -0
  748. package/dist/types/methods/ESPRMNeoDevice/index.d.ts +1 -0
  749. package/dist/types/methods/ESPRMNeoDeviceParam/GetLatestTSData.d.ts +17 -0
  750. package/dist/types/methods/ESPRMNeoDeviceParam/GetRawTSData.d.ts +18 -0
  751. package/dist/types/methods/ESPRMNeoDeviceParam/GetTSData.d.ts +23 -0
  752. package/dist/types/methods/ESPRMNeoDeviceParam/index.d.ts +3 -0
  753. package/dist/types/methods/ESPRMNeoGroup/AddNode.d.ts +16 -0
  754. package/dist/types/methods/ESPRMNeoGroup/CreateAutomation.d.ts +20 -0
  755. package/dist/types/methods/ESPRMNeoGroup/CreateSchedule.d.ts +23 -0
  756. package/dist/types/methods/ESPRMNeoGroup/CreateSubGroup.d.ts +18 -0
  757. package/dist/types/methods/ESPRMNeoGroup/Delete.d.ts +23 -0
  758. package/dist/types/methods/ESPRMNeoGroup/DeleteAllSchedules.d.ts +16 -0
  759. package/dist/types/methods/ESPRMNeoGroup/GetAutomation.d.ts +18 -0
  760. package/dist/types/methods/ESPRMNeoGroup/GetAutomations.d.ts +17 -0
  761. package/dist/types/methods/ESPRMNeoGroup/GetNode.d.ts +45 -0
  762. package/dist/types/methods/ESPRMNeoGroup/GetNodes.d.ts +28 -0
  763. package/dist/types/methods/ESPRMNeoGroup/GetSchedules.d.ts +16 -0
  764. package/dist/types/methods/ESPRMNeoGroup/GetSharingInfo.d.ts +23 -0
  765. package/dist/types/methods/ESPRMNeoGroup/Leave.d.ts +24 -0
  766. package/dist/types/methods/ESPRMNeoGroup/RemoveMember.d.ts +21 -0
  767. package/dist/types/methods/ESPRMNeoGroup/RemoveNode.d.ts +15 -0
  768. package/dist/types/methods/ESPRMNeoGroup/SetParams.d.ts +19 -0
  769. package/dist/types/methods/ESPRMNeoGroup/Share.d.ts +25 -0
  770. package/dist/types/methods/ESPRMNeoGroup/UpdateName.d.ts +20 -0
  771. package/dist/types/methods/ESPRMNeoGroup/index.d.ts +18 -0
  772. package/dist/types/methods/ESPRMNeoNode/CreateSchedule.d.ts +31 -0
  773. package/dist/types/methods/ESPRMNeoNode/CreateTrigger.d.ts +31 -0
  774. package/dist/types/methods/ESPRMNeoNode/Delete.d.ts +16 -0
  775. package/dist/types/methods/ESPRMNeoNode/GetConfig.d.ts +16 -0
  776. package/dist/types/methods/ESPRMNeoNode/GetCustomParamLatestTSData.d.ts +19 -0
  777. package/dist/types/methods/ESPRMNeoNode/GetCustomParamRawTSData.d.ts +20 -0
  778. package/dist/types/methods/ESPRMNeoNode/GetCustomParamTSData.d.ts +25 -0
  779. package/dist/types/methods/ESPRMNeoNode/GetSchedules.d.ts +17 -0
  780. package/dist/types/methods/ESPRMNeoNode/GetTriggers.d.ts +17 -0
  781. package/dist/types/methods/ESPRMNeoNode/RemoveAllSchedules.d.ts +17 -0
  782. package/dist/types/methods/ESPRMNeoNode/RemoveAllTriggers.d.ts +17 -0
  783. package/dist/types/methods/ESPRMNeoNode/RemoveSchedule.d.ts +20 -0
  784. package/dist/types/methods/ESPRMNeoNode/RemoveTrigger.d.ts +20 -0
  785. package/dist/types/methods/ESPRMNeoNode/SetParams.d.ts +23 -0
  786. package/dist/types/methods/ESPRMNeoNode/SubscriptionConfig.d.ts +33 -0
  787. package/dist/types/methods/ESPRMNeoNode/Sync.d.ts +19 -0
  788. package/dist/types/methods/ESPRMNeoNode/UnsubscribeFromMqttUpdates.d.ts +23 -0
  789. package/dist/types/methods/ESPRMNeoNode/index.d.ts +17 -0
  790. package/dist/types/methods/ESPRMNeoSchedule/Delete.d.ts +16 -0
  791. package/dist/types/methods/ESPRMNeoSchedule/Enable.d.ts +17 -0
  792. package/dist/types/methods/ESPRMNeoSchedule/Update.d.ts +18 -0
  793. package/dist/types/methods/ESPRMNeoSchedule/index.d.ts +3 -0
  794. package/dist/types/methods/ESPRMNeoService/GetParams.d.ts +17 -0
  795. package/dist/types/methods/ESPRMNeoService/index.d.ts +1 -0
  796. package/dist/types/methods/ESPRMNeoSharingRequest/Accept.d.ts +17 -0
  797. package/dist/types/methods/ESPRMNeoSharingRequest/Decline.d.ts +17 -0
  798. package/dist/types/methods/ESPRMNeoSharingRequest/index.d.ts +2 -0
  799. package/dist/types/methods/ESPRMNeoTrigger/Delete.d.ts +15 -0
  800. package/dist/types/methods/ESPRMNeoTrigger/Enable.d.ts +17 -0
  801. package/dist/types/methods/ESPRMNeoTrigger/Update.d.ts +22 -0
  802. package/dist/types/methods/ESPRMNeoTrigger/index.d.ts +3 -0
  803. package/dist/types/methods/ESPRMNeoUser/CreateESPDevice.d.ts +20 -0
  804. package/dist/types/methods/ESPRMNeoUser/CreateGroup.d.ts +17 -0
  805. package/dist/types/methods/ESPRMNeoUser/EventSubscription.d.ts +29 -0
  806. package/dist/types/methods/ESPRMNeoUser/GetGroups.d.ts +16 -0
  807. package/dist/types/methods/ESPRMNeoUser/GetTemporaryAWSCredentials.d.ts +42 -0
  808. package/dist/types/methods/ESPRMNeoUser/GetUserInfo.d.ts +14 -0
  809. package/dist/types/methods/ESPRMNeoUser/ListIntegrations.d.ts +20 -0
  810. package/dist/types/methods/ESPRMNeoUser/ListSharingRequests.d.ts +16 -0
  811. package/dist/types/methods/ESPRMNeoUser/Logout.d.ts +16 -0
  812. package/dist/types/methods/ESPRMNeoUser/MQTT/AssumeRole.d.ts +33 -0
  813. package/dist/types/methods/ESPRMNeoUser/MQTT/ConnectMQTT.d.ts +18 -0
  814. package/dist/types/methods/ESPRMNeoUser/MQTT/DisconnectMQTT.d.ts +15 -0
  815. package/dist/types/methods/ESPRMNeoUser/MQTT/index.d.ts +4 -0
  816. package/dist/types/methods/ESPRMNeoUser/RegisterIntegrationEndpoint.d.ts +22 -0
  817. package/dist/types/methods/ESPRMNeoUser/SearchESPDevices.d.ts +16 -0
  818. package/dist/types/methods/ESPRMNeoUser/UnregisterIntegrationEndpoint.d.ts +19 -0
  819. package/dist/types/methods/ESPRMNeoUser/index.d.ts +13 -0
  820. package/dist/types/methods/export.d.ts +12 -0
  821. package/dist/types/proto/constants.d.ts +15 -0
  822. package/dist/types/proto/esp_local_ctrl.d.ts +283 -0
  823. package/dist/types/proto/esp_rmaker_chal_resp.d.ts +157 -0
  824. package/dist/types/proto/esp_rmaker_claim.d.ts +136 -0
  825. package/dist/types/proto/esp_rmaker_user_mapping.d.ts +101 -0
  826. package/dist/types/services/ESPRMNeoAPIManager.d.ts +84 -0
  827. package/dist/types/services/ESPRMNeoHelpers/BinaryWriter.d.ts +5 -0
  828. package/dist/types/services/ESPRMNeoHelpers/ChallengeResponseHelper.d.ts +33 -0
  829. package/dist/types/services/ESPRMNeoHelpers/ChannelRegistration.d.ts +14 -0
  830. package/dist/types/services/ESPRMNeoHelpers/CheckTokenExpiry.d.ts +8 -0
  831. package/dist/types/services/ESPRMNeoHelpers/ClaimingHelper.d.ts +141 -0
  832. package/dist/types/services/ESPRMNeoHelpers/DecodeToken.d.ts +12 -0
  833. package/dist/types/services/ESPRMNeoHelpers/DelegatedTransportHandler.d.ts +25 -0
  834. package/dist/types/services/ESPRMNeoHelpers/FetchTSData.d.ts +37 -0
  835. package/dist/types/services/ESPRMNeoHelpers/GenerateUUID.d.ts +1 -0
  836. package/dist/types/services/ESPRMNeoHelpers/GetCurrentTimestamp.d.ts +7 -0
  837. package/dist/types/services/ESPRMNeoHelpers/NodeMappingHelper.d.ts +26 -0
  838. package/dist/types/services/ESPRMNeoHelpers/TransformEncoding.d.ts +13 -0
  839. package/dist/types/services/ESPRMNeoHelpers/transformShadowToNodeUpdate.d.ts +25 -0
  840. package/dist/types/services/ESPRMNeoMqtt/ESPMQTTConfig.d.ts +15 -0
  841. package/dist/types/services/ESPRMNeoMqtt/ESPRMNeoMqtt.d.ts +83 -0
  842. package/dist/types/services/ESPRMNeoStorage/DefaultStorageAdapter.d.ts +17 -0
  843. package/dist/types/services/ESPRMNeoStorage/ESPRMNeoStorage.d.ts +65 -0
  844. package/dist/types/services/ESPRMNeoSubscriptionManager.d.ts +211 -0
  845. package/dist/types/services/ESPSigV4APIManager.d.ts +99 -0
  846. package/dist/types/services/ESPTransport/ESPDiscovery/ESPDiscoveryManager.d.ts +32 -0
  847. package/dist/types/services/ESPTransport/ESPLocalControlTransport.d.ts +38 -0
  848. package/dist/types/services/ESPTransport/ESPMqttTransport.d.ts +13 -0
  849. package/dist/types/services/ESPTransport/ESPTransportManager.d.ts +15 -0
  850. package/dist/types/services/MQTTSubscriptionChannel.d.ts +140 -0
  851. package/dist/types/services/NodeMQTTOrchestrator.d.ts +213 -0
  852. package/dist/types/services/NodeMQTTOrchestratorHelpers.d.ts +45 -0
  853. package/dist/types/services/NodeUpdatesBus.d.ts +21 -0
  854. package/dist/types/services/export.d.ts +41 -0
  855. package/dist/types/services/interfaces/MQTTTransport.d.ts +62 -0
  856. package/dist/types/types/auth.d.ts +89 -0
  857. package/dist/types/types/automation.d.ts +63 -0
  858. package/dist/types/types/common.d.ts +5 -0
  859. package/dist/types/types/discovery.d.ts +71 -0
  860. package/dist/types/types/export.d.ts +17 -0
  861. package/dist/types/types/group.d.ts +10 -0
  862. package/dist/types/types/input.d.ts +81 -0
  863. package/dist/types/types/localControl.d.ts +17 -0
  864. package/dist/types/types/mainTypes.d.ts +5 -0
  865. package/dist/types/types/node.d.ts +202 -0
  866. package/dist/types/types/output.d.ts +195 -0
  867. package/dist/types/types/provision.d.ts +120 -0
  868. package/dist/types/types/schedule.d.ts +45 -0
  869. package/dist/types/types/storage.d.ts +31 -0
  870. package/dist/types/types/subscription.d.ts +149 -0
  871. package/dist/types/types/transport.d.ts +65 -0
  872. package/dist/types/types/trigger.d.ts +24 -0
  873. package/dist/types/types/tsData.d.ts +222 -0
  874. package/dist/types/utils/authUtils.d.ts +14 -0
  875. package/dist/types/utils/awsShadowTopics.d.ts +78 -0
  876. package/dist/types/utils/awsSigv4Utils.d.ts +53 -0
  877. package/dist/types/utils/awsUtils.d.ts +48 -0
  878. package/dist/types/utils/baseUtils.d.ts +136 -0
  879. package/dist/types/utils/coerce.d.ts +19 -0
  880. package/dist/types/utils/common.d.ts +15 -0
  881. package/dist/types/utils/constants.d.ts +825 -0
  882. package/dist/types/utils/error/ESPAPICallValidationError.d.ts +19 -0
  883. package/dist/types/utils/error/ESPAuthError.d.ts +11 -0
  884. package/dist/types/utils/error/ESPBaseError.d.ts +8 -0
  885. package/dist/types/utils/error/ESPClaimError.d.ts +25 -0
  886. package/dist/types/utils/error/ESPConfigError.d.ts +19 -0
  887. package/dist/types/utils/error/ESPProvError.d.ts +19 -0
  888. package/dist/types/utils/error/ESPStorageAdapterError.d.ts +19 -0
  889. package/dist/types/utils/error/ESPTokenError.d.ts +20 -0
  890. package/dist/types/utils/error/ESPValidationError.d.ts +19 -0
  891. package/dist/types/utils/error/Error.d.ts +8 -0
  892. package/dist/types/utils/error/errorMessages.d.ts +267 -0
  893. package/dist/types/utils/eventEmitter.d.ts +11 -0
  894. package/dist/types/utils/eventSubscriptionUtils.d.ts +17 -0
  895. package/dist/types/utils/export.d.ts +22 -0
  896. package/dist/types/utils/groupUtils.d.ts +20 -0
  897. package/dist/types/utils/logger.d.ts +16 -0
  898. package/dist/types/utils/mapLimit.d.ts +10 -0
  899. package/dist/types/utils/mqtt.d.ts +9 -0
  900. package/dist/types/utils/nodeNcfgVersionHandler.d.ts +36 -0
  901. package/dist/types/utils/nodeTransform.d.ts +66 -0
  902. package/dist/types/utils/nodeUtils.d.ts +36 -0
  903. package/dist/types/utils/normalizeApiResponse.d.ts +6 -0
  904. package/dist/types/utils/paramValues.d.ts +30 -0
  905. package/dist/types/utils/scheduleUtils.d.ts +14 -0
  906. package/dist/types/utils/shadowUtils.d.ts +29 -0
  907. package/dist/types/utils/triggerUtils.d.ts +32 -0
  908. package/dist/types/utils/tsDataUtils.d.ts +70 -0
  909. package/dist/types/utils/userUtils.d.ts +11 -0
  910. package/dist/types/utils/validator/ConfigValidator.d.ts +99 -0
  911. package/dist/types/utils/validator/ScheduleValidator.d.ts +23 -0
  912. package/dist/types/utils/validator/validators.d.ts +18 -0
  913. package/dist/types/utils/waitForNodeOnline.d.ts +48 -0
  914. package/package.json +116 -0
@@ -0,0 +1,556 @@
1
+ import { extractNodeIdFromTopic, parseShadowMessage, getReportedParamsFromShadowLiveMessage, buildShadowBase, getReportedParamsFromShadowDocument, getStateFromPayload, buildRainMakerUserParamsTopic, buildShadowUpdatePayload, buildShadowGroupWildcardTopics, buildGroupControlParamsTopic } from '../utils/awsShadowTopics.js';
2
+ import { clearAllPendingRequests, cleanupSubscriptionIfIdle, notifyListenersSafely } from './NodeMQTTOrchestratorHelpers.js';
3
+ import { Logger } from '../utils/logger.js';
4
+
5
+ /*
6
+ * SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
7
+ *
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ const logger = new Logger("NodeMQTTOrchestrator");
11
+ /** Default timeout (ms) for request-response operations */
12
+ const DEFAULT_REQUEST_TIMEOUT_MS = 5000;
13
+ /**
14
+ * NodeMQTTOrchestrator - Central MQTT orchestration layer for AWS IoT Device Shadow.
15
+ *
16
+ * Design principles:
17
+ * - Node-agnostic: does not depend on the Node class.
18
+ * - Single connection: one MQTT client, one message router.
19
+ * - Deduplicated subscriptions: 30 nodes → maybe 3 shadows → only 3 MQTT subscriptions.
20
+ * - Nodes = dumb consumers, Orchestrator = brain.
21
+ */
22
+ class NodeMQTTOrchestrator {
23
+ // ─── Fields ─────────────────────────────────────────────────────────
24
+ static _instance = null;
25
+ /**
26
+ * Increments every time the orchestrator is (re)initialized — e.g. on a
27
+ * logout→login cycle, where {@link clear} wipes all subscription state and a
28
+ * fresh {@link initialize} follows. Subscribers (the MQTT channel) compare
29
+ * this to detect that their cached listener/topic state is stale and must
30
+ * be re-attached to the new orchestrator.
31
+ */
32
+ static _generation = 0;
33
+ transport = null;
34
+ initialized = false;
35
+ /** nodeId → NodeRegistration */
36
+ nodeMap = new Map();
37
+ /** shadowName → subscription state */
38
+ shadowSubs = new Map();
39
+ /** responseTopic → pending request (for getShadow, getParams) */
40
+ pendingRequests = new Map();
41
+ /**
42
+ * Per-shadow serial op queue. Subscribe / unsubscribe for the same shadow are
43
+ * chained through this so they never interleave across `await` — otherwise
44
+ * two concurrent subscribes for the same shadow could both call
45
+ * `transport.subscribe(...)` and produce duplicate delivery of every message.
46
+ */
47
+ shadowOps = new Map();
48
+ constructor() { }
49
+ // ═════════════════════════════════════════════════════════════════════
50
+ // Lifecycle
51
+ // ═════════════════════════════════════════════════════════════════════
52
+ /**
53
+ * Returns the singleton instance.
54
+ *
55
+ * @throws {Error} If orchestrator is not initialized.
56
+ */
57
+ static getInstance() {
58
+ const instance = NodeMQTTOrchestrator._instance;
59
+ if (!instance || !instance.initialized) {
60
+ throw new Error("NodeMQTTOrchestrator not initialized. Call initialize(transport) first.");
61
+ }
62
+ return instance;
63
+ }
64
+ /**
65
+ * Initializes the orchestrator with an MQTT transport. Must be called before
66
+ * any other method.
67
+ *
68
+ * @param transport - MQTT transport for publish/subscribe.
69
+ * @throws {Error} If already initialized. Call {@link clear} first if you
70
+ * truly need to re-init — a silent swap would leave stale in-memory
71
+ * subscriptions pointing at topics that were never subscribed on the new
72
+ * transport.
73
+ */
74
+ static initialize(transport) {
75
+ if (NodeMQTTOrchestrator._instance) {
76
+ throw new Error("NodeMQTTOrchestrator already initialized. Call clear() first if you truly need to re-init.");
77
+ }
78
+ NodeMQTTOrchestrator._generation++;
79
+ const instance = new NodeMQTTOrchestrator();
80
+ instance.transport = transport;
81
+ instance.initialized = true;
82
+ NodeMQTTOrchestrator._instance = instance;
83
+ }
84
+ /**
85
+ * Returns the current initialization generation. Increments on each
86
+ * {@link initialize}. Used by subscription channels to detect a
87
+ * logout→login reset and re-attach stale listeners.
88
+ */
89
+ static getGeneration() {
90
+ return NodeMQTTOrchestrator._generation;
91
+ }
92
+ /**
93
+ * Clears the singleton and resets it for re-initialization.
94
+ * Rejects all pending requests, unsubscribes shadow wildcard topics and
95
+ * request-response topics, then drops transport and in-memory state.
96
+ */
97
+ static clear() {
98
+ const instance = NodeMQTTOrchestrator._instance;
99
+ if (instance) {
100
+ clearAllPendingRequests(instance.pendingRequests, instance.transport, new Error("Orchestrator cleared"));
101
+ for (const subscription of instance.shadowSubs.values()) {
102
+ subscription.listeners.clear();
103
+ cleanupSubscriptionIfIdle(subscription, instance.transport);
104
+ }
105
+ instance.transport = null;
106
+ instance.initialized = false;
107
+ instance.nodeMap.clear();
108
+ instance.shadowSubs.clear();
109
+ instance.shadowOps.clear();
110
+ }
111
+ NodeMQTTOrchestrator._instance = null;
112
+ }
113
+ /**
114
+ * Soft-resets session-scoped state without dropping the singleton. Called
115
+ * from {@link ESPRMNeoUser.logout} so the orchestrator is ready for the
116
+ * next login without a public re-initialize step. Rejects pending requests,
117
+ * clears shadow listeners, drops node registrations, and bumps
118
+ * {@link _generation} so subscription channels detect the reset and
119
+ * re-attach on next login. Keeps `transport`, `initialized`, and
120
+ * `_instance` intact so `getInstance()` continues to work.
121
+ */
122
+ static resetSession() {
123
+ const instance = NodeMQTTOrchestrator._instance;
124
+ if (!instance)
125
+ return;
126
+ clearAllPendingRequests(instance.pendingRequests, instance.transport, new Error("Orchestrator session reset"));
127
+ for (const subscription of instance.shadowSubs.values()) {
128
+ subscription.listeners.clear();
129
+ cleanupSubscriptionIfIdle(subscription, instance.transport);
130
+ }
131
+ instance.nodeMap.clear();
132
+ instance.shadowSubs.clear();
133
+ instance.shadowOps.clear();
134
+ NodeMQTTOrchestrator._generation++;
135
+ }
136
+ // ═════════════════════════════════════════════════════════════════════
137
+ // Node registration
138
+ // ═════════════════════════════════════════════════════════════════════
139
+ /**
140
+ * Registers a node with the orchestrator.
141
+ * Must be called before subscribeToNode, getParams, getShadow, etc.
142
+ * On shadow rename: clears the old binding; ignores shorter/incomplete names.
143
+ * Shrink membership via {@link unregisterNode} first.
144
+ *
145
+ * @param nodeId - The device/node identifier.
146
+ * @param shadowName - The named shadow (e.g. `params-groupId-subgroupId`).
147
+ */
148
+ static registerNode(nodeId, shadowName) {
149
+ const instance = NodeMQTTOrchestrator.getInstance();
150
+ const existing = instance.nodeMap.get(nodeId);
151
+ if (existing && existing.shadowName !== shadowName) {
152
+ if (shadowName.split("-").length < existing.shadowName.split("-").length) {
153
+ return;
154
+ }
155
+ NodeMQTTOrchestrator.unregisterNode(nodeId);
156
+ }
157
+ instance.nodeMap.set(nodeId, { shadowName });
158
+ if (!instance.shadowSubs.has(shadowName)) {
159
+ const config = {
160
+ topics: buildShadowGroupWildcardTopics(shadowName),
161
+ listeners: new Map(),
162
+ subscribed: false,
163
+ };
164
+ instance.shadowSubs.set(shadowName, config);
165
+ }
166
+ }
167
+ /**
168
+ * Unregisters a node. Removes from nodeMap and cleans up listeners.
169
+ * Unsubscribes from shadow topic if no other nodes use it.
170
+ *
171
+ * @param nodeId - The device/node identifier.
172
+ */
173
+ static unregisterNode(nodeId) {
174
+ const instance = NodeMQTTOrchestrator.getInstance();
175
+ const registration = instance.nodeMap.get(nodeId);
176
+ if (!registration)
177
+ return;
178
+ instance.nodeMap.delete(nodeId);
179
+ const subscription = instance.shadowSubs.get(registration.shadowName);
180
+ if (subscription) {
181
+ subscription.listeners.delete(nodeId);
182
+ cleanupSubscriptionIfIdle(subscription, instance.transport);
183
+ }
184
+ }
185
+ /**
186
+ * Checks if a node is registered. Returns `false` if the orchestrator has
187
+ * not been initialized at all (safe read-only check, matches
188
+ * {@link getRegisteredNodeCount} — the mutating methods throw instead).
189
+ *
190
+ * @param nodeId - The device/node identifier.
191
+ */
192
+ static isNodeRegistered(nodeId) {
193
+ const instance = NodeMQTTOrchestrator._instance;
194
+ return instance?.nodeMap.has(nodeId) ?? false;
195
+ }
196
+ /**
197
+ * Number of registered nodes (for debugging). Returns 0 if not initialized.
198
+ */
199
+ static getRegisteredNodeCount() {
200
+ const instance = NodeMQTTOrchestrator._instance;
201
+ return instance?.nodeMap.size ?? 0;
202
+ }
203
+ // ═════════════════════════════════════════════════════════════════════
204
+ // Subscription
205
+ // ═════════════════════════════════════════════════════════════════════
206
+ /**
207
+ * Subscribes to node param updates. Deduplicates MQTT subscriptions by
208
+ * shadow.
209
+ *
210
+ * @param nodeId - The device/node identifier.
211
+ * @param callback - Callback invoked when shadow update/accepted is received.
212
+ * @throws {Error} If node is not registered, MQTT is not connected, or the
213
+ * underlying transport subscribe fails. On failure no listener is added.
214
+ */
215
+ static async subscribeToNode(nodeId, callback) {
216
+ const instance = NodeMQTTOrchestrator.getInstance();
217
+ const registration = instance.nodeMap.get(nodeId);
218
+ if (!registration) {
219
+ throw new Error(`Node ${nodeId} not registered`);
220
+ }
221
+ return instance.runSerial(registration.shadowName, async () => {
222
+ if (!instance.transport) {
223
+ throw new Error("MQTT not available");
224
+ }
225
+ if (!(await instance.transport.isConnected())) {
226
+ throw new Error("MQTT not connected");
227
+ }
228
+ const subscription = instance.shadowSubs.get(registration.shadowName);
229
+ // (O3) Subscribe on the wire FIRST. Only then wire the listener into
230
+ // memory — otherwise a subscribe failure would leave a stranded
231
+ // listener that will never receive a message.
232
+ if (!subscription.subscribed) {
233
+ const handler = (topic, message) => instance.handleShadowLiveMessage(topic, message, registration.shadowName);
234
+ for (const t of subscription.topics) {
235
+ await instance.transport.subscribe(t, handler);
236
+ }
237
+ subscription.handler = handler;
238
+ subscription.subscribed = true;
239
+ }
240
+ if (!subscription.listeners.has(nodeId)) {
241
+ subscription.listeners.set(nodeId, new Set());
242
+ }
243
+ subscription.listeners.get(nodeId).add(callback);
244
+ });
245
+ }
246
+ /**
247
+ * Unsubscribes a callback from a node.
248
+ *
249
+ * In-memory listener removal happens even if MQTT is disconnected —
250
+ * otherwise on reconnect the orchestrator would fan messages out to a stale
251
+ * listener (per-disconnect leak). The network topic-unsubscribe inside
252
+ * `cleanupSubscriptionIfIdle` is best-effort and tolerates a missing
253
+ * connection.
254
+ *
255
+ * @param nodeId - The device/node identifier.
256
+ * @param callback - The callback to remove.
257
+ */
258
+ static async unsubscribeFromNode(nodeId, callback) {
259
+ const instance = NodeMQTTOrchestrator.getInstance();
260
+ const registration = instance.nodeMap.get(nodeId);
261
+ if (!registration)
262
+ return;
263
+ return instance.runSerial(registration.shadowName, async () => {
264
+ const subscription = instance.shadowSubs.get(registration.shadowName);
265
+ if (!subscription)
266
+ return;
267
+ const listeners = subscription.listeners.get(nodeId);
268
+ if (!listeners)
269
+ return;
270
+ listeners.delete(callback);
271
+ if (listeners.size === 0) {
272
+ subscription.listeners.delete(nodeId);
273
+ cleanupSubscriptionIfIdle(subscription, instance.transport);
274
+ }
275
+ });
276
+ }
277
+ /**
278
+ * Routes live shadow messages (update/get accepted/rejected, delta) to
279
+ * listeners. Drops malformed messages at debug level so they're visible in
280
+ * logs during investigation but don't disrupt healthy traffic.
281
+ */
282
+ handleShadowLiveMessage(topic, message, shadowName) {
283
+ const subscription = this.shadowSubs.get(shadowName);
284
+ if (!subscription)
285
+ return;
286
+ // Param listeners only get reported-state traffic on the two canonical
287
+ // channels:
288
+ // - `/update/documents`: primary real-time channel (API 1.0.0 envelope
289
+ // with `{ previous, current }`; the util unwraps `current`).
290
+ // - `/get/accepted`: explicit shadow GET responses.
291
+ //
292
+ // All other subscribed suffixes are intentionally skipped:
293
+ // - `/update/accepted` duplicates `/update/documents`
294
+ // - `/update/rejected`, `/get/rejected` are error paths
295
+ // - `/update/delta` carries desired≠reported diffs, not reported values
296
+ // The full set is subscribed for parity with the firmware topic surface;
297
+ // we just don't fan the non-reported ones out to param listeners.
298
+ if (!topic.endsWith("/update/documents") &&
299
+ !topic.endsWith("/get/accepted")) {
300
+ return;
301
+ }
302
+ const nodeId = extractNodeIdFromTopic(topic);
303
+ if (!nodeId)
304
+ return;
305
+ const listeners = subscription.listeners.get(nodeId);
306
+ if (!listeners || listeners.size === 0)
307
+ return;
308
+ const parsed = parseShadowMessage(message);
309
+ if (parsed === null) {
310
+ logger.debug("Dropping malformed shadow message", {
311
+ topic,
312
+ byteLength: message.length,
313
+ });
314
+ return;
315
+ }
316
+ const params = getReportedParamsFromShadowLiveMessage(topic, parsed);
317
+ if (Object.keys(params).length === 0) {
318
+ logger.debug("Shadow message has no reported params, ignoring", { topic });
319
+ return;
320
+ }
321
+ notifyListenersSafely(listeners, params);
322
+ }
323
+ /**
324
+ * Runs `op` exclusively per shadow: operations for the same shadowName are
325
+ * chained so they never interleave across an await. Ops for different
326
+ * shadows still run concurrently. Failure of one op does not block later
327
+ * ops (each op sees its own outcome; the queue only tracks completion).
328
+ */
329
+ runSerial(shadowName, op) {
330
+ const prev = this.shadowOps.get(shadowName) ?? Promise.resolve();
331
+ const result = prev.then(op, op);
332
+ const tail = result.then(() => undefined, () => undefined);
333
+ this.shadowOps.set(shadowName, tail);
334
+ void tail.then(() => {
335
+ if (this.shadowOps.get(shadowName) === tail) {
336
+ this.shadowOps.delete(shadowName);
337
+ }
338
+ });
339
+ return result;
340
+ }
341
+ // ═════════════════════════════════════════════════════════════════════
342
+ // Request/response infrastructure
343
+ // ═════════════════════════════════════════════════════════════════════
344
+ /**
345
+ * Request-response helper. Subscribes to accepted + rejected, publishes,
346
+ * resolves on first message.
347
+ *
348
+ * @param publishTopic - Topic to publish the request to.
349
+ * @param acceptedTopic - Successful response topic.
350
+ * @param rejectedTopic - Error response topic.
351
+ * @param payload - Request payload.
352
+ * @param timeoutMs - Timeout in milliseconds.
353
+ * @returns Parsed response or rejects on timeout / invalid response / rejected.
354
+ */
355
+ static async executeRequestResponse(publishTopic, acceptedTopic, rejectedTopic, payload, timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS) {
356
+ const instance = NodeMQTTOrchestrator.getInstance();
357
+ const transport = instance.transport;
358
+ if (!transport) {
359
+ throw new Error("Transport not available");
360
+ }
361
+ if (!(await transport.isConnected())) {
362
+ throw new Error("MQTT not connected");
363
+ }
364
+ const topicsToUnsubscribe = [acceptedTopic, rejectedTopic];
365
+ return new Promise((resolve, reject) => {
366
+ const cleanup = () => {
367
+ clearTimeout(timer);
368
+ instance.pendingRequests.delete(acceptedTopic);
369
+ for (const t of topicsToUnsubscribe) {
370
+ transport.unsubscribe(t, handler).catch(() => { });
371
+ }
372
+ };
373
+ const handler = (topic, message) => {
374
+ if (topic === rejectedTopic) {
375
+ cleanup();
376
+ reject(new Error(`Shadow request rejected: ${message.toString()}`));
377
+ return;
378
+ }
379
+ if (topic !== acceptedTopic) {
380
+ return;
381
+ }
382
+ cleanup();
383
+ const parsed = parseShadowMessage(message);
384
+ if (parsed !== null) {
385
+ resolve(parsed);
386
+ }
387
+ else {
388
+ reject(new Error("Invalid response"));
389
+ }
390
+ };
391
+ const timer = setTimeout(() => {
392
+ cleanup();
393
+ reject(new Error("Request timeout"));
394
+ }, timeoutMs);
395
+ instance.pendingRequests.set(acceptedTopic, {
396
+ timer,
397
+ handler,
398
+ reject,
399
+ topicsToUnsubscribe,
400
+ });
401
+ Promise.all([
402
+ transport.subscribe(acceptedTopic, handler),
403
+ transport.subscribe(rejectedTopic, handler),
404
+ ])
405
+ .then(() => {
406
+ transport.publish(publishTopic, JSON.stringify(payload ?? {}));
407
+ })
408
+ .catch((err) => {
409
+ cleanup();
410
+ reject(err instanceof Error
411
+ ? err
412
+ : new Error("Failed to subscribe for shadow request"));
413
+ });
414
+ });
415
+ }
416
+ /**
417
+ * Fetches the shadow document and extracts a portion via `extractor`.
418
+ *
419
+ * @param nodeId - The device/node identifier.
420
+ * @param extractor - Function to extract desired part from parsed response.
421
+ * @returns The extracted value.
422
+ * @throws {Error} If node is not registered.
423
+ */
424
+ static async fetchShadowDocument(nodeId, extractor) {
425
+ const instance = NodeMQTTOrchestrator.getInstance();
426
+ const registration = instance.nodeMap.get(nodeId);
427
+ if (!instance.transport) {
428
+ throw new Error("MQTT not connected");
429
+ }
430
+ if (!(await instance.transport.isConnected())) {
431
+ throw new Error("MQTT not connected");
432
+ }
433
+ if (!registration) {
434
+ throw new Error(`Node ${nodeId} not registered`);
435
+ }
436
+ const baseTopic = buildShadowBase(nodeId, registration.shadowName);
437
+ const response = await NodeMQTTOrchestrator.executeRequestResponse(`${baseTopic}/get`, `${baseTopic}/get/accepted`, `${baseTopic}/get/rejected`, {}, DEFAULT_REQUEST_TIMEOUT_MS);
438
+ return extractor(response);
439
+ }
440
+ /**
441
+ * Wraps `transport.publish` so publish failures throw with an actionable
442
+ * message. Without this wrapper, callers get whatever the adapter throws
443
+ * (often a generic `TypeError` from a broken pipe) with no topic context.
444
+ */
445
+ static async publishOrThrow(transport, topic, payload) {
446
+ try {
447
+ await transport.publish(topic, payload);
448
+ }
449
+ catch (err) {
450
+ const message = err instanceof Error ? err.message : String(err);
451
+ throw new Error(`Failed to publish to ${topic}: ${message}`, err instanceof Error ? { cause: err } : undefined);
452
+ }
453
+ }
454
+ // ═════════════════════════════════════════════════════════════════════
455
+ // Public read API
456
+ // ═════════════════════════════════════════════════════════════════════
457
+ /**
458
+ * Gets params (`state.reported.params`) for a node.
459
+ *
460
+ * @param nodeId - The device/node identifier.
461
+ * @returns The reported params map, or `{}` when absent.
462
+ * @throws {Error} If node is not registered.
463
+ */
464
+ static async getParams(nodeId) {
465
+ return NodeMQTTOrchestrator.fetchShadowDocument(nodeId, getReportedParamsFromShadowDocument);
466
+ }
467
+ /**
468
+ * Gets the full shadow document (`state.reported` + `state.desired`).
469
+ *
470
+ * @param nodeId - The device/node identifier.
471
+ * @returns The full state object.
472
+ * @throws {Error} If node is not registered.
473
+ */
474
+ static async getShadow(nodeId) {
475
+ return NodeMQTTOrchestrator.fetchShadowDocument(nodeId, getStateFromPayload);
476
+ }
477
+ // ═════════════════════════════════════════════════════════════════════
478
+ // Public write API
479
+ // ═════════════════════════════════════════════════════════════════════
480
+ /**
481
+ * Sets params via the RainMaker user params topic (unicast: single node).
482
+ *
483
+ * @param nodeId - The device/node identifier.
484
+ * @param params - Parameter payload (often `{ <deviceId>: { <paramId>: value } }`).
485
+ * @throws {Error} If node is not registered, MQTT is not connected, or the
486
+ * publish fails.
487
+ */
488
+ static async setParams(nodeId, params) {
489
+ const instance = NodeMQTTOrchestrator.getInstance();
490
+ const registration = instance.nodeMap.get(nodeId);
491
+ if (!instance.transport) {
492
+ throw new Error("Transport not available");
493
+ }
494
+ if (!(await instance.transport.isConnected())) {
495
+ throw new Error("MQTT not connected");
496
+ }
497
+ if (!registration) {
498
+ throw new Error(`Node ${nodeId} not registered`);
499
+ }
500
+ const topic = buildRainMakerUserParamsTopic(nodeId, registration.shadowName);
501
+ const payload = typeof params === "string" ? params : JSON.stringify(params ?? {});
502
+ return NodeMQTTOrchestrator.publishOrThrow(instance.transport, topic, payload);
503
+ }
504
+ /**
505
+ * Publishes parameters to the group control MQTT topic (fan-out to all
506
+ * devices in the group or in one subgroup). Does not require a registered
507
+ * node; only a connected MQTT transport (same credentials as unicast
508
+ * `setParams`).
509
+ *
510
+ * @param groupId - Primary group id.
511
+ * @param params - Same payload shape as {@link NodeMQTTOrchestrator.setParams}.
512
+ * @param subgroupId - Omit for group-wide broadcast; set to target one
513
+ * subgroup.
514
+ */
515
+ static async setGroupParams(groupId, params, subgroupId) {
516
+ const instance = NodeMQTTOrchestrator.getInstance();
517
+ if (!instance.transport) {
518
+ throw new Error("Transport not available");
519
+ }
520
+ if (!(await instance.transport.isConnected())) {
521
+ throw new Error("MQTT not connected");
522
+ }
523
+ if (!groupId) {
524
+ throw new Error("Group ID is required");
525
+ }
526
+ const topic = buildGroupControlParamsTopic(groupId, subgroupId);
527
+ const payload = typeof params === "string" ? params : JSON.stringify(params ?? {});
528
+ return NodeMQTTOrchestrator.publishOrThrow(instance.transport, topic, payload);
529
+ }
530
+ /**
531
+ * Updates shadow `state.desired`.
532
+ *
533
+ * @param nodeId - The device/node identifier.
534
+ * @param params - The desired state parameters.
535
+ * @throws {Error} If node is not registered or transport unavailable.
536
+ */
537
+ static async updateShadow(nodeId, params) {
538
+ const instance = NodeMQTTOrchestrator.getInstance();
539
+ const registration = instance.nodeMap.get(nodeId);
540
+ if (!instance.transport) {
541
+ throw new Error("Transport not available");
542
+ }
543
+ if (!(await instance.transport.isConnected())) {
544
+ throw new Error("MQTT not connected");
545
+ }
546
+ if (!registration) {
547
+ throw new Error(`Node ${nodeId} not registered`);
548
+ }
549
+ const topic = `${buildShadowBase(nodeId, registration.shadowName)}/update`;
550
+ const payload = buildShadowUpdatePayload(params);
551
+ return NodeMQTTOrchestrator.publishOrThrow(instance.transport, topic, payload);
552
+ }
553
+ }
554
+
555
+ export { NodeMQTTOrchestrator };
556
+ //# sourceMappingURL=NodeMQTTOrchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeMQTTOrchestrator.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,77 @@
1
+ import { Logger } from '../utils/logger.js';
2
+
3
+ /*
4
+ * SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
5
+ *
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ const logger = new Logger("NodeMQTTOrchestratorHelpers");
9
+ /**
10
+ * Clears all pending request-response operations.
11
+ * Rejects each with the given error and unsubscribes from response topics.
12
+ *
13
+ * @param pendingRequests - Map of responseTopic → pending request
14
+ * @param transport - MQTT transport for unsubscribe
15
+ * @param rejectError - Error to reject pending promises with
16
+ */
17
+ function clearAllPendingRequests(pendingRequests, transport, rejectError) {
18
+ pendingRequests.forEach((pendingRequest) => {
19
+ clearTimeout(pendingRequest.timer);
20
+ for (const t of pendingRequest.topicsToUnsubscribe) {
21
+ transport?.unsubscribe(t, pendingRequest.handler).catch(() => {
22
+ logger.error("Failed to unsubscribe from topic", t);
23
+ });
24
+ }
25
+ pendingRequest.reject(rejectError);
26
+ });
27
+ pendingRequests.clear();
28
+ }
29
+ /**
30
+ * Unsubscribes from shadow topic when no listeners remain.
31
+ * Cleans up subscription state to avoid orphaned MQTT subscriptions.
32
+ *
33
+ * @param subscription - The shadow subscription state
34
+ * @param transport - MQTT transport for unsubscribe
35
+ * @returns true if unsubscribed, false otherwise
36
+ */
37
+ function cleanupSubscriptionIfIdle(subscription, transport) {
38
+ const isIdle = subscription.listeners.size === 0 &&
39
+ subscription.subscribed &&
40
+ subscription.handler &&
41
+ transport;
42
+ if (!isIdle)
43
+ return false;
44
+ for (const t of subscription.topics) {
45
+ transport.unsubscribe(t, subscription.handler).catch(() => {
46
+ logger.error("Failed to unsubscribe from topic", t);
47
+ });
48
+ }
49
+ subscription.subscribed = false;
50
+ subscription.handler = undefined;
51
+ return true;
52
+ }
53
+ /**
54
+ * Invokes all listeners with the given params.
55
+ * Isolates errors from individual listeners so one failure cannot block the
56
+ * others. Logs the actual error (and the params for context) so investigators
57
+ * can see WHY a listener failed, not just THAT one did.
58
+ *
59
+ * @param listeners - Set of callback functions
60
+ * @param params - The params to pass to each listener
61
+ */
62
+ function notifyListenersSafely(listeners, params) {
63
+ listeners.forEach((callback) => {
64
+ try {
65
+ callback(params);
66
+ }
67
+ catch (err) {
68
+ logger.error("Listener threw while handling shadow update", {
69
+ error: err instanceof Error ? err.message : String(err),
70
+ params,
71
+ });
72
+ }
73
+ });
74
+ }
75
+
76
+ export { cleanupSubscriptionIfIdle, clearAllPendingRequests, notifyListenersSafely };
77
+ //# sourceMappingURL=NodeMQTTOrchestratorHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeMQTTOrchestratorHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}