@foxglove/schemas 0.1.2

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 (506) hide show
  1. package/.eslintrc.js +19 -0
  2. package/.gitattributes +1 -0
  3. package/.github/workflows/ci.yml +89 -0
  4. package/.prettierignore +1 -0
  5. package/.prettierrc.yml +2 -0
  6. package/.vscode/launch.json +23 -0
  7. package/.vscode/settings.json +20 -0
  8. package/LICENSE.md +21 -0
  9. package/README.md +31 -0
  10. package/dist/cjs/schemas/typescript/CameraCalibration.d.ts +63 -0
  11. package/dist/cjs/schemas/typescript/CameraCalibration.d.ts.map +1 -0
  12. package/dist/cjs/schemas/typescript/CameraCalibration.js +4 -0
  13. package/dist/cjs/schemas/typescript/CameraCalibration.js.map +1 -0
  14. package/dist/cjs/schemas/typescript/CircleAnnotation.d.ts +19 -0
  15. package/dist/cjs/schemas/typescript/CircleAnnotation.d.ts.map +1 -0
  16. package/dist/cjs/schemas/typescript/CircleAnnotation.js +4 -0
  17. package/dist/cjs/schemas/typescript/CircleAnnotation.js.map +1 -0
  18. package/dist/cjs/schemas/typescript/Color.d.ts +12 -0
  19. package/dist/cjs/schemas/typescript/Color.d.ts.map +1 -0
  20. package/dist/cjs/schemas/typescript/Color.js +4 -0
  21. package/dist/cjs/schemas/typescript/Color.js.map +1 -0
  22. package/dist/cjs/schemas/typescript/CompressedImage.d.ts +11 -0
  23. package/dist/cjs/schemas/typescript/CompressedImage.d.ts.map +1 -0
  24. package/dist/cjs/schemas/typescript/CompressedImage.js +4 -0
  25. package/dist/cjs/schemas/typescript/CompressedImage.js.map +1 -0
  26. package/dist/cjs/schemas/typescript/Duration.d.ts +5 -0
  27. package/dist/cjs/schemas/typescript/Duration.d.ts.map +1 -0
  28. package/dist/cjs/schemas/typescript/Duration.js +3 -0
  29. package/dist/cjs/schemas/typescript/Duration.js.map +1 -0
  30. package/dist/cjs/schemas/typescript/FrameTransform.d.ts +14 -0
  31. package/dist/cjs/schemas/typescript/FrameTransform.d.ts.map +1 -0
  32. package/dist/cjs/schemas/typescript/FrameTransform.js +4 -0
  33. package/dist/cjs/schemas/typescript/FrameTransform.js.map +1 -0
  34. package/dist/cjs/schemas/typescript/GeoJSON.d.ts +6 -0
  35. package/dist/cjs/schemas/typescript/GeoJSON.d.ts.map +1 -0
  36. package/dist/cjs/schemas/typescript/GeoJSON.js +4 -0
  37. package/dist/cjs/schemas/typescript/GeoJSON.js.map +1 -0
  38. package/dist/cjs/schemas/typescript/Grid.d.ts +26 -0
  39. package/dist/cjs/schemas/typescript/Grid.d.ts.map +1 -0
  40. package/dist/cjs/schemas/typescript/Grid.js +4 -0
  41. package/dist/cjs/schemas/typescript/Grid.js.map +1 -0
  42. package/dist/cjs/schemas/typescript/ImageAnnotations.d.ts +10 -0
  43. package/dist/cjs/schemas/typescript/ImageAnnotations.d.ts.map +1 -0
  44. package/dist/cjs/schemas/typescript/ImageAnnotations.js +4 -0
  45. package/dist/cjs/schemas/typescript/ImageAnnotations.js.map +1 -0
  46. package/dist/cjs/schemas/typescript/LaserScan.d.ts +20 -0
  47. package/dist/cjs/schemas/typescript/LaserScan.d.ts.map +1 -0
  48. package/dist/cjs/schemas/typescript/LaserScan.js +4 -0
  49. package/dist/cjs/schemas/typescript/LaserScan.js.map +1 -0
  50. package/dist/cjs/schemas/typescript/LocationFix.d.ts +15 -0
  51. package/dist/cjs/schemas/typescript/LocationFix.d.ts.map +1 -0
  52. package/dist/cjs/schemas/typescript/LocationFix.js +4 -0
  53. package/dist/cjs/schemas/typescript/LocationFix.js.map +1 -0
  54. package/dist/cjs/schemas/typescript/Log.d.ts +18 -0
  55. package/dist/cjs/schemas/typescript/Log.d.ts.map +1 -0
  56. package/dist/cjs/schemas/typescript/Log.js +4 -0
  57. package/dist/cjs/schemas/typescript/Log.js.map +1 -0
  58. package/dist/cjs/schemas/typescript/LogLevel.d.ts +10 -0
  59. package/dist/cjs/schemas/typescript/LogLevel.d.ts.map +1 -0
  60. package/dist/cjs/schemas/typescript/LogLevel.js +15 -0
  61. package/dist/cjs/schemas/typescript/LogLevel.js.map +1 -0
  62. package/dist/cjs/schemas/typescript/NumericType.d.ts +13 -0
  63. package/dist/cjs/schemas/typescript/NumericType.d.ts.map +1 -0
  64. package/dist/cjs/schemas/typescript/NumericType.js +18 -0
  65. package/dist/cjs/schemas/typescript/NumericType.js.map +1 -0
  66. package/dist/cjs/schemas/typescript/PackedElementField.d.ts +11 -0
  67. package/dist/cjs/schemas/typescript/PackedElementField.d.ts.map +1 -0
  68. package/dist/cjs/schemas/typescript/PackedElementField.js +4 -0
  69. package/dist/cjs/schemas/typescript/PackedElementField.js.map +1 -0
  70. package/dist/cjs/schemas/typescript/Point2.d.ts +8 -0
  71. package/dist/cjs/schemas/typescript/Point2.d.ts.map +1 -0
  72. package/dist/cjs/schemas/typescript/Point2.js +4 -0
  73. package/dist/cjs/schemas/typescript/Point2.js.map +1 -0
  74. package/dist/cjs/schemas/typescript/Point3.d.ts +10 -0
  75. package/dist/cjs/schemas/typescript/Point3.d.ts.map +1 -0
  76. package/dist/cjs/schemas/typescript/Point3.js +4 -0
  77. package/dist/cjs/schemas/typescript/Point3.js.map +1 -0
  78. package/dist/cjs/schemas/typescript/PointCloud.d.ts +19 -0
  79. package/dist/cjs/schemas/typescript/PointCloud.d.ts.map +1 -0
  80. package/dist/cjs/schemas/typescript/PointCloud.js +4 -0
  81. package/dist/cjs/schemas/typescript/PointCloud.js.map +1 -0
  82. package/dist/cjs/schemas/typescript/PointsAnnotation.d.ts +18 -0
  83. package/dist/cjs/schemas/typescript/PointsAnnotation.d.ts.map +1 -0
  84. package/dist/cjs/schemas/typescript/PointsAnnotation.js +4 -0
  85. package/dist/cjs/schemas/typescript/PointsAnnotation.js.map +1 -0
  86. package/dist/cjs/schemas/typescript/PointsAnnotationType.d.ts +9 -0
  87. package/dist/cjs/schemas/typescript/PointsAnnotationType.d.ts.map +1 -0
  88. package/dist/cjs/schemas/typescript/PointsAnnotationType.js +14 -0
  89. package/dist/cjs/schemas/typescript/PointsAnnotationType.js.map +1 -0
  90. package/dist/cjs/schemas/typescript/Pose.d.ts +10 -0
  91. package/dist/cjs/schemas/typescript/Pose.d.ts.map +1 -0
  92. package/dist/cjs/schemas/typescript/Pose.js +4 -0
  93. package/dist/cjs/schemas/typescript/Pose.js.map +1 -0
  94. package/dist/cjs/schemas/typescript/PoseInFrame.d.ts +12 -0
  95. package/dist/cjs/schemas/typescript/PoseInFrame.d.ts.map +1 -0
  96. package/dist/cjs/schemas/typescript/PoseInFrame.js +4 -0
  97. package/dist/cjs/schemas/typescript/PoseInFrame.js.map +1 -0
  98. package/dist/cjs/schemas/typescript/PosesInFrame.d.ts +12 -0
  99. package/dist/cjs/schemas/typescript/PosesInFrame.d.ts.map +1 -0
  100. package/dist/cjs/schemas/typescript/PosesInFrame.js +4 -0
  101. package/dist/cjs/schemas/typescript/PosesInFrame.js.map +1 -0
  102. package/dist/cjs/schemas/typescript/PositionCovarianceType.d.ts +8 -0
  103. package/dist/cjs/schemas/typescript/PositionCovarianceType.d.ts.map +1 -0
  104. package/dist/cjs/schemas/typescript/PositionCovarianceType.js +13 -0
  105. package/dist/cjs/schemas/typescript/PositionCovarianceType.js.map +1 -0
  106. package/dist/cjs/schemas/typescript/Quaternion.d.ts +12 -0
  107. package/dist/cjs/schemas/typescript/Quaternion.d.ts.map +1 -0
  108. package/dist/cjs/schemas/typescript/Quaternion.js +4 -0
  109. package/dist/cjs/schemas/typescript/Quaternion.js.map +1 -0
  110. package/dist/cjs/schemas/typescript/RawImage.d.ts +17 -0
  111. package/dist/cjs/schemas/typescript/RawImage.d.ts.map +1 -0
  112. package/dist/cjs/schemas/typescript/RawImage.js +4 -0
  113. package/dist/cjs/schemas/typescript/RawImage.js.map +1 -0
  114. package/dist/cjs/schemas/typescript/Time.d.ts +5 -0
  115. package/dist/cjs/schemas/typescript/Time.d.ts.map +1 -0
  116. package/dist/cjs/schemas/typescript/Time.js +3 -0
  117. package/dist/cjs/schemas/typescript/Time.js.map +1 -0
  118. package/dist/cjs/schemas/typescript/Transform.d.ts +13 -0
  119. package/dist/cjs/schemas/typescript/Transform.d.ts.map +1 -0
  120. package/dist/cjs/schemas/typescript/Transform.js +4 -0
  121. package/dist/cjs/schemas/typescript/Transform.js.map +1 -0
  122. package/dist/cjs/schemas/typescript/Vector2.d.ts +8 -0
  123. package/dist/cjs/schemas/typescript/Vector2.d.ts.map +1 -0
  124. package/dist/cjs/schemas/typescript/Vector2.js +4 -0
  125. package/dist/cjs/schemas/typescript/Vector2.js.map +1 -0
  126. package/dist/cjs/schemas/typescript/Vector3.d.ts +10 -0
  127. package/dist/cjs/schemas/typescript/Vector3.d.ts.map +1 -0
  128. package/dist/cjs/schemas/typescript/Vector3.js +4 -0
  129. package/dist/cjs/schemas/typescript/Vector3.js.map +1 -0
  130. package/dist/cjs/schemas/typescript/index.d.ts +29 -0
  131. package/dist/cjs/schemas/typescript/index.d.ts.map +1 -0
  132. package/dist/cjs/schemas/typescript/index.js +32 -0
  133. package/dist/cjs/schemas/typescript/index.js.map +1 -0
  134. package/dist/cjs/scripts/updateGeneratedFiles.d.ts +2 -0
  135. package/dist/cjs/scripts/updateGeneratedFiles.d.ts.map +1 -0
  136. package/dist/cjs/scripts/updateGeneratedFiles.js +77 -0
  137. package/dist/cjs/scripts/updateGeneratedFiles.js.map +1 -0
  138. package/dist/cjs/src/generateJsonSchema.d.ts +3 -0
  139. package/dist/cjs/src/generateJsonSchema.d.ts.map +1 -0
  140. package/dist/cjs/src/generateJsonSchema.js +85 -0
  141. package/dist/cjs/src/generateJsonSchema.js.map +1 -0
  142. package/dist/cjs/src/generateJsonSchema.test.d.ts +2 -0
  143. package/dist/cjs/src/generateJsonSchema.test.d.ts.map +1 -0
  144. package/dist/cjs/src/generateJsonSchema.test.js +312 -0
  145. package/dist/cjs/src/generateJsonSchema.test.js.map +1 -0
  146. package/dist/cjs/src/generateProto.d.ts +3 -0
  147. package/dist/cjs/src/generateProto.d.ts.map +1 -0
  148. package/dist/cjs/src/generateProto.js +84 -0
  149. package/dist/cjs/src/generateProto.js.map +1 -0
  150. package/dist/cjs/src/generateProto.test.d.ts +2 -0
  151. package/dist/cjs/src/generateProto.test.d.ts.map +1 -0
  152. package/dist/cjs/src/generateProto.test.js +125 -0
  153. package/dist/cjs/src/generateProto.test.js.map +1 -0
  154. package/dist/cjs/src/generateRos.d.ts +20 -0
  155. package/dist/cjs/src/generateRos.d.ts.map +1 -0
  156. package/dist/cjs/src/generateRos.js +186 -0
  157. package/dist/cjs/src/generateRos.js.map +1 -0
  158. package/dist/cjs/src/generateRos.test.d.ts +2 -0
  159. package/dist/cjs/src/generateRos.test.d.ts.map +1 -0
  160. package/dist/cjs/src/generateRos.test.js +911 -0
  161. package/dist/cjs/src/generateRos.test.js.map +1 -0
  162. package/dist/cjs/src/generateTypeScript.d.ts +5 -0
  163. package/dist/cjs/src/generateTypeScript.d.ts.map +1 -0
  164. package/dist/cjs/src/generateTypeScript.js +100 -0
  165. package/dist/cjs/src/generateTypeScript.js.map +1 -0
  166. package/dist/cjs/src/generateTypeScript.test.d.ts +2 -0
  167. package/dist/cjs/src/generateTypeScript.test.d.ts.map +1 -0
  168. package/dist/cjs/src/generateTypeScript.test.js +142 -0
  169. package/dist/cjs/src/generateTypeScript.test.js.map +1 -0
  170. package/dist/cjs/src/index.d.ts +6 -0
  171. package/dist/cjs/src/index.d.ts.map +1 -0
  172. package/dist/cjs/src/index.js +9 -0
  173. package/dist/cjs/src/index.js.map +1 -0
  174. package/dist/cjs/src/schemas.d.ts +35 -0
  175. package/dist/cjs/src/schemas.d.ts.map +1 -0
  176. package/dist/cjs/src/schemas.js +820 -0
  177. package/dist/cjs/src/schemas.js.map +1 -0
  178. package/dist/cjs/src/schemas.test.d.ts +2 -0
  179. package/dist/cjs/src/schemas.test.d.ts.map +1 -0
  180. package/dist/cjs/src/schemas.test.js +24 -0
  181. package/dist/cjs/src/schemas.test.js.map +1 -0
  182. package/dist/cjs/src/testFixtures.d.ts +5 -0
  183. package/dist/cjs/src/testFixtures.d.ts.map +1 -0
  184. package/dist/cjs/src/testFixtures.js +86 -0
  185. package/dist/cjs/src/testFixtures.js.map +1 -0
  186. package/dist/cjs/src/types.d.ts +37 -0
  187. package/dist/cjs/src/types.d.ts.map +1 -0
  188. package/dist/cjs/src/types.js +3 -0
  189. package/dist/cjs/src/types.js.map +1 -0
  190. package/dist/esm/schemas/typescript/CameraCalibration.d.ts +63 -0
  191. package/dist/esm/schemas/typescript/CameraCalibration.d.ts.map +1 -0
  192. package/dist/esm/schemas/typescript/CameraCalibration.js +3 -0
  193. package/dist/esm/schemas/typescript/CameraCalibration.js.map +1 -0
  194. package/dist/esm/schemas/typescript/CircleAnnotation.d.ts +19 -0
  195. package/dist/esm/schemas/typescript/CircleAnnotation.d.ts.map +1 -0
  196. package/dist/esm/schemas/typescript/CircleAnnotation.js +3 -0
  197. package/dist/esm/schemas/typescript/CircleAnnotation.js.map +1 -0
  198. package/dist/esm/schemas/typescript/Color.d.ts +12 -0
  199. package/dist/esm/schemas/typescript/Color.d.ts.map +1 -0
  200. package/dist/esm/schemas/typescript/Color.js +3 -0
  201. package/dist/esm/schemas/typescript/Color.js.map +1 -0
  202. package/dist/esm/schemas/typescript/CompressedImage.d.ts +11 -0
  203. package/dist/esm/schemas/typescript/CompressedImage.d.ts.map +1 -0
  204. package/dist/esm/schemas/typescript/CompressedImage.js +3 -0
  205. package/dist/esm/schemas/typescript/CompressedImage.js.map +1 -0
  206. package/dist/esm/schemas/typescript/Duration.d.ts +5 -0
  207. package/dist/esm/schemas/typescript/Duration.d.ts.map +1 -0
  208. package/dist/esm/schemas/typescript/Duration.js +2 -0
  209. package/dist/esm/schemas/typescript/Duration.js.map +1 -0
  210. package/dist/esm/schemas/typescript/FrameTransform.d.ts +14 -0
  211. package/dist/esm/schemas/typescript/FrameTransform.d.ts.map +1 -0
  212. package/dist/esm/schemas/typescript/FrameTransform.js +3 -0
  213. package/dist/esm/schemas/typescript/FrameTransform.js.map +1 -0
  214. package/dist/esm/schemas/typescript/GeoJSON.d.ts +6 -0
  215. package/dist/esm/schemas/typescript/GeoJSON.d.ts.map +1 -0
  216. package/dist/esm/schemas/typescript/GeoJSON.js +3 -0
  217. package/dist/esm/schemas/typescript/GeoJSON.js.map +1 -0
  218. package/dist/esm/schemas/typescript/Grid.d.ts +26 -0
  219. package/dist/esm/schemas/typescript/Grid.d.ts.map +1 -0
  220. package/dist/esm/schemas/typescript/Grid.js +3 -0
  221. package/dist/esm/schemas/typescript/Grid.js.map +1 -0
  222. package/dist/esm/schemas/typescript/ImageAnnotations.d.ts +10 -0
  223. package/dist/esm/schemas/typescript/ImageAnnotations.d.ts.map +1 -0
  224. package/dist/esm/schemas/typescript/ImageAnnotations.js +3 -0
  225. package/dist/esm/schemas/typescript/ImageAnnotations.js.map +1 -0
  226. package/dist/esm/schemas/typescript/LaserScan.d.ts +20 -0
  227. package/dist/esm/schemas/typescript/LaserScan.d.ts.map +1 -0
  228. package/dist/esm/schemas/typescript/LaserScan.js +3 -0
  229. package/dist/esm/schemas/typescript/LaserScan.js.map +1 -0
  230. package/dist/esm/schemas/typescript/LocationFix.d.ts +15 -0
  231. package/dist/esm/schemas/typescript/LocationFix.d.ts.map +1 -0
  232. package/dist/esm/schemas/typescript/LocationFix.js +3 -0
  233. package/dist/esm/schemas/typescript/LocationFix.js.map +1 -0
  234. package/dist/esm/schemas/typescript/Log.d.ts +18 -0
  235. package/dist/esm/schemas/typescript/Log.d.ts.map +1 -0
  236. package/dist/esm/schemas/typescript/Log.js +3 -0
  237. package/dist/esm/schemas/typescript/Log.js.map +1 -0
  238. package/dist/esm/schemas/typescript/LogLevel.d.ts +10 -0
  239. package/dist/esm/schemas/typescript/LogLevel.d.ts.map +1 -0
  240. package/dist/esm/schemas/typescript/LogLevel.js +12 -0
  241. package/dist/esm/schemas/typescript/LogLevel.js.map +1 -0
  242. package/dist/esm/schemas/typescript/NumericType.d.ts +13 -0
  243. package/dist/esm/schemas/typescript/NumericType.d.ts.map +1 -0
  244. package/dist/esm/schemas/typescript/NumericType.js +15 -0
  245. package/dist/esm/schemas/typescript/NumericType.js.map +1 -0
  246. package/dist/esm/schemas/typescript/PackedElementField.d.ts +11 -0
  247. package/dist/esm/schemas/typescript/PackedElementField.d.ts.map +1 -0
  248. package/dist/esm/schemas/typescript/PackedElementField.js +3 -0
  249. package/dist/esm/schemas/typescript/PackedElementField.js.map +1 -0
  250. package/dist/esm/schemas/typescript/Point2.d.ts +8 -0
  251. package/dist/esm/schemas/typescript/Point2.d.ts.map +1 -0
  252. package/dist/esm/schemas/typescript/Point2.js +3 -0
  253. package/dist/esm/schemas/typescript/Point2.js.map +1 -0
  254. package/dist/esm/schemas/typescript/Point3.d.ts +10 -0
  255. package/dist/esm/schemas/typescript/Point3.d.ts.map +1 -0
  256. package/dist/esm/schemas/typescript/Point3.js +3 -0
  257. package/dist/esm/schemas/typescript/Point3.js.map +1 -0
  258. package/dist/esm/schemas/typescript/PointCloud.d.ts +19 -0
  259. package/dist/esm/schemas/typescript/PointCloud.d.ts.map +1 -0
  260. package/dist/esm/schemas/typescript/PointCloud.js +3 -0
  261. package/dist/esm/schemas/typescript/PointCloud.js.map +1 -0
  262. package/dist/esm/schemas/typescript/PointsAnnotation.d.ts +18 -0
  263. package/dist/esm/schemas/typescript/PointsAnnotation.d.ts.map +1 -0
  264. package/dist/esm/schemas/typescript/PointsAnnotation.js +3 -0
  265. package/dist/esm/schemas/typescript/PointsAnnotation.js.map +1 -0
  266. package/dist/esm/schemas/typescript/PointsAnnotationType.d.ts +9 -0
  267. package/dist/esm/schemas/typescript/PointsAnnotationType.d.ts.map +1 -0
  268. package/dist/esm/schemas/typescript/PointsAnnotationType.js +11 -0
  269. package/dist/esm/schemas/typescript/PointsAnnotationType.js.map +1 -0
  270. package/dist/esm/schemas/typescript/Pose.d.ts +10 -0
  271. package/dist/esm/schemas/typescript/Pose.d.ts.map +1 -0
  272. package/dist/esm/schemas/typescript/Pose.js +3 -0
  273. package/dist/esm/schemas/typescript/Pose.js.map +1 -0
  274. package/dist/esm/schemas/typescript/PoseInFrame.d.ts +12 -0
  275. package/dist/esm/schemas/typescript/PoseInFrame.d.ts.map +1 -0
  276. package/dist/esm/schemas/typescript/PoseInFrame.js +3 -0
  277. package/dist/esm/schemas/typescript/PoseInFrame.js.map +1 -0
  278. package/dist/esm/schemas/typescript/PosesInFrame.d.ts +12 -0
  279. package/dist/esm/schemas/typescript/PosesInFrame.d.ts.map +1 -0
  280. package/dist/esm/schemas/typescript/PosesInFrame.js +3 -0
  281. package/dist/esm/schemas/typescript/PosesInFrame.js.map +1 -0
  282. package/dist/esm/schemas/typescript/PositionCovarianceType.d.ts +8 -0
  283. package/dist/esm/schemas/typescript/PositionCovarianceType.d.ts.map +1 -0
  284. package/dist/esm/schemas/typescript/PositionCovarianceType.js +10 -0
  285. package/dist/esm/schemas/typescript/PositionCovarianceType.js.map +1 -0
  286. package/dist/esm/schemas/typescript/Quaternion.d.ts +12 -0
  287. package/dist/esm/schemas/typescript/Quaternion.d.ts.map +1 -0
  288. package/dist/esm/schemas/typescript/Quaternion.js +3 -0
  289. package/dist/esm/schemas/typescript/Quaternion.js.map +1 -0
  290. package/dist/esm/schemas/typescript/RawImage.d.ts +17 -0
  291. package/dist/esm/schemas/typescript/RawImage.d.ts.map +1 -0
  292. package/dist/esm/schemas/typescript/RawImage.js +3 -0
  293. package/dist/esm/schemas/typescript/RawImage.js.map +1 -0
  294. package/dist/esm/schemas/typescript/Time.d.ts +5 -0
  295. package/dist/esm/schemas/typescript/Time.d.ts.map +1 -0
  296. package/dist/esm/schemas/typescript/Time.js +2 -0
  297. package/dist/esm/schemas/typescript/Time.js.map +1 -0
  298. package/dist/esm/schemas/typescript/Transform.d.ts +13 -0
  299. package/dist/esm/schemas/typescript/Transform.d.ts.map +1 -0
  300. package/dist/esm/schemas/typescript/Transform.js +3 -0
  301. package/dist/esm/schemas/typescript/Transform.js.map +1 -0
  302. package/dist/esm/schemas/typescript/Vector2.d.ts +8 -0
  303. package/dist/esm/schemas/typescript/Vector2.d.ts.map +1 -0
  304. package/dist/esm/schemas/typescript/Vector2.js +3 -0
  305. package/dist/esm/schemas/typescript/Vector2.js.map +1 -0
  306. package/dist/esm/schemas/typescript/Vector3.d.ts +10 -0
  307. package/dist/esm/schemas/typescript/Vector3.d.ts.map +1 -0
  308. package/dist/esm/schemas/typescript/Vector3.js +3 -0
  309. package/dist/esm/schemas/typescript/Vector3.js.map +1 -0
  310. package/dist/esm/schemas/typescript/index.d.ts +29 -0
  311. package/dist/esm/schemas/typescript/index.d.ts.map +1 -0
  312. package/dist/esm/schemas/typescript/index.js +29 -0
  313. package/dist/esm/schemas/typescript/index.js.map +1 -0
  314. package/dist/esm/scripts/updateGeneratedFiles.d.ts +2 -0
  315. package/dist/esm/scripts/updateGeneratedFiles.d.ts.map +1 -0
  316. package/dist/esm/scripts/updateGeneratedFiles.js +74 -0
  317. package/dist/esm/scripts/updateGeneratedFiles.js.map +1 -0
  318. package/dist/esm/src/generateJsonSchema.d.ts +3 -0
  319. package/dist/esm/src/generateJsonSchema.d.ts.map +1 -0
  320. package/dist/esm/src/generateJsonSchema.js +81 -0
  321. package/dist/esm/src/generateJsonSchema.js.map +1 -0
  322. package/dist/esm/src/generateJsonSchema.test.d.ts +2 -0
  323. package/dist/esm/src/generateJsonSchema.test.d.ts.map +1 -0
  324. package/dist/esm/src/generateJsonSchema.test.js +309 -0
  325. package/dist/esm/src/generateJsonSchema.test.js.map +1 -0
  326. package/dist/esm/src/generateProto.d.ts +3 -0
  327. package/dist/esm/src/generateProto.d.ts.map +1 -0
  328. package/dist/esm/src/generateProto.js +80 -0
  329. package/dist/esm/src/generateProto.js.map +1 -0
  330. package/dist/esm/src/generateProto.test.d.ts +2 -0
  331. package/dist/esm/src/generateProto.test.d.ts.map +1 -0
  332. package/dist/esm/src/generateProto.test.js +122 -0
  333. package/dist/esm/src/generateProto.test.js.map +1 -0
  334. package/dist/esm/src/generateRos.d.ts +20 -0
  335. package/dist/esm/src/generateRos.d.ts.map +1 -0
  336. package/dist/esm/src/generateRos.js +180 -0
  337. package/dist/esm/src/generateRos.js.map +1 -0
  338. package/dist/esm/src/generateRos.test.d.ts +2 -0
  339. package/dist/esm/src/generateRos.test.d.ts.map +1 -0
  340. package/dist/esm/src/generateRos.test.js +909 -0
  341. package/dist/esm/src/generateRos.test.js.map +1 -0
  342. package/dist/esm/src/generateTypeScript.d.ts +5 -0
  343. package/dist/esm/src/generateTypeScript.d.ts.map +1 -0
  344. package/dist/esm/src/generateTypeScript.js +96 -0
  345. package/dist/esm/src/generateTypeScript.js.map +1 -0
  346. package/dist/esm/src/generateTypeScript.test.d.ts +2 -0
  347. package/dist/esm/src/generateTypeScript.test.d.ts.map +1 -0
  348. package/dist/esm/src/generateTypeScript.test.js +117 -0
  349. package/dist/esm/src/generateTypeScript.test.js.map +1 -0
  350. package/dist/esm/src/index.d.ts +6 -0
  351. package/dist/esm/src/index.d.ts.map +1 -0
  352. package/dist/esm/src/index.js +6 -0
  353. package/dist/esm/src/index.js.map +1 -0
  354. package/dist/esm/src/schemas.d.ts +35 -0
  355. package/dist/esm/src/schemas.d.ts.map +1 -0
  356. package/dist/esm/src/schemas.js +817 -0
  357. package/dist/esm/src/schemas.js.map +1 -0
  358. package/dist/esm/src/schemas.test.d.ts +2 -0
  359. package/dist/esm/src/schemas.test.d.ts.map +1 -0
  360. package/dist/esm/src/schemas.test.js +22 -0
  361. package/dist/esm/src/schemas.test.js.map +1 -0
  362. package/dist/esm/src/testFixtures.d.ts +5 -0
  363. package/dist/esm/src/testFixtures.d.ts.map +1 -0
  364. package/dist/esm/src/testFixtures.js +83 -0
  365. package/dist/esm/src/testFixtures.js.map +1 -0
  366. package/dist/esm/src/types.d.ts +37 -0
  367. package/dist/esm/src/types.d.ts.map +1 -0
  368. package/dist/esm/src/types.js +2 -0
  369. package/dist/esm/src/types.js.map +1 -0
  370. package/jest.config.json +16 -0
  371. package/package.json +55 -0
  372. package/schemas/jsonschema/CameraCalibration.json +72 -0
  373. package/schemas/jsonschema/CircleAnnotation.json +96 -0
  374. package/schemas/jsonschema/Color.json +24 -0
  375. package/schemas/jsonschema/CompressedImage.json +33 -0
  376. package/schemas/jsonschema/FrameTransform.json +100 -0
  377. package/schemas/jsonschema/GeoJSON.json +12 -0
  378. package/schemas/jsonschema/Grid.json +179 -0
  379. package/schemas/jsonschema/ImageAnnotations.json +234 -0
  380. package/schemas/jsonschema/LaserScan.json +102 -0
  381. package/schemas/jsonschema/LocationFix.json +51 -0
  382. package/schemas/jsonschema/Log.json +71 -0
  383. package/schemas/jsonschema/PackedElementField.json +59 -0
  384. package/schemas/jsonschema/Point2.json +16 -0
  385. package/schemas/jsonschema/Point3.json +20 -0
  386. package/schemas/jsonschema/PointCloud.json +153 -0
  387. package/schemas/jsonschema/PointsAnnotation.json +122 -0
  388. package/schemas/jsonschema/Pose.json +52 -0
  389. package/schemas/jsonschema/PoseInFrame.json +80 -0
  390. package/schemas/jsonschema/PosesInFrame.json +84 -0
  391. package/schemas/jsonschema/Quaternion.json +24 -0
  392. package/schemas/jsonschema/RawImage.json +48 -0
  393. package/schemas/jsonschema/Transform.json +68 -0
  394. package/schemas/jsonschema/Vector2.json +16 -0
  395. package/schemas/jsonschema/Vector3.json +20 -0
  396. package/schemas/proto/foxglove/CameraCalibration.proto +70 -0
  397. package/schemas/proto/foxglove/CircleAnnotation.proto +30 -0
  398. package/schemas/proto/foxglove/Color.proto +20 -0
  399. package/schemas/proto/foxglove/CompressedImage.proto +19 -0
  400. package/schemas/proto/foxglove/FrameTransform.proto +23 -0
  401. package/schemas/proto/foxglove/GeoJSON.proto +11 -0
  402. package/schemas/proto/foxglove/Grid.proto +40 -0
  403. package/schemas/proto/foxglove/ImageAnnotations.proto +17 -0
  404. package/schemas/proto/foxglove/LaserScan.proto +32 -0
  405. package/schemas/proto/foxglove/LocationFix.proto +33 -0
  406. package/schemas/proto/foxglove/Log.proto +42 -0
  407. package/schemas/proto/foxglove/PackedElementField.proto +37 -0
  408. package/schemas/proto/foxglove/Point2.proto +14 -0
  409. package/schemas/proto/foxglove/Point3.proto +17 -0
  410. package/schemas/proto/foxglove/PointCloud.proto +30 -0
  411. package/schemas/proto/foxglove/PointsAnnotation.proto +39 -0
  412. package/schemas/proto/foxglove/Pose.proto +17 -0
  413. package/schemas/proto/foxglove/PoseInFrame.proto +20 -0
  414. package/schemas/proto/foxglove/PosesInFrame.proto +20 -0
  415. package/schemas/proto/foxglove/Quaternion.proto +20 -0
  416. package/schemas/proto/foxglove/RawImage.proto +28 -0
  417. package/schemas/proto/foxglove/Transform.proto +21 -0
  418. package/schemas/proto/foxglove/Vector2.proto +14 -0
  419. package/schemas/proto/foxglove/Vector3.proto +17 -0
  420. package/schemas/ros1/CameraCalibration.msg +61 -0
  421. package/schemas/ros1/CircleAnnotation.msg +19 -0
  422. package/schemas/ros1/Color.msg +13 -0
  423. package/schemas/ros1/CompressedImage.msg +10 -0
  424. package/schemas/ros1/FrameTransform.msg +13 -0
  425. package/schemas/ros1/GeoJSON.msg +4 -0
  426. package/schemas/ros1/Grid.msg +28 -0
  427. package/schemas/ros1/ImageAnnotations.msg +7 -0
  428. package/schemas/ros1/LaserScan.msg +22 -0
  429. package/schemas/ros1/LocationFix.msg +21 -0
  430. package/schemas/ros1/Log.msg +26 -0
  431. package/schemas/ros1/PackedElementField.msg +20 -0
  432. package/schemas/ros1/Point2.msg +7 -0
  433. package/schemas/ros1/PointCloud.msg +19 -0
  434. package/schemas/ros1/PointsAnnotation.msg +22 -0
  435. package/schemas/ros1/PoseInFrame.msg +10 -0
  436. package/schemas/ros1/PosesInFrame.msg +10 -0
  437. package/schemas/ros1/RawImage.msg +19 -0
  438. package/schemas/ros1/Transform.msg +10 -0
  439. package/schemas/ros1/Vector2.msg +7 -0
  440. package/schemas/ros2/CameraCalibration.msg +61 -0
  441. package/schemas/ros2/CircleAnnotation.msg +19 -0
  442. package/schemas/ros2/Color.msg +13 -0
  443. package/schemas/ros2/CompressedImage.msg +10 -0
  444. package/schemas/ros2/FrameTransform.msg +13 -0
  445. package/schemas/ros2/GeoJSON.msg +4 -0
  446. package/schemas/ros2/Grid.msg +28 -0
  447. package/schemas/ros2/ImageAnnotations.msg +7 -0
  448. package/schemas/ros2/LaserScan.msg +22 -0
  449. package/schemas/ros2/LocationFix.msg +21 -0
  450. package/schemas/ros2/Log.msg +26 -0
  451. package/schemas/ros2/PackedElementField.msg +20 -0
  452. package/schemas/ros2/Point2.msg +7 -0
  453. package/schemas/ros2/PointCloud.msg +19 -0
  454. package/schemas/ros2/PointsAnnotation.msg +22 -0
  455. package/schemas/ros2/PoseInFrame.msg +10 -0
  456. package/schemas/ros2/PosesInFrame.msg +10 -0
  457. package/schemas/ros2/RawImage.msg +19 -0
  458. package/schemas/ros2/Transform.msg +10 -0
  459. package/schemas/ros2/Vector2.msg +7 -0
  460. package/schemas/typescript/CameraCalibration.ts +72 -0
  461. package/schemas/typescript/CircleAnnotation.ts +26 -0
  462. package/schemas/typescript/Color.ts +16 -0
  463. package/schemas/typescript/CompressedImage.ts +15 -0
  464. package/schemas/typescript/Duration.ts +4 -0
  465. package/schemas/typescript/FrameTransform.ts +19 -0
  466. package/schemas/typescript/GeoJSON.ts +7 -0
  467. package/schemas/typescript/Grid.ts +36 -0
  468. package/schemas/typescript/ImageAnnotations.ts +13 -0
  469. package/schemas/typescript/LaserScan.ts +28 -0
  470. package/schemas/typescript/LocationFix.ts +21 -0
  471. package/schemas/typescript/Log.ts +25 -0
  472. package/schemas/typescript/LogLevel.ts +16 -0
  473. package/schemas/typescript/NumericType.ts +22 -0
  474. package/schemas/typescript/PackedElementField.ts +15 -0
  475. package/schemas/typescript/Point2.ts +10 -0
  476. package/schemas/typescript/Point3.ts +13 -0
  477. package/schemas/typescript/PointCloud.ts +26 -0
  478. package/schemas/typescript/PointsAnnotation.ts +24 -0
  479. package/schemas/typescript/PointsAnnotationType.ts +14 -0
  480. package/schemas/typescript/Pose.ts +13 -0
  481. package/schemas/typescript/PoseInFrame.ts +16 -0
  482. package/schemas/typescript/PosesInFrame.ts +16 -0
  483. package/schemas/typescript/PositionCovarianceType.ts +12 -0
  484. package/schemas/typescript/Quaternion.ts +16 -0
  485. package/schemas/typescript/RawImage.ts +24 -0
  486. package/schemas/typescript/Time.ts +4 -0
  487. package/schemas/typescript/Transform.ts +17 -0
  488. package/schemas/typescript/Vector2.ts +10 -0
  489. package/schemas/typescript/Vector3.ts +13 -0
  490. package/schemas/typescript/index.ts +28 -0
  491. package/scripts/updateGeneratedFiles.ts +103 -0
  492. package/src/generateJsonSchema.test.ts +314 -0
  493. package/src/generateJsonSchema.ts +82 -0
  494. package/src/generateProto.test.ts +126 -0
  495. package/src/generateProto.ts +97 -0
  496. package/src/generateRos.test.ts +931 -0
  497. package/src/generateRos.ts +219 -0
  498. package/src/generateTypeScript.test.ts +118 -0
  499. package/src/generateTypeScript.ts +106 -0
  500. package/src/index.ts +5 -0
  501. package/src/schemas.test.ts +23 -0
  502. package/src/schemas.ts +853 -0
  503. package/src/testFixtures.ts +90 -0
  504. package/src/types.ts +40 -0
  505. package/tsconfig.cjs.json +7 -0
  506. package/tsconfig.json +9 -0
