@soilsidekick/sdk 1.2.0 → 2.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 (503) hide show
  1. package/package.json +5 -17
  2. package/sdks/README.md +254 -0
  3. package/sdks/__tests__/devices.test.ts +87 -0
  4. package/sdks/client.ts +198 -0
  5. package/sdks/dist/client.d.ts +94 -0
  6. package/sdks/dist/client.js +174 -0
  7. package/sdks/dist/index.d.ts +12 -0
  8. package/sdks/dist/index.js +39 -0
  9. package/sdks/dist/sensors/alerts.d.ts +45 -0
  10. package/sdks/dist/sensors/alerts.js +129 -0
  11. package/sdks/dist/sensors/devices.d.ts +65 -0
  12. package/sdks/dist/sensors/devices.js +123 -0
  13. package/sdks/dist/sensors/index.d.ts +4 -0
  14. package/sdks/dist/sensors/index.js +11 -0
  15. package/sdks/dist/sensors/mqtt.d.ts +55 -0
  16. package/sdks/dist/sensors/mqtt.js +179 -0
  17. package/sdks/dist/sensors/readings.d.ts +81 -0
  18. package/sdks/dist/sensors/readings.js +205 -0
  19. package/sdks/dist/test-sdk.d.ts +406 -0
  20. package/sdks/dist/test-sdk.js +366 -0
  21. package/sdks/dist/types.d.ts +162 -0
  22. package/sdks/dist/types.js +7 -0
  23. package/sdks/generate-sdk.sh +169 -0
  24. package/sdks/generated/.gitkeep +5 -0
  25. package/sdks/index.ts +25 -0
  26. package/sdks/jest.config.js +19 -0
  27. package/sdks/openapitools.json +73 -0
  28. package/sdks/package-lock.json +4306 -0
  29. package/sdks/package.json +53 -0
  30. package/sdks/sensors/alerts.ts +153 -0
  31. package/sdks/sensors/devices.ts +147 -0
  32. package/sdks/sensors/index.ts +4 -0
  33. package/sdks/sensors/mqtt.ts +211 -0
  34. package/sdks/sensors/readings.ts +241 -0
  35. package/sdks/test-sdk.ts +432 -0
  36. package/sdks/tsconfig.json +25 -0
  37. package/sdks/types.ts +222 -0
  38. package/soilsidekick-sdk-v2.zip +0 -0
  39. package/.openapi-generator/FILES +0 -156
  40. package/.openapi-generator/VERSION +0 -1
  41. package/.openapi-generator-ignore +0 -23
  42. package/README.md +0 -201
  43. package/dist/apis/AIServicesApi.d.ts +0 -70
  44. package/dist/apis/AIServicesApi.js +0 -177
  45. package/dist/apis/CarbonApi.d.ts +0 -31
  46. package/dist/apis/CarbonApi.js +0 -69
  47. package/dist/apis/EnvironmentalApi.d.ts +0 -31
  48. package/dist/apis/EnvironmentalApi.js +0 -69
  49. package/dist/apis/GeographicApi.d.ts +0 -31
  50. package/dist/apis/GeographicApi.js +0 -69
  51. package/dist/apis/LeafEnginesApi.d.ts +0 -31
  52. package/dist/apis/LeafEnginesApi.js +0 -69
  53. package/dist/apis/SatelliteDataApi.d.ts +0 -31
  54. package/dist/apis/SatelliteDataApi.js +0 -69
  55. package/dist/apis/SoilAnalysisApi.d.ts +0 -57
  56. package/dist/apis/SoilAnalysisApi.js +0 -141
  57. package/dist/apis/VRTApi.d.ts +0 -31
  58. package/dist/apis/VRTApi.js +0 -69
  59. package/dist/apis/WaterQualityApi.d.ts +0 -44
  60. package/dist/apis/WaterQualityApi.js +0 -105
  61. package/dist/apis/index.d.ts +0 -9
  62. package/dist/apis/index.js +0 -27
  63. package/dist/esm/apis/AIServicesApi.d.ts +0 -70
  64. package/dist/esm/apis/AIServicesApi.js +0 -173
  65. package/dist/esm/apis/CarbonApi.d.ts +0 -31
  66. package/dist/esm/apis/CarbonApi.js +0 -65
  67. package/dist/esm/apis/EnvironmentalApi.d.ts +0 -31
  68. package/dist/esm/apis/EnvironmentalApi.js +0 -65
  69. package/dist/esm/apis/GeographicApi.d.ts +0 -31
  70. package/dist/esm/apis/GeographicApi.js +0 -65
  71. package/dist/esm/apis/LeafEnginesApi.d.ts +0 -31
  72. package/dist/esm/apis/LeafEnginesApi.js +0 -65
  73. package/dist/esm/apis/SatelliteDataApi.d.ts +0 -31
  74. package/dist/esm/apis/SatelliteDataApi.js +0 -65
  75. package/dist/esm/apis/SoilAnalysisApi.d.ts +0 -57
  76. package/dist/esm/apis/SoilAnalysisApi.js +0 -137
  77. package/dist/esm/apis/VRTApi.d.ts +0 -31
  78. package/dist/esm/apis/VRTApi.js +0 -65
  79. package/dist/esm/apis/WaterQualityApi.d.ts +0 -44
  80. package/dist/esm/apis/WaterQualityApi.js +0 -101
  81. package/dist/esm/apis/index.d.ts +0 -9
  82. package/dist/esm/apis/index.js +0 -11
  83. package/dist/esm/index.d.ts +0 -3
  84. package/dist/esm/index.js +0 -5
  85. package/dist/esm/models/AIAnalysis.d.ts +0 -45
  86. package/dist/esm/models/AIAnalysis.js +0 -46
  87. package/dist/esm/models/AIAnalysisRecommendationsInner.d.ts +0 -53
  88. package/dist/esm/models/AIAnalysisRecommendationsInner.js +0 -53
  89. package/dist/esm/models/CalculateCarbonCreditsRequest.d.ts +0 -65
  90. package/dist/esm/models/CalculateCarbonCreditsRequest.js +0 -61
  91. package/dist/esm/models/CalculateEnvironmentalImpactRequest.d.ts +0 -59
  92. package/dist/esm/models/CalculateEnvironmentalImpactRequest.js +0 -58
  93. package/dist/esm/models/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.d.ts +0 -41
  94. package/dist/esm/models/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.js +0 -49
  95. package/dist/esm/models/CalculateEnvironmentalImpactRequestSoilData.d.ts +0 -83
  96. package/dist/esm/models/CalculateEnvironmentalImpactRequestSoilData.js +0 -70
  97. package/dist/esm/models/CalculateEnvironmentalImpactRequestWaterBodyData.d.ts +0 -32
  98. package/dist/esm/models/CalculateEnvironmentalImpactRequestWaterBodyData.js +0 -41
  99. package/dist/esm/models/CarbonCreditCalculation.d.ts +0 -46
  100. package/dist/esm/models/CarbonCreditCalculation.js +0 -47
  101. package/dist/esm/models/CarbonCreditCalculationCalculationDetails.d.ts +0 -63
  102. package/dist/esm/models/CarbonCreditCalculationCalculationDetails.js +0 -52
  103. package/dist/esm/models/CarbonCreditCalculationCalculationDetailsMetadata.d.ts +0 -44
  104. package/dist/esm/models/CarbonCreditCalculationCalculationDetailsMetadata.js +0 -45
  105. package/dist/esm/models/CarbonCreditCalculationCreditRecord.d.ts +0 -64
  106. package/dist/esm/models/CarbonCreditCalculationCreditRecord.js +0 -56
  107. package/dist/esm/models/County.d.ts +0 -56
  108. package/dist/esm/models/County.js +0 -49
  109. package/dist/esm/models/CountyLookup200Response.d.ts +0 -33
  110. package/dist/esm/models/CountyLookup200Response.js +0 -42
  111. package/dist/esm/models/CountyLookupRequest.d.ts +0 -32
  112. package/dist/esm/models/CountyLookupRequest.js +0 -43
  113. package/dist/esm/models/EnvironmentalImpact.d.ts +0 -46
  114. package/dist/esm/models/EnvironmentalImpact.js +0 -47
  115. package/dist/esm/models/EnvironmentalImpactDetailedAnalysis.d.ts +0 -58
  116. package/dist/esm/models/EnvironmentalImpactDetailedAnalysis.js +0 -51
  117. package/dist/esm/models/EnvironmentalImpactDetailedAnalysisEcoAlternatives.d.ts +0 -33
  118. package/dist/esm/models/EnvironmentalImpactDetailedAnalysisEcoAlternatives.js +0 -42
  119. package/dist/esm/models/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.d.ts +0 -56
  120. package/dist/esm/models/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.js +0 -49
  121. package/dist/esm/models/EnvironmentalImpactDetailedAnalysisRunoffRisk.d.ts +0 -53
  122. package/dist/esm/models/EnvironmentalImpactDetailedAnalysisRunoffRisk.js +0 -53
  123. package/dist/esm/models/EnvironmentalImpactImpactAssessment.d.ts +0 -56
  124. package/dist/esm/models/EnvironmentalImpactImpactAssessment.js +0 -49
  125. package/dist/esm/models/GenerateSmartReportSummaryRequest.d.ts +0 -46
  126. package/dist/esm/models/GenerateSmartReportSummaryRequest.js +0 -54
  127. package/dist/esm/models/GenerateVRTPrescriptionRequest.d.ts +0 -53
  128. package/dist/esm/models/GenerateVRTPrescriptionRequest.js +0 -57
  129. package/dist/esm/models/GetAgriculturalIntelligenceRequest.d.ts +0 -47
  130. package/dist/esm/models/GetAgriculturalIntelligenceRequest.js +0 -55
  131. package/dist/esm/models/GetLiveAgriculturalDataRequest.d.ts +0 -60
  132. package/dist/esm/models/GetLiveAgriculturalDataRequest.js +0 -64
  133. package/dist/esm/models/GetPlantingCalendarRequest.d.ts +0 -38
  134. package/dist/esm/models/GetPlantingCalendarRequest.js +0 -47
  135. package/dist/esm/models/GetSatelliteDataRequest.d.ts +0 -38
  136. package/dist/esm/models/GetSatelliteDataRequest.js +0 -47
  137. package/dist/esm/models/GetSeasonalPlanningAssistantRequest.d.ts +0 -67
  138. package/dist/esm/models/GetSeasonalPlanningAssistantRequest.js +0 -63
  139. package/dist/esm/models/GetSeasonalPlanningAssistantRequestLocation.d.ts +0 -44
  140. package/dist/esm/models/GetSeasonalPlanningAssistantRequestLocation.js +0 -45
  141. package/dist/esm/models/GetSoilDataRequest.d.ts +0 -32
  142. package/dist/esm/models/GetSoilDataRequest.js +0 -43
  143. package/dist/esm/models/GetTerritorialWaterAnalyticsRequest.d.ts +0 -54
  144. package/dist/esm/models/GetTerritorialWaterAnalyticsRequest.js +0 -54
  145. package/dist/esm/models/GetTerritorialWaterAnalyticsRequestDateRange.d.ts +0 -38
  146. package/dist/esm/models/GetTerritorialWaterAnalyticsRequestDateRange.js +0 -43
  147. package/dist/esm/models/GetWaterQualityRequest.d.ts +0 -32
  148. package/dist/esm/models/GetWaterQualityRequest.js +0 -43
  149. package/dist/esm/models/LeafEnginesCompatibility.d.ts +0 -46
  150. package/dist/esm/models/LeafEnginesCompatibility.js +0 -47
  151. package/dist/esm/models/LeafEnginesCompatibilityData.d.ts +0 -85
  152. package/dist/esm/models/LeafEnginesCompatibilityData.js +0 -65
  153. package/dist/esm/models/LeafEnginesCompatibilityDataBreakdown.d.ts +0 -45
  154. package/dist/esm/models/LeafEnginesCompatibilityDataBreakdown.js +0 -46
  155. package/dist/esm/models/LeafEnginesCompatibilityDataBreakdownSoil.d.ts +0 -44
  156. package/dist/esm/models/LeafEnginesCompatibilityDataBreakdownSoil.js +0 -45
  157. package/dist/esm/models/LeafEnginesCompatibilityDataMetadata.d.ts +0 -44
  158. package/dist/esm/models/LeafEnginesCompatibilityDataMetadata.js +0 -45
  159. package/dist/esm/models/LeafEnginesCompatibilityUsage.d.ts +0 -38
  160. package/dist/esm/models/LeafEnginesCompatibilityUsage.js +0 -43
  161. package/dist/esm/models/LeafenginesQueryRequest.d.ts +0 -47
  162. package/dist/esm/models/LeafenginesQueryRequest.js +0 -52
  163. package/dist/esm/models/LeafenginesQueryRequestLocation.d.ts +0 -50
  164. package/dist/esm/models/LeafenginesQueryRequestLocation.js +0 -47
  165. package/dist/esm/models/LeafenginesQueryRequestOptions.d.ts +0 -44
  166. package/dist/esm/models/LeafenginesQueryRequestOptions.js +0 -45
  167. package/dist/esm/models/LeafenginesQueryRequestPlant.d.ts +0 -51
  168. package/dist/esm/models/LeafenginesQueryRequestPlant.js +0 -48
  169. package/dist/esm/models/LeafenginesQueryRequestPlantCareRequirements.d.ts +0 -63
  170. package/dist/esm/models/LeafenginesQueryRequestPlantCareRequirements.js +0 -62
  171. package/dist/esm/models/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.d.ts +0 -38
  172. package/dist/esm/models/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.js +0 -43
  173. package/dist/esm/models/LiveAgriculturalData.d.ts +0 -77
  174. package/dist/esm/models/LiveAgriculturalData.js +0 -61
  175. package/dist/esm/models/LiveAgriculturalDataData.d.ts +0 -50
  176. package/dist/esm/models/LiveAgriculturalDataData.js +0 -47
  177. package/dist/esm/models/ModelError.d.ts +0 -44
  178. package/dist/esm/models/ModelError.js +0 -45
  179. package/dist/esm/models/PlantingCalendar.d.ts +0 -57
  180. package/dist/esm/models/PlantingCalendar.js +0 -50
  181. package/dist/esm/models/SatelliteData.d.ts +0 -56
  182. package/dist/esm/models/SatelliteData.js +0 -49
  183. package/dist/esm/models/SeasonalPlanningResponse.d.ts +0 -52
  184. package/dist/esm/models/SeasonalPlanningResponse.js +0 -49
  185. package/dist/esm/models/SeasonalPlanningResponseRecommendations.d.ts +0 -44
  186. package/dist/esm/models/SeasonalPlanningResponseRecommendations.js +0 -45
  187. package/dist/esm/models/SeasonalPlanningResponseWeatherData.d.ts +0 -62
  188. package/dist/esm/models/SeasonalPlanningResponseWeatherData.js +0 -51
  189. package/dist/esm/models/SmartReportSummary.d.ts +0 -45
  190. package/dist/esm/models/SmartReportSummary.js +0 -46
  191. package/dist/esm/models/SmartReportSummarySummary.d.ts +0 -50
  192. package/dist/esm/models/SmartReportSummarySummary.js +0 -47
  193. package/dist/esm/models/SoilData.d.ts +0 -94
  194. package/dist/esm/models/SoilData.js +0 -61
  195. package/dist/esm/models/TerritorialWaterAnalytics.d.ts +0 -45
  196. package/dist/esm/models/TerritorialWaterAnalytics.js +0 -46
  197. package/dist/esm/models/TerritorialWaterAnalyticsAnalytics.d.ts +0 -50
  198. package/dist/esm/models/TerritorialWaterAnalyticsAnalytics.js +0 -47
  199. package/dist/esm/models/VRTPrescription.d.ts +0 -51
  200. package/dist/esm/models/VRTPrescription.js +0 -48
  201. package/dist/esm/models/VRTPrescriptionZonesInner.d.ts +0 -44
  202. package/dist/esm/models/VRTPrescriptionZonesInner.js +0 -45
  203. package/dist/esm/models/VisualCropAnalysis.d.ts +0 -51
  204. package/dist/esm/models/VisualCropAnalysis.js +0 -48
  205. package/dist/esm/models/VisualCropAnalysisAnalysis.d.ts +0 -65
  206. package/dist/esm/models/VisualCropAnalysisAnalysis.js +0 -57
  207. package/dist/esm/models/VisualCropAnalysisRequest.d.ts +0 -60
  208. package/dist/esm/models/VisualCropAnalysisRequest.js +0 -60
  209. package/dist/esm/models/VisualCropAnalysisRequestLocation.d.ts +0 -44
  210. package/dist/esm/models/VisualCropAnalysisRequestLocation.js +0 -45
  211. package/dist/esm/models/WaterQuality.d.ts +0 -77
  212. package/dist/esm/models/WaterQuality.js +0 -61
  213. package/dist/esm/models/index.d.ts +0 -64
  214. package/dist/esm/models/index.js +0 -66
  215. package/dist/esm/runtime.d.ts +0 -184
  216. package/dist/esm/runtime.js +0 -334
  217. package/dist/index.d.ts +0 -3
  218. package/dist/index.js +0 -21
  219. package/dist/models/AIAnalysis.d.ts +0 -45
  220. package/dist/models/AIAnalysis.js +0 -53
  221. package/dist/models/AIAnalysisRecommendationsInner.d.ts +0 -53
  222. package/dist/models/AIAnalysisRecommendationsInner.js +0 -61
  223. package/dist/models/CalculateCarbonCreditsRequest.d.ts +0 -65
  224. package/dist/models/CalculateCarbonCreditsRequest.js +0 -69
  225. package/dist/models/CalculateEnvironmentalImpactRequest.d.ts +0 -59
  226. package/dist/models/CalculateEnvironmentalImpactRequest.js +0 -65
  227. package/dist/models/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.d.ts +0 -41
  228. package/dist/models/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.js +0 -57
  229. package/dist/models/CalculateEnvironmentalImpactRequestSoilData.d.ts +0 -83
  230. package/dist/models/CalculateEnvironmentalImpactRequestSoilData.js +0 -78
  231. package/dist/models/CalculateEnvironmentalImpactRequestWaterBodyData.d.ts +0 -32
  232. package/dist/models/CalculateEnvironmentalImpactRequestWaterBodyData.js +0 -48
  233. package/dist/models/CarbonCreditCalculation.d.ts +0 -46
  234. package/dist/models/CarbonCreditCalculation.js +0 -54
  235. package/dist/models/CarbonCreditCalculationCalculationDetails.d.ts +0 -63
  236. package/dist/models/CarbonCreditCalculationCalculationDetails.js +0 -59
  237. package/dist/models/CarbonCreditCalculationCalculationDetailsMetadata.d.ts +0 -44
  238. package/dist/models/CarbonCreditCalculationCalculationDetailsMetadata.js +0 -52
  239. package/dist/models/CarbonCreditCalculationCreditRecord.d.ts +0 -64
  240. package/dist/models/CarbonCreditCalculationCreditRecord.js +0 -64
  241. package/dist/models/County.d.ts +0 -56
  242. package/dist/models/County.js +0 -56
  243. package/dist/models/CountyLookup200Response.d.ts +0 -33
  244. package/dist/models/CountyLookup200Response.js +0 -49
  245. package/dist/models/CountyLookupRequest.d.ts +0 -32
  246. package/dist/models/CountyLookupRequest.js +0 -50
  247. package/dist/models/EnvironmentalImpact.d.ts +0 -46
  248. package/dist/models/EnvironmentalImpact.js +0 -54
  249. package/dist/models/EnvironmentalImpactDetailedAnalysis.d.ts +0 -58
  250. package/dist/models/EnvironmentalImpactDetailedAnalysis.js +0 -58
  251. package/dist/models/EnvironmentalImpactDetailedAnalysisEcoAlternatives.d.ts +0 -33
  252. package/dist/models/EnvironmentalImpactDetailedAnalysisEcoAlternatives.js +0 -49
  253. package/dist/models/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.d.ts +0 -56
  254. package/dist/models/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.js +0 -56
  255. package/dist/models/EnvironmentalImpactDetailedAnalysisRunoffRisk.d.ts +0 -53
  256. package/dist/models/EnvironmentalImpactDetailedAnalysisRunoffRisk.js +0 -61
  257. package/dist/models/EnvironmentalImpactImpactAssessment.d.ts +0 -56
  258. package/dist/models/EnvironmentalImpactImpactAssessment.js +0 -56
  259. package/dist/models/GenerateSmartReportSummaryRequest.d.ts +0 -46
  260. package/dist/models/GenerateSmartReportSummaryRequest.js +0 -62
  261. package/dist/models/GenerateVRTPrescriptionRequest.d.ts +0 -53
  262. package/dist/models/GenerateVRTPrescriptionRequest.js +0 -65
  263. package/dist/models/GetAgriculturalIntelligenceRequest.d.ts +0 -47
  264. package/dist/models/GetAgriculturalIntelligenceRequest.js +0 -63
  265. package/dist/models/GetLiveAgriculturalDataRequest.d.ts +0 -60
  266. package/dist/models/GetLiveAgriculturalDataRequest.js +0 -72
  267. package/dist/models/GetPlantingCalendarRequest.d.ts +0 -38
  268. package/dist/models/GetPlantingCalendarRequest.js +0 -54
  269. package/dist/models/GetSatelliteDataRequest.d.ts +0 -38
  270. package/dist/models/GetSatelliteDataRequest.js +0 -54
  271. package/dist/models/GetSeasonalPlanningAssistantRequest.d.ts +0 -67
  272. package/dist/models/GetSeasonalPlanningAssistantRequest.js +0 -71
  273. package/dist/models/GetSeasonalPlanningAssistantRequestLocation.d.ts +0 -44
  274. package/dist/models/GetSeasonalPlanningAssistantRequestLocation.js +0 -52
  275. package/dist/models/GetSoilDataRequest.d.ts +0 -32
  276. package/dist/models/GetSoilDataRequest.js +0 -50
  277. package/dist/models/GetTerritorialWaterAnalyticsRequest.d.ts +0 -54
  278. package/dist/models/GetTerritorialWaterAnalyticsRequest.js +0 -62
  279. package/dist/models/GetTerritorialWaterAnalyticsRequestDateRange.d.ts +0 -38
  280. package/dist/models/GetTerritorialWaterAnalyticsRequestDateRange.js +0 -50
  281. package/dist/models/GetWaterQualityRequest.d.ts +0 -32
  282. package/dist/models/GetWaterQualityRequest.js +0 -50
  283. package/dist/models/LeafEnginesCompatibility.d.ts +0 -46
  284. package/dist/models/LeafEnginesCompatibility.js +0 -54
  285. package/dist/models/LeafEnginesCompatibilityData.d.ts +0 -85
  286. package/dist/models/LeafEnginesCompatibilityData.js +0 -73
  287. package/dist/models/LeafEnginesCompatibilityDataBreakdown.d.ts +0 -45
  288. package/dist/models/LeafEnginesCompatibilityDataBreakdown.js +0 -53
  289. package/dist/models/LeafEnginesCompatibilityDataBreakdownSoil.d.ts +0 -44
  290. package/dist/models/LeafEnginesCompatibilityDataBreakdownSoil.js +0 -52
  291. package/dist/models/LeafEnginesCompatibilityDataMetadata.d.ts +0 -44
  292. package/dist/models/LeafEnginesCompatibilityDataMetadata.js +0 -52
  293. package/dist/models/LeafEnginesCompatibilityUsage.d.ts +0 -38
  294. package/dist/models/LeafEnginesCompatibilityUsage.js +0 -50
  295. package/dist/models/LeafenginesQueryRequest.d.ts +0 -47
  296. package/dist/models/LeafenginesQueryRequest.js +0 -59
  297. package/dist/models/LeafenginesQueryRequestLocation.d.ts +0 -50
  298. package/dist/models/LeafenginesQueryRequestLocation.js +0 -54
  299. package/dist/models/LeafenginesQueryRequestOptions.d.ts +0 -44
  300. package/dist/models/LeafenginesQueryRequestOptions.js +0 -52
  301. package/dist/models/LeafenginesQueryRequestPlant.d.ts +0 -51
  302. package/dist/models/LeafenginesQueryRequestPlant.js +0 -55
  303. package/dist/models/LeafenginesQueryRequestPlantCareRequirements.d.ts +0 -63
  304. package/dist/models/LeafenginesQueryRequestPlantCareRequirements.js +0 -70
  305. package/dist/models/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.d.ts +0 -38
  306. package/dist/models/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.js +0 -50
  307. package/dist/models/LiveAgriculturalData.d.ts +0 -77
  308. package/dist/models/LiveAgriculturalData.js +0 -69
  309. package/dist/models/LiveAgriculturalDataData.d.ts +0 -50
  310. package/dist/models/LiveAgriculturalDataData.js +0 -54
  311. package/dist/models/ModelError.d.ts +0 -44
  312. package/dist/models/ModelError.js +0 -52
  313. package/dist/models/PlantingCalendar.d.ts +0 -57
  314. package/dist/models/PlantingCalendar.js +0 -57
  315. package/dist/models/SatelliteData.d.ts +0 -56
  316. package/dist/models/SatelliteData.js +0 -56
  317. package/dist/models/SeasonalPlanningResponse.d.ts +0 -52
  318. package/dist/models/SeasonalPlanningResponse.js +0 -56
  319. package/dist/models/SeasonalPlanningResponseRecommendations.d.ts +0 -44
  320. package/dist/models/SeasonalPlanningResponseRecommendations.js +0 -52
  321. package/dist/models/SeasonalPlanningResponseWeatherData.d.ts +0 -62
  322. package/dist/models/SeasonalPlanningResponseWeatherData.js +0 -58
  323. package/dist/models/SmartReportSummary.d.ts +0 -45
  324. package/dist/models/SmartReportSummary.js +0 -53
  325. package/dist/models/SmartReportSummarySummary.d.ts +0 -50
  326. package/dist/models/SmartReportSummarySummary.js +0 -54
  327. package/dist/models/SoilData.d.ts +0 -94
  328. package/dist/models/SoilData.js +0 -68
  329. package/dist/models/TerritorialWaterAnalytics.d.ts +0 -45
  330. package/dist/models/TerritorialWaterAnalytics.js +0 -53
  331. package/dist/models/TerritorialWaterAnalyticsAnalytics.d.ts +0 -50
  332. package/dist/models/TerritorialWaterAnalyticsAnalytics.js +0 -54
  333. package/dist/models/VRTPrescription.d.ts +0 -51
  334. package/dist/models/VRTPrescription.js +0 -55
  335. package/dist/models/VRTPrescriptionZonesInner.d.ts +0 -44
  336. package/dist/models/VRTPrescriptionZonesInner.js +0 -52
  337. package/dist/models/VisualCropAnalysis.d.ts +0 -51
  338. package/dist/models/VisualCropAnalysis.js +0 -55
  339. package/dist/models/VisualCropAnalysisAnalysis.d.ts +0 -65
  340. package/dist/models/VisualCropAnalysisAnalysis.js +0 -65
  341. package/dist/models/VisualCropAnalysisRequest.d.ts +0 -60
  342. package/dist/models/VisualCropAnalysisRequest.js +0 -68
  343. package/dist/models/VisualCropAnalysisRequestLocation.d.ts +0 -44
  344. package/dist/models/VisualCropAnalysisRequestLocation.js +0 -52
  345. package/dist/models/WaterQuality.d.ts +0 -77
  346. package/dist/models/WaterQuality.js +0 -69
  347. package/dist/models/index.d.ts +0 -64
  348. package/dist/models/index.js +0 -82
  349. package/dist/runtime.d.ts +0 -184
  350. package/dist/runtime.js +0 -350
  351. package/docs/AIAnalysis.md +0 -38
  352. package/docs/AIAnalysisRecommendationsInner.md +0 -38
  353. package/docs/AIServicesApi.md +0 -308
  354. package/docs/CalculateCarbonCreditsRequest.md +0 -42
  355. package/docs/CalculateEnvironmentalImpactRequest.md +0 -42
  356. package/docs/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.md +0 -34
  357. package/docs/CalculateEnvironmentalImpactRequestSoilData.md +0 -44
  358. package/docs/CalculateEnvironmentalImpactRequestWaterBodyData.md +0 -34
  359. package/docs/CarbonApi.md +0 -83
  360. package/docs/CarbonCreditCalculation.md +0 -38
  361. package/docs/CarbonCreditCalculationCalculationDetails.md +0 -44
  362. package/docs/CarbonCreditCalculationCalculationDetailsMetadata.md +0 -38
  363. package/docs/CarbonCreditCalculationCreditRecord.md +0 -42
  364. package/docs/County.md +0 -42
  365. package/docs/CountyLookup200Response.md +0 -34
  366. package/docs/CountyLookupRequest.md +0 -34
  367. package/docs/EnvironmentalApi.md +0 -83
  368. package/docs/EnvironmentalImpact.md +0 -38
  369. package/docs/EnvironmentalImpactDetailedAnalysis.md +0 -42
  370. package/docs/EnvironmentalImpactDetailedAnalysisEcoAlternatives.md +0 -34
  371. package/docs/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.md +0 -42
  372. package/docs/EnvironmentalImpactDetailedAnalysisRunoffRisk.md +0 -38
  373. package/docs/EnvironmentalImpactImpactAssessment.md +0 -42
  374. package/docs/GenerateSmartReportSummaryRequest.md +0 -36
  375. package/docs/GenerateVRTPrescriptionRequest.md +0 -38
  376. package/docs/GeographicApi.md +0 -82
  377. package/docs/GetAgriculturalIntelligenceRequest.md +0 -36
  378. package/docs/GetLiveAgriculturalDataRequest.md +0 -40
  379. package/docs/GetPlantingCalendarRequest.md +0 -36
  380. package/docs/GetSatelliteDataRequest.md +0 -36
  381. package/docs/GetSeasonalPlanningAssistantRequest.md +0 -42
  382. package/docs/GetSeasonalPlanningAssistantRequestLocation.md +0 -38
  383. package/docs/GetSoilDataRequest.md +0 -34
  384. package/docs/GetTerritorialWaterAnalyticsRequest.md +0 -38
  385. package/docs/GetTerritorialWaterAnalyticsRequestDateRange.md +0 -36
  386. package/docs/GetWaterQualityRequest.md +0 -34
  387. package/docs/LeafEnginesApi.md +0 -83
  388. package/docs/LeafEnginesCompatibility.md +0 -38
  389. package/docs/LeafEnginesCompatibilityData.md +0 -48
  390. package/docs/LeafEnginesCompatibilityDataBreakdown.md +0 -38
  391. package/docs/LeafEnginesCompatibilityDataBreakdownSoil.md +0 -38
  392. package/docs/LeafEnginesCompatibilityDataMetadata.md +0 -38
  393. package/docs/LeafEnginesCompatibilityUsage.md +0 -36
  394. package/docs/LeafenginesQueryRequest.md +0 -38
  395. package/docs/LeafenginesQueryRequestLocation.md +0 -40
  396. package/docs/LeafenginesQueryRequestOptions.md +0 -38
  397. package/docs/LeafenginesQueryRequestPlant.md +0 -40
  398. package/docs/LeafenginesQueryRequestPlantCareRequirements.md +0 -38
  399. package/docs/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.md +0 -36
  400. package/docs/LiveAgriculturalData.md +0 -46
  401. package/docs/LiveAgriculturalDataData.md +0 -40
  402. package/docs/ModelError.md +0 -38
  403. package/docs/PlantingCalendar.md +0 -42
  404. package/docs/SatelliteData.md +0 -42
  405. package/docs/SatelliteDataApi.md +0 -83
  406. package/docs/SeasonalPlanningResponse.md +0 -40
  407. package/docs/SeasonalPlanningResponseRecommendations.md +0 -38
  408. package/docs/SeasonalPlanningResponseWeatherData.md +0 -44
  409. package/docs/SmartReportSummary.md +0 -38
  410. package/docs/SmartReportSummarySummary.md +0 -40
  411. package/docs/SoilAnalysisApi.md +0 -234
  412. package/docs/SoilData.md +0 -54
  413. package/docs/TerritorialWaterAnalytics.md +0 -38
  414. package/docs/TerritorialWaterAnalyticsAnalytics.md +0 -40
  415. package/docs/VRTApi.md +0 -83
  416. package/docs/VRTPrescription.md +0 -40
  417. package/docs/VRTPrescriptionZonesInner.md +0 -38
  418. package/docs/VisualCropAnalysis.md +0 -40
  419. package/docs/VisualCropAnalysisAnalysis.md +0 -42
  420. package/docs/VisualCropAnalysisRequest.md +0 -40
  421. package/docs/VisualCropAnalysisRequestLocation.md +0 -38
  422. package/docs/WaterQuality.md +0 -46
  423. package/docs/WaterQualityApi.md +0 -158
  424. package/package.json.save +0 -8
  425. package/src/apis/AIServicesApi.ts +0 -247
  426. package/src/apis/CarbonApi.ts +0 -82
  427. package/src/apis/EnvironmentalApi.ts +0 -82
  428. package/src/apis/GeographicApi.ts +0 -82
  429. package/src/apis/LeafEnginesApi.ts +0 -82
  430. package/src/apis/SatelliteDataApi.ts +0 -82
  431. package/src/apis/SoilAnalysisApi.ts +0 -192
  432. package/src/apis/VRTApi.ts +0 -82
  433. package/src/apis/WaterQualityApi.ts +0 -137
  434. package/src/apis/index.ts +0 -11
  435. package/src/index.ts +0 -5
  436. package/src/models/AIAnalysis.ts +0 -89
  437. package/src/models/AIAnalysisRecommendationsInner.ts +0 -93
  438. package/src/models/CalculateCarbonCreditsRequest.ts +0 -111
  439. package/src/models/CalculateEnvironmentalImpactRequest.ts +0 -122
  440. package/src/models/CalculateEnvironmentalImpactRequestProposedTreatmentsInner.ts +0 -77
  441. package/src/models/CalculateEnvironmentalImpactRequestSoilData.ts +0 -130
  442. package/src/models/CalculateEnvironmentalImpactRequestWaterBodyData.ts +0 -65
  443. package/src/models/CarbonCreditCalculation.ts +0 -96
  444. package/src/models/CarbonCreditCalculationCalculationDetails.ts +0 -113
  445. package/src/models/CarbonCreditCalculationCalculationDetailsMetadata.ts +0 -81
  446. package/src/models/CarbonCreditCalculationCreditRecord.ts +0 -108
  447. package/src/models/County.ts +0 -97
  448. package/src/models/CountyLookup200Response.ts +0 -73
  449. package/src/models/CountyLookupRequest.ts +0 -66
  450. package/src/models/EnvironmentalImpact.ts +0 -96
  451. package/src/models/EnvironmentalImpactDetailedAnalysis.ts +0 -112
  452. package/src/models/EnvironmentalImpactDetailedAnalysisEcoAlternatives.ts +0 -73
  453. package/src/models/EnvironmentalImpactDetailedAnalysisEcoAlternativesAlternativesInner.ts +0 -97
  454. package/src/models/EnvironmentalImpactDetailedAnalysisRunoffRisk.ts +0 -93
  455. package/src/models/EnvironmentalImpactImpactAssessment.ts +0 -97
  456. package/src/models/GenerateSmartReportSummaryRequest.ts +0 -86
  457. package/src/models/GenerateVRTPrescriptionRequest.ts +0 -95
  458. package/src/models/GetAgriculturalIntelligenceRequest.ts +0 -87
  459. package/src/models/GetLiveAgriculturalDataRequest.ts +0 -106
  460. package/src/models/GetPlantingCalendarRequest.ts +0 -75
  461. package/src/models/GetSatelliteDataRequest.ts +0 -75
  462. package/src/models/GetSeasonalPlanningAssistantRequest.ts +0 -120
  463. package/src/models/GetSeasonalPlanningAssistantRequestLocation.ts +0 -81
  464. package/src/models/GetSoilDataRequest.ts +0 -66
  465. package/src/models/GetTerritorialWaterAnalyticsRequest.ts +0 -101
  466. package/src/models/GetTerritorialWaterAnalyticsRequestDateRange.ts +0 -73
  467. package/src/models/GetWaterQualityRequest.ts +0 -66
  468. package/src/models/LeafEnginesCompatibility.ts +0 -96
  469. package/src/models/LeafEnginesCompatibilityData.ts +0 -148
  470. package/src/models/LeafEnginesCompatibilityDataBreakdown.ts +0 -89
  471. package/src/models/LeafEnginesCompatibilityDataBreakdownSoil.ts +0 -81
  472. package/src/models/LeafEnginesCompatibilityDataMetadata.ts +0 -81
  473. package/src/models/LeafEnginesCompatibilityUsage.ts +0 -73
  474. package/src/models/LeafenginesQueryRequest.ts +0 -105
  475. package/src/models/LeafenginesQueryRequestLocation.ts +0 -89
  476. package/src/models/LeafenginesQueryRequestOptions.ts +0 -81
  477. package/src/models/LeafenginesQueryRequestPlant.ts +0 -97
  478. package/src/models/LeafenginesQueryRequestPlantCareRequirements.ts +0 -111
  479. package/src/models/LeafenginesQueryRequestPlantCareRequirementsSoilPhRange.ts +0 -73
  480. package/src/models/LiveAgriculturalData.ts +0 -132
  481. package/src/models/LiveAgriculturalDataData.ts +0 -89
  482. package/src/models/ModelError.ts +0 -81
  483. package/src/models/PlantingCalendar.ts +0 -105
  484. package/src/models/SatelliteData.ts +0 -97
  485. package/src/models/SeasonalPlanningResponse.ts +0 -104
  486. package/src/models/SeasonalPlanningResponseRecommendations.ts +0 -81
  487. package/src/models/SeasonalPlanningResponseWeatherData.ts +0 -105
  488. package/src/models/SmartReportSummary.ts +0 -89
  489. package/src/models/SmartReportSummarySummary.ts +0 -89
  490. package/src/models/SoilData.ts +0 -145
  491. package/src/models/TerritorialWaterAnalytics.ts +0 -89
  492. package/src/models/TerritorialWaterAnalyticsAnalytics.ts +0 -89
  493. package/src/models/VRTPrescription.ts +0 -97
  494. package/src/models/VRTPrescriptionZonesInner.ts +0 -81
  495. package/src/models/VisualCropAnalysis.ts +0 -97
  496. package/src/models/VisualCropAnalysisAnalysis.ts +0 -109
  497. package/src/models/VisualCropAnalysisRequest.ts +0 -111
  498. package/src/models/VisualCropAnalysisRequestLocation.ts +0 -81
  499. package/src/models/WaterQuality.ts +0 -125
  500. package/src/models/index.ts +0 -66
  501. package/src/runtime.ts +0 -432
  502. package/tsconfig.esm.json +0 -7
  503. package/tsconfig.json +0 -16
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MQTTClient = void 0;
7
+ const mqtt_1 = __importDefault(require("mqtt"));
8
+ /**
9
+ * MQTT Client for direct broker connection
10
+ *
11
+ * Used for high-frequency sensor data publishing
12
+ */
13
+ class MQTTClient {
14
+ constructor(config) {
15
+ this.client = null;
16
+ this.status = 'disconnected';
17
+ this.messageHandlers = new Map();
18
+ this.statusListeners = [];
19
+ this.config = config;
20
+ }
21
+ /**
22
+ * Connect to MQTT broker
23
+ */
24
+ async connect() {
25
+ return new Promise((resolve, reject) => {
26
+ const url = `${this.config.protocol}://${this.config.host}:${this.config.port}`;
27
+ this.client = mqtt_1.default.connect(url, {
28
+ username: this.config.username,
29
+ password: this.config.password,
30
+ reconnectPeriod: this.config.reconnectPeriod || 5000,
31
+ connectTimeout: this.config.connectTimeout || 30000,
32
+ clean: true,
33
+ });
34
+ this.client.on('connect', () => {
35
+ this.updateStatus('connected');
36
+ console.log('✓ Connected to MQTT broker');
37
+ resolve();
38
+ });
39
+ this.client.on('error', (err) => {
40
+ this.updateStatus('error');
41
+ console.error('MQTT Error:', err);
42
+ reject(err);
43
+ });
44
+ this.client.on('disconnect', () => {
45
+ this.updateStatus('disconnected');
46
+ console.log('Disconnected from MQTT broker');
47
+ });
48
+ this.client.on('message', (topic, message) => {
49
+ this.handleMessage(topic, message);
50
+ });
51
+ this.updateStatus('connecting');
52
+ });
53
+ }
54
+ /**
55
+ * Publish sensor data to topic
56
+ *
57
+ * @param topic - MQTT topic (e.g., "skyline/device-001/readings")
58
+ * @param payload - Data to publish
59
+ * @param options - Publish options
60
+ */
61
+ publish(topic, payload, options) {
62
+ if (!this.client || !this.client.connected) {
63
+ throw new Error('MQTT client not connected');
64
+ }
65
+ const message = typeof payload === 'string'
66
+ ? payload
67
+ : JSON.stringify(payload);
68
+ this.client.publish(topic, message, {
69
+ qos: options?.qos ?? 1,
70
+ retain: options?.retain ?? false,
71
+ });
72
+ }
73
+ /**
74
+ * Subscribe to MQTT topic
75
+ *
76
+ * @param topic - Topic pattern (can use wildcards)
77
+ * @param handler - Message handler
78
+ * @param qos - Quality of Service
79
+ */
80
+ subscribe(topic, handler, qos = 1) {
81
+ if (!this.client) {
82
+ throw new Error('MQTT client not initialized');
83
+ }
84
+ this.client.subscribe(topic, { qos }, (err) => {
85
+ if (err) {
86
+ console.error(`Failed to subscribe to ${topic}:`, err);
87
+ return;
88
+ }
89
+ if (!this.messageHandlers.has(topic)) {
90
+ this.messageHandlers.set(topic, []);
91
+ }
92
+ this.messageHandlers.get(topic).push(handler);
93
+ console.log(`Subscribed to ${topic}`);
94
+ });
95
+ }
96
+ /**
97
+ * Unsubscribe from topic
98
+ */
99
+ unsubscribe(topic) {
100
+ if (!this.client)
101
+ return;
102
+ this.client.unsubscribe(topic);
103
+ this.messageHandlers.delete(topic);
104
+ console.log(`Unsubscribed from ${topic}`);
105
+ }
106
+ /**
107
+ * Disconnect from broker
108
+ */
109
+ disconnect() {
110
+ if (this.client) {
111
+ this.client.end();
112
+ this.client = null;
113
+ this.updateStatus('disconnected');
114
+ }
115
+ }
116
+ /**
117
+ * Get current connection status
118
+ */
119
+ getStatus() {
120
+ return this.status;
121
+ }
122
+ /**
123
+ * Listen for connection status changes
124
+ */
125
+ onStatusChange(listener) {
126
+ this.statusListeners.push(listener);
127
+ }
128
+ updateStatus(status) {
129
+ this.status = status;
130
+ this.statusListeners.forEach(listener => listener(status));
131
+ }
132
+ handleMessage(topic, message) {
133
+ // Check exact topic match
134
+ const exactHandlers = this.messageHandlers.get(topic);
135
+ if (exactHandlers) {
136
+ this.processMessage(exactHandlers, message);
137
+ }
138
+ // Check wildcard subscriptions
139
+ this.messageHandlers.forEach((handlers, subscriptionTopic) => {
140
+ if (this.topicMatches(subscriptionTopic, topic)) {
141
+ this.processMessage(handlers, message);
142
+ }
143
+ });
144
+ }
145
+ processMessage(handlers, message) {
146
+ const payload = this.parseMessage(message);
147
+ handlers.forEach(handler => {
148
+ try {
149
+ handler(payload);
150
+ }
151
+ catch (err) {
152
+ console.error('Message handler error:', err);
153
+ }
154
+ });
155
+ }
156
+ topicMatches(subscription, topic) {
157
+ // Handle wildcards: + (single level), # (multi level)
158
+ const subParts = subscription.split('/');
159
+ const topicParts = topic.split('/');
160
+ for (let i = 0; i < subParts.length; i++) {
161
+ if (subParts[i] === '#')
162
+ return true;
163
+ if (subParts[i] === '+')
164
+ continue;
165
+ if (subParts[i] !== topicParts[i])
166
+ return false;
167
+ }
168
+ return subParts.length === topicParts.length;
169
+ }
170
+ parseMessage(message) {
171
+ try {
172
+ return JSON.parse(message.toString());
173
+ }
174
+ catch {
175
+ return message.toString();
176
+ }
177
+ }
178
+ }
179
+ exports.MQTTClient = MQTTClient;
@@ -0,0 +1,81 @@
1
+ import { LeafEnginesClient } from '../client';
2
+ import { SensorReading, SensorReadingPayload, IngestionResponse, ReadingsQueryParams, ReadingsAggregation, Subscription } from '../types';
3
+ /**
4
+ * Sensor Readings API
5
+ *
6
+ * Query historical data and subscribe to real-time updates
7
+ */
8
+ export declare class SensorReadingsAPI {
9
+ private client;
10
+ private subscriptions;
11
+ constructor(client: LeafEnginesClient);
12
+ /**
13
+ * Send sensor readings via HTTP (MQTT fallback)
14
+ *
15
+ * @param payload - Sensor data to ingest
16
+ * @returns Ingestion confirmation
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const result = await client.sensors.readings.send({
21
+ * deviceId: 'skyline-001',
22
+ * deviceType: 'mmwave_radar',
23
+ * timestamp: new Date(),
24
+ * readings: [{
25
+ * metric: 'reflectivity',
26
+ * value: 0.92,
27
+ * unit: 'ratio',
28
+ * confidence: 0.94,
29
+ * timestamp: new Date(),
30
+ * }],
31
+ * metadata: { firmwareVersion: '1.2.0' },
32
+ * });
33
+ * ```
34
+ */
35
+ send(payload: SensorReadingPayload): Promise<IngestionResponse>;
36
+ /**
37
+ * Query historical readings
38
+ *
39
+ * @param params - Query parameters
40
+ * @returns Array of sensor readings
41
+ */
42
+ query(params: ReadingsQueryParams): Promise<SensorReading[]>;
43
+ /**
44
+ * Get latest reading for a device
45
+ *
46
+ * @param deviceId - Device identifier
47
+ * @param metric - Optional metric filter
48
+ * @returns Latest reading or null
49
+ */
50
+ getLatest(deviceId: string, metric?: string): Promise<SensorReading | null>;
51
+ /**
52
+ * Get aggregated readings (hourly, daily, etc.)
53
+ *
54
+ * @param params - Aggregation parameters
55
+ * @returns Aggregated data points
56
+ */
57
+ aggregate(params: {
58
+ deviceId: string;
59
+ metric: string;
60
+ startTime: Date;
61
+ endTime: Date;
62
+ interval: '1h' | '1d' | '1w' | '1m';
63
+ }): Promise<ReadingsAggregation[]>;
64
+ /**
65
+ * Subscribe to real-time readings (WebSocket)
66
+ *
67
+ * @param deviceId - Device to subscribe to
68
+ * @param callback - Handler for new readings
69
+ * @returns Subscription object
70
+ */
71
+ subscribe(deviceId: string, callback: (reading: SensorReading) => void): Subscription;
72
+ /**
73
+ * Unsubscribe from device updates
74
+ */
75
+ unsubscribe(deviceId: string): void;
76
+ /**
77
+ * Unsubscribe from all devices
78
+ */
79
+ unsubscribeAll(): void;
80
+ private parseReading;
81
+ }
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SensorReadingsAPI = void 0;
4
+ /**
5
+ * Sensor Readings API
6
+ *
7
+ * Query historical data and subscribe to real-time updates
8
+ */
9
+ class SensorReadingsAPI {
10
+ constructor(client) {
11
+ this.subscriptions = new Map();
12
+ this.client = client;
13
+ }
14
+ /**
15
+ * Send sensor readings via HTTP (MQTT fallback)
16
+ *
17
+ * @param payload - Sensor data to ingest
18
+ * @returns Ingestion confirmation
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const result = await client.sensors.readings.send({
23
+ * deviceId: 'skyline-001',
24
+ * deviceType: 'mmwave_radar',
25
+ * timestamp: new Date(),
26
+ * readings: [{
27
+ * metric: 'reflectivity',
28
+ * value: 0.92,
29
+ * unit: 'ratio',
30
+ * confidence: 0.94,
31
+ * timestamp: new Date(),
32
+ * }],
33
+ * metadata: { firmwareVersion: '1.2.0' },
34
+ * });
35
+ * ```
36
+ */
37
+ async send(payload) {
38
+ const response = await this.client.request({
39
+ method: 'POST',
40
+ endpoint: '/sensor-data-ingestion',
41
+ body: {
42
+ device_id: payload.deviceId,
43
+ device_type: payload.deviceType,
44
+ timestamp: payload.timestamp.toISOString(),
45
+ readings: payload.readings.map(r => ({
46
+ metric: r.metric,
47
+ value: r.value,
48
+ unit: r.unit,
49
+ confidence: r.confidence,
50
+ timestamp: r.timestamp.toISOString(),
51
+ })),
52
+ metadata: {
53
+ firmware_version: payload.metadata.firmwareVersion,
54
+ battery_level: payload.metadata.batteryLevel,
55
+ signal_strength: payload.metadata.signalStrength,
56
+ },
57
+ },
58
+ });
59
+ return {
60
+ ingestionId: response.data.ingestion_id,
61
+ queuedAt: new Date(response.data.queued_at),
62
+ processedReadings: response.data.processed_readings,
63
+ estimatedProcessingMs: response.data.estimated_processing_ms,
64
+ status: response.data.status,
65
+ };
66
+ }
67
+ /**
68
+ * Query historical readings
69
+ *
70
+ * @param params - Query parameters
71
+ * @returns Array of sensor readings
72
+ */
73
+ async query(params) {
74
+ const response = await this.client.request({
75
+ method: 'GET',
76
+ endpoint: '/sensor-readings',
77
+ params: {
78
+ device_id: params.deviceId,
79
+ metric: params.metric,
80
+ start_time: params.startTime.toISOString(),
81
+ end_time: params.endTime.toISOString(),
82
+ limit: params.limit || 100,
83
+ offset: params.offset || 0,
84
+ order: params.order || 'desc',
85
+ },
86
+ });
87
+ return response.data.map(this.parseReading);
88
+ }
89
+ /**
90
+ * Get latest reading for a device
91
+ *
92
+ * @param deviceId - Device identifier
93
+ * @param metric - Optional metric filter
94
+ * @returns Latest reading or null
95
+ */
96
+ async getLatest(deviceId, metric) {
97
+ try {
98
+ const response = await this.client.request({
99
+ method: 'GET',
100
+ endpoint: '/sensor-readings/latest',
101
+ params: {
102
+ device_id: deviceId,
103
+ metric,
104
+ },
105
+ });
106
+ return response.data ? this.parseReading(response.data) : null;
107
+ }
108
+ catch (error) {
109
+ // Return null if no readings found
110
+ return null;
111
+ }
112
+ }
113
+ /**
114
+ * Get aggregated readings (hourly, daily, etc.)
115
+ *
116
+ * @param params - Aggregation parameters
117
+ * @returns Aggregated data points
118
+ */
119
+ async aggregate(params) {
120
+ const response = await this.client.request({
121
+ method: 'GET',
122
+ endpoint: '/sensor-readings/aggregate',
123
+ params: {
124
+ device_id: params.deviceId,
125
+ metric: params.metric,
126
+ start_time: params.startTime.toISOString(),
127
+ end_time: params.endTime.toISOString(),
128
+ interval: params.interval,
129
+ },
130
+ });
131
+ return response.data.map((agg) => ({
132
+ deviceId: agg.device_id,
133
+ metric: agg.metric,
134
+ startTime: new Date(agg.start_time),
135
+ endTime: new Date(agg.end_time),
136
+ count: agg.count,
137
+ avg: agg.avg,
138
+ min: agg.min,
139
+ max: agg.max,
140
+ sum: agg.sum,
141
+ interval: agg.interval,
142
+ }));
143
+ }
144
+ /**
145
+ * Subscribe to real-time readings (WebSocket)
146
+ *
147
+ * @param deviceId - Device to subscribe to
148
+ * @param callback - Handler for new readings
149
+ * @returns Subscription object
150
+ */
151
+ subscribe(deviceId, callback) {
152
+ const wsUrl = this.client.getWebSocketUrl();
153
+ const ws = new WebSocket(`${wsUrl}/sensor-readings/${deviceId}`);
154
+ ws.onmessage = (event) => {
155
+ try {
156
+ const data = JSON.parse(event.data);
157
+ callback(this.parseReading(data));
158
+ }
159
+ catch (error) {
160
+ console.error('Failed to parse WebSocket message:', error);
161
+ }
162
+ };
163
+ ws.onerror = (error) => {
164
+ console.error('WebSocket error:', error);
165
+ };
166
+ const subscription = {
167
+ unsubscribe: () => {
168
+ ws.close();
169
+ this.subscriptions.delete(deviceId);
170
+ },
171
+ isActive: () => ws.readyState === WebSocket.OPEN,
172
+ };
173
+ this.subscriptions.set(deviceId, subscription);
174
+ return subscription;
175
+ }
176
+ /**
177
+ * Unsubscribe from device updates
178
+ */
179
+ unsubscribe(deviceId) {
180
+ const sub = this.subscriptions.get(deviceId);
181
+ if (sub) {
182
+ sub.unsubscribe();
183
+ }
184
+ }
185
+ /**
186
+ * Unsubscribe from all devices
187
+ */
188
+ unsubscribeAll() {
189
+ this.subscriptions.forEach(sub => sub.unsubscribe());
190
+ this.subscriptions.clear();
191
+ }
192
+ parseReading(data) {
193
+ return {
194
+ id: data.id,
195
+ deviceId: data.device_id,
196
+ timestamp: new Date(data.timestamp),
197
+ metric: data.metric,
198
+ value: data.value,
199
+ unit: data.unit,
200
+ confidence: data.confidence,
201
+ receivedAt: new Date(data.received_at),
202
+ };
203
+ }
204
+ }
205
+ exports.SensorReadingsAPI = SensorReadingsAPI;