@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
package/package.json CHANGED
@@ -1,21 +1,9 @@
1
1
  {
2
2
  "name": "@soilsidekick/sdk",
3
- "version": "1.2.0",
4
- "description": "OpenAPI client for @soilsidekick/sdk",
5
- "author": "OpenAPI-Generator",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
9
- },
10
- "main": "./dist/index.js",
11
- "types": "./dist/index.d.ts",
12
- "module": "./dist/esm/index.js",
13
- "sideEffects": false,
14
- "scripts": {
15
- "build": "tsc && tsc -p tsconfig.esm.json",
16
- "prepare": "npm run build"
17
- },
18
- "devDependencies": {
19
- "typescript": "^4.0 || ^5.0"
3
+ "version": "2.0.0",
4
+ "publishConfig": {
5
+ "access": "public"
20
6
  }
21
7
  }
8
+
9
+
package/sdks/README.md ADDED
@@ -0,0 +1,254 @@
1
+ # LeafEngines SDK v2.0
2
+
3
+ Official TypeScript/JavaScript SDK for LeafEngines API - Agricultural intelligence platform with Skyline Instruments sensor integration.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @soilsidekick/sdk
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```typescript
14
+ import { LeafEnginesClient } from '@soilsidekick/sdk';
15
+
16
+ const client = new LeafEnginesClient({
17
+ apiKey: 'sk_live_your_api_key',
18
+ projectRef: 'your-project-ref',
19
+ });
20
+
21
+ // Register a Skyline sensor device
22
+ const device = await client.sensors.devices.register({
23
+ deviceId: 'skyline-mmWave-001',
24
+ deviceType: 'mmwave_radar',
25
+ farmId: 'farm-123',
26
+ firmwareVersion: '1.2.0',
27
+ });
28
+
29
+ console.log(`Device registered: ${device.deviceId}`);
30
+ ```
31
+
32
+ ## Sensor Integration
33
+
34
+ ### Register Devices
35
+
36
+ ```typescript
37
+ // Register new sensor
38
+ const device = await client.sensors.devices.register({
39
+ deviceId: 'skyline-001',
40
+ deviceType: 'mmwave_radar', // or 'quantum_rf', 'precision_timing'
41
+ farmId: 'farm-123',
42
+ firmwareVersion: '1.0.0',
43
+ });
44
+
45
+ // List all devices
46
+ const devices = await client.sensors.devices.list({
47
+ farmId: 'farm-123',
48
+ status: 'active',
49
+ });
50
+
51
+ // Get device details
52
+ const details = await client.sensors.devices.get('skyline-001');
53
+
54
+ // Update device
55
+ await client.sensors.devices.update('skyline-001', {
56
+ firmwareVersion: '1.1.0',
57
+ });
58
+ ```
59
+
60
+ ### Send Sensor Data
61
+
62
+ ```typescript
63
+ // Send readings via HTTP (MQTT fallback)
64
+ await client.sensors.readings.send({
65
+ deviceId: 'skyline-001',
66
+ deviceType: 'mmwave_radar',
67
+ timestamp: new Date(),
68
+ readings: [
69
+ {
70
+ metric: 'reflectivity',
71
+ value: 0.92,
72
+ unit: 'ratio',
73
+ confidence: 0.94,
74
+ timestamp: new Date(),
75
+ },
76
+ {
77
+ metric: 'canopy_density',
78
+ value: 0.78,
79
+ unit: 'ratio',
80
+ timestamp: new Date(),
81
+ },
82
+ ],
83
+ metadata: {
84
+ firmwareVersion: '1.0.0',
85
+ batteryLevel: 95,
86
+ signalStrength: -45,
87
+ },
88
+ });
89
+ ```
90
+
91
+ ### Query Historical Data
92
+
93
+ ```typescript
94
+ // Get readings for time range
95
+ const readings = await client.sensors.readings.query({
96
+ deviceId: 'skyline-001',
97
+ metric: 'reflectivity',
98
+ startTime: new Date('2026-02-01'),
99
+ endTime: new Date(),
100
+ limit: 1000,
101
+ });
102
+
103
+ // Get latest reading
104
+ const latest = await client.sensors.readings.getLatest('skyline-001', 'reflectivity');
105
+
106
+ // Get aggregated data (hourly averages)
107
+ const hourly = await client.sensors.readings.aggregate({
108
+ deviceId: 'skyline-001',
109
+ metric: 'reflectivity',
110
+ startTime: new Date('2026-02-01'),
111
+ endTime: new Date(),
112
+ interval: '1h',
113
+ });
114
+ ```
115
+
116
+ ### Real-time Streaming
117
+
118
+ ```typescript
119
+ // Subscribe to real-time readings
120
+ const subscription = client.sensors.readings.subscribe(
121
+ 'skyline-001',
122
+ (reading) => {
123
+ console.log(`New reading: ${reading.metric} = ${reading.value}`);
124
+ }
125
+ );
126
+
127
+ // Later: unsubscribe
128
+ subscription.unsubscribe();
129
+ ```
130
+
131
+ ### Alert Management
132
+
133
+ ```typescript
134
+ // Subscribe to critical alerts
135
+ client.sensors.alerts.subscribe(
136
+ (alert) => {
137
+ if (alert.severity === 'critical') {
138
+ sendEmergencyNotification(alert);
139
+ }
140
+ },
141
+ { severity: ['warning', 'critical'] }
142
+ );
143
+
144
+ // Get unacknowledged alerts
145
+ const alerts = await client.sensors.alerts.getAlerts({
146
+ acknowledged: false,
147
+ severity: 'critical',
148
+ });
149
+
150
+ // Acknowledge alert
151
+ await client.sensors.alerts.acknowledge(alerts[0].id);
152
+ ```
153
+
154
+ ## MQTT Direct Connection
155
+
156
+ For high-frequency data publishing, connect directly to MQTT broker:
157
+
158
+ ```typescript
159
+ // Connect to MQTT broker
160
+ await client.connectMQTT({
161
+ host: 'your-cluster.s1.eu.hivemq.cloud',
162
+ port: 8883,
163
+ protocol: 'mqtts',
164
+ username: 'your-username',
165
+ password: 'your-password',
166
+ });
167
+
168
+ // Publish sensor data
169
+ client.mqtt!.publish(
170
+ 'skyline/skyline-001/readings',
171
+ {
172
+ device_id: 'skyline-001',
173
+ device_type: 'mmwave_radar',
174
+ timestamp: new Date().toISOString(),
175
+ readings: [
176
+ { metric: 'reflectivity', value: 0.92, unit: 'ratio' }
177
+ ],
178
+ metadata: { firmware_version: '1.0.0' },
179
+ }
180
+ );
181
+
182
+ // Subscribe to topics
183
+ client.mqtt!.subscribe('skyline/+/status', (message) => {
184
+ console.log('Device status:', message);
185
+ });
186
+
187
+ // Monitor connection
188
+ client.mqtt!.onStatusChange((status) => {
189
+ console.log('MQTT status:', status);
190
+ });
191
+
192
+ // Disconnect when done
193
+ client.disconnectMQTT();
194
+ ```
195
+
196
+ ## Error Handling
197
+
198
+ ```typescript
199
+ import { LeafEnginesError } from '@soilsidekick/sdk';
200
+
201
+ try {
202
+ await client.sensors.devices.get('unknown-device');
203
+ } catch (error) {
204
+ if (error instanceof LeafEnginesError) {
205
+ console.error(`API Error ${error.code}: ${error.message}`);
206
+ console.error('Details:', error.details);
207
+ }
208
+ }
209
+ ```
210
+
211
+ ## Configuration Options
212
+
213
+ ```typescript
214
+ const client = new LeafEnginesClient({
215
+ apiKey: 'your-api-key',
216
+ projectRef: 'your-project-ref',
217
+ environment: 'production', // or 'sandbox'
218
+ baseUrl: 'https://custom-endpoint.com', // Optional
219
+ timeout: 30000, // Request timeout in ms
220
+ });
221
+ ```
222
+
223
+ ## TypeScript Support
224
+
225
+ Full TypeScript definitions included:
226
+
227
+ ```typescript
228
+ import {
229
+ LeafEnginesClient,
230
+ SensorDevice,
231
+ SensorReading,
232
+ SensorAlert,
233
+ DeviceType,
234
+ AlertSeverity,
235
+ } from '@soilsidekick/sdk';
236
+ ```
237
+
238
+ ## API Reference
239
+
240
+ See [SDK_V2_UPGRADE_SPEC.md](../SDK_V2_UPGRADE_SPEC.md) for complete API specification.
241
+
242
+ ## Changelog
243
+
244
+ ### v2.0.0 (February 2026)
245
+ - ✨ Skyline Instruments sensor integration
246
+ - ✨ Sensor device management API
247
+ - ✨ Real-time data streaming (WebSocket)
248
+ - ✨ MQTT direct broker connection
249
+ - ✨ Alert management system
250
+ - ✨ Historical data aggregation
251
+
252
+ ## License
253
+
254
+ MIT © SoilSidekick Pro
@@ -0,0 +1,87 @@
1
+ import { SensorDevicesAPI } from '../sensors/devices';
2
+ import { LeafEnginesClient } from '../client';
3
+
4
+ describe('SensorDevicesAPI', () => {
5
+ let client: LeafEnginesClient;
6
+ let devices: SensorDevicesAPI;
7
+
8
+ beforeEach(() => {
9
+ client = new LeafEnginesClient({
10
+ apiKey: 'test-api-key',
11
+ projectRef: 'test-project',
12
+ });
13
+ devices = new SensorDevicesAPI(client);
14
+ });
15
+
16
+ describe('register', () => {
17
+ it('should register a new device', async () => {
18
+ const mockResponse = {
19
+ id: 'uuid-123',
20
+ device_id: 'skyline-001',
21
+ device_type: 'mmwave_radar',
22
+ firmware_version: '1.0.0',
23
+ status: 'active',
24
+ last_seen_at: new Date().toISOString(),
25
+ created_at: new Date().toISOString(),
26
+ updated_at: new Date().toISOString(),
27
+ };
28
+
29
+ jest.spyOn(client, 'request').mockResolvedValue({ data: mockResponse });
30
+
31
+ const result = await devices.register({
32
+ deviceId: 'skyline-001',
33
+ deviceType: 'mmwave_radar',
34
+ firmwareVersion: '1.0.0',
35
+ });
36
+
37
+ expect(result.deviceId).toBe('skyline-001');
38
+ expect(result.deviceType).toBe('mmwave_radar');
39
+ expect(result.status).toBe('active');
40
+ });
41
+ });
42
+
43
+ describe('get', () => {
44
+ it('should retrieve device by ID', async () => {
45
+ const mockResponse = {
46
+ id: 'uuid-123',
47
+ device_id: 'skyline-001',
48
+ device_type: 'mmwave_radar',
49
+ firmware_version: '1.0.0',
50
+ status: 'active',
51
+ last_seen_at: new Date().toISOString(),
52
+ created_at: new Date().toISOString(),
53
+ updated_at: new Date().toISOString(),
54
+ };
55
+
56
+ jest.spyOn(client, 'request').mockResolvedValue({ data: mockResponse });
57
+
58
+ const result = await devices.get('skyline-001');
59
+
60
+ expect(result.deviceId).toBe('skyline-001');
61
+ });
62
+ });
63
+
64
+ describe('list', () => {
65
+ it('should list all devices', async () => {
66
+ const mockResponse = [
67
+ {
68
+ id: 'uuid-1',
69
+ device_id: 'skyline-001',
70
+ device_type: 'mmwave_radar',
71
+ firmware_version: '1.0.0',
72
+ status: 'active',
73
+ last_seen_at: new Date().toISOString(),
74
+ created_at: new Date().toISOString(),
75
+ updated_at: new Date().toISOString(),
76
+ },
77
+ ];
78
+
79
+ jest.spyOn(client, 'request').mockResolvedValue({ data: mockResponse });
80
+
81
+ const results = await devices.list();
82
+
83
+ expect(results).toHaveLength(1);
84
+ expect(results[0].deviceId).toBe('skyline-001');
85
+ });
86
+ });
87
+ });
package/sdks/client.ts ADDED
@@ -0,0 +1,198 @@
1
+ import {
2
+ ClientConfig,
3
+ RequestOptions,
4
+ APIResponse,
5
+ APIError,
6
+ MQTTConfig,
7
+ } from './types';
8
+
9
+ import {
10
+ SensorDevicesAPI,
11
+ SensorReadingsAPI,
12
+ SensorAlertsAPI,
13
+ MQTTClient,
14
+ } from './sensors';
15
+
16
+ /**
17
+ * LeafEngines SDK Client v2.0
18
+ *
19
+ * Main entry point for all API interactions
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { LeafEnginesClient } from '@leafengines/sdk';
24
+ *
25
+ * const client = new LeafEnginesClient({
26
+ * apiKey: 'sk_live_xxx',
27
+ * projectRef: 'wzgnxkoeqzvueypwzvyn',
28
+ * });
29
+ *
30
+ * // Register a sensor device
31
+ * const device = await client.sensors.devices.register({
32
+ * deviceId: 'skyline-001',
33
+ * deviceType: 'mmwave_radar',
34
+ * firmwareVersion: '1.0.0',
35
+ * });
36
+ *
37
+ * // Query readings
38
+ * const readings = await client.sensors.readings.query({
39
+ * deviceId: 'skyline-001',
40
+ * startTime: new Date('2026-02-01'),
41
+ * endTime: new Date(),
42
+ * });
43
+ * ```
44
+ */
45
+ export class LeafEnginesClient {
46
+ private config: ClientConfig;
47
+ private baseUrl: string;
48
+
49
+ /**
50
+ * Sensor APIs (NEW in v2.0)
51
+ */
52
+ public sensors: {
53
+ devices: SensorDevicesAPI;
54
+ readings: SensorReadingsAPI;
55
+ alerts: SensorAlertsAPI;
56
+ };
57
+
58
+ /**
59
+ * MQTT Client (optional, for direct broker access)
60
+ */
61
+ public mqtt: MQTTClient | null = null;
62
+
63
+ constructor(config: ClientConfig) {
64
+ this.config = {
65
+ environment: 'production',
66
+ timeout: 30000,
67
+ ...config,
68
+ };
69
+
70
+ this.baseUrl = config.baseUrl || `https://${config.projectRef}.supabase.co/functions/v1`;
71
+
72
+ // Initialize sensor APIs
73
+ this.sensors = {
74
+ devices: new SensorDevicesAPI(this),
75
+ readings: new SensorReadingsAPI(this),
76
+ alerts: new SensorAlertsAPI(this),
77
+ };
78
+ }
79
+
80
+ /**
81
+ * Connect to MQTT broker for high-frequency data publishing
82
+ *
83
+ * @param config - MQTT connection configuration
84
+ * @example
85
+ * ```typescript
86
+ * await client.connectMQTT({
87
+ * host: 'xxx.s1.eu.hivemq.cloud',
88
+ * port: 8883,
89
+ * protocol: 'mqtts',
90
+ * username: 'your-username',
91
+ * password: 'your-password',
92
+ * });
93
+ *
94
+ * // Publish directly to MQTT
95
+ * client.mqtt!.publish('skyline/device-001/readings', {
96
+ * device_id: 'device-001',
97
+ * readings: [{ metric: 'reflectivity', value: 0.92 }],
98
+ * });
99
+ * ```
100
+ */
101
+ async connectMQTT(config: MQTTConfig): Promise<void> {
102
+ this.mqtt = new MQTTClient(config);
103
+ await this.mqtt.connect();
104
+ }
105
+
106
+ /**
107
+ * Disconnect from MQTT broker
108
+ */
109
+ disconnectMQTT(): void {
110
+ if (this.mqtt) {
111
+ this.mqtt.disconnect();
112
+ this.mqtt = null;
113
+ }
114
+ }
115
+
116
+ /**
117
+ * Internal request method
118
+ * Not intended for direct use - used by API classes
119
+ */
120
+ async request<T>(options: RequestOptions): Promise<T> {
121
+ const url = new URL(options.endpoint, this.baseUrl);
122
+
123
+ // Add query params
124
+ if (options.params) {
125
+ Object.entries(options.params).forEach(([key, value]) => {
126
+ if (value !== undefined && value !== null) {
127
+ url.searchParams.append(key, String(value));
128
+ }
129
+ });
130
+ }
131
+
132
+ // Prepare headers
133
+ const headers: Record<string, string> = {
134
+ 'Content-Type': 'application/json',
135
+ 'Authorization': `Bearer ${this.config.apiKey}`,
136
+ ...options.headers,
137
+ };
138
+
139
+ // Make request
140
+ const response = await fetch(url.toString(), {
141
+ method: options.method,
142
+ headers,
143
+ body: options.body ? JSON.stringify(options.body) : undefined,
144
+ });
145
+
146
+ // Handle errors
147
+ if (!response.ok) {
148
+ const error = await this.parseError(response);
149
+ throw new LeafEnginesError(error);
150
+ }
151
+
152
+ // Parse response
153
+ const data = await response.json();
154
+ return data as T;
155
+ }
156
+
157
+ /**
158
+ * Get WebSocket URL for real-time subscriptions
159
+ */
160
+ getWebSocketUrl(): string {
161
+ return `wss://${this.config.projectRef}.supabase.co/realtime/v1`;
162
+ }
163
+
164
+ private async parseError(response: Response): Promise<APIError> {
165
+ try {
166
+ const data = await response.json();
167
+ return {
168
+ code: data.code || `HTTP_${response.status}`,
169
+ message: data.message || response.statusText,
170
+ details: data.details,
171
+ };
172
+ } catch {
173
+ return {
174
+ code: `HTTP_${response.status}`,
175
+ message: response.statusText,
176
+ };
177
+ }
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Custom error class for LeafEngines API errors
183
+ */
184
+ export class LeafEnginesError extends Error {
185
+ code: string;
186
+ details?: Record<string, any>;
187
+
188
+ constructor(error: APIError) {
189
+ super(error.message);
190
+ this.name = 'LeafEnginesError';
191
+ this.code = error.code;
192
+ this.details = error.details;
193
+ }
194
+ }
195
+
196
+ // Re-export types for convenience
197
+ export * from './types';
198
+ export * from './sensors';
@@ -0,0 +1,94 @@
1
+ import { ClientConfig, RequestOptions, APIError, MQTTConfig } from './types';
2
+ import { SensorDevicesAPI, SensorReadingsAPI, SensorAlertsAPI, MQTTClient } from './sensors';
3
+ /**
4
+ * LeafEngines SDK Client v2.0
5
+ *
6
+ * Main entry point for all API interactions
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { LeafEnginesClient } from '@leafengines/sdk';
11
+ *
12
+ * const client = new LeafEnginesClient({
13
+ * apiKey: 'sk_live_xxx',
14
+ * projectRef: 'wzgnxkoeqzvueypwzvyn',
15
+ * });
16
+ *
17
+ * // Register a sensor device
18
+ * const device = await client.sensors.devices.register({
19
+ * deviceId: 'skyline-001',
20
+ * deviceType: 'mmwave_radar',
21
+ * firmwareVersion: '1.0.0',
22
+ * });
23
+ *
24
+ * // Query readings
25
+ * const readings = await client.sensors.readings.query({
26
+ * deviceId: 'skyline-001',
27
+ * startTime: new Date('2026-02-01'),
28
+ * endTime: new Date(),
29
+ * });
30
+ * ```
31
+ */
32
+ export declare class LeafEnginesClient {
33
+ private config;
34
+ private baseUrl;
35
+ /**
36
+ * Sensor APIs (NEW in v2.0)
37
+ */
38
+ sensors: {
39
+ devices: SensorDevicesAPI;
40
+ readings: SensorReadingsAPI;
41
+ alerts: SensorAlertsAPI;
42
+ };
43
+ /**
44
+ * MQTT Client (optional, for direct broker access)
45
+ */
46
+ mqtt: MQTTClient | null;
47
+ constructor(config: ClientConfig);
48
+ /**
49
+ * Connect to MQTT broker for high-frequency data publishing
50
+ *
51
+ * @param config - MQTT connection configuration
52
+ * @example
53
+ * ```typescript
54
+ * await client.connectMQTT({
55
+ * host: 'xxx.s1.eu.hivemq.cloud',
56
+ * port: 8883,
57
+ * protocol: 'mqtts',
58
+ * username: 'your-username',
59
+ * password: 'your-password',
60
+ * });
61
+ *
62
+ * // Publish directly to MQTT
63
+ * client.mqtt!.publish('skyline/device-001/readings', {
64
+ * device_id: 'device-001',
65
+ * readings: [{ metric: 'reflectivity', value: 0.92 }],
66
+ * });
67
+ * ```
68
+ */
69
+ connectMQTT(config: MQTTConfig): Promise<void>;
70
+ /**
71
+ * Disconnect from MQTT broker
72
+ */
73
+ disconnectMQTT(): void;
74
+ /**
75
+ * Internal request method
76
+ * Not intended for direct use - used by API classes
77
+ */
78
+ request<T>(options: RequestOptions): Promise<T>;
79
+ /**
80
+ * Get WebSocket URL for real-time subscriptions
81
+ */
82
+ getWebSocketUrl(): string;
83
+ private parseError;
84
+ }
85
+ /**
86
+ * Custom error class for LeafEngines API errors
87
+ */
88
+ export declare class LeafEnginesError extends Error {
89
+ code: string;
90
+ details?: Record<string, any>;
91
+ constructor(error: APIError);
92
+ }
93
+ export * from './types';
94
+ export * from './sensors';