{"_id":"@agileagileagile/ulog","_rev":"2-667f326f4264100c4f9db2f69b13423b","name":"@agileagileagile/ulog","dist-tags":{"latest":"2.3.2"},"versions":{"2.3.2":{"name":"@agileagileagile/ulog","version":"2.3.2","keywords":["ulog","px4","drones","robotics","deserialization","serde"],"license":"MIT","_id":"@agileagileagile/ulog@2.3.2","maintainers":[{"name":"agileagileagile","email":"agile@null.net"}],"homepage":"https://github.com/organize/ulog","bugs":{"url":"https://github.com/organize/ulog/issues"},"dist":{"shasum":"1fad8e176867909c621e88e8803078428490b44e","tarball":"https://registry.npmjs.org/@agileagileagile/ulog/-/ulog-2.3.2.tgz","fileCount":117,"integrity":"sha512-g3q2dinS5rBF92iPFQosAAgIkkN7iUt6PmCsXGxNQ7PV4WLfaoiNKJjiYmfLZ7jjzA4TZa/IYRzFrPwjNvnTeA==","signatures":[{"sig":"MEQCIBtxlV/LnxyjAKA2syGPGB9rw6w2q95wdvpT2uCVch7LAiB/WNXpQYbHE1L4B/NVzYiGE5qgfM9fT8S+Ne0YJ69UXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271276},"main":"dist/index.js","gitHead":"56030823f6c4344f075837ab0d7a5f49798b6926","scripts":{"lint":"eslint --report-unused-disable-directives --fix .","test":"jest","build":"yarn clean && tsc -b","clean":"rimraf dist","lint:ci":"eslint --report-unused-disable-directives .","prepack":"yarn build","prepublishOnly":"yarn lint:ci"},"typings":"dist/index.d.ts","_npmUser":{"name":"agileagileagile","email":"agile@null.net"},"repository":{"url":"git+https://github.com/organize/ulog.git","type":"git"},"_npmVersion":"10.9.3","description":"PX4 ULog file reader (unofficial fork of @foxglove/ulog)","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"29.7.0","eslint":"9.26.0","rimraf":"6.0.1","ts-jest":"29.3.2","prettier":"3.5.3","typescript":"5.8.3","@types/jest":"29.5.14","typescript-eslint":"8.32.0","eslint-config-prettier":"8.10.0","eslint-plugin-prettier":"5.4.0","jest-environment-jsdom":"29.7.0","@foxglove/eslint-plugin":"2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ulog_2.3.2_1771330872324_0.5327195560610731","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-02-17T12:21:12.214Z","modified":"2026-05-19T14:45:32.824Z","2.3.2":"2026-02-17T12:21:12.481Z"},"bugs":{"url":"https://github.com/organize/ulog/issues"},"license":"MIT","homepage":"https://github.com/organize/ulog","keywords":["ulog","px4","drones","robotics","deserialization","serde"],"repository":{"url":"git+https://github.com/organize/ulog.git","type":"git"},"description":"PX4 ULog file reader (unofficial fork of @foxglove/ulog)","maintainers":[{"name":"agileagileagile","email":"agile@null.net"}],"readme":"# @foxglove/ulog\n\n> _PX4 ULog file reader_\n\nA web and node.js TypeScript library for reading [PX4 ULog](https://docs.px4.io/main/en/dev_log/ulog_file_format.html) files, from the PX4 Autopilot system for drones and other autonomous vehicles.\n\n## Usage\n\n```typescript\nimport { MessageType, ULog } from \"@foxglove/ulog\";\nimport { FileReader } from \"@foxglove/ulog/node\";\n\nasync function main() {\n  const ulog = new ULog(new FileReader(\"../path/to/file.ulg\"));\n  await ulog.open(); // required before any other operations\n  console.log(ulog.messageCount()); // ex: 64599\n  console.log(ulog.timeRange()); // ex: [ 0n, 181493506n ]\n\n  // build a map of subscription ids to message counts\n  // NOTE: readMessages() iterates over DATA section messages in timestamp order\n  const msgIdCounts = new Map<number, number>();\n  for await (const msg of ulog.readMessages()) {\n    if (msg.type === MessageType.Data) {\n      // NOTE: `msg.value` holds the deserialized message\n      msgIdCounts.set(msg.msgId, (msgIdCounts.get(msg.msgId) ?? 0) + 1);\n    }\n  }\n\n  // convert the subscription ids to message names\n  const msgCounts = Array.from(msgIdCounts.entries()).map(([id, count]) => [\n    ulog.subscriptions.get(id)?.name ?? `unknown msg_id ${id}`,\n    count,\n  ]);\n  console.log(msgCounts);\n  // ex: [ [ 'vehicle_attitude', 6461 ], [ 'actuator_outputs', 1311 ], ... ]\n}\n\nvoid main();\n```\n\n## License\n\n@foxglove/ulog is licensed under the [MIT License](https://opensource.org/licenses/MIT).\n\n## Releasing\n\n1. Run `yarn version --[major|minor|patch]` to bump version\n2. Run `git push && git push --tags` to push new tag\n3. GitHub Actions will take care of the rest\n\n## Stay in touch\n\nJoin our [Discord](https://foxglove.dev/chat) to ask questions, share feedback, and stay up to date on what our team is working on.\n","readmeFilename":"README.md"}