@@ -0,0 +1,909 @@
1
+ import { parse as parseMessageDefinition } from "@foxglove/rosmsg";
2
+ import { generateRosMsgMergedSchema, generateRosMsgDefinition, generateRosMsg, } from "./generateRos";
3
+ import { foxgloveMessageSchemas } from "./schemas";
4
+ import { exampleMessageWithoutArrayOfBytes } from "./testFixtures";
5
+ describe("generateRosMsgFiles", () => {
6
+ it("generates msg file for ROS 1", () => {
7
+ expect(generateRosMsg(generateRosMsgDefinition(exampleMessageWithoutArrayOfBytes, {
8
+ rosVersion: 1,
9
+ }))).toMatchInlineSnapshot(`
10
+ "# Generated from ExampleMessage by @foxglove/schemas
11
+
12
+ # duration field
13
+ duration field_duration
14
+
15
+ # time field
16
+ time field_time
17
+
18
+ # boolean field
19
+ bool field_boolean
20
+
21
+ # bytes field
22
+ uint8[] field_bytes
23
+
24
+ # float64 field
25
+ float64 field_float64
26
+
27
+ # uint32 field
28
+ uint32 field_uint32
29
+
30
+ # string field
31
+ string field_string
32
+
33
+ # duration array field
34
+ duration[] field_duration_array
35
+
36
+ # time array field
37
+ time[] field_time_array
38
+
39
+ # boolean array field
40
+ bool[] field_boolean_array
41
+
42
+ # float64 array field
43
+ float64[] field_float64_array
44
+
45
+ # uint32 array field
46
+ uint32[] field_uint32_array
47
+
48
+ # string array field
49
+ string[] field_string_array
50
+
51
+ # duration fixed-length array field
52
+ duration[3] field_duration_fixed_array
53
+
54
+ # time fixed-length array field
55
+ time[3] field_time_fixed_array
56
+
57
+ # boolean fixed-length array field
58
+ bool[3] field_boolean_fixed_array
59
+
60
+ # float64 fixed-length array field
61
+ float64[3] field_float64_fixed_array
62
+
63
+ # uint32 fixed-length array field
64
+ uint32[3] field_uint32_fixed_array
65
+
66
+ # string fixed-length array field
67
+ string[3] field_string_fixed_array
68
+
69
+ # Value A
70
+ uint8 A=1
71
+
72
+ # Value B
73
+ uint8 B=2
74
+
75
+ # An enum field
76
+ uint8 field_enum
77
+
78
+ # An enum array field
79
+ uint8[] field_enum_array
80
+
81
+ # A nested field
82
+ foxglove_msgs/NestedMessage field_nested
83
+
84
+ # A nested array field
85
+ # With
86
+ # a
87
+ # very
88
+ # long
89
+ # description
90
+ foxglove_msgs/NestedMessage[] field_nested_array
91
+ "
92
+ `);
93
+ });
94
+ it("generates msg file for ROS 2", () => {
95
+ expect(generateRosMsg(generateRosMsgDefinition(exampleMessageWithoutArrayOfBytes, {
96
+ rosVersion: 2,
97
+ }))).toMatchInlineSnapshot(`
98
+ "# Generated from ExampleMessage by @foxglove/schemas
99
+
100
+ # duration field
101
+ builtin_interfaces/Duration field_duration
102
+
103
+ # time field
104
+ builtin_interfaces/Time field_time
105
+
106
+ # boolean field
107
+ bool field_boolean
108
+
109
+ # bytes field
110
+ uint8[] field_bytes
111
+
112
+ # float64 field
113
+ float64 field_float64
114
+
115
+ # uint32 field
116
+ uint32 field_uint32
117
+
118
+ # string field
119
+ string field_string
120
+
121
+ # duration array field
122
+ builtin_interfaces/Duration[] field_duration_array
123
+
124
+ # time array field
125
+ builtin_interfaces/Time[] field_time_array
126
+
127
+ # boolean array field
128
+ bool[] field_boolean_array
129
+
130
+ # float64 array field
131
+ float64[] field_float64_array
132
+
133
+ # uint32 array field
134
+ uint32[] field_uint32_array
135
+
136
+ # string array field
137
+ string[] field_string_array
138
+
139
+ # duration fixed-length array field
140
+ builtin_interfaces/Duration[3] field_duration_fixed_array
141
+
142
+ # time fixed-length array field
143
+ builtin_interfaces/Time[3] field_time_fixed_array
144
+
145
+ # boolean fixed-length array field
146
+ bool[3] field_boolean_fixed_array
147
+
148
+ # float64 fixed-length array field
149
+ float64[3] field_float64_fixed_array
150
+
151
+ # uint32 fixed-length array field
152
+ uint32[3] field_uint32_fixed_array
153
+
154
+ # string fixed-length array field
155
+ string[3] field_string_fixed_array
156
+
157
+ # Value A
158
+ uint8 A=1
159
+
160
+ # Value B
161
+ uint8 B=2
162
+
163
+ # An enum field
164
+ uint8 field_enum
165
+
166
+ # An enum array field
167
+ uint8[] field_enum_array
168
+
169
+ # A nested field
170
+ foxglove_msgs/NestedMessage field_nested
171
+
172
+ # A nested array field
173
+ # With
174
+ # a
175
+ # very
176
+ # long
177
+ # description
178
+ foxglove_msgs/NestedMessage[] field_nested_array
179
+ "
180
+ `);
181
+ });
182
+ });
183
+ describe("generateRosMsgMergedSchema", () => {
184
+ it("generates merged schema for ROS 1", () => {
185
+ const mergedSchema = generateRosMsgMergedSchema(exampleMessageWithoutArrayOfBytes, {
186
+ rosVersion: 1,
187
+ });
188
+ expect(mergedSchema).toMatchInlineSnapshot(`
189
+ "# Generated from ExampleMessage by @foxglove/schemas
190
+
191
+ # duration field
192
+ duration field_duration
193
+
194
+ # time field
195
+ time field_time
196
+
197
+ # boolean field
198
+ bool field_boolean
199
+
200
+ # bytes field
201
+ uint8[] field_bytes
202
+
203
+ # float64 field
204
+ float64 field_float64
205
+
206
+ # uint32 field
207
+ uint32 field_uint32
208
+
209
+ # string field
210
+ string field_string
211
+
212
+ # duration array field
213
+ duration[] field_duration_array
214
+
215
+ # time array field
216
+ time[] field_time_array
217
+
218
+ # boolean array field
219
+ bool[] field_boolean_array
220
+
221
+ # float64 array field
222
+ float64[] field_float64_array
223
+
224
+ # uint32 array field
225
+ uint32[] field_uint32_array
226
+
227
+ # string array field
228
+ string[] field_string_array
229
+
230
+ # duration fixed-length array field
231
+ duration[3] field_duration_fixed_array
232
+
233
+ # time fixed-length array field
234
+ time[3] field_time_fixed_array
235
+
236
+ # boolean fixed-length array field
237
+ bool[3] field_boolean_fixed_array
238
+
239
+ # float64 fixed-length array field
240
+ float64[3] field_float64_fixed_array
241
+
242
+ # uint32 fixed-length array field
243
+ uint32[3] field_uint32_fixed_array
244
+
245
+ # string fixed-length array field
246
+ string[3] field_string_fixed_array
247
+
248
+ # Value A
249
+ uint8 A=1
250
+
251
+ # Value B
252
+ uint8 B=2
253
+
254
+ # An enum field
255
+ uint8 field_enum
256
+
257
+ # An enum array field
258
+ uint8[] field_enum_array
259
+
260
+ # A nested field
261
+ foxglove_msgs/NestedMessage field_nested
262
+
263
+ # A nested array field
264
+ # With
265
+ # a
266
+ # very
267
+ # long
268
+ # description
269
+ foxglove_msgs/NestedMessage[] field_nested_array
270
+ ================================================================================
271
+ MSG: foxglove_msgs/NestedMessage
272
+ # Generated from NestedMessage by @foxglove/schemas
273
+
274
+ # An enum field
275
+ uint32 field_enum
276
+ "
277
+ `);
278
+ expect(parseMessageDefinition(mergedSchema)).toMatchInlineSnapshot(`
279
+ Array [
280
+ Object {
281
+ "definitions": Array [
282
+ Object {
283
+ "isArray": false,
284
+ "isComplex": false,
285
+ "name": "field_duration",
286
+ "type": "duration",
287
+ },
288
+ Object {
289
+ "isArray": false,
290
+ "isComplex": false,
291
+ "name": "field_time",
292
+ "type": "time",
293
+ },
294
+ Object {
295
+ "isArray": false,
296
+ "isComplex": false,
297
+ "name": "field_boolean",
298
+ "type": "bool",
299
+ },
300
+ Object {
301
+ "isArray": true,
302
+ "isComplex": false,
303
+ "name": "field_bytes",
304
+ "type": "uint8",
305
+ },
306
+ Object {
307
+ "isArray": false,
308
+ "isComplex": false,
309
+ "name": "field_float64",
310
+ "type": "float64",
311
+ },
312
+ Object {
313
+ "isArray": false,
314
+ "isComplex": false,
315
+ "name": "field_uint32",
316
+ "type": "uint32",
317
+ },
318
+ Object {
319
+ "isArray": false,
320
+ "isComplex": false,
321
+ "name": "field_string",
322
+ "type": "string",
323
+ },
324
+ Object {
325
+ "isArray": true,
326
+ "isComplex": false,
327
+ "name": "field_duration_array",
328
+ "type": "duration",
329
+ },
330
+ Object {
331
+ "isArray": true,
332
+ "isComplex": false,
333
+ "name": "field_time_array",
334
+ "type": "time",
335
+ },
336
+ Object {
337
+ "isArray": true,
338
+ "isComplex": false,
339
+ "name": "field_boolean_array",
340
+ "type": "bool",
341
+ },
342
+ Object {
343
+ "isArray": true,
344
+ "isComplex": false,
345
+ "name": "field_float64_array",
346
+ "type": "float64",
347
+ },
348
+ Object {
349
+ "isArray": true,
350
+ "isComplex": false,
351
+ "name": "field_uint32_array",
352
+ "type": "uint32",
353
+ },
354
+ Object {
355
+ "isArray": true,
356
+ "isComplex": false,
357
+ "name": "field_string_array",
358
+ "type": "string",
359
+ },
360
+ Object {
361
+ "arrayLength": 3,
362
+ "isArray": true,
363
+ "isComplex": false,
364
+ "name": "field_duration_fixed_array",
365
+ "type": "duration",
366
+ },
367
+ Object {
368
+ "arrayLength": 3,
369
+ "isArray": true,
370
+ "isComplex": false,
371
+ "name": "field_time_fixed_array",
372
+ "type": "time",
373
+ },
374
+ Object {
375
+ "arrayLength": 3,
376
+ "isArray": true,
377
+ "isComplex": false,
378
+ "name": "field_boolean_fixed_array",
379
+ "type": "bool",
380
+ },
381
+ Object {
382
+ "arrayLength": 3,
383
+ "isArray": true,
384
+ "isComplex": false,
385
+ "name": "field_float64_fixed_array",
386
+ "type": "float64",
387
+ },
388
+ Object {
389
+ "arrayLength": 3,
390
+ "isArray": true,
391
+ "isComplex": false,
392
+ "name": "field_uint32_fixed_array",
393
+ "type": "uint32",
394
+ },
395
+ Object {
396
+ "arrayLength": 3,
397
+ "isArray": true,
398
+ "isComplex": false,
399
+ "name": "field_string_fixed_array",
400
+ "type": "string",
401
+ },
402
+ Object {
403
+ "isConstant": true,
404
+ "name": "A",
405
+ "type": "uint8",
406
+ "value": 1,
407
+ "valueText": "1",
408
+ },
409
+ Object {
410
+ "isConstant": true,
411
+ "name": "B",
412
+ "type": "uint8",
413
+ "value": 2,
414
+ "valueText": "2",
415
+ },
416
+ Object {
417
+ "isArray": false,
418
+ "isComplex": false,
419
+ "name": "field_enum",
420
+ "type": "uint8",
421
+ },
422
+ Object {
423
+ "isArray": true,
424
+ "isComplex": false,
425
+ "name": "field_enum_array",
426
+ "type": "uint8",
427
+ },
428
+ Object {
429
+ "isArray": false,
430
+ "isComplex": true,
431
+ "name": "field_nested",
432
+ "type": "foxglove_msgs/NestedMessage",
433
+ },
434
+ Object {
435
+ "isArray": true,
436
+ "isComplex": true,
437
+ "name": "field_nested_array",
438
+ "type": "foxglove_msgs/NestedMessage",
439
+ },
440
+ ],
441
+ "name": undefined,
442
+ },
443
+ Object {
444
+ "definitions": Array [
445
+ Object {
446
+ "isArray": false,
447
+ "isComplex": false,
448
+ "name": "field_enum",
449
+ "type": "uint32",
450
+ },
451
+ ],
452
+ "name": "foxglove_msgs/NestedMessage",
453
+ },
454
+ ]
455
+ `);
456
+ });
457
+ it("generates merged schema for ROS 2", () => {
458
+ const mergedSchema = generateRosMsgMergedSchema(exampleMessageWithoutArrayOfBytes, {
459
+ rosVersion: 2,
460
+ });
461
+ expect(mergedSchema).toMatchInlineSnapshot(`
462
+ "# Generated from ExampleMessage by @foxglove/schemas
463
+
464
+ # duration field
465
+ builtin_interfaces/Duration field_duration
466
+
467
+ # time field
468
+ builtin_interfaces/Time field_time
469
+
470
+ # boolean field
471
+ bool field_boolean
472
+
473
+ # bytes field
474
+ uint8[] field_bytes
475
+
476
+ # float64 field
477
+ float64 field_float64
478
+
479
+ # uint32 field
480
+ uint32 field_uint32
481
+
482
+ # string field
483
+ string field_string
484
+
485
+ # duration array field
486
+ builtin_interfaces/Duration[] field_duration_array
487
+
488
+ # time array field
489
+ builtin_interfaces/Time[] field_time_array
490
+
491
+ # boolean array field
492
+ bool[] field_boolean_array
493
+
494
+ # float64 array field
495
+ float64[] field_float64_array
496
+
497
+ # uint32 array field
498
+ uint32[] field_uint32_array
499
+
500
+ # string array field
501
+ string[] field_string_array
502
+
503
+ # duration fixed-length array field
504
+ builtin_interfaces/Duration[3] field_duration_fixed_array
505
+
506
+ # time fixed-length array field
507
+ builtin_interfaces/Time[3] field_time_fixed_array
508
+
509
+ # boolean fixed-length array field
510
+ bool[3] field_boolean_fixed_array
511
+
512
+ # float64 fixed-length array field
513
+ float64[3] field_float64_fixed_array
514
+
515
+ # uint32 fixed-length array field
516
+ uint32[3] field_uint32_fixed_array
517
+
518
+ # string fixed-length array field
519
+ string[3] field_string_fixed_array
520
+
521
+ # Value A
522
+ uint8 A=1
523
+
524
+ # Value B
525
+ uint8 B=2
526
+
527
+ # An enum field
528
+ uint8 field_enum
529
+
530
+ # An enum array field
531
+ uint8[] field_enum_array
532
+
533
+ # A nested field
534
+ foxglove_msgs/NestedMessage field_nested
535
+
536
+ # A nested array field
537
+ # With
538
+ # a
539
+ # very
540
+ # long
541
+ # description
542
+ foxglove_msgs/NestedMessage[] field_nested_array
543
+ ================================================================================
544
+ MSG: foxglove_msgs/NestedMessage
545
+ # Generated from NestedMessage by @foxglove/schemas
546
+
547
+ # An enum field
548
+ uint32 field_enum
549
+ "
550
+ `);
551
+ expect(parseMessageDefinition(mergedSchema, { ros2: true })).toMatchInlineSnapshot(`
552
+ Array [
553
+ Object {
554
+ "definitions": Array [
555
+ Object {
556
+ "arrayLength": undefined,
557
+ "arrayUpperBound": undefined,
558
+ "defaultValue": undefined,
559
+ "isArray": false,
560
+ "isComplex": false,
561
+ "isConstant": undefined,
562
+ "name": "field_duration",
563
+ "type": "duration",
564
+ "upperBound": undefined,
565
+ "value": undefined,
566
+ "valueText": undefined,
567
+ },
568
+ Object {
569
+ "arrayLength": undefined,
570
+ "arrayUpperBound": undefined,
571
+ "defaultValue": undefined,
572
+ "isArray": false,
573
+ "isComplex": false,
574
+ "isConstant": undefined,
575
+ "name": "field_time",
576
+ "type": "time",
577
+ "upperBound": undefined,
578
+ "value": undefined,
579
+ "valueText": undefined,
580
+ },
581
+ Object {
582
+ "arrayLength": undefined,
583
+ "arrayUpperBound": undefined,
584
+ "defaultValue": undefined,
585
+ "isArray": false,
586
+ "isComplex": false,
587
+ "isConstant": undefined,
588
+ "name": "field_boolean",
589
+ "type": "bool",
590
+ "upperBound": undefined,
591
+ "value": undefined,
592
+ "valueText": undefined,
593
+ },
594
+ Object {
595
+ "arrayLength": undefined,
596
+ "arrayUpperBound": undefined,
597
+ "defaultValue": undefined,
598
+ "isArray": true,
599
+ "isComplex": false,
600
+ "isConstant": undefined,
601
+ "name": "field_bytes",
602
+ "type": "uint8",
603
+ "upperBound": undefined,
604
+ "value": undefined,
605
+ "valueText": undefined,
606
+ },
607
+ Object {
608
+ "arrayLength": undefined,
609
+ "arrayUpperBound": undefined,
610
+ "defaultValue": undefined,
611
+ "isArray": false,
612
+ "isComplex": false,
613
+ "isConstant": undefined,
614
+ "name": "field_float64",
615
+ "type": "float64",
616
+ "upperBound": undefined,
617
+ "value": undefined,
618
+ "valueText": undefined,
619
+ },
620
+ Object {
621
+ "arrayLength": undefined,
622
+ "arrayUpperBound": undefined,
623
+ "defaultValue": undefined,
624
+ "isArray": false,
625
+ "isComplex": false,
626
+ "isConstant": undefined,
627
+ "name": "field_uint32",
628
+ "type": "uint32",
629
+ "upperBound": undefined,
630
+ "value": undefined,
631
+ "valueText": undefined,
632
+ },
633
+ Object {
634
+ "arrayLength": undefined,
635
+ "arrayUpperBound": undefined,
636
+ "defaultValue": undefined,
637
+ "isArray": false,
638
+ "isComplex": false,
639
+ "isConstant": undefined,
640
+ "name": "field_string",
641
+ "type": "string",
642
+ "upperBound": undefined,
643
+ "value": undefined,
644
+ "valueText": undefined,
645
+ },
646
+ Object {
647
+ "arrayLength": undefined,
648
+ "arrayUpperBound": undefined,
649
+ "defaultValue": undefined,
650
+ "isArray": true,
651
+ "isComplex": false,
652
+ "isConstant": undefined,
653
+ "name": "field_duration_array",
654
+ "type": "duration",
655
+ "upperBound": undefined,
656
+ "value": undefined,
657
+ "valueText": undefined,
658
+ },
659
+ Object {
660
+ "arrayLength": undefined,
661
+ "arrayUpperBound": undefined,
662
+ "defaultValue": undefined,
663
+ "isArray": true,
664
+ "isComplex": false,
665
+ "isConstant": undefined,
666
+ "name": "field_time_array",
667
+ "type": "time",
668
+ "upperBound": undefined,
669
+ "value": undefined,
670
+ "valueText": undefined,
671
+ },
672
+ Object {
673
+ "arrayLength": undefined,
674
+ "arrayUpperBound": undefined,
675
+ "defaultValue": undefined,
676
+ "isArray": true,
677
+ "isComplex": false,
678
+ "isConstant": undefined,
679
+ "name": "field_boolean_array",
680
+ "type": "bool",
681
+ "upperBound": undefined,
682
+ "value": undefined,
683
+ "valueText": undefined,
684
+ },
685
+ Object {
686
+ "arrayLength": undefined,
687
+ "arrayUpperBound": undefined,
688
+ "defaultValue": undefined,
689
+ "isArray": true,
690
+ "isComplex": false,
691
+ "isConstant": undefined,
692
+ "name": "field_float64_array",
693
+ "type": "float64",
694
+ "upperBound": undefined,
695
+ "value": undefined,
696
+ "valueText": undefined,
697
+ },
698
+ Object {
699
+ "arrayLength": undefined,
700
+ "arrayUpperBound": undefined,
701
+ "defaultValue": undefined,
702
+ "isArray": true,
703
+ "isComplex": false,
704
+ "isConstant": undefined,
705
+ "name": "field_uint32_array",
706
+ "type": "uint32",
707
+ "upperBound": undefined,
708
+ "value": undefined,
709
+ "valueText": undefined,
710
+ },
711
+ Object {
712
+ "arrayLength": undefined,
713
+ "arrayUpperBound": undefined,
714
+ "defaultValue": undefined,
715
+ "isArray": true,
716
+ "isComplex": false,
717
+ "isConstant": undefined,
718
+ "name": "field_string_array",
719
+ "type": "string",
720
+ "upperBound": undefined,
721
+ "value": undefined,
722
+ "valueText": undefined,
723
+ },
724
+ Object {
725
+ "arrayLength": 3,
726
+ "arrayUpperBound": undefined,
727
+ "defaultValue": undefined,
728
+ "isArray": true,
729
+ "isComplex": false,
730
+ "isConstant": undefined,
731
+ "name": "field_duration_fixed_array",
732
+ "type": "duration",
733
+ "upperBound": undefined,
734
+ "value": undefined,
735
+ "valueText": undefined,
736
+ },
737
+ Object {
738
+ "arrayLength": 3,
739
+ "arrayUpperBound": undefined,
740
+ "defaultValue": undefined,
741
+ "isArray": true,
742
+ "isComplex": false,
743
+ "isConstant": undefined,
744
+ "name": "field_time_fixed_array",
745
+ "type": "time",
746
+ "upperBound": undefined,
747
+ "value": undefined,
748
+ "valueText": undefined,
749
+ },
750
+ Object {
751
+ "arrayLength": 3,
752
+ "arrayUpperBound": undefined,
753
+ "defaultValue": undefined,
754
+ "isArray": true,
755
+ "isComplex": false,
756
+ "isConstant": undefined,
757
+ "name": "field_boolean_fixed_array",
758
+ "type": "bool",
759
+ "upperBound": undefined,
760
+ "value": undefined,
761
+ "valueText": undefined,
762
+ },
763
+ Object {
764
+ "arrayLength": 3,
765
+ "arrayUpperBound": undefined,
766
+ "defaultValue": undefined,
767
+ "isArray": true,
768
+ "isComplex": false,
769
+ "isConstant": undefined,
770
+ "name": "field_float64_fixed_array",
771
+ "type": "float64",
772
+ "upperBound": undefined,
773
+ "value": undefined,
774
+ "valueText": undefined,
775
+ },
776
+ Object {
777
+ "arrayLength": 3,
778
+ "arrayUpperBound": undefined,
779
+ "defaultValue": undefined,
780
+ "isArray": true,
781
+ "isComplex": false,
782
+ "isConstant": undefined,
783
+ "name": "field_uint32_fixed_array",
784
+ "type": "uint32",
785
+ "upperBound": undefined,
786
+ "value": undefined,
787
+ "valueText": undefined,
788
+ },
789
+ Object {
790
+ "arrayLength": 3,
791
+ "arrayUpperBound": undefined,
792
+ "defaultValue": undefined,
793
+ "isArray": true,
794
+ "isComplex": false,
795
+ "isConstant": undefined,
796
+ "name": "field_string_fixed_array",
797
+ "type": "string",
798
+ "upperBound": undefined,
799
+ "value": undefined,
800
+ "valueText": undefined,
801
+ },
802
+ Object {
803
+ "arrayLength": undefined,
804
+ "arrayUpperBound": undefined,
805
+ "defaultValue": undefined,
806
+ "isArray": undefined,
807
+ "isComplex": undefined,
808
+ "isConstant": true,
809
+ "name": "A",
810
+ "type": "uint8",
811
+ "upperBound": undefined,
812
+ "value": 1,
813
+ "valueText": "1",
814
+ },
815
+ Object {
816
+ "arrayLength": undefined,
817
+ "arrayUpperBound": undefined,
818
+ "defaultValue": undefined,
819
+ "isArray": undefined,
820
+ "isComplex": undefined,
821
+ "isConstant": true,
822
+ "name": "B",
823
+ "type": "uint8",
824
+ "upperBound": undefined,
825
+ "value": 2,
826
+ "valueText": "2",
827
+ },
828
+ Object {
829
+ "arrayLength": undefined,
830
+ "arrayUpperBound": undefined,
831
+ "defaultValue": undefined,
832
+ "isArray": false,
833
+ "isComplex": false,
834
+ "isConstant": undefined,
835
+ "name": "field_enum",
836
+ "type": "uint8",
837
+ "upperBound": undefined,
838
+ "value": undefined,
839
+ "valueText": undefined,
840
+ },
841
+ Object {
842
+ "arrayLength": undefined,
843
+ "arrayUpperBound": undefined,
844
+ "defaultValue": undefined,
845
+ "isArray": true,
846
+ "isComplex": false,
847
+ "isConstant": undefined,
848
+ "name": "field_enum_array",
849
+ "type": "uint8",
850
+ "upperBound": undefined,
851
+ "value": undefined,
852
+ "valueText": undefined,
853
+ },
854
+ Object {
855
+ "arrayLength": undefined,
856
+ "arrayUpperBound": undefined,
857
+ "defaultValue": undefined,
858
+ "isArray": false,
859
+ "isComplex": true,
860
+ "isConstant": undefined,
861
+ "name": "field_nested",
862
+ "type": "foxglove_msgs/NestedMessage",
863
+ "upperBound": undefined,
864
+ "value": undefined,
865
+ "valueText": undefined,
866
+ },
867
+ Object {
868
+ "arrayLength": undefined,
869
+ "arrayUpperBound": undefined,
870
+ "defaultValue": undefined,
871
+ "isArray": true,
872
+ "isComplex": true,
873
+ "isConstant": undefined,
874
+ "name": "field_nested_array",
875
+ "type": "foxglove_msgs/NestedMessage",
876
+ "upperBound": undefined,
877
+ "value": undefined,
878
+ "valueText": undefined,
879
+ },
880
+ ],
881
+ "name": undefined,
882
+ },
883
+ Object {
884
+ "definitions": Array [
885
+ Object {
886
+ "arrayLength": undefined,
887
+ "arrayUpperBound": undefined,
888
+ "defaultValue": undefined,
889
+ "isArray": false,
890
+ "isComplex": false,
891
+ "isConstant": undefined,
892
+ "name": "field_enum",
893
+ "type": "uint32",
894
+ "upperBound": undefined,
895
+ "value": undefined,
896
+ "valueText": undefined,
897
+ },
898
+ ],
899
+ "name": "foxglove_msgs/NestedMessage",
900
+ },
901
+ ]
902
+ `);
903
+ });
904
+ it.each(Object.values(foxgloveMessageSchemas))("generates parseable merged schemas", (schema) => {
905
+ expect(() => parseMessageDefinition(generateRosMsgMergedSchema(schema, { rosVersion: 1 }))).not.toThrow();
906
+ expect(() => parseMessageDefinition(generateRosMsgMergedSchema(schema, { rosVersion: 2 }), { ros2: true })).not.toThrow();
907
+ });
908
+ });
909
+ //# sourceMappingURL=generateRos.test.js.map