edge-impulse-linux 1.5.0 → 1.6.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 (266) hide show
  1. package/README.md +10 -0
  2. package/build/cli/config.js +35 -4
  3. package/build/cli/config.js.map +1 -1
  4. package/build/cli/linux/runner.js +55 -6
  5. package/build/cli/linux/runner.js.map +1 -1
  6. package/build/cli/linux/webserver/public/inference-server.js +75 -3
  7. package/build/cli/linux/webserver/public/inference-server.js.map +1 -1
  8. package/build/cli/linux/webserver/views/inference-server-view.d.ts +11 -2
  9. package/build/cli/linux/webserver/views/inference-server-view.js +38 -12
  10. package/build/cli/linux/webserver/views/inference-server-view.js.map +1 -1
  11. package/build/debug.d.ts +1 -0
  12. package/build/debug.js +26 -0
  13. package/build/debug.js.map +1 -0
  14. package/build/library/classifier/image-classifier.d.ts +6 -2
  15. package/build/library/classifier/image-classifier.js +19 -4
  16. package/build/library/classifier/image-classifier.js.map +1 -1
  17. package/build/sdk/studio/sdk/api/adminApi.d.ts +36 -0
  18. package/build/sdk/studio/sdk/api/adminApi.js +243 -0
  19. package/build/sdk/studio/sdk/api/adminApi.js.map +1 -1
  20. package/build/sdk/studio/sdk/api/classifyApi.d.ts +13 -0
  21. package/build/sdk/studio/sdk/api/classifyApi.js +85 -0
  22. package/build/sdk/studio/sdk/api/classifyApi.js.map +1 -1
  23. package/build/sdk/studio/sdk/api/dSPApi.d.ts +6 -6
  24. package/build/sdk/studio/sdk/api/dSPApi.js +3 -15
  25. package/build/sdk/studio/sdk/api/dSPApi.js.map +1 -1
  26. package/build/sdk/studio/sdk/api/organizationBlocksApi.d.ts +95 -2
  27. package/build/sdk/studio/sdk/api/organizationBlocksApi.js +634 -2
  28. package/build/sdk/studio/sdk/api/organizationBlocksApi.js.map +1 -1
  29. package/build/sdk/studio/sdk/api/organizationDataApi.d.ts +27 -0
  30. package/build/sdk/studio/sdk/api/organizationDataApi.js +166 -0
  31. package/build/sdk/studio/sdk/api/organizationDataApi.js.map +1 -1
  32. package/build/sdk/studio/sdk/api/organizationsApi.d.ts +83 -43
  33. package/build/sdk/studio/sdk/api/organizationsApi.js +273 -43
  34. package/build/sdk/studio/sdk/api/organizationsApi.js.map +1 -1
  35. package/build/sdk/studio/sdk/api/projectsApi.d.ts +46 -0
  36. package/build/sdk/studio/sdk/api/projectsApi.js +301 -0
  37. package/build/sdk/studio/sdk/api/projectsApi.js.map +1 -1
  38. package/build/sdk/studio/sdk/api/rawDataApi.d.ts +28 -4
  39. package/build/sdk/studio/sdk/api/rawDataApi.js +51 -7
  40. package/build/sdk/studio/sdk/api/rawDataApi.js.map +1 -1
  41. package/build/sdk/studio/sdk/api/userApi.d.ts +33 -0
  42. package/build/sdk/studio/sdk/api/userApi.js +213 -0
  43. package/build/sdk/studio/sdk/api/userApi.js.map +1 -1
  44. package/build/sdk/studio/sdk/model/addOrganizationTransformationBlockRequest.d.ts +1 -1
  45. package/build/sdk/studio/sdk/model/addOrganizationTransformationBlockRequest.js +1 -1
  46. package/build/sdk/studio/sdk/model/addOrganizationTransformationBlockRequest.js.map +1 -1
  47. package/build/sdk/studio/sdk/model/adminApiUser.d.ts +4 -0
  48. package/build/sdk/studio/sdk/model/adminApiUser.js +5 -0
  49. package/build/sdk/studio/sdk/model/adminApiUser.js.map +1 -1
  50. package/build/sdk/studio/sdk/model/adminCreateOrganizationDataExportRequest.d.ts +36 -0
  51. package/build/sdk/studio/sdk/model/adminCreateOrganizationDataExportRequest.js +42 -0
  52. package/build/sdk/studio/sdk/model/adminCreateOrganizationDataExportRequest.js.map +1 -0
  53. package/build/sdk/studio/sdk/model/adminGetOrganizationUsageReportsResponse.d.ts +1 -1
  54. package/build/sdk/studio/sdk/model/adminGetOrganizationUsageReportsResponseAllOf.d.ts +1 -1
  55. package/build/sdk/studio/sdk/model/adminUpdateOrganizationDataExportRequest.d.ts +32 -0
  56. package/build/sdk/studio/sdk/model/adminUpdateOrganizationDataExportRequest.js +37 -0
  57. package/build/sdk/studio/sdk/model/adminUpdateOrganizationDataExportRequest.js.map +1 -0
  58. package/build/sdk/studio/sdk/model/deploymentTargetEngine.d.ts +1 -1
  59. package/build/sdk/studio/sdk/model/deploymentTargetEngine.js +1 -1
  60. package/build/sdk/studio/sdk/model/deploymentTargetEngine.js.map +1 -1
  61. package/build/sdk/studio/sdk/model/exportBlockResponse.d.ts +37 -0
  62. package/build/sdk/studio/sdk/model/exportBlockResponse.js +47 -0
  63. package/build/sdk/studio/sdk/model/exportBlockResponse.js.map +1 -0
  64. package/build/sdk/studio/sdk/model/exportBlockResponseAllOf.d.ts +29 -0
  65. package/build/sdk/studio/sdk/model/exportBlockResponseAllOf.js +37 -0
  66. package/build/sdk/studio/sdk/model/exportBlockResponseAllOf.js.map +1 -0
  67. package/build/sdk/studio/sdk/model/getCsvWizardUploadedFileInfo.d.ts +34 -0
  68. package/build/sdk/studio/sdk/model/getCsvWizardUploadedFileInfo.js +47 -0
  69. package/build/sdk/studio/sdk/model/getCsvWizardUploadedFileInfo.js.map +1 -0
  70. package/build/sdk/studio/sdk/model/getCsvWizardUploadedFileInfoAllOf.d.ts +26 -0
  71. package/build/sdk/studio/sdk/model/getCsvWizardUploadedFileInfoAllOf.js +37 -0
  72. package/build/sdk/studio/sdk/model/getCsvWizardUploadedFileInfoAllOf.js.map +1 -0
  73. package/build/sdk/studio/sdk/model/getJWTRequest.d.ts +4 -0
  74. package/build/sdk/studio/sdk/model/getJWTRequest.js +5 -0
  75. package/build/sdk/studio/sdk/model/getJWTRequest.js.map +1 -1
  76. package/build/sdk/studio/sdk/model/getOrganizationBucketResponse.d.ts +34 -0
  77. package/build/sdk/studio/sdk/model/getOrganizationBucketResponse.js +42 -0
  78. package/build/sdk/studio/sdk/model/getOrganizationBucketResponse.js.map +1 -0
  79. package/build/sdk/studio/sdk/model/getOrganizationBucketResponseAllOf.d.ts +26 -0
  80. package/build/sdk/studio/sdk/model/getOrganizationBucketResponseAllOf.js +32 -0
  81. package/build/sdk/studio/sdk/model/getOrganizationBucketResponseAllOf.js.map +1 -0
  82. package/build/sdk/studio/sdk/model/getOrganizationDataExportResponse.d.ts +34 -0
  83. package/build/sdk/studio/sdk/model/getOrganizationDataExportResponse.js +42 -0
  84. package/build/sdk/studio/sdk/model/getOrganizationDataExportResponse.js.map +1 -0
  85. package/build/sdk/studio/sdk/model/getOrganizationDataExportResponseAllOf.d.ts +26 -0
  86. package/build/sdk/studio/sdk/model/getOrganizationDataExportResponseAllOf.js +32 -0
  87. package/build/sdk/studio/sdk/model/getOrganizationDataExportResponseAllOf.js.map +1 -0
  88. package/build/sdk/studio/sdk/model/getOrganizationDataExportsResponse.d.ts +38 -0
  89. package/build/sdk/studio/sdk/model/getOrganizationDataExportsResponse.js +47 -0
  90. package/build/sdk/studio/sdk/model/getOrganizationDataExportsResponse.js.map +1 -0
  91. package/build/sdk/studio/sdk/model/getOrganizationDataExportsResponseAllOf.d.ts +30 -0
  92. package/build/sdk/studio/sdk/model/getOrganizationDataExportsResponseAllOf.js +37 -0
  93. package/build/sdk/studio/sdk/model/getOrganizationDataExportsResponseAllOf.js.map +1 -0
  94. package/build/sdk/studio/sdk/model/getOrganizationDeployBlockResponse.d.ts +34 -0
  95. package/build/sdk/studio/sdk/model/getOrganizationDeployBlockResponse.js +42 -0
  96. package/build/sdk/studio/sdk/model/getOrganizationDeployBlockResponse.js.map +1 -0
  97. package/build/sdk/studio/sdk/model/getOrganizationDeployBlockResponseAllOf.d.ts +26 -0
  98. package/build/sdk/studio/sdk/model/getOrganizationDeployBlockResponseAllOf.js +32 -0
  99. package/build/sdk/studio/sdk/model/getOrganizationDeployBlockResponseAllOf.js.map +1 -0
  100. package/build/sdk/studio/sdk/model/getOrganizationDspBlockResponse.d.ts +34 -0
  101. package/build/sdk/studio/sdk/model/getOrganizationDspBlockResponse.js +42 -0
  102. package/build/sdk/studio/sdk/model/getOrganizationDspBlockResponse.js.map +1 -0
  103. package/build/sdk/studio/sdk/model/getOrganizationDspBlockResponseAllOf.d.ts +26 -0
  104. package/build/sdk/studio/sdk/model/getOrganizationDspBlockResponseAllOf.js +32 -0
  105. package/build/sdk/studio/sdk/model/getOrganizationDspBlockResponseAllOf.js.map +1 -0
  106. package/build/sdk/studio/sdk/model/getOrganizationTransferLearningBlockResponse.d.ts +34 -0
  107. package/build/sdk/studio/sdk/model/getOrganizationTransferLearningBlockResponse.js +42 -0
  108. package/build/sdk/studio/sdk/model/getOrganizationTransferLearningBlockResponse.js.map +1 -0
  109. package/build/sdk/studio/sdk/model/getOrganizationTransferLearningBlockResponseAllOf.d.ts +26 -0
  110. package/build/sdk/studio/sdk/model/getOrganizationTransferLearningBlockResponseAllOf.js +32 -0
  111. package/build/sdk/studio/sdk/model/getOrganizationTransferLearningBlockResponseAllOf.js.map +1 -0
  112. package/build/sdk/studio/sdk/model/getOrganizationTransformationBlockResponse.d.ts +34 -0
  113. package/build/sdk/studio/sdk/model/getOrganizationTransformationBlockResponse.js +42 -0
  114. package/build/sdk/studio/sdk/model/getOrganizationTransformationBlockResponse.js.map +1 -0
  115. package/build/sdk/studio/sdk/model/getOrganizationTransformationBlockResponseAllOf.d.ts +26 -0
  116. package/build/sdk/studio/sdk/model/getOrganizationTransformationBlockResponseAllOf.js +32 -0
  117. package/build/sdk/studio/sdk/model/getOrganizationTransformationBlockResponseAllOf.js.map +1 -0
  118. package/build/sdk/studio/sdk/model/getUserResponse.d.ts +4 -0
  119. package/build/sdk/studio/sdk/model/getUserResponse.js +5 -0
  120. package/build/sdk/studio/sdk/model/getUserResponse.js.map +1 -1
  121. package/build/sdk/studio/sdk/model/imageInputScaling.d.ts +2 -2
  122. package/build/sdk/studio/sdk/model/imageInputScaling.js +1 -1
  123. package/build/sdk/studio/sdk/model/imageInputScaling.js.map +1 -1
  124. package/build/sdk/studio/sdk/model/kerasModelMetadataMetricsOnDevicePerformance.d.ts +1 -0
  125. package/build/sdk/studio/sdk/model/kerasModelMetadataMetricsOnDevicePerformance.js +5 -0
  126. package/build/sdk/studio/sdk/model/kerasModelMetadataMetricsOnDevicePerformance.js.map +1 -1
  127. package/build/sdk/studio/sdk/model/kerasResponse.d.ts +4 -6
  128. package/build/sdk/studio/sdk/model/kerasResponse.js +7 -7
  129. package/build/sdk/studio/sdk/model/kerasResponse.js.map +1 -1
  130. package/build/sdk/studio/sdk/model/kerasResponseAllOf.d.ts +4 -6
  131. package/build/sdk/studio/sdk/model/kerasResponseAllOf.js +7 -7
  132. package/build/sdk/studio/sdk/model/kerasResponseAllOf.js.map +1 -1
  133. package/build/sdk/studio/sdk/model/listOrganizationBucketsResponse.d.ts +2 -2
  134. package/build/sdk/studio/sdk/model/listOrganizationBucketsResponse.js +1 -1
  135. package/build/sdk/studio/sdk/model/listOrganizationBucketsResponse.js.map +1 -1
  136. package/build/sdk/studio/sdk/model/listOrganizationBucketsResponseAllOf.d.ts +2 -2
  137. package/build/sdk/studio/sdk/model/listOrganizationBucketsResponseAllOf.js +1 -1
  138. package/build/sdk/studio/sdk/model/listOrganizationBucketsResponseAllOf.js.map +1 -1
  139. package/build/sdk/studio/sdk/model/listOrganizationUsageReportsResponseAllOf.d.ts +30 -0
  140. package/build/sdk/studio/sdk/model/listOrganizationUsageReportsResponseAllOf.js +37 -0
  141. package/build/sdk/studio/sdk/model/listOrganizationUsageReportsResponseAllOf.js.map +1 -0
  142. package/build/sdk/studio/sdk/model/listPortalFilesInFolderRequest.d.ts +9 -1
  143. package/build/sdk/studio/sdk/model/listPortalFilesInFolderRequest.js +10 -0
  144. package/build/sdk/studio/sdk/model/listPortalFilesInFolderRequest.js.map +1 -1
  145. package/build/sdk/studio/sdk/model/modelEngineShortEnum.d.ts +13 -0
  146. package/build/sdk/studio/sdk/model/modelEngineShortEnum.js +16 -0
  147. package/build/sdk/studio/sdk/model/modelEngineShortEnum.js.map +1 -0
  148. package/build/sdk/studio/sdk/model/models.d.ts +34 -1
  149. package/build/sdk/studio/sdk/model/models.js +102 -8
  150. package/build/sdk/studio/sdk/model/models.js.map +1 -1
  151. package/build/sdk/studio/sdk/model/organizationBucket.d.ts +49 -0
  152. package/build/sdk/studio/sdk/model/organizationBucket.js +62 -0
  153. package/build/sdk/studio/sdk/model/organizationBucket.js.map +1 -0
  154. package/build/sdk/studio/sdk/model/organizationCreateProject.d.ts +2 -3
  155. package/build/sdk/studio/sdk/model/organizationCreateProject.js +2 -3
  156. package/build/sdk/studio/sdk/model/organizationCreateProject.js.map +1 -1
  157. package/build/sdk/studio/sdk/model/organizationCreateProjectOutputDatasetPathRule.d.ts +16 -0
  158. package/build/sdk/studio/sdk/model/organizationCreateProjectOutputDatasetPathRule.js +16 -0
  159. package/build/sdk/studio/sdk/model/organizationCreateProjectOutputDatasetPathRule.js.map +1 -0
  160. package/build/sdk/studio/sdk/model/organizationCreateProjectPathFilter.d.ts +35 -0
  161. package/build/sdk/studio/sdk/model/organizationCreateProjectPathFilter.js +40 -0
  162. package/build/sdk/studio/sdk/model/organizationCreateProjectPathFilter.js.map +1 -0
  163. package/build/sdk/studio/sdk/model/organizationCreateProjectRequest.d.ts +17 -0
  164. package/build/sdk/studio/sdk/model/organizationCreateProjectRequest.js +15 -0
  165. package/build/sdk/studio/sdk/model/organizationCreateProjectRequest.js.map +1 -1
  166. package/build/sdk/studio/sdk/model/organizationCreateProjectWithFiles.d.ts +2 -3
  167. package/build/sdk/studio/sdk/model/organizationCreateProjectWithFiles.js +2 -3
  168. package/build/sdk/studio/sdk/model/organizationCreateProjectWithFiles.js.map +1 -1
  169. package/build/sdk/studio/sdk/model/organizationCreateProjectWithFilesAllOfFiles.d.ts +4 -2
  170. package/build/sdk/studio/sdk/model/organizationCreateProjectWithFilesAllOfFiles.js +9 -8
  171. package/build/sdk/studio/sdk/model/organizationCreateProjectWithFilesAllOfFiles.js.map +1 -1
  172. package/build/sdk/studio/sdk/model/organizationDataExport.d.ts +35 -0
  173. package/build/sdk/studio/sdk/model/organizationDataExport.js +52 -0
  174. package/build/sdk/studio/sdk/model/organizationDataExport.js.map +1 -0
  175. package/build/sdk/studio/sdk/model/organizationDataset.d.ts +4 -0
  176. package/build/sdk/studio/sdk/model/organizationDataset.js +5 -0
  177. package/build/sdk/studio/sdk/model/organizationDataset.js.map +1 -1
  178. package/build/sdk/studio/sdk/model/organizationDeployBlock.d.ts +1 -0
  179. package/build/sdk/studio/sdk/model/organizationDeployBlock.js +5 -0
  180. package/build/sdk/studio/sdk/model/organizationDeployBlock.js.map +1 -1
  181. package/build/sdk/studio/sdk/model/organizationDspBlock.d.ts +1 -0
  182. package/build/sdk/studio/sdk/model/organizationDspBlock.js +5 -0
  183. package/build/sdk/studio/sdk/model/organizationDspBlock.js.map +1 -1
  184. package/build/sdk/studio/sdk/model/organizationGetCreateProjectsResponseAllOfJobs.d.ts +2 -3
  185. package/build/sdk/studio/sdk/model/organizationGetCreateProjectsResponseAllOfJobs.js +2 -3
  186. package/build/sdk/studio/sdk/model/organizationGetCreateProjectsResponseAllOfJobs.js.map +1 -1
  187. package/build/sdk/studio/sdk/model/organizationPipelineStep.d.ts +11 -0
  188. package/build/sdk/studio/sdk/model/organizationPipelineStep.js +15 -0
  189. package/build/sdk/studio/sdk/model/organizationPipelineStep.js.map +1 -1
  190. package/build/sdk/studio/sdk/model/organizationTransferLearningBlock.d.ts +1 -0
  191. package/build/sdk/studio/sdk/model/organizationTransferLearningBlock.js +5 -0
  192. package/build/sdk/studio/sdk/model/organizationTransferLearningBlock.js.map +1 -1
  193. package/build/sdk/studio/sdk/model/organizationTransformationBlock.d.ts +3 -3
  194. package/build/sdk/studio/sdk/model/organizationTransformationBlock.js +7 -3
  195. package/build/sdk/studio/sdk/model/organizationTransformationBlock.js.map +1 -1
  196. package/build/sdk/studio/sdk/model/organizationUser.d.ts +4 -0
  197. package/build/sdk/studio/sdk/model/organizationUser.js +5 -0
  198. package/build/sdk/studio/sdk/model/organizationUser.js.map +1 -1
  199. package/build/sdk/studio/sdk/model/profileModelInfoMemory.d.ts +1 -0
  200. package/build/sdk/studio/sdk/model/profileModelInfoMemory.js +5 -0
  201. package/build/sdk/studio/sdk/model/profileModelInfoMemory.js.map +1 -1
  202. package/build/sdk/studio/sdk/model/profileModelTableMcuMemory.d.ts +1 -0
  203. package/build/sdk/studio/sdk/model/profileModelTableMcuMemory.js +5 -0
  204. package/build/sdk/studio/sdk/model/profileModelTableMcuMemory.js.map +1 -1
  205. package/build/sdk/studio/sdk/model/project.d.ts +4 -0
  206. package/build/sdk/studio/sdk/model/project.js +5 -0
  207. package/build/sdk/studio/sdk/model/project.js.map +1 -1
  208. package/build/sdk/studio/sdk/model/projectCollaborator.d.ts +4 -0
  209. package/build/sdk/studio/sdk/model/projectCollaborator.js +5 -0
  210. package/build/sdk/studio/sdk/model/projectCollaborator.js.map +1 -1
  211. package/build/sdk/studio/sdk/model/projectInfoResponseAllOfAcquisitionSettings.d.ts +18 -0
  212. package/build/sdk/studio/sdk/model/projectInfoResponseAllOfAcquisitionSettings.js +22 -1
  213. package/build/sdk/studio/sdk/model/projectInfoResponseAllOfAcquisitionSettings.js.map +1 -1
  214. package/build/sdk/studio/sdk/model/projectInfoResponseAllOfDeploySettings.d.ts +2 -0
  215. package/build/sdk/studio/sdk/model/projectInfoResponseAllOfDeploySettings.js +5 -0
  216. package/build/sdk/studio/sdk/model/projectInfoResponseAllOfDeploySettings.js.map +1 -1
  217. package/build/sdk/studio/sdk/model/sample.d.ts +4 -0
  218. package/build/sdk/studio/sdk/model/sample.js +5 -0
  219. package/build/sdk/studio/sdk/model/sample.js.map +1 -1
  220. package/build/sdk/studio/sdk/model/setKerasParameterRequest.d.ts +4 -6
  221. package/build/sdk/studio/sdk/model/setKerasParameterRequest.js +7 -7
  222. package/build/sdk/studio/sdk/model/setKerasParameterRequest.js.map +1 -1
  223. package/build/sdk/studio/sdk/model/targetConstraintsDevice.d.ts +0 -4
  224. package/build/sdk/studio/sdk/model/targetConstraintsDevice.js +0 -5
  225. package/build/sdk/studio/sdk/model/targetConstraintsDevice.js.map +1 -1
  226. package/build/sdk/studio/sdk/model/transformationJobOperatesOnEnum.d.ts +13 -0
  227. package/build/sdk/studio/sdk/model/transformationJobOperatesOnEnum.js +16 -0
  228. package/build/sdk/studio/sdk/model/transformationJobOperatesOnEnum.js.map +1 -0
  229. package/build/sdk/studio/sdk/model/updateOrganizationTransformationBlockRequest.d.ts +2 -3
  230. package/build/sdk/studio/sdk/model/updateOrganizationTransformationBlockRequest.js +2 -3
  231. package/build/sdk/studio/sdk/model/updateOrganizationTransformationBlockRequest.js.map +1 -1
  232. package/build/sdk/studio/sdk/model/updateProjectRequest.d.ts +21 -1
  233. package/build/sdk/studio/sdk/model/updateProjectRequest.js +27 -1
  234. package/build/sdk/studio/sdk/model/updateProjectRequest.js.map +1 -1
  235. package/build/sdk/studio/sdk/model/uploadCsvWizardUploadedFileRequest.d.ts +33 -0
  236. package/build/sdk/studio/sdk/model/uploadCsvWizardUploadedFileRequest.js +32 -0
  237. package/build/sdk/studio/sdk/model/uploadCsvWizardUploadedFileRequest.js.map +1 -0
  238. package/build/sdk/studio/sdk/model/user.d.ts +4 -0
  239. package/build/sdk/studio/sdk/model/user.js +5 -0
  240. package/build/sdk/studio/sdk/model/user.js.map +1 -1
  241. package/build/sdk/studio/sdk/model/userDeleteTotpMfaKeyRequest.d.ts +28 -0
  242. package/build/sdk/studio/sdk/model/userDeleteTotpMfaKeyRequest.js +32 -0
  243. package/build/sdk/studio/sdk/model/userDeleteTotpMfaKeyRequest.js.map +1 -0
  244. package/build/sdk/studio/sdk/model/userGenerateNewMfaKeyResponse.d.ts +40 -0
  245. package/build/sdk/studio/sdk/model/userGenerateNewMfaKeyResponse.js +47 -0
  246. package/build/sdk/studio/sdk/model/userGenerateNewMfaKeyResponse.js.map +1 -0
  247. package/build/sdk/studio/sdk/model/userGenerateNewMfaKeyResponseAllOf.d.ts +32 -0
  248. package/build/sdk/studio/sdk/model/userGenerateNewMfaKeyResponseAllOf.js +37 -0
  249. package/build/sdk/studio/sdk/model/userGenerateNewMfaKeyResponseAllOf.js.map +1 -0
  250. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyRequest.d.ts +32 -0
  251. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyRequest.js +37 -0
  252. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyRequest.js.map +1 -0
  253. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyResponse.d.ts +36 -0
  254. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyResponse.js +42 -0
  255. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyResponse.js.map +1 -0
  256. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyResponseAllOf.d.ts +28 -0
  257. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyResponseAllOf.js +32 -0
  258. package/build/sdk/studio/sdk/model/userSetTotpMfaKeyResponseAllOf.js.map +1 -0
  259. package/build/shared/viewmodels/init.d.ts +12 -2
  260. package/build/shared/viewmodels/init.js +6 -1
  261. package/build/shared/viewmodels/init.js.map +1 -1
  262. package/cli/linux/runner.ts +68 -7
  263. package/cli/linux/webserver/public/assets/mobileclient.css +5 -1
  264. package/cli/linux/webserver/public/inference-server.js +85 -4
  265. package/cli/linux/webserver/views/inference-server-view.ts +51 -14
  266. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../shared/viewmodels/init.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAuEX;AAvED,WAAY,QAAQ;IAChB,2CAAU,CAAA;IACV,qDAAe,CAAA;IACf,qCAAO,CAAA;IACP,yDAAiB,CAAA;IACjB,iEAAqB,CAAA;IACrB,2DAAkB,CAAA;IAClB,mDAAc,CAAA;IACd,yDAAiB,CAAA;IACjB,+DAAoB,CAAA;IACpB,yDAAiB,CAAA;IACjB,8DAAoB,CAAA;IACpB,8CAAY,CAAA;IACZ,8DAAoB,CAAA;IACpB,gEAAqB,CAAA;IACrB,kEAAsB,CAAA;IACtB,8EAA4B,CAAA;IAC5B,8CAAY,CAAA;IACZ,wCAAS,CAAA;IACT,0CAAU,CAAA;IACV,4CAAW,CAAA;IACX,4DAAmB,CAAA;IACnB,gFAA6B,CAAA;IAC7B,0DAAkB,CAAA;IAClB,4CAAW,CAAA;IACX,4CAAW,CAAA;IACX,gDAAa,CAAA;IACb,8CAAY,CAAA;IACZ,gDAAa,CAAA;IACb,0CAAU,CAAA;IACV,wEAAyB,CAAA;IACzB,8EAA4B,CAAA;IAC5B,4EAA2B,CAAA;IAC3B,wCAAS,CAAA;IACT,oEAAuB,CAAA;IACvB,gDAAa,CAAA;IACb,wDAAiB,CAAA;IACjB,oEAAuB,CAAA;IACvB,sDAAgB,CAAA;IAChB,4EAA2B,CAAA;IAC3B,gEAAqB,CAAA;IACrB,8DAAoB,CAAA;IACpB,kDAAc,CAAA;IACd,8DAAoB,CAAA;IACpB,0DAAkB,CAAA;IAClB,oDAAe,CAAA;IACf,sDAAgB,CAAA;IAChB,gDAAa,CAAA;IACb,0EAA0B,CAAA;IAC1B,kEAAsB,CAAA;IACtB,gEAAqB,CAAA;IACrB,sEAAwB,CAAA;IACxB,gEAAqB,CAAA;IACrB,kFAA8B,CAAA;IAC9B,oFAA+B,CAAA;IAC/B,gGAAqC,CAAA;IACrC,0FAAkC,CAAA;IAClC,wEAAyB,CAAA;IACzB,qEAAwB,CAAA;IACxB,uEAAyB,CAAA;IACzB,mFAA+B,CAAA;IAC/B,+DAAqB,CAAA;IACrB,yFAAkC,CAAA;IAClC,yEAA0B,CAAA;IAC1B,yEAA0B,CAAA;IAC1B,iEAAsB,CAAA;IACtB,uEAAyB,CAAA;IACzB,qGAAwC,CAAA;IACxC,2EAA2B,CAAA;IAC3B,yDAAkB,CAAA;IAClB,yDAAkB,CAAA;AACtB,CAAC,EAvEW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAuEnB"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../shared/viewmodels/init.ts"],"names":[],"mappings":";;;AAAA,IAAY,QA4EX;AA5ED,WAAY,QAAQ;IAChB,2CAAU,CAAA;IACV,qDAAe,CAAA;IACf,qCAAO,CAAA;IACP,yDAAiB,CAAA;IACjB,iEAAqB,CAAA;IACrB,2DAAkB,CAAA;IAClB,mDAAc,CAAA;IACd,yDAAiB,CAAA;IACjB,+DAAoB,CAAA;IACpB,yDAAiB,CAAA;IACjB,8DAAoB,CAAA;IACpB,8CAAY,CAAA;IACZ,8DAAoB,CAAA;IACpB,gEAAqB,CAAA;IACrB,kEAAsB,CAAA;IACtB,8EAA4B,CAAA;IAC5B,8CAAY,CAAA;IACZ,wCAAS,CAAA;IACT,0CAAU,CAAA;IACV,4CAAW,CAAA;IACX,4DAAmB,CAAA;IACnB,gFAA6B,CAAA;IAC7B,0DAAkB,CAAA;IAClB,4CAAW,CAAA;IACX,4CAAW,CAAA;IACX,gDAAa,CAAA;IACb,8CAAY,CAAA;IACZ,gDAAa,CAAA;IACb,0CAAU,CAAA;IACV,wEAAyB,CAAA;IACzB,8EAA4B,CAAA;IAC5B,4EAA2B,CAAA;IAC3B,wCAAS,CAAA;IACT,oEAAuB,CAAA;IACvB,gDAAa,CAAA;IACb,wDAAiB,CAAA;IACjB,oEAAuB,CAAA;IACvB,sDAAgB,CAAA;IAChB,4EAA2B,CAAA;IAC3B,gEAAqB,CAAA;IACrB,kDAAc,CAAA;IACd,8DAAoB,CAAA;IACpB,0DAAkB,CAAA;IAClB,oDAAe,CAAA;IACf,sDAAgB,CAAA;IAChB,gDAAa,CAAA;IACb,oFAA+B,CAAA;IAC/B,0FAAkC,CAAA;IAClC,wFAAiC,CAAA;IACjC,oFAA+B,CAAA;IAC/B,oEAAuB,CAAA;IACvB,0EAA0B,CAAA;IAC1B,kEAAsB,CAAA;IACtB,gEAAqB,CAAA;IACrB,sEAAwB,CAAA;IACxB,gEAAqB,CAAA;IACrB,kFAA8B,CAAA;IAC9B,oFAA+B,CAAA;IAC/B,gGAAqC,CAAA;IACrC,0FAAkC,CAAA;IAClC,wEAAyB,CAAA;IACzB,qEAAwB,CAAA;IACxB,uEAAyB,CAAA;IACzB,mFAA+B,CAAA;IAC/B,+DAAqB,CAAA;IACrB,yFAAkC,CAAA;IAClC,yEAA0B,CAAA;IAC1B,yEAA0B,CAAA;IAC1B,iEAAsB,CAAA;IACtB,uEAAyB,CAAA;IACzB,qGAAwC,CAAA;IACxC,2EAA2B,CAAA;IAC3B,uEAAyB,CAAA;IACzB,yDAAkB,CAAA;IAClB,yDAAkB,CAAA;AACtB,CAAC,EA5EW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA4EnB"}
