{"_id":"@dassie/lib-oer","name":"@dassie/lib-oer","dist-tags":{"latest":"0.0.0"},"versions":{"0.0.0":{"name":"@dassie/lib-oer","type":"module","version":"0.0.0","description":"ASN.1 Octet Encoding Rules (OER) parsing and serialization","exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"sideEffects":false,"author":{"name":"Stefan Thomas","email":"justmoon@members.fsf.org","url":"https://justmoon.com/"},"license":"Apache-2.0","dependencies":{"@dassie/lib-type-utils":"^0.0.0"},"devDependencies":{"type-fest":"^4.26.1","@dassie/lib-format-utils":"^0.0.0","@dassie/meta-rollup-config":"^1.0.0","@dassie/meta-tsconfig":"^1.0.0"},"engines":{"node":"=22.8.0"},"bugs":{"url":"https://github.com/justmoon/dassie/issues"},"repository":{"type":"git","url":"git+https://github.com/justmoon/dassie.git","directory":"packages/lib-oer"},"scripts":{"build":"tsc && rollup -c","lint":"eslint --color .","typecheck":"tsc --pretty"},"_id":"@dassie/lib-oer@0.0.0","homepage":"https://github.com/justmoon/dassie#readme","_integrity":"sha512-BO/UPBfv/oy1k007YpBTYwgIg7rSKiCc/PAiKibz8cZg//BYQx0B8lXN2Iw+hMwc+sRhI4z/eMit0ZnsYEh68Q==","_resolved":"/tmp/3cfc8060ad3c90194985598c78678fb8/dassie-lib-oer-0.0.0.tgz","_from":"file:dassie-lib-oer-0.0.0.tgz","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-BO/UPBfv/oy1k007YpBTYwgIg7rSKiCc/PAiKibz8cZg//BYQx0B8lXN2Iw+hMwc+sRhI4z/eMit0ZnsYEh68Q==","shasum":"545164a57995d1c773e433aeb47f6fefd147bba1","tarball":"https://registry.npmjs.org/@dassie/lib-oer/-/lib-oer-0.0.0.tgz","fileCount":6,"unpackedSize":291411,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgTyeWyVG6X7I1i2RFdOKa5fLPr1q+nuFLu88+jpHkyQIhANYHfRbVdSiW2Tuqy7giHZ7/2gW8PqeuMe3c2rZiO0tG"}]},"_npmUser":{"name":"justmoon","email":"justmoon@members.fsf.org"},"directories":{},"maintainers":[{"name":"justmoon","email":"justmoon@members.fsf.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lib-oer_0.0.0_1729519365759_0.48052976695991756"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-21T14:02:45.608Z","0.0.0":"2024-10-21T14:02:45.958Z","modified":"2024-10-21T14:02:46.369Z"},"maintainers":[{"name":"justmoon","email":"justmoon@members.fsf.org"}],"description":"ASN.1 Octet Encoding Rules (OER) parsing and serialization","homepage":"https://github.com/justmoon/dassie#readme","repository":{"type":"git","url":"git+https://github.com/justmoon/dassie.git","directory":"packages/lib-oer"},"author":{"name":"Stefan Thomas","email":"justmoon@members.fsf.org","url":"https://justmoon.com/"},"bugs":{"url":"https://github.com/justmoon/dassie/issues"},"license":"Apache-2.0","readme":"# lib-oer\n\n## What is this?\n\nA serialization/deserialization library for [Octet Encoding Rules](https://www.itu.int/rec/T-REC-X.696/en) (OER; X.696) which provides automatic TypeScript type inference. Inspired by [zod](https://github.com/colinhacks/zod/).\n\n## Example\n\n```typescript\nimport { Infer, sequence, uint8Number, utf8String } from \"@dassie/lib-oer\"\n\nconst personSchema = sequence({\n  name: utf8String(),\n  age: uint8Number(),\n})\n\ntype Person = Infer<typeof personSchema>\n\nconst result = personSchema.parse(uint8ArrayContainingPerson)\n\nif (result.success) {\n  const person: Person = result.value\n} else {\n  console.error(\"Parsing failed:\", result.toString())\n}\n```\n\n## Limitations\n\n* [ ] Does not support enforcing custom limits on mantissa or exponent for REAL values\n* [ ] Does not support REAL values that exceed float64 limits\n* [ ] Does not support REAL values with a base other than 2\n* [ ] No support for optional fields and defaults in sequences\n* [ ] No support for extensions\n* [ ] Bitstring values are only boolean[] rather than Record<string, boolean>\n","readmeFilename":"README.md"}