@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,355 @@
1
+ import { resolveNodeId } from '../types/subscription.js';
2
+ import { NodeMQTTOrchestrator } from './NodeMQTTOrchestrator.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("ESPRMNeoSubscriptionManager");
11
+ /**
12
+ * Manages subscription channels and coordinates node update subscriptions.
13
+ * This is the central hub for all parameter update subscriptions from various sources
14
+ * (custom channels)
15
+ *
16
+ * The manager uses a priority-based approach:
17
+ * 1. For each node, it determines the effective channel order (node-specific or global)
18
+ * 2. It filters channels based on availability and node support
19
+ * 3. It tries channels in order until one succeeds
20
+ *
21
+ * Subscription pattern: register one or more channels, set global channel order,
22
+ * then subscribeToNode(node, callback). Node must have .id; for channel selection it may
23
+ * have .type, .metadata, .subscriptionConfig.channelOrder. Callback receives ESPNodeUpdateData.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Register channels
28
+ * await ESPRMNeoBase.subscriptionManager.registerChannel(new MQTTSubscriptionChannel());
29
+ *
30
+ * // Set global channel order (applies to nodes without their own override)
31
+ * ESPRMNeoBase.subscriptionManager.setGlobalChannelOrder(["mqtt"]);
32
+ *
33
+ * // Subscribe to node updates (node can be an SDK node or a proxy with { id, nodeId, type, config, metadata })
34
+ * await ESPRMNeoBase.subscriptionManager.subscribeToNode(node, (update) => {
35
+ * console.log(`Node ${update.nodeId} updated via ${update.source}`);
36
+ * });
37
+ * ```
38
+ */
39
+ class ESPRMNeoSubscriptionManager {
40
+ /**
41
+ * Registered subscription channels (channelId -> channel instance)
42
+ */
43
+ channels = new Map();
44
+ /**
45
+ * Global default channel order (used when node doesn't have custom order)
46
+ * Channels are tried in this order until one succeeds
47
+ */
48
+ globalChannelOrder = [];
49
+ /**
50
+ * Whether the manager has been initialized
51
+ */
52
+ initialized = false;
53
+ /**
54
+ * Initialize the subscription manager.
55
+ * This initializes all registered channels.
56
+ * Should be called during SDK initialization.
57
+ *
58
+ * @returns Promise that resolves when initialization is complete
59
+ */
60
+ async initialize() {
61
+ if (this.initialized) {
62
+ return;
63
+ }
64
+ for (const channel of this.channels.values()) {
65
+ try {
66
+ await channel.initialize();
67
+ }
68
+ catch (error) {
69
+ logger.error(`Failed to initialize channel ${channel.channelId}:`, error);
70
+ }
71
+ }
72
+ this.initialized = true;
73
+ }
74
+ /**
75
+ * Register a new subscription channel.
76
+ *
77
+ * @param channel - The channel to register
78
+ * @param autoInitialize - Whether to initialize the channel immediately (default: true)
79
+ * @throws Error if a channel with the same ID is already registered
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const mqttChannel = new MQTTSubscriptionChannel();
84
+ * await ESPRMNeoBase.subscriptionManager.registerChannel(mqttChannel);
85
+ * ```
86
+ */
87
+ async registerChannel(channel, autoInitialize = true) {
88
+ if (this.channels.has(channel.channelId)) {
89
+ throw new Error(`Channel ${channel.channelId} is already registered`);
90
+ }
91
+ this.channels.set(channel.channelId, channel);
92
+ if (autoInitialize && this.initialized) {
93
+ await channel.initialize();
94
+ }
95
+ }
96
+ /**
97
+ * Unregister a subscription channel.
98
+ * This will dispose the channel and remove it from the manager.
99
+ *
100
+ * @param channelId - ID of the channel to unregister
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * await ESPRMNeoBase.subscriptionManager.unregisterChannel("mqtt");
105
+ * ```
106
+ */
107
+ async unregisterChannel(channelId) {
108
+ const channel = this.channels.get(channelId);
109
+ if (!channel)
110
+ return;
111
+ await channel.dispose();
112
+ this.channels.delete(channelId);
113
+ }
114
+ /**
115
+ * Set the global default channel order.
116
+ * This order is used for all nodes unless they have a custom order in subscriptionConfig.
117
+ *
118
+ * @param channelIds - Array of channel IDs in priority order (first = highest priority)
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * // Try Matter first, then MQTT
123
+ * ESPRMNeoBase.subscriptionManager.setGlobalChannelOrder([
124
+ * "matter",
125
+ * "mqtt"
126
+ * ]);
127
+ * ```
128
+ */
129
+ setGlobalChannelOrder(channelIds) {
130
+ const invalidChannels = channelIds.filter((id) => !this.channels.has(id));
131
+ if (invalidChannels.length > 0) {
132
+ logger.warn(`Unknown channels in order: ${invalidChannels.join(", ")}`);
133
+ }
134
+ this.globalChannelOrder = channelIds;
135
+ }
136
+ /**
137
+ * Get the effective channel order for a node.
138
+ * Priority: node.subscriptionConfig.channelOrder > global channel order
139
+ *
140
+ * @param node - The node to get channel order for
141
+ * @returns Array of channel IDs in priority order
142
+ */
143
+ getEffectiveChannelOrder(node) {
144
+ // Use the per-node override only when it is non-empty. An empty array is
145
+ // treated the same as "not set" so a stray/rehydrated `channelOrder: []`
146
+ // falls back to the global order instead of trapping the node with no
147
+ // available channels (which only clearSubscriptionChannelOrder() could undo).
148
+ if (node.subscriptionConfig?.channelOrder?.length) {
149
+ return node.subscriptionConfig.channelOrder;
150
+ }
151
+ return this.globalChannelOrder;
152
+ }
153
+ /**
154
+ * Get available channels for a node.
155
+ * Filters channels based on:
156
+ * - Channel is registered
157
+ * - Channel supports the node (via supportsNode())
158
+ * - Channel is in the effective order
159
+ *
160
+ * @param node - The node to get channels for
161
+ * @returns Array of available channels in priority order
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * const channels = ESPRMNeoBase.subscriptionManager.getAvailableChannelsForNode(node);
166
+ * console.log(`Available channels: ${channels.map(c => c.channelId).join(", ")}`);
167
+ * ```
168
+ */
169
+ getAvailableChannelsForNode(node) {
170
+ const effectiveOrder = this.getEffectiveChannelOrder(node);
171
+ return effectiveOrder
172
+ .map((channelId) => this.channels.get(channelId))
173
+ .filter((channel) => channel && channel.supportsNode(node));
174
+ }
175
+ /**
176
+ * Builds a diagnostic message for the "no available channels" case. Lists the
177
+ * effective order, the registered channels, and which ids in the order are
178
+ * unregistered vs. registered-but-unsupported — so an order typo or a missing
179
+ * channel is easy to spot. Used in place of set-time validation, which would
180
+ * false-positive when an order references a not-yet-registered channel
181
+ * (e.g. an order set before its target channel registers).
182
+ *
183
+ * @param node - The node being subscribed.
184
+ * @param nodeId - The resolved node id (for the message).
185
+ * @returns A human-readable diagnostic error message.
186
+ */
187
+ buildNoChannelsError(node, nodeId) {
188
+ const effectiveOrder = this.getEffectiveChannelOrder(node);
189
+ const registered = this.getRegisteredChannels();
190
+ const unregistered = effectiveOrder.filter((id) => !this.channels.has(id));
191
+ const unsupported = effectiveOrder.filter((id) => {
192
+ const channel = this.channels.get(id);
193
+ return channel ? !channel.supportsNode(node) : false;
194
+ });
195
+ let message = `No available subscription channels for node ${nodeId}. ` +
196
+ `Effective order: [${effectiveOrder.join(", ") || "(empty)"}]. ` +
197
+ `Registered channels: [${registered.join(", ") || "(none)"}].`;
198
+ if (unregistered.length) {
199
+ message += ` Unregistered ids in order: [${unregistered.join(", ")}].`;
200
+ }
201
+ if (unsupported.length) {
202
+ message += ` Registered but unsupported for this node: [${unsupported.join(", ")}].`;
203
+ }
204
+ return message;
205
+ }
206
+ /**
207
+ * Subscribe to updates for a specific node using priority-based channel selection.
208
+ * Tries channels in order until one succeeds.
209
+ *
210
+ * @param node - The node to subscribe to
211
+ * @param callback - Function to call when updates are received
212
+ * @throws Error if no channels are available or all channels fail
213
+ *
214
+ * @example
215
+ * ```typescript
216
+ * await ESPRMNeoBase.subscriptionManager.subscribeToNode(node, (update) => {
217
+ * console.log(`Update from ${update.source}:`, update.payload);
218
+ * });
219
+ * ```
220
+ */
221
+ async subscribeToNode(node, callback) {
222
+ const nodeId = resolveNodeId(node);
223
+ if (!nodeId) {
224
+ throw new Error("Cannot subscribe: node has no id or nodeId");
225
+ }
226
+ const availableChannels = this.getAvailableChannelsForNode(node);
227
+ if (availableChannels.length === 0) {
228
+ throw new Error(this.buildNoChannelsError(node, nodeId));
229
+ }
230
+ let lastError;
231
+ for (const channel of availableChannels) {
232
+ try {
233
+ await channel.subscribe(callback, node);
234
+ return;
235
+ }
236
+ catch (error) {
237
+ lastError = error;
238
+ }
239
+ }
240
+ throw new Error(`All subscription channels failed for node ${nodeId}. Last error: ${lastError?.message}`);
241
+ }
242
+ /**
243
+ * Subscribe to updates for all nodes.
244
+ *
245
+ * @param nodes - Array of nodes to subscribe to
246
+ * @param callback - Function to call when any node is updated
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const nodes = group.getNodes();
251
+ * await ESPRMNeoBase.subscriptionManager.subscribeToAllNodes(nodes, (update) => {
252
+ * console.log(`Node ${update.nodeId} updated`);
253
+ * });
254
+ * ```
255
+ */
256
+ async subscribeToAllNodes(nodes, callback) {
257
+ const errors = [];
258
+ for (const node of nodes) {
259
+ try {
260
+ await this.subscribeToNode(node, callback);
261
+ }
262
+ catch (error) {
263
+ errors.push({
264
+ nodeId: resolveNodeId(node) ?? "unknown",
265
+ error: error,
266
+ });
267
+ }
268
+ }
269
+ if (errors.length > 0) {
270
+ logger.warn(`Failed to subscribe to ${errors.length} nodes:`, errors);
271
+ }
272
+ }
273
+ /**
274
+ * Unsubscribe from updates for a specific node across all channels.
275
+ *
276
+ * @param nodeId - ID of the node to unsubscribe from.
277
+ * @param callback - Optional specific subscriber to remove. When provided,
278
+ * only that callback is detached (the node's other subscribers keep
279
+ * receiving updates); when omitted, all subscribers for the node are
280
+ * removed AND the node's MQTT shadow binding on {@link NodeMQTTOrchestrator}
281
+ * is cleared — so the next subscribe re-registers a fresh shadow name
282
+ * (needed when app-side membership changes the node's shadow topic).
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * // Remove one subscriber (siblings keep receiving updates):
287
+ * await ESPRMNeoBase.subscriptionManager.unsubscribeFromNode("node-123", myCallback);
288
+ * // Remove every subscriber for the node + clear MQTT shadow binding:
289
+ * await ESPRMNeoBase.subscriptionManager.unsubscribeFromNode("node-123");
290
+ * ```
291
+ */
292
+ async unsubscribeFromNode(nodeId, callback) {
293
+ for (const channel of this.channels.values()) {
294
+ try {
295
+ await channel.unsubscribe(nodeId, callback);
296
+ }
297
+ catch (error) {
298
+ logger.warn(`Failed to unsubscribe from ${channel.channelId} for node ${nodeId}:`, error);
299
+ }
300
+ }
301
+ // Full purge (no specific callback): also drop the orchestrator's
302
+ // nodeId → shadowName binding so a later subscribe re-registers the node
303
+ // against its current shadow. Consumers that just detach one callback
304
+ // keep the binding intact for other subscribers.
305
+ if (!callback) {
306
+ try {
307
+ NodeMQTTOrchestrator.unregisterNode(nodeId);
308
+ }
309
+ catch (error) {
310
+ logger.warn(`Failed to unregister node ${nodeId} from NodeMQTTOrchestrator:`, error);
311
+ }
312
+ }
313
+ }
314
+ /**
315
+ * Get all registered channel IDs.
316
+ *
317
+ * @returns Array of channel IDs
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * const channels = ESPRMNeoBase.subscriptionManager.getRegisteredChannels();
322
+ * console.log(`Registered channels: ${channels.join(", ")}`);
323
+ * ```
324
+ */
325
+ getRegisteredChannels() {
326
+ return Array.from(this.channels.keys());
327
+ }
328
+ /**
329
+ * Get the global channel order.
330
+ *
331
+ * @returns Array of channel IDs in priority order
332
+ */
333
+ getGlobalChannelOrder() {
334
+ return [...this.globalChannelOrder];
335
+ }
336
+ /**
337
+ * Cleanup all subscriptions and dispose channels.
338
+ * Should be called when app is closing or SDK is being torn down.
339
+ *
340
+ * @example
341
+ * ```typescript
342
+ * await ESPRMNeoBase.subscriptionManager.dispose();
343
+ * ```
344
+ */
345
+ async dispose() {
346
+ for (const channel of this.channels.values()) {
347
+ await channel.dispose();
348
+ }
349
+ this.channels.clear();
350
+ this.initialized = false;
351
+ }
352
+ }
353
+
354
+ export { ESPRMNeoSubscriptionManager };
355
+ //# sourceMappingURL=ESPRMNeoSubscriptionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ESPRMNeoSubscriptionManager.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,324 @@
1
+ import { buildCanonicalQueryString, generateSigV4AuthHeader, generateIotDeviceGatewayMqttSignedUrl } from '../utils/awsSigv4Utils.js';
2
+ import { Logger } from '../utils/logger.js';
3
+ import { ESPRMNeoStorage } from './ESPRMNeoStorage/ESPRMNeoStorage.js';
4
+ import { ESPRMNeoAPIManager } from './ESPRMNeoAPIManager.js';
5
+
6
+ /*
7
+ * SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
8
+ *
9
+ * SPDX-License-Identifier: Apache-2.0
10
+ */
11
+ const logger = new Logger("ESPSigV4APIManager");
12
+ // ═════════════════════════════════════════════════════════════════════
13
+ // Module-scoped state
14
+ // ═════════════════════════════════════════════════════════════════════
15
+ /**
16
+ * Module-scoped singleton. Cannot be constructed by external code because the
17
+ * class constructor is private; the only construction path is
18
+ * {@link initializeSigV4APIManager}, which lives in this module and is not
19
+ * re-exported through the public SDK barrel.
20
+ */
21
+ let instance = null;
22
+ /**
23
+ * In-flight refresh promise for concurrent-call coalescing. When multiple
24
+ * signed requests notice expired credentials at the same time, they all share
25
+ * one Cognito round-trip instead of stampeding.
26
+ */
27
+ let refreshInFlight = null;
28
+ // ═════════════════════════════════════════════════════════════════════
29
+ // Module-scoped helpers
30
+ // ═════════════════════════════════════════════════════════════════════
31
+ /** Late-bound to avoid a circular import through `../methods/ESPRMNeoUser`. */
32
+ function fetchTemporaryAWSCredentials() {
33
+ return require("../methods/ESPRMNeoUser/GetTemporaryAWSCredentials")
34
+ .fetchTemporaryAWSCredentials();
35
+ }
36
+ /**
37
+ * Fetches fresh temporary AWS credentials and persists them, coalescing
38
+ * concurrent callers onto a single in-flight promise.
39
+ */
40
+ async function refreshTemporaryCredentialsOnce() {
41
+ if (refreshInFlight)
42
+ return refreshInFlight;
43
+ refreshInFlight = (async () => {
44
+ try {
45
+ const fresh = await fetchTemporaryAWSCredentials();
46
+ await ESPRMNeoStorage.saveTemporaryCredentials(fresh);
47
+ return fresh;
48
+ }
49
+ finally {
50
+ refreshInFlight = null;
51
+ }
52
+ })();
53
+ return refreshInFlight;
54
+ }
55
+ /**
56
+ * Produces the two UTC timestamps required by every SigV4-signed request:
57
+ *
58
+ * - `timestamp` – ISO 8601 basic (`YYYYMMDDTHHMMSSZ`), used in the
59
+ * `X-Amz-Date` header and in the string-to-sign.
60
+ * - `dateStamp` – date-only (`YYYYMMDD`), used in the credential scope
61
+ * (`{dateStamp}/{region}/{service}/aws4_request`).
62
+ *
63
+ * Computed once per request; both values share the same underlying `Date`.
64
+ */
65
+ function formatSigV4Timestamps(date) {
66
+ // toISOString → "2026-07-18T14:30:22.123Z"; SigV4 needs no separators or ms.
67
+ const timestamp = date.toISOString().replace(/[-:]|\.\d{3}/g, "");
68
+ return { timestamp, dateStamp: timestamp.slice(0, 8) };
69
+ }
70
+ class ESPSigV4APIManager extends ESPRMNeoAPIManager {
71
+ // ─── Fields ─────────────────────────────────────────────────────────
72
+ #baseUrl;
73
+ #awsRegion;
74
+ #service = "execute-api";
75
+ // ═════════════════════════════════════════════════════════════════════
76
+ // Lifecycle
77
+ // ═════════════════════════════════════════════════════════════════════
78
+ constructor(init) {
79
+ super();
80
+ this.#baseUrl = init.baseUrl.replace(/\/$/, "");
81
+ this.#awsRegion = init.awsRegion;
82
+ }
83
+ /**
84
+ * Friend-access hook used only by {@link initializeSigV4APIManager} in this
85
+ * module. TypeScript allows a same-class static method to reach the private
86
+ * constructor; free functions cannot. Not part of the public API surface.
87
+ *
88
+ * @internal
89
+ */
90
+ static _constructSigV4(init) {
91
+ return new ESPSigV4APIManager(init);
92
+ }
93
+ /**
94
+ * Returns the singleton constructed by SDK bootstrap.
95
+ *
96
+ * @throws {Error} If the SDK has not been configured — usually because
97
+ * `ESPRMNeoBase.configure()` did not run first.
98
+ */
99
+ static getInstance() {
100
+ if (!instance) {
101
+ throw new Error("ESPSigV4APIManager not initialized. Ensure ESPRMNeoBase.configure() ran first.");
102
+ }
103
+ return instance;
104
+ }
105
+ // ═════════════════════════════════════════════════════════════════════
106
+ // Credential + retry helpers
107
+ // ═════════════════════════════════════════════════════════════════════
108
+ areCredentialsExpired(credentials) {
109
+ // If no expiration field or invalid, treat as expired
110
+ if (!credentials.expiration) {
111
+ return true;
112
+ }
113
+ const expirationDate = new Date(credentials.expiration);
114
+ // If invalid date, treat as expired
115
+ if (isNaN(expirationDate.getTime())) {
116
+ return true;
117
+ }
118
+ // Add buffer time (5 minutes) before actual expiration
119
+ const bufferTime = 5 * 60 * 1000;
120
+ const now = Date.now();
121
+ const isExpired = now + bufferTime >= expirationDate.getTime();
122
+ return isExpired;
123
+ }
124
+ /**
125
+ * Runs `fn` and, on a 403, clears stored credentials and retries once.
126
+ * Any 403 is treated as retryable — AWS uses 403 uniformly for expired /
127
+ * invalid credentials, and a single retry is bounded regardless of the
128
+ * response wording. `retriesLeft` is per-call, so concurrent requests
129
+ * never block each other's retry.
130
+ */
131
+ async withCredentialsRetry(fn, retriesLeft = 1) {
132
+ try {
133
+ return await fn();
134
+ }
135
+ catch (err) {
136
+ if (retriesLeft > 0 && err?.status === 403) {
137
+ await ESPRMNeoStorage.clearTemporaryCredentials();
138
+ return this.withCredentialsRetry(fn, retriesLeft - 1);
139
+ }
140
+ throw err;
141
+ }
142
+ }
143
+ // ═════════════════════════════════════════════════════════════════════
144
+ // Signed HTTP core
145
+ // ═════════════════════════════════════════════════════════════════════
146
+ /**
147
+ * Performs a SigV4-signed request to the given URL. Used by {@link request}.
148
+ */
149
+ async _signedRequest(method, url, data, headers = {}) {
150
+ const canonicalURI = url.pathname;
151
+ let credentials;
152
+ try {
153
+ credentials = await ESPRMNeoStorage.getTemporaryCredentials();
154
+ if (this.areCredentialsExpired(credentials)) {
155
+ credentials = await refreshTemporaryCredentialsOnce();
156
+ }
157
+ }
158
+ catch {
159
+ // No stored credentials, or storage read failed — refresh from Cognito.
160
+ credentials = await refreshTemporaryCredentialsOnce();
161
+ }
162
+ const { timestamp, dateStamp } = formatSigV4Timestamps(new Date());
163
+ const payload = data ? JSON.stringify(data) : "";
164
+ const payloadHash = crypto
165
+ .createHash("sha256")
166
+ .update(payload)
167
+ .digest("hex");
168
+ const requestHeaders = {
169
+ host: url.host,
170
+ "x-amz-date": timestamp,
171
+ "x-amz-security-token": credentials.sessionToken,
172
+ ...headers,
173
+ };
174
+ const signedHeaderKeys = Object.keys(requestHeaders).sort();
175
+ const signedHeaders = signedHeaderKeys.join(";");
176
+ // SigV4 requires the canonical query string sorted and re-encoded; signing
177
+ // url.search verbatim breaks any request whose params aren't already
178
+ // in sorted order (API Gateway sorts before verifying).
179
+ const canonicalQueryString = buildCanonicalQueryString(url.searchParams);
180
+ const authHeader = generateSigV4AuthHeader({
181
+ accessKey: credentials.accessKey,
182
+ secretKey: credentials.secretKey,
183
+ timestamp,
184
+ dateStamp,
185
+ region: this.#awsRegion,
186
+ service: this.#service,
187
+ method,
188
+ canonicalURI,
189
+ canonicalQueryString,
190
+ requestHeaders,
191
+ signedHeaders,
192
+ payloadHash,
193
+ });
194
+ const response = await fetch(url.toString(), {
195
+ method,
196
+ headers: {
197
+ ...requestHeaders,
198
+ Authorization: authHeader,
199
+ "Content-Type": "application/json",
200
+ },
201
+ body: data ? JSON.stringify(data) : undefined,
202
+ });
203
+ const text = await response.text();
204
+ const responseData = (() => {
205
+ try {
206
+ return text ? JSON.parse(text) : null;
207
+ }
208
+ catch (parseErr) {
209
+ logger.debug("SigV4 API: Failed to parse response as JSON", parseErr);
210
+ throw new Error("Failed to parse response as JSON", parseErr instanceof Error ? { cause: parseErr } : undefined);
211
+ }
212
+ })();
213
+ if (!response.ok) {
214
+ logger.error("HTTP request failed:", {
215
+ method,
216
+ url: url.toString(),
217
+ status: response.status,
218
+ message: responseData?.message,
219
+ });
220
+ const errorMessage = `HTTP error! status: ${response.status}` +
221
+ (responseData?.message ? ` - ${responseData.message}` : "") +
222
+ (responseData?.error ? ` - ${responseData.error}` : "");
223
+ const err = new Error(errorMessage);
224
+ err.status = response.status;
225
+ err.responseData = responseData;
226
+ throw err;
227
+ }
228
+ return { data: responseData, status: response.status, responseData };
229
+ }
230
+ // ═════════════════════════════════════════════════════════════════════
231
+ // Public HTTP API
232
+ // ═════════════════════════════════════════════════════════════════════
233
+ async request(method, path, data, headers = {}) {
234
+ const pathWithSlash = path.startsWith("/") ? path : `/${path}`;
235
+ const url = new URL(this.#baseUrl + pathWithSlash);
236
+ return this.withCredentialsRetry(async () => {
237
+ const result = await this._signedRequest(method, url, data, headers);
238
+ return result.data;
239
+ });
240
+ }
241
+ async get(path, headers = {}) {
242
+ return this.request("GET", path, undefined, headers);
243
+ }
244
+ async post(path, data, headers = {}) {
245
+ return this.request("POST", path, data, headers);
246
+ }
247
+ async put(path, data, headers = {}) {
248
+ return this.request("PUT", path, data, headers);
249
+ }
250
+ async patch(path, data, headers = {}) {
251
+ return this.request("PATCH", path, data, headers);
252
+ }
253
+ async delete(path, headers = {}) {
254
+ return this.request("DELETE", path, undefined, headers);
255
+ }
256
+ // ═════════════════════════════════════════════════════════════════════
257
+ // IoT MQTT URL signing (static utility)
258
+ // ═════════════════════════════════════════════════════════════════════
259
+ /**
260
+ * Normalizes a config IoT endpoint to a hostname (strips protocol and path).
261
+ */
262
+ static #normalizeIotEndpointHost(endpoint) {
263
+ const trimmed = endpoint.trim();
264
+ const withoutProto = trimmed
265
+ .replace(/^https?:\/\//, "")
266
+ .replace(/^wss?:\/\//, "");
267
+ const hostOnly = withoutProto.split("/")[0];
268
+ if (!hostOnly) {
269
+ throw new Error("Invalid IoT endpoint: empty host");
270
+ }
271
+ return hostOnly;
272
+ }
273
+ /**
274
+ * Presigned `wss://…/mqtt?…` URL for AWS IoT Core MQTT over WebSocket (SigV4 query signing,
275
+ * service `iotdevicegateway`). Uses the same signing primitives as {@link ESPSigV4APIManager._signedRequest}.
276
+ *
277
+ * @param credentials - Temporary AWS credentials (e.g. from `ESPRMNeoUser.getTemporaryAWSCredentials`).
278
+ * @param iotEndpointOrHost - Raw `config.iotEndpoint`, a full `wss://…/mqtt` URL, or hostname only.
279
+ * @param awsRegion - AWS region for signing (e.g. "us-east-1"). Required; passed explicitly so
280
+ * this helper stays pure and doesn't reach back to global SDK config.
281
+ * @param options - Optional URL expiry (default 86400s).
282
+ */
283
+ static getIotMqttWebSocketSignedUrl(credentials, iotEndpointOrHost, awsRegion, options) {
284
+ const host = ESPSigV4APIManager.#normalizeIotEndpointHost(iotEndpointOrHost);
285
+ return generateIotDeviceGatewayMqttSignedUrl({
286
+ accessKey: credentials.accessKey,
287
+ secretKey: credentials.secretKey,
288
+ sessionToken: credentials.sessionToken,
289
+ host,
290
+ awsRegion,
291
+ expiresSeconds: options?.expiresSeconds,
292
+ });
293
+ }
294
+ }
295
+ // ═════════════════════════════════════════════════════════════════════
296
+ // SDK bootstrap hooks (not re-exported publicly)
297
+ // ═════════════════════════════════════════════════════════════════════
298
+ /**
299
+ * SDK bootstrap hook. Called by {@link ESPRMNeoBase.configure}. Not re-exported
300
+ * through the public SDK barrel — external consumers cannot reach this function
301
+ * and cannot construct an {@link ESPSigV4APIManager} instance.
302
+ *
303
+ * @internal
304
+ * @throws {Error} If already initialized.
305
+ */
306
+ function initializeSigV4APIManager(init) {
307
+ if (instance) {
308
+ throw new Error("ESPSigV4APIManager already initialized. Re-configuring the SDK is not supported.");
309
+ }
310
+ instance = ESPSigV4APIManager._constructSigV4(init);
311
+ }
312
+ /**
313
+ * Test-only hook to reset the singleton and any in-flight refresh promise
314
+ * between test cases. Not re-exported.
315
+ *
316
+ * @internal
317
+ */
318
+ function _resetSigV4APIManagerForTests() {
319
+ instance = null;
320
+ refreshInFlight = null;
321
+ }
322
+
323
+ export { ESPSigV4APIManager, _resetSigV4APIManagerForTests, initializeSigV4APIManager };
324
+ //# sourceMappingURL=ESPSigV4APIManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ESPSigV4APIManager.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}