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