@@ -24,7 +24,7 @@ import { Prophesee } from '../../library/sensors/prophesee';
24
24
  import { asyncMiddleware } from './webserver/middleware/asyncMiddleware';
25
25
  import multer from 'multer';
26
26
  import util from 'util';
27
- import { renderInferenceServerView } from './webserver/views/inference-server-view';
27
+ import { InferenceServerModelViewModel, InferenceServerViewModel, renderInferenceServerView } from './webserver/views/inference-server-view';
28
28
 
29
29
  const RUNNER_PREFIX = '\x1b[33m[RUN]\x1b[0m';
30
30
  const BUILD_PREFIX = '\x1b[32m[BLD]\x1b[0m';
@@ -581,18 +581,35 @@ function startApiServer(model: ModelInformation, runner: LinuxImpulseRunner, pro
581
581
  text = text.concat([
582
582
  `curl -v -X POST -H "Content-Type: application/json" -d '{"features": [5, 10, 15, 20]}' http://localhost:${port}/api/features`,
583
583
  '',
584
- '(Expecting ' + runner.getModel().modelParameters.input_features_count + ' features for this model)',
584
+ '(Expecting ' + model.modelParameters.input_features_count + ' features for this model)',
585
585
  ]);
586
586
  }
587
587
 
588
+ let modelVm: InferenceServerModelViewModel;
589
+ if (model.modelParameters.sensorType === 'camera') {
590
+ modelVm = {
591
+ mode: 'image',
592
+ width: model.modelParameters.image_input_width,
593
+ height: model.modelParameters.image_input_height,
594
+ depth: model.modelParameters.image_channel_count === 3 ? 'RGB' : 'Grayscale',
595
+ isObjectDetection: model.modelParameters.model_type === 'constrained_object_detection' ||
596
+ model.modelParameters.model_type === 'object_detection',
597
+ };
598
+ }
599
+ else {
600
+ modelVm = {
601
+ mode: 'features',
602
+ featuresCount: model.modelParameters.input_features_count,
603
+ };
604
+ }
605
+
588
606
  const view = renderInferenceServerView({
589
607
  owner: model.project.owner,
590
608
  projectName: model.project.name,
591
609
  projectVersion: model.project.deploy_version,
592
- featuresCount: runner.getModel().modelParameters.input_features_count,
593
- mode: model.modelParameters.sensorType === 'camera' ? 'image' : 'features',
594
610
  serverPort: port,
595
611
  studioLink: projectStudioUrl,
612
+ model: modelVm,
596
613
  });
597
614
 
598
615
  res.status(200);
@@ -600,6 +617,11 @@ function startApiServer(model: ModelInformation, runner: LinuxImpulseRunner, pro
600
617
  res.end(view.toString());
601
618
  }));
602
619
 
620
+ app.get('/api/info', asyncMiddleware(async (req, res) => {
621
+ res.header('Content-Type', 'application/json');
622
+ res.end(JSON.stringify(model, null, 4) + '\n');
623
+ }));
624
+
603
625
  app.post('/api/features', asyncMiddleware(async (req, res) => {
604
626
  const body = <{ features: number[] }>req.body;
605
627
 
@@ -637,7 +659,13 @@ function startApiServer(model: ModelInformation, runner: LinuxImpulseRunner, pro
637
659
  }));
638
660
 
639
661
  app.post('/api/image', asyncMiddleware(async (req, res) => {
640
- let features: number[];
662
+ let resized: {
663
+ features: number[],
664
+ originalWidth: number,
665
+ originalHeight: number,
666
+ newWidth: number,
667
+ newHeight: number,
668
+ };
641
669
 
642
670
  try {
643
671
  const multipartUpload = multer({ limits: { files: 1, fileSize: 100 * 1024 * 1024 } });
@@ -660,7 +688,7 @@ function startApiServer(model: ModelInformation, runner: LinuxImpulseRunner, pro
660
688
  console.log(RUNNER_PREFIX, 'Incoming inference request (/api/image) for ' +
661
689
  (file.originalname || 'a file with size ' + file.size + ' bytes'));
662
690
 
663
- features = (await ImageClassifier.resizeImage(model, file.buffer)).features;
691
+ resized = (await ImageClassifier.resizeImage(model, file.buffer, 'contain'));
664
692
  }
665
693
  catch (ex2) {
666
694
  const ex = <Error>ex2;
@@ -669,7 +697,40 @@ function startApiServer(model: ModelInformation, runner: LinuxImpulseRunner, pro
669
697
  return res.end(ex.message || ex.toString() + '\n');
670
698
  }
671
699
 
672
- let response = await runner.classify(features);
700
+ let response = await runner.classify(resized.features);
701
+
702
+ let origFactor = resized.originalWidth / resized.originalHeight;
703
+ let newFactor = resized.newWidth / resized.newHeight;
704
+
705
+ let factor: number;
706
+ let offsetX: number;
707
+ let offsetY: number;
708
+
709
+ if (origFactor > newFactor) {
710
+ // boxed in with bands top/bottom
711
+ factor = resized.newWidth / resized.originalWidth;
712
+ offsetX = 0;
713
+ offsetY = (resized.newHeight - (resized.originalHeight * factor)) / 2;
714
+ }
715
+ else if (origFactor < newFactor) {
716
+ // boxed in with bands left/right
717
+ factor = resized.newHeight / resized.originalHeight;
718
+ offsetX = (resized.newWidth - (resized.originalWidth * factor)) / 2;
719
+ offsetY = 0;
720
+ }
721
+ else {
722
+ // image was already at the right aspect ratio
723
+ offsetX = 0;
724
+ offsetY = 0;
725
+ factor = resized.newWidth / resized.originalWidth;
726
+ }
727
+
728
+ for (const bb of response.result.bounding_boxes || []) {
729
+ bb.x = Math.round((bb.x / factor) - (offsetX / factor));
730
+ bb.width = Math.round((bb.width / factor));
731
+ bb.y = Math.round((bb.y / factor) - (offsetY / factor));
732
+ bb.height = Math.round((bb.height / factor));
733
+ }
673
734
 
674
735
  res.header('Content-Type', 'application/json');
675
736
  res.end(JSON.stringify(response, null, 4) + '\n');
@@ -4169,7 +4169,11 @@ video {
4169
4169
  margin-left: -1.7rem;
4170
4170
  margin-right: -1.7rem;
4171
4171
  margin-bottom: 0.75rem;
4172
- margin-top: 2rem;
4172
+ margin-top: 1.5rem;
4173
4173
  padding-left: 0.75rem;
4174
4174
  padding-right: 0.75rem;
4175
4175
  }
4176
+
4177
+ #preview-image-container {
4178
+ position: relative;
4179
+ }
@@ -5,9 +5,18 @@ window.InferenceServer = async () => {
5
5
  runInferenceBtn: document.querySelector('#run-inference'),
6
6
  resultSection: document.querySelector('#result-section'),
7
7
  resultSectionPre: document.querySelector('#result-section pre'),
8
+ previewSection: document.querySelector('#preview-section'),
9
+ previewSectionImgContainer: document.querySelector('#preview-image-container'),
10
+ previewSectionImg: document.querySelector('#preview-section img'),
8
11
  features: document.querySelector('#features'),
9
12
  };
10
13
 
14
+ const colors = [
15
+ '#e6194B', '#3cb44b', '#ffe119', '#4363d8', '#f58231', '#42d4f4', '#f032e6', '#fabed4',
16
+ '#469990', '#dcbeff', '#9A6324', '#fffac8', '#800000', '#aaffc3',
17
+ ];
18
+ const labelToColor = { };
19
+
11
20
  if (els.uploadFile) {
12
21
  els.uploadFile.oninput = () => {
13
22
  if (els.uploadFile.files.length > 0) {
@@ -83,15 +92,87 @@ window.InferenceServer = async () => {
83
92
  }
84
93
 
85
94
  const text = await resp.text();
95
+ let body;
86
96
  try {
87
- const body = JSON.parse(text);
88
-
89
- els.resultSection.style.display = '';
90
- els.resultSectionPre.textContent = JSON.stringify(body, null, 4);
97
+ body = JSON.parse(text);
91
98
  }
92
99
  catch (ex) {
93
100
  throw new Error(text);
94
101
  }
102
+
103
+ if (els.uploadFile && body.result.bounding_boxes) {
104
+ els.previewSection.style.display = '';
105
+
106
+ const dataUrl = await new Promise((resolve, reject) => {
107
+ const reader = new FileReader();
108
+
109
+ reader.onload = e => {
110
+ resolve(e.target.result);
111
+ };
112
+ reader.onerror = err => {
113
+ reject(err);
114
+ };
115
+
116
+ reader.readAsDataURL(els.uploadFile.files[0]);
117
+ });
118
+
119
+ els.previewSectionImg.src = dataUrl;
120
+
121
+ const result = body.result;
122
+ let factor = 1;
123
+
124
+ for (let oldEl of els.previewSectionImgContainer.querySelectorAll('.bounding-box-container')) {
125
+ oldEl.parentNode.removeChild(oldEl);
126
+ }
127
+
128
+ for (let b of result.bounding_boxes) {
129
+ let bb = {
130
+ x: b.x / factor,
131
+ y: b.y / factor,
132
+ width: b.width / factor,
133
+ height: b.height / factor,
134
+ label: b.label,
135
+ value: b.value
136
+ };
137
+ if (!labelToColor[bb.label]) {
138
+ labelToColor[bb.label] = colors[0];
139
+ colors.splice(0, 1);
140
+ }
141
+ let color = labelToColor[bb.label];
142
+ let el = document.createElement('div');
143
+ el.classList.add('bounding-box-container');
144
+ el.style.position = 'absolute';
145
+ el.style.border = 'solid 3px ' + color;
146
+ // if (modelType === 'object_detection') {
147
+ el.style.width = (bb.width) + 'px';
148
+ el.style.height = (bb.height) + 'px';
149
+ el.style.left = (bb.x) + 'px';
150
+ el.style.top = (bb.y) + 'px';
151
+ // }
152
+ // else if (modelType === 'constrained_object_detection') {
153
+ // let centerX = bb.x + (bb.width / 2);
154
+ // let centerY = bb.y + (bb.height / 2);
155
+ // el.style.borderRadius = '10px';
156
+ // el.style.width = 20 + 'px';
157
+ // el.style.height = 20 + 'px';
158
+ // el.style.left = (centerX - 10) + 'px';
159
+ // el.style.top = (centerY - 10) + 'px';
160
+ // }
161
+ let label = document.createElement('div');
162
+ label.classList.add('bounding-box-label');
163
+ label.style.background = color;
164
+ label.textContent = bb.label + ' (' + bb.value.toFixed(2) + ')';
165
+ el.style.whiteSpace = 'nowrap';
166
+ el.appendChild(label);
167
+ els.previewSectionImgContainer.appendChild(el);
168
+ }
169
+ }
170
+ else {
171
+ els.previewSection.style.display = 'none';
172
+ }
173
+
174
+ els.resultSection.style.display = '';
175
+ els.resultSectionPre.textContent = JSON.stringify(body, null, 4);
95
176
  }
96
177
  catch (ex) {
97
178
  alert('Failed to run inference: ' + (ex.message || ex.toString()));
@@ -1,16 +1,31 @@
1
1
  import html from './escape-html-template-tag';
2
2
 
3
+ export type InferenceServerModelViewModel = {
4
+ mode: 'features',
5
+ featuresCount: number,
6
+ } | {
7
+ mode: 'image',
8
+ width: number,
9
+ height: number,
10
+ depth: 'Grayscale' | 'RGB',
11
+ isObjectDetection: boolean,
12
+ };
13
+
3
14
  export type InferenceServerViewModel = {
4
15
  studioLink: string,
5
16
  owner: string,
6
17
  projectName: string,
7
18
  projectVersion: number,
8
19
  serverPort: number,
9
- featuresCount: number,
10
- mode: 'features' | 'image',
20
+ model: InferenceServerModelViewModel,
11
21
  };
12
22
 
13
23
  export const renderInferenceServerView = (vm: InferenceServerViewModel) => {
24
+ let resultsColClass = `col-12`;
25
+ if (vm.model.mode === 'image' && vm.model.isObjectDetection) {
26
+ resultsColClass = `col-12 col-lg-6`;
27
+ }
28
+
14
29
  return html`<!DOCTYPE html>
15
30
  <html>
16
31
 
@@ -63,24 +78,35 @@ export const renderInferenceServerView = (vm: InferenceServerViewModel) => {
63
78
  <h4>Model information</h4>
64
79
  </div>
65
80
  </div>
81
+ <div class="mb-2 text-sm">
82
+ Inference server for "<a href="${vm.studioLink}" target="_blank">${vm.owner} / ${vm.projectName}</a>" (v${vm.projectVersion}).
83
+ </div>
84
+ <div class="row card-sub-header border-bottom">
85
+ <div class="col">
86
+ <h4>Get model info</h4>
87
+ </div>
88
+ </div>
66
89
  <div class="mb-3 text-sm">
67
- Inference server for "<a href="${vm.studioLink}" target="_blank">${vm.owner} / ${vm.projectName}</a>" (v${vm.projectVersion})
90
+ <code>curl -v -X GET http://localhost:${vm.serverPort}/api/info</code>
68
91
  </div>
69
92
  <div class="row card-sub-header border-bottom">
70
93
  <div class="col">
71
94
  <h4>How to run inference</h4>
72
95
  </div>
73
96
  </div>
74
- ${vm.mode === 'image' ? html`
97
+ ${vm.model.mode === 'image' ? html`
75
98
  <div class="mb-3 text-sm">
76
99
  <code>curl -v -X POST -F 'file=@path-to-an-image.jpg' http://localhost:${vm.serverPort}/api/image</code>
77
100
  </div>
101
+ <div class="mb-4 text-xs">
102
+ (Expecting a ${vm.model.width} x ${vm.model.height} (${vm.model.depth}) image, images in other resolutions will be resized)
103
+ </div>
78
104
  ` : html`
79
105
  <div class="mb-3 text-sm">
80
106
  <code>curl -v -X POST -H "Content-Type: application/json" -d '{"features": [5, 10, 15, 20]}' http://localhost:${vm.serverPort}/api/features</code>
81
107
  </div>
82
108
  <div class="mb-4 text-xs">
83
- (Expecting ${vm.featuresCount} features for this model)
109
+ (Expecting ${vm.model.featuresCount} features for this model)
84
110
  </div>
85
111
  `}
86
112
  </div>
@@ -89,16 +115,16 @@ export const renderInferenceServerView = (vm: InferenceServerViewModel) => {
89
115
  <div class="card-body text-left mb--3">
90
116
  <div class="row card-sub-header border-bottom mt--2">
91
117
  <div class="col">
92
- <h4>Try it out</h4>
118
+ <h4>Try out inferencing</h4>
93
119
  </div>
94
120
  </div>
95
- ${vm.mode === 'image' ? html`
121
+ ${vm.model.mode === 'image' ? html`
96
122
  <div class="mb-3">
97
123
  <input type="file" class="form-control form-control-sm border-0 px-0" id="upload-file">
98
124
  </div>
99
125
  ` : html`
100
126
  <div class="mb-2 text-sm">
101
- Enter ${vm.featuresCount} features, split by ',' - for example from "Live classification".
127
+ Enter ${vm.model.featuresCount} features, split by ',' - for example from "Live classification".
102
128
  </div>
103
129
  <div class="mb-3">
104
130
  <input class="form-control form-control-sm" id="features" placeholder="0, 0, 0, 0, ...">
@@ -107,14 +133,25 @@ export const renderInferenceServerView = (vm: InferenceServerViewModel) => {
107
133
  <div class="mb-3">
108
134
  <button class="btn-sm btn btn-primary" id="run-inference" disabled>Run inference</button>
109
135
  </div>
110
- <section id="result-section" style="display: none">
111
- <div class="row card-sub-header border-bottom">
112
- <div class="col">
113
- <h4>Result</h4>
136
+
137
+ <div class="row mb-3" id="result-section" style="display: none">
138
+ <div class="${resultsColClass}">
139
+ <div class="row card-sub-header border-bottom">
140
+ <div class="col">
141
+ <h4>Result</h4>
142
+ </div>
143
+ </div>
144
+ <pre class="text-xs mb-0">Bleep bloop</pre>
145
+ </div>
146
+ <div id="preview-section" class="${resultsColClass}" style="display: none">
147
+ <div class="row card-sub-header border-bottom">
148
+ <div class="col">
149
+ <h4>Preview</h4>
150
+ </div>
114
151
  </div>
152
+ <div id="preview-image-container" class="mt-3"><img id="preview-image"></img></div>
115
153
  </div>
116
- <pre class="mb-3 text-xs">Bleep bloop</pre>
117
- </section>
154
+ </div>
118
155
  </div>
119
156
  </div>
120
157
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edge-impulse-linux",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Node.js SDK and tools for Edge Impulse for Linux",
5
5
  "directories": {
6
6
  "example": "examples"
@@ -8,7 +8,8 @@
8
8
  "scripts": {
9
9
  "build": "./node_modules/.bin/tsc -p .",
10
10
  "lint": "./node_modules/tslint/bin/tslint -p tsconfig.json",
11
- "test": "tsc -b . && TS_NODE_PROJECT=./tsconfig.json mocha --config ./test/.mocharc.js"
11
+ "test": "tsc -b . && TS_NODE_PROJECT=./tsconfig.json mocha --config ./test/.mocharc.js",
12
+ "watch-runner": "func() { tsc-watch -b . --onSuccess \"node build/cli/linux/runner.js $1\" --noClear; }; func"
12
13
  },
13
14
  "bin": {
14
15
  "edge-impulse-linux": "build/cli/linux/linux.js",
@@ -65,6 +66,7 @@
65
66
  "@types/ws": "6.0.3",
66
67
  "mocha": "9.1.3",
67
68
  "ts-node": "10.4.0",
69
+ "tsc-watch": "4.6.2",
68
70
  "tslint": "6.1.2",
69
71
  "typescript": "3.9.3"
70
72
